Skip to content

python-codestyle is silent on the pytest-cov obligation D1.6 now enforces #1220

Description

@ptr727

#1215 gave D1.6 an obligation a Python repo has to meet in its own pyproject.toml: declare pytest-cov in a dev dependency group, select the coverage source with an addopts --cov=<package> entry, and leave the report at the repo root as coverage.xml. A repo missing any of those now reds its validation gate rather than reporting nothing silently.

The Skill an agent actually loads when authoring or editing a Python pyproject.toml says none of it.

  • .agents/skills/python-codestyle/references/testing.md says "Use pytest with configuration in [tool.pytest.ini_options]" and gives "Default invocation: uv run pytest". It never mentions pytest-cov or --cov.
  • references/profiles.md names "pytest coverage" as a build-profile trait without stating any requirement.

So an agent standing up a Python repo, or adding a test suite to one, follows the Skill, produces a conforming-looking pyproject.toml, and discovers the obligation from a red run.

Why this is a routing gap rather than drift

Neither file states the old contract, so nothing here is stale text to correct. The obligation simply has no surface at the moment an agent would act on it. That distinction matters for the fix, since AGENTS.md says not to restate GOVERNANCE.md and WORKFLOW.md rules elsewhere, and the cheapest-looking fix, copying the three obligations into the Skill, is the one that rule forbids.

What needs deciding

  1. A pointer rather than a restatement. testing.md gains one line saying a build-profile repo's coverage obligations are D1.6's and naming WORKFLOW.md as where they live.
  2. A restatement, accepted deliberately. The Skill carries the three obligations because a Skill exists precisely to surface a rule at its moment, and the no-restatement rule is aimed at carried instruction files rather than at Skills.
  3. Nothing. The validator's own ::error:: names the selector and the file, so the red run is self-explaining, and an agent that reads WORKFLOW.md at all will find D1.6.

Option 1 is the smallest thing that closes it, but which of the three is right is a call about what Skills are for, which is why this is filed rather than fixed.

Related

Found by the adversarial passes on #1215. Related to #1121 and #1113 for other carried-content and Skill defects.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions