Skip to content

Package per-language codestyle sections as Skills - #680

Merged
ptr727 merged 2 commits into
developfrom
feature/agent-skills-phase5
Aug 13, 2026
Merged

Package per-language codestyle sections as Skills#680
ptr727 merged 2 commits into
developfrom
feature/agent-skills-phase5

Conversation

@ptr727

@ptr727 ptr727 commented Aug 13, 2026

Copy link
Copy Markdown
Owner

Phase 5 of the hub-docs-to-Skills conversion (Phase 0/1 shipped in #676, Phase 2 in #677, Phase 3 in #678, Phase 4 in #679).

What this adds

  • dotnet-codestyle (appliesTo csharp), python-codestyle (appliesTo python), and shell-codestyle (appliesTo *, since a shell script can appear in any repo), extracted from CODESTYLE.md's .NET, Python, and Shell sections respectively: build/analyzer requirements, language and naming conventions, logging and testing conventions, the Python build-versus-lint-only profile split and toolchain, and the shell set -Eeuo pipefail / pipefail-early-reader / shellcheck rules.
  • This is the first phase gating a skill by appliesTo rather than fleet-wide *, expressed through each skill's own trigger wording (file extensions and project shape) rather than a mechanical field, since SKILL.md frontmatter carries no such field.

What changed in existing files

  • CODESTYLE.md's .NET, Python, and Shell sections shrink to pointers, per this project's standing decision that a skill becomes the sole canonical content for its topic once one exists. No spec file or test references any subheading inside these three sections, so each collapses fully rather than keeping empty subheadings. Six now-orphaned link reference definitions (MD053) are removed with them.
  • CODESTYLE.md's and AGENTS.md's own descriptions of the file's structure are corrected to mention the pre-existing Shell section, which neither previously named.
  • .claude-plugin/fleet-skills/ regenerated via scripts/build_dist.py to carry the three new skills alongside the six from Phases 1-4.

Dropped

  • docker-codestyle (Phase 5b): a content-discovery pass found no dedicated Docker style section in CODESTYLE.md, only scattered linter-invocation mentions in OPERATIONS.md and release mechanics in GOVERNANCE.md, neither of which is Docker coding style. Not authored, per the plan's own don't-invent-content instruction.

Verification performed

  • scripts/prose_lint.py, CRLF byte-integrity (all touched/new files 100% CRLF), editorconfig-checker (docker), markdownlint-cli2 (docker, 72 files, 0 issues), spec/validate.py, scripts/test_prose_lint.py (223 tests), scripts/test_build_dist.py (19 tests), and scripts/test_skills_install.py all clean.
  • scripts/build_dist.py --check confirms the generated plugin is current relative to .agents/skills/.
  • Grepped scripts/test_*.py and spec/*.json for any coupling to the trimmed CODESTYLE.md subheadings before trimming: none found.

🤖 Generated with Claude Code

Phase 5 of the hub-docs-to-Skills conversion (Phase 0/1 shipped in #676,
Phase 2 in #677, Phase 3 in #678, Phase 4 in #679).

## What this adds

- dotnet-codestyle (appliesTo csharp), python-codestyle (appliesTo
  python), and shell-codestyle (appliesTo *, since a shell script can
  appear in any repo), extracted from CODESTYLE.md's .NET, Python, and
  Shell sections respectively: build/analyzer requirements, language and
  naming conventions, logging and testing conventions, the Python
  build-versus-lint-only profile split and toolchain, and the shell
  set -Eeuo pipefail / pipefail-early-reader / shellcheck rules.
- This is the first phase gating a skill by appliesTo rather than
  fleet-wide *, expressed through each skill's own trigger wording
  (file extensions and project shape) rather than a mechanical field,
  since SKILL.md frontmatter carries no such field.

## What changed in existing files

- CODESTYLE.md's .NET, Python, and Shell sections shrink to pointers,
  per this project's standing decision that a skill becomes the sole
  canonical content for its topic once one exists. No spec file or test
  references any subheading inside these three sections, so each
  collapses fully rather than keeping empty subheadings. Six now-orphaned
  link reference definitions (MD053) are removed with them.
- CODESTYLE.md's and AGENTS.md's own descriptions of the file's
  structure are corrected to mention the pre-existing Shell section,
  which neither previously named.
- .claude-plugin/fleet-skills/ regenerated via scripts/build_dist.py to
  carry the three new skills alongside the six from Phases 1-4.

## Dropped

- docker-codestyle (Phase 5b): a content-discovery pass found no
  dedicated Docker style section in CODESTYLE.md, only scattered
  linter-invocation mentions in OPERATIONS.md and release mechanics in
  GOVERNANCE.md, neither of which is Docker coding style. Not authored,
  per the plan's own don't-invent-content instruction.

## Verification performed

- scripts/prose_lint.py, CRLF byte-integrity (all touched/new files
  100% CRLF), editorconfig-checker (docker), markdownlint-cli2 (docker,
  72 files, 0 issues), spec/validate.py, scripts/test_prose_lint.py
  (223 tests), scripts/test_build_dist.py (19 tests), and
  scripts/test_skills_install.py all clean.
- scripts/build_dist.py --check confirms the generated plugin is
  current relative to .agents/skills/.
- Grepped scripts/test_*.py and spec/*.json for any coupling to the
  trimmed CODESTYLE.md subheadings before trimming: none found.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 13, 2026 16:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Phase 5 of the hub-docs-to-Skills conversion: extracts CODESTYLE.md’s per-language (.NET/Python/Shell) guidance into dedicated Skills, updates the hub docs to point at those Skills, and refreshes the generated Claude plugin distribution.

Changes:

  • Add three new Skills: dotnet-codestyle, python-codestyle, and shell-codestyle.
  • Collapse CODESTYLE.md’s .NET/Python/Shell sections into short scope summaries plus pointers to the new Skills.
  • Regenerate .claude-plugin/fleet-skills/ to include the new Skills and update the plugin manifest/digest.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
CODESTYLE.md Replaces the detailed .NET/Python/Shell sections with pointers to the corresponding Skills while keeping the General section intact.
AGENTS.md Updates the CODESTYLE.md structure description to include Shell and the new codestyle Skills.
.agents/skills/dotnet-codestyle/SKILL.md Adds the canonical .NET codestyle Skill content extracted from CODESTYLE.md.
.agents/skills/python-codestyle/SKILL.md Adds the canonical Python codestyle Skill content extracted from CODESTYLE.md.
.agents/skills/shell-codestyle/SKILL.md Adds the canonical Shell codestyle Skill content extracted from CODESTYLE.md.
.claude-plugin/fleet-skills/.claude-plugin/plugin.json Updates the generated plugin skill list to include the new codestyle Skills.
.claude-plugin/fleet-skills/.source-digest Updates the generated-source digest after regenerating the distribution.
.claude-plugin/fleet-skills/skills/dotnet-codestyle/SKILL.md Generated copy of the .NET codestyle Skill for Claude’s plugin format.
.claude-plugin/fleet-skills/skills/python-codestyle/SKILL.md Generated copy of the Python codestyle Skill for Claude’s plugin format.
.claude-plugin/fleet-skills/skills/shell-codestyle/SKILL.md Generated copy of the Shell codestyle Skill for Claude’s plugin format.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .claude-plugin/fleet-skills/.claude-plugin/plugin.json
Comment thread .agents/skills/dotnet-codestyle/SKILL.md Outdated
- scripts/build_dist.py's generated plugin.json description named only
  the Phase 1-4 skills (comment style, PR-review conduct, resync
  safety), stale now that Phase 5 adds per-language codestyle skills.
  Reworded to a scope description that does not need updating every
  phase, rather than re-enumerating the skill list again.
- dotnet-codestyle/SKILL.md's H1 read "Dotnet Codestyle"; CODESTYLE.md
  and the fleet's official-casing rule use ".NET", so the heading is
  now ".NET Codestyle".
- .claude-plugin/fleet-skills/ regenerated via scripts/build_dist.py.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 13, 2026 16:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated no new comments.

@ptr727
ptr727 merged commit 82a87d3 into develop Aug 13, 2026
7 checks passed
@ptr727
ptr727 deleted the feature/agent-skills-phase5 branch August 13, 2026 16:51
ptr727 added a commit that referenced this pull request Aug 13, 2026
… Skills (#681)

## Summary

Phase 6 of the hub-docs-to-Skills conversion project (see #676-#680 for
prior phases).

Adds three fleet-wide Claude Code / opencode / Codex Skills, all
`appliesTo: "*"`:

- **`git-commit-conventions`**, derived from `GOVERNANCE.md` "Git and
Commit Rules": staging vs.
committing, commit-means-commit-and-push, signing verified not
configured, identity verified
not set, never force push, careful history rewrites, no destructive git
commands.
- **`operational-vs-release-workflow`**, derived from `GOVERNANCE.md`
"Branching Model",
"Release Model", and "Operational Repositories". One skill serves both
workflow models: its
own trigger description reads the registry's `workflowModel` field per
repo rather than gating
by repo type. Two `references/` files hold the deep CI-wiring detail
(branch protection and
promotion mechanics; release build and publish mechanics) via
progressive disclosure.
- **`upstream-contribution-workflow`** (new content, not derived from
any `GOVERNANCE.md`
section): the maintainer's own third-party-contribution workflow, a
dirty work branch on his
own fork for the actual work and review iteration, squashed once clean
to a second branch that
carries only the intended minimal history, that clean branch opened as
the PR against the
upstream repo, reviewer feedback applied to the dirty branch first and
then re-squashed.
  Triggers independent of the target repo's own type or workflow model.

`GOVERNANCE.md`'s four source sections are trimmed to short pointers,
per the standing "skill
becomes sole canonical content" decision. Their `## ` headings stay in
place, since
`spec/files.json` carries all four at `verbatim` fidelity by heading
name, only the body content
under each shrank. Checked before trimming: no `scripts/test_*.py`
couples to any of the four
sections' content or subheadings (the Phase 3 gotcha).

`AGENTS.md`'s "Where the Rules Live" table gains "packaged as the `X`
Skill" annotations on the
four affected rows, and `upstream-contribution-workflow` is added to the
explanatory paragraph
below the table (new content goes there, not a new table row, per the
Phase 2/4 precedent, since
that table pairs a task with a real `GOVERNANCE.md` section name).

## Verification

- `python3 scripts/build_dist.py`: regenerated
`.claude-plugin/fleet-skills/` from 12 skills clean.
- `python3 scripts/test_build_dist.py`, `python3
scripts/test_skills_install.py`: pass.
- `python3 scripts/prose_lint.py . --diff HEAD`: 0 violations (after
fixing one `dupword` false
  positive caused by awkward phrasing).
- `python3 scripts/repo_gate.py --check eol`: 0 issues (also re-verified
by the pre-commit hook).
- `npx markdownlint-cli2` against every new/changed Markdown file: 0
issues.
- Verified no `scripts/test_*.py` couples to any of the four trimmed
`GOVERNANCE.md` sections'
  content before trimming.
- Verified CRLF preserved on every touched file after every edit
(byte-level check, not visual).

🤖 Generated with [Claude Code](https://claude.com/claude-code)
ptr727 added a commit that referenced this pull request Aug 15, 2026
…Python CI Gates (#718)

Thirty-one squashes, `56f4d7d..d54862a`. 115 files, +20436/-5298.

**Merge with a merge commit, never a squash, and never with
`--delete-branch`.** This pull request's head is `develop` itself.

## What lands

**Fleet Skills.** The `.agents/skills/` source tree, the generated
`.claude-plugin/` distribution, `scripts/build_dist.py` with its
`--check` gate, and `scripts/skills_install.py` with its host stamp
(#676). Packaged as skills on top of the scaffold: PR review conduct and
Copilot instructions upkeep (#677), comment and doc style (#678),
resync-a-repo and fleet-conformance-check (#679), the per-language
codestyles (#680), git commit conventions and operational vs release
workflow (#681), stand up a repo (#683), and repo-worktree (#717).
Coverage gaps closed in three passes (#690, #691, #692) plus the P4
sentence-length opt-in (#697).

**Host setup.** The Windows host-setup tooling and its PowerShell gate
(#674), the Windows bootstrap loader (#682), Docker install and upgrade
on Linux and Windows with a version floor (#701, #705), a `uv` floor in
`spec/host-tools.json` (#698), self-healing of a shadowing `uv`, `jq`,
or `git-restore-mtime` copy (#689), node's real winget package id
(#696), and a README for the Linux host-setup nuances (#710).

**Python and CI.** Python tooling in CI with the script tests moved to
`scripts/tests` (#704), `ruff format` adopted and gated (#709), and the
PSScriptAnalyzer claim conditioned on repos that carry `.ps1` files
(#686).

**Conduct rules.** Triage-order and scope guardrails in
pr-review-conduct (#684), `pr_review.py wait` requesting a review rather
than only polling for one (#685), a tech-agnostic signed-commit
verification (#708), execution rather than analogy to verify
platform-specific code (#715), and a unique worktree for every task
(#717).

**Docs.** The fleet map and gap register with peer messaging declared
(#687), mermaid flow diagrams in the kept-authority docs (#702), and the
map pointed at the shipped diagrams and current tooling (#703).

## Issues this promotion closes

Each landed on `develop` on its own pull request. The keyword fires only
on a merge into `main`, so it sits here rather than on the feature pull
requests.

Closes #700
Closes #707
Closes #711
Closes #712
Closes #714
Closes #688

#699 stays open on purpose: #717 shipped the layout convention and the
skill, and the physical migration of existing checkouts is still tracked
there.

## Review record

Every squash closed its own Copilot loop on its own pull request before
merging to `develop`. This promotion carries no new content of its own,
so its review is the merged tree as a whole.

## Consequence worth stating

The `GOVERNANCE.md` and `AGENTS.md` sections these squashes changed
become the canonical the moment this reaches `main`, and every carrying
repository reads as drifted from that point until it resyncs. That is
the ordinary consequence of a canonical moving rather than a defect. The
Skills installer added here is also how a machine picks the new skills
up, so a session that keeps restating a rule already packaged as a skill
is the signal to run it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants