Skip to content

Package Comment and Doc Style as a Skill - #678

Merged
ptr727 merged 5 commits into
developfrom
feature/agent-skills-phase3
Aug 13, 2026
Merged

Package Comment and Doc Style as a Skill#678
ptr727 merged 5 commits into
developfrom
feature/agent-skills-phase3

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Package Comment and Doc Style as a Skill

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

What this adds

  • comment-and-doc-style, extracted from CODESTYLE.md's General section
    (Tooling Names and Casing, Markdown and Spelling) plus GOVERNANCE.md's
    Documentation Style Conventions and Pull Request Title and Commit
    Message Conventions sections: naming tools in prose, Markdown linting
    and spelling, Markdown formatting, comment philosophy, the ASCII
    character-set tiers, line endings, the carried-file coordination
    reference ban, and PR title/commit message conventions.
  • Three references/ files for progressive disclosure: line-endings.md
    (the full CRLF/LF policy), carried-doc-references.md (the full
    coordination-reference rule and its two exceptions), and
    markdown-links.md (the full reference-style-link convention).

What changed in existing files

  • CODESTYLE.md's General section: Tooling Names and Casing and Markdown
    and Spelling shrink to pointers at the skill. Clean-Compile
    Verification and Analyzer Diagnostics and Suppressions are untouched,
    they are build-gate topics, not comment or doc style.
  • GOVERNANCE.md's Pull Request Title and Commit Message Conventions and
    Documentation Style Conventions sections shrink to pointers, per this
    project's standing decision that a skill becomes the sole canonical
    content for its topic once one exists. The Comments, Character Set,
    and Line Endings headings stay in place (spec/files.json and
    spec/project-types.json anchor to them by name), their content is now
    a one-line pointer each.
  • AGENTS.md's Where the Rules Live table routes both rows to the new
    skill.
  • .claude-plugin/fleet-skills/ regenerated via scripts/build_dist.py to
    carry the new skill alongside the three from Phases 1 and 2.

Verification performed

  • scripts/prose_lint.py, CRLF byte-integrity (all touched files remain
    100% CRLF), editorconfig-checker (docker), spec/validate.py,
    markdownlint-cli2, scripts/test_build_dist.py +
    scripts/test_skills_install.py (46 tests) all clean.
  • scripts/build_dist.py --check confirms the generated plugin is
    current relative to .agents/skills/.

🤖 Generated with Claude Code
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

Phase 3 of the hub-docs-to-Skills conversion (Phase 0/1 shipped in #676,
Phase 2 in #677).
## What this adds
- comment-and-doc-style, extracted from CODESTYLE.md's General section
(Tooling Names and Casing, Markdown and Spelling) plus GOVERNANCE.md's
Documentation Style Conventions and Pull Request Title and Commit
Message Conventions sections: naming tools in prose, Markdown linting
and spelling, Markdown formatting, comment philosophy, the ASCII
character-set tiers, line endings, the carried-file coordination
reference ban, and PR title/commit message conventions.
- Three references/ files for progressive disclosure: line-endings.md
(the full CRLF/LF policy), carried-doc-references.md (the full
coordination-reference rule and its two exceptions), and
markdown-links.md (the full reference-style-link convention).
## What changed in existing files
- CODESTYLE.md's General section: Tooling Names and Casing and Markdown
and Spelling shrink to pointers at the skill. Clean-Compile
Verification and Analyzer Diagnostics and Suppressions are untouched,
they are build-gate topics, not comment or doc style.
- GOVERNANCE.md's Pull Request Title and Commit Message Conventions and
Documentation Style Conventions sections shrink to pointers, per this
project's standing decision that a skill becomes the sole canonical
content for its topic once one exists. The Comments, Character Set,
and Line Endings headings stay in place (spec/files.json and
spec/project-types.json anchor to them by name), their content is now
a one-line pointer each.
- AGENTS.md's Where the Rules Live table routes both rows to the new
skill.
- .claude-plugin/fleet-skills/ regenerated via scripts/build_dist.py to
carry the new skill alongside the three from Phases 1 and 2.
## Verification performed
- scripts/prose_lint.py, CRLF byte-integrity (all touched files remain
100% CRLF), editorconfig-checker (docker), spec/validate.py,
markdownlint-cli2, scripts/test_build_dist.py +
scripts/test_skills_install.py (46 tests) all clean.
- scripts/build_dist.py --check confirms the generated plugin is
current relative to .agents/skills/.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
CopilotAI lite review requested due to automatic review settings August 13, 2026 14:09

CopilotAI 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

Packages the fleet’s comment/doc/prose conventions into a new comment-and-doc-style Skill, then updates hub documentation to point to that Skill as the canonical source and includes the Skill in the generated Claude plugin distribution.

Changes:

  • Add the new comment-and-doc-style Skill (plus three “references/” docs) under .agents/skills/ and in the generated .claude-plugin/fleet-skills/ distribution.
  • Replace the detailed prose in GOVERNANCE.md and parts of CODESTYLE.md with concise pointers to the Skill.
  • Update AGENTS.md routing and register the new skill in the Claude plugin manifest + digest.

Reviewed changes

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

Show a summary per file
FileDescription
GOVERNANCE.mdReplaces PR-title/doc-style rule text with pointers to the new Skill while keeping anchored headings.
CODESTYLE.mdShrinks general “Tooling Names and Casing” + “Markdown and Spelling” to point at the Skill.
AGENTS.mdRoutes “PR title/commit message” and “doc/comment style” rows to the new Skill.
.agents/skills/comment-and-doc-style/SKILL.mdAdds canonical Skill content for comment/doc/prose conventions.
.agents/skills/comment-and-doc-style/references/markdown-links.mdAdds reference-style-link deep-dive reference doc.
.agents/skills/comment-and-doc-style/references/line-endings.mdAdds line-ending policy deep-dive reference doc.
.agents/skills/comment-and-doc-style/references/carried-doc-references.mdAdds carried-doc “no coordination references” deep-dive reference doc.
.claude-plugin/fleet-skills/skills/comment-and-doc-style/SKILL.mdGenerated Skill copy for Claude plugin distribution.
.claude-plugin/fleet-skills/skills/comment-and-doc-style/references/markdown-links.mdGenerated reference doc copy for Claude plugin distribution.
.claude-plugin/fleet-skills/skills/comment-and-doc-style/references/line-endings.mdGenerated reference doc copy for Claude plugin distribution.
.claude-plugin/fleet-skills/skills/comment-and-doc-style/references/carried-doc-references.mdGenerated reference doc copy for Claude plugin distribution.
.claude-plugin/fleet-skills/.claude-plugin/plugin.jsonRegisters comment-and-doc-style in the plugin’s skills list.
.claude-plugin/fleet-skills/.source-digestUpdates the dist source digest to reflect the new Skill content.

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

Comment thread.agents/skills/comment-and-doc-style/references/line-endings.md Outdated
Both raised by the round 1 review of #678.
- references/line-endings.md carried an inline Markdown link to
.editorconfig, violating the skill's own reference-style-links rule
(Copilot finding, present in the hub copy and the generated dist
copy). Dropped the link, matching every other skill file's zero-link
precedent.
- scripts/test_prose_lint.py's TestGovernanceCoupling parses
GOVERNANCE.md's Character Set bullets by heading and cross-checks the
U+XXXX codepoints named there against prose_lint.py's TIER1/TIER2/
TIER3 tables, so the doc drives the code rather than a copy of the
doc drifting from it. Trimming GOVERNANCE.md's Character Set to a
pointer broke that parse (CI: "the Tier 1 bullet moved, so the parse
is blind"). Repointed the test at the skill, the section's new
canonical home, and restored the tier bullets there with their exact
codepoints (they had been condensed into a table that dropped the
U+XXXX notation the test keys on). Removed the now-unused GOVERNANCE
constant.
## Verification performed
scripts/test_prose_lint.py (223 tests), scripts/prose_lint.py,
editorconfig-checker (docker), markdownlint-cli2, spec/validate.py,
scripts/build_dist.py --check, scripts/test_build_dist.py (19 tests)
all clean. CRLF byte-integrity confirmed on every touched Markdown
file.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 13, 2026 14:18

CopilotAI 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 14 out of 14 changed files in this pull request and generated no new comments.

Suppressed comments (2)

scripts/test_prose_lint.py:1352

  • This docstring splits a sentence across lines ("That makes a" / "finding ..."), leaving a fragment line and violating the project’s one-sentence-per-line comment style. Reflow so each line is a complete sentence.
 correct-as-you-next-edit assumes someone able to edit the file, and a downstream repo cannot
edit a verbatim one, since its copy is byte-matched against the hub's. So the hub sweeps the
class and re-vendors. That makes a
finding in a verbatim file different in kind from the tree-wide backlog: it is not a
correction owed by whoever next edits the file, it is one no downstream repo can make at all.

scripts/test_prose_lint.py:136

  • The docstring sentence uses a comma splice (two independent clauses joined by a comma), which reads as a grammatical error. Split into two sentences (or add a conjunction) to keep the prose clear.

This issue also appears on line 1348 of the same file.

 The Character Set rule text lives in the comment-and-doc-style Skill, GOVERNANCE.md's own
section is a pointer at it, per the "skill becomes sole canonical content" decision. These are

Round 2 review of #678, both suppressed (no thread since the docstring
lines the prior fix touched carried no open thread of their own).
- TestGovernanceCoupling's docstring joined two independent clauses
with a bare comma (comma splice). Split into two sentences.
- TestCarriedContent's docstring left "That makes a" as an orphaned
two-word fragment line from an earlier edit. Rewrapped the paragraph
to natural line width, matching how the rest of the file wraps
docstring prose.
## Verification performed
scripts/test_prose_lint.py (223 tests), scripts/prose_lint.py,
editorconfig-checker (docker) all clean. LF byte-integrity confirmed
(this file is pinned LF in .gitattributes).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 13, 2026 14:24
@ptr727

Copy link
Copy Markdown
OwnerAuthor

Answering the 2 suppressed findings from round 2 (#678 (review), commit 9542bef):

scripts/test_prose_lint.py:1352
This docstring splits a sentence across lines ("That makes a" / "finding ..."), leaving a fragment line and violating the project's one-sentence-per-line comment style. Reflow so each line is a complete sentence.

Fixed in 23057d2: rewrapped the paragraph so no line ends on an orphaned fragment.

scripts/test_prose_lint.py:136
The docstring sentence uses a comma splice (two independent clauses joined by a comma), which reads as a grammatical error. Split into two sentences (or add a conjunction) to keep the prose clear.

Fixed in 23057d2: split into two sentences.

CopilotAI 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 14 out of 14 changed files in this pull request and generated no new comments.

Suppressed comments (3)

GOVERNANCE.md:148

  • This paragraph says the section "only points" to the skill, but the section also includes a summary of the contract in the preceding line. Rewording this avoids a self-contradiction and keeps the pointer text accurate.
This is packaged as the `comment-and-doc-style` Skill at `.agents/skills/comment-and-doc-style/SKILL.md` in the hub, not a repo-relative link since that path is hub-local and not carried into every fleet repo. Read the skill for the full rules, since this section only points to it now rather than carrying the contract text itself.

scripts/test_prose_lint.py:132

  • The test class name is now misleading: it no longer couples to GOVERNANCE.md (it parses the comment-and-doc-style Skill). Renaming the class will keep intent clear and make future greps/CI output easier to understand.
class TestGovernanceCoupling(unittest.TestCase):

GOVERNANCE.md:142

  • This paragraph says the section "only points" to the skill, but the preceding line still states the contract rules. Reword to avoid contradicting the section contents and reduce the risk of the summary drifting from the skill over time.

This issue also appears on line 148 of the same file.

This is packaged as the `comment-and-doc-style` Skill at `.agents/skills/comment-and-doc-style/SKILL.md` in the hub, not a repo-relative link since that path is hub-local and not carried into every fleet repo. Read the skill for the full format, rules, and examples, since this section only points to it now rather than carrying the contract text itself.

Round 3 review of #678.
- GOVERNANCE.md's three skill-pointer paragraphs (Pull Request Title
and Commit Message Conventions, Documentation Style Conventions, and
the pre-existing PR Review Etiquette from #677) each said the
section "only points to it now rather than carrying the contract
text itself" directly under a paragraph that does summarize the
contract, reading as a self-contradiction. Reworded all three the
same way: the paragraph above is a sketch, the skill carries the
full text. Swept the pre-existing PR Review Etiquette instance too,
not just the two new ones the review flagged, since it is the same
construction in the same file.
- Renamed TestGovernanceCoupling to
TestCommentAndDocStyleSkillCoupling in test_prose_lint.py, since the
prior commit repointed it at the Skill and the old name no longer
describes what it couples to.
## Verification performed
scripts/test_prose_lint.py (223 tests), scripts/prose_lint.py,
editorconfig-checker (docker), markdownlint-cli2, spec/validate.py all
clean. CRLF byte-integrity confirmed on GOVERNANCE.md.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 13, 2026 14:29
@ptr727

Copy link
Copy Markdown
OwnerAuthor

Answering the 3 suppressed findings from round 3 (#678 (review), commit 23057d2):

GOVERNANCE.md:148
This paragraph says the section "only points" to the skill, but the section also includes a summary of the contract in the preceding line. Rewording this avoids a self-contradiction and keeps the pointer text accurate.

Fixed in 83e510d: reworded to "the summary above sketches the contract, read the skill for the full rules" and swept the same construction elsewhere in the file (see below).

scripts/test_prose_lint.py:132
The test class name is now misleading: it no longer couples to GOVERNANCE.md (it parses the comment-and-doc-style Skill). Renaming the class will keep intent clear and make future greps/CI output easier to understand.

Fixed in 83e510d: renamed to TestCommentAndDocStyleSkillCoupling.

GOVERNANCE.md:142
This paragraph says the section "only points" to the skill, but the preceding line still states the contract rules. Reword to avoid contradicting the section contents and reduce the risk of the summary drifting from the skill over time.
This issue also appears on line 148 of the same file.

Fixed in 83e510d: same reword as above. Also swept and fixed the same pre-existing construction in the "PR Review Etiquette" section (merged in #677), since it is the identical pattern in the same file, not just the two instances flagged.

Also confirming, from round 2: the two prose findings on scripts/test_prose_lint.py (the fragment line at what was then line 1352, and the comma splice at what was then line 136) were fixed in 23057d2 and answered in #678 (comment), they are still showing as "earlier round, unanswered" in the status digest quoting stale pre-fix text, the fix and the answer both predate this round's review.

CopilotAI 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 14 out of 14 changed files in this pull request and generated no new comments.

Suppressed comments (2)

.agents/skills/comment-and-doc-style/SKILL.md:91

  • The comment guidance says governance lives in GOVERNANCE.md, but this PR moves the canonical comment/doc rules into the comment-and-doc-style Skill. To avoid the pointer going stale again (or reading as a contradiction inside the skill), rephrase this to refer to the canonical instruction set rather than a specific file.
- State only the non-obvious *why*, for the human reading *this* project's code now. No
cross-project references, no historic or design narrative, no rule citations (governance lives
in `GOVERNANCE.md`, not echoed inline).

.claude-plugin/fleet-skills/skills/comment-and-doc-style/SKILL.md:91

  • Same as the source skill: this sentence hard-codes GOVERNANCE.md as the sole governance location, but the PR makes the skill canonical for this topic. Rephrase to avoid a file-specific claim that will drift again.
- State only the non-obvious *why*, for the human reading *this* project's code now. No
cross-project references, no historic or design narrative, no rule citations (governance lives
in `GOVERNANCE.md`, not echoed inline).

Round 4 review of #678.
The skill's own Comments rule said "governance lives in GOVERNANCE.md,
not echoed inline", but this PR moves the canonical comment rules into
the skill itself, so the pointer named the file the skill just
superseded. Reworded to point at the fleet's instruction set rather
than a specific file, so it does not go stale the next time content
moves between files.
## Verification performed
scripts/test_prose_lint.py (223 tests), scripts/prose_lint.py,
editorconfig-checker (docker), markdownlint-cli2,
scripts/build_dist.py --check, scripts/test_build_dist.py (19 tests)
all clean. CRLF byte-integrity confirmed.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings August 13, 2026 15:21
@ptr727

Copy link
Copy Markdown
OwnerAuthor

Answering the 2 new suppressed findings from round 4 (#678 (review), commit 83e510d), plus confirming round 2/3's findings are all fixed and answered (the digest keeps re-quoting stale pre-fix text since none of these ever had a thread to resolve):

.agents/skills/comment-and-doc-style/SKILL.md:91 and .claude-plugin/fleet-skills/skills/comment-and-doc-style/SKILL.md:91
The comment guidance says governance lives in GOVERNANCE.md, but this PR moves the canonical comment/doc rules into the comment-and-doc-style Skill. Rephrase to refer to the canonical instruction set rather than a specific file.

Fixed in 7496b7b: reworded to "governance lives in the fleet's own instruction set, not echoed inline", so it does not name a specific file that can go stale the next time content moves.

Round 2 findings (scripts/test_prose_lint.py:1352 fragment line, :136 comma splice) were fixed in 23057d2, answered in #issuecomment-5281713654.
Round 3 findings (GOVERNANCE.md:142/148 pointer self-contradiction, test class rename) were fixed in 83e510d, answered in #issuecomment-5281786109.

CopilotAI 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 14 out of 14 changed files in this pull request and generated no new comments.

@ptr727
ptr727 merged commit da1ac3d into developAug 13, 2026
7 checks passed
@ptr727
ptr727 deleted the feature/agent-skills-phase3 branch August 13, 2026 15:30
ptr727 added a commit that referenced this pull request Aug 13, 2026
Phase 4 of the hub-docs-to-Skills conversion (see #676, #677, #678 for
Phases 0-3).
## What this adds
- **`resync-a-repo`** (hub-only): packages `RESYNC.md` section 3's apply
order for a hub-context session driving a named repo's resync. The
`carried-instruction-file-guard` skill's distinctive-phrase probe is now
a mandatory, non-skippable step before any verbatim re-vendor of an
instruction file, the direct structural fix for the AGENTS.md-overwrite
bug class rather than a rewording of existing advisory language.
- **`fleet-conformance-check`** (fleet-wide, `appliesTo: "*"`, new
content): the downstream-facing counterpart. Runs from inside a repo's
own session with no hub checkout and no named target other than the repo
itself. Confirms the local Skills install is current, confirms
`AGENTS.md`'s pointer text matches the hub, self-applies what is safe
(re-running the installer), and escalates anything ambiguous (a genuine
local addition, a settings/workflow drift) to a hub-driven
`resync-a-repo` run rather than touching it.
## Supporting changes
- `RESYNC.md` section 3 step 1 gains the mandatory probe requirement and
the `AGENTS.md` skill-dependency pointer as one more verbatim-carried
unit in the same step.
- `AGENTS.md`'s "Where the Rules Live" table and pointer paragraph route
to both new skills.
- `.claude-plugin/fleet-skills/` rebuilt via `build_dist.py` (now 6
skills).
## Verification
- `python3 -m unittest discover -s scripts -p "test_*.py"`: 628 tests,
all pass.
- `python3 scripts/prose_lint.py` on all touched files: clean.
- `python3 spec/validate.py`: clean.
- `docker run ... mstruebing/editorconfig-checker:latest`: clean.
- CRLF preserved on all touched Markdown.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
ptr727 added a commit that referenced this pull request Aug 13, 2026
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>
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#700Closes#707Closes#711Closes#712Closes#714Closes#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 freeto 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

@ptr727