Repository navigation
Bring the Remaining Python Profile Text Onto the Per-Directory Rule - #3557
Conversation
The python-codestyle skill and the spec now say a Python profile belongs to a declared directory, not to the repository. The skill names the build trait as a deliverable, declares a uv workspace once by its root, and gates an undeclared root only where it tracks a root pyproject.toml. The profiles reference calls the per-repo bundle a toolchain. The type model and the python profileNote describe the profile per directory. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Two profiles lead-in now names each Python directory, so it no longer reads back to the root. The toolchain axes drop the per-directory qualifier, since versioning can be a repository choice. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
A recorded local strict-review pass covers head |
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
There was a problem hiding this comment.
🔵 Needs a closer look
Promotion should await maintainer review because the documented Python profile model no longer matches the registry and validator contract, and the related issue is explicitly deferred.
No open issues 🎉
What changed in this PR
This pull request aligns Python profile guidance with the per-directory profile model, updates the specification text, and regenerates the distributed python-codestyle skills and source digest.
Changes:
- Defines profiles, deliverables, toolchains, and CI guidance per declared Python directory.
- Clarifies uv workspace-root exceptions and undeclared-root gating.
- Updates the type model and machine-readable project metadata.
- Regenerates distributed skill copies and refreshes the source digest.
| File | Description |
|---|---|
spec/type-model.md |
Documents Python profiles per declared directory. |
spec/project-types.json |
Updates Python profile metadata and workspace wording. |
.github/skills/python-codestyle/SKILL.md |
Regenerated GitHub skill guidance. |
.github/skills/python-codestyle/references/profiles.md |
Regenerated profile reference guidance. |
.claude-plugin/fleet-skills/skills/python-codestyle/SKILL.md |
Regenerated Claude skill guidance. |
.claude-plugin/fleet-skills/skills/python-codestyle/references/profiles.md |
Regenerated Claude profile reference guidance. |
.claude-plugin/fleet-skills/.source-digests/python-codestyle |
Updates the generated skill source digest. |
.agents/skills/python-codestyle/SKILL.md |
Updates the canonical Python profile and root-gating guidance. |
.agents/skills/python-codestyle/references/profiles.md |
Updates canonical per-directory toolchain guidance. |
Review effort: Lite
|
Answer to the headline of the Copilot round on
The mismatch is real and is not this change's to close. The per-directory rule was already stated in |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #3557 +/- ##
========================================
Coverage 81.50% 81.50%
========================================
Files 26 26
Lines 9065 9065
========================================
Hits 7388 7388
Misses 1677 1677
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
… AGENTS.md and WORKFLOW.md Sentence Length (#3562) ## Summary Promotes `develop` to `main`, carrying round 3 of the resync-issue burndown: - #3557: the python-codestyle skill, `profiles.md` "Adapt before propagating", `spec/type-model.md` and `spec/project-types.json` state the per-directory Python profile rule. The skill names the root-gating condition. - #3558: the digest prints the run-log reading inside its Copilot refusal block. The block's fixed sentence holds for quota, transient, and file-count refusals. - #3559: every sentence in `AGENTS.md` is 25 words or fewer, and all but one in `.github/copilot-instructions.md`. The two remaining `GOVERNANCE.md` sentences, and their copies, are shortened too. - #3561: every sentence in `WORKFLOW.md` is 25 words or fewer. Guarantee IDs, tables, and code are byte-identical. - #3564: promotion fix for Copilot's two findings on this pull request. The python-codestyle skill and the `python.profileNote` name the undeclared-root default. - #3565: Dependabot bumps `DavidAnson/markdownlint-cli2-action` from 24.2.0 to 25.0.0. It merged into `develop` while this pull request was open. The #3559 and #3561 slices continue the #3531 cleanup and do not close it. Carried `AGENTS.md`, `WORKFLOW.md`, and Copilot-instructions text changes wording, so each fleet repository's verbatim copy differs from the hub until its next resync. Fixes #3541 Fixes #3548 Fixes #3550 Fixes #3552 Fixes #3554 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Summary
The per-directory Python profile rule from #3549 and #3555 still met per-repository wording in four places. Each now states the rule: a profile belongs to a declared directory, not to the repository.
python-codestyleSKILL.md"Two profiles" names the build trait as a deliverable, not "the repo's deliverable" (Name the Build Trait as a Deliverable in python-codestyle SKILL.md #3548). It states that a profile belongs to a declared directory, and that a uv workspace is declared once, by its root.SKILL.md"Toolchain" says mypy may be a build directory's only CI checker (Name the Build Trait as a Deliverable in python-codestyle SKILL.md #3548).SKILL.mdgates an undeclared root only where the repository tracks a rootpyproject.toml, perWORKFLOW.mdD1.2 (State the Root Gating Condition in the python-codestyle Skill #3554).references/profiles.md"Adapt before propagating" calls the default bundle a toolchain, not a profile, and sets its axes per declared directory (Stop Calling the Toolchain Bundle a Profile in python-codestyle profiles.md #3550).spec/type-model.md"Profiles: build vs lint-only" says Python's profile belongs to each declared directory (Bring the Spec's Python Profile Text Onto the Per-Directory Rule #3552).spec/project-types.jsonpython.profileNotedrops "the repo's deliverable" and "embedded in a non-Python repo". It states the per-directory rule and the workspace exception (Bring the Spec's Python Profile Text Onto the Per-Directory Rule #3552). The rewritten sentences are split to 25 words or fewer.scripts/build_dist.py.Deferrals, filed
profiles.pythonvalue per repository, whichspec/validate.pyand the schema accept. This change's bounds covered only the spec's Python profile text.Verification
spec/validate.pypasses.tests/test_spec_validate.pyandtests/test_audit_helpers.pypass under unittest.scripts/build_dist.py --checkreports the distributions current.scripts/prose_lint.py --diff origin/developreports no violation, with--check sentence-lengthtoo.Closes on promotion: #3548, #3550, #3552, #3554
🤖 Generated with Claude Code