From 4fe74de3a6004ac2f86d59ac2a797091555b2e45 Mon Sep 17 00:00:00 2001 From: Pieter Viljoen Date: Tue, 1 Sep 2026 21:53:49 -0700 Subject: [PATCH 1/5] Send a Repo Preferring pre-commit to pre-commit, Not to Husky.Net The .NET skill's Tooling bullet said a repo 'preferring that runner' takes the pre-commit shape, where the only runner the sentence names is Husky.Net, so it read as sending a Husky.Net-preferring repo to the other one. It names the framework it means. The deploy stub's comment grew to four lines. Saying the required crossing secret already implies the task declares others, so the line spelling out the optional pair comes back out and each of the three lines carries one sentence. --- .agents/skills/dotnet-codestyle/SKILL.md | 4 ++-- .claude-plugin/fleet-skills/.source-digest | 2 +- .claude-plugin/fleet-skills/skills/dotnet-codestyle/SKILL.md | 4 ++-- .github/skills/dotnet-codestyle/SKILL.md | 4 ++-- spec/audit.py | 1 - 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.agents/skills/dotnet-codestyle/SKILL.md b/.agents/skills/dotnet-codestyle/SKILL.md index db41583e..3f77eed2 100644 --- a/.agents/skills/dotnet-codestyle/SKILL.md +++ b/.agents/skills/dotnet-codestyle/SKILL.md @@ -106,8 +106,8 @@ updates, dependency upgrades, benchmarks) on top: - CI is the authoritative lint backstop. A repo already keeping a .NET tool manifest declaring Husky.Net wires its local pre-commit hook from `catalog/snippets/husky/` in the hub, hub-local and not carried into every fleet repo, covering the shared doc gates alongside the language - checks. A repo keeping none, or one preferring that runner, takes `catalog/snippets/pre-commit/` - instead. + checks. A repo keeping none, or one preferring the `pre-commit` framework, takes + `catalog/snippets/pre-commit/` instead. - **Required VS Code extensions**: CSharpier, markdownlint, CSpell. Use the workspace settings without overrides. diff --git a/.claude-plugin/fleet-skills/.source-digest b/.claude-plugin/fleet-skills/.source-digest index c2108a0c..b3c56dc8 100644 --- a/.claude-plugin/fleet-skills/.source-digest +++ b/.claude-plugin/fleet-skills/.source-digest @@ -1 +1 @@ -c7efdbdc80111e8f +9727b2b5b117ad6c diff --git a/.claude-plugin/fleet-skills/skills/dotnet-codestyle/SKILL.md b/.claude-plugin/fleet-skills/skills/dotnet-codestyle/SKILL.md index db41583e..3f77eed2 100644 --- a/.claude-plugin/fleet-skills/skills/dotnet-codestyle/SKILL.md +++ b/.claude-plugin/fleet-skills/skills/dotnet-codestyle/SKILL.md @@ -106,8 +106,8 @@ updates, dependency upgrades, benchmarks) on top: - CI is the authoritative lint backstop. A repo already keeping a .NET tool manifest declaring Husky.Net wires its local pre-commit hook from `catalog/snippets/husky/` in the hub, hub-local and not carried into every fleet repo, covering the shared doc gates alongside the language - checks. A repo keeping none, or one preferring that runner, takes `catalog/snippets/pre-commit/` - instead. + checks. A repo keeping none, or one preferring the `pre-commit` framework, takes + `catalog/snippets/pre-commit/` instead. - **Required VS Code extensions**: CSharpier, markdownlint, CSpell. Use the workspace settings without overrides. diff --git a/.github/skills/dotnet-codestyle/SKILL.md b/.github/skills/dotnet-codestyle/SKILL.md index db41583e..3f77eed2 100644 --- a/.github/skills/dotnet-codestyle/SKILL.md +++ b/.github/skills/dotnet-codestyle/SKILL.md @@ -106,8 +106,8 @@ updates, dependency upgrades, benchmarks) on top: - CI is the authoritative lint backstop. A repo already keeping a .NET tool manifest declaring Husky.Net wires its local pre-commit hook from `catalog/snippets/husky/` in the hub, hub-local and not carried into every fleet repo, covering the shared doc gates alongside the language - checks. A repo keeping none, or one preferring that runner, takes `catalog/snippets/pre-commit/` - instead. + checks. A repo keeping none, or one preferring the `pre-commit` framework, takes + `catalog/snippets/pre-commit/` instead. - **Required VS Code extensions**: CSharpier, markdownlint, CSpell. Use the workspace settings without overrides. diff --git a/spec/audit.py b/spec/audit.py index 448bf748..e715f47b 100755 --- a/spec/audit.py +++ b/spec/audit.py @@ -2982,7 +2982,6 @@ def _selftest(): ), ] # The deploy-site.yml caller stub once deploy-site-task.yml is hub-hosted: no secrets: inherit, the required crossing secret named instead. - # The task also declares an optional SITE_AUTH_TOKEN_ID/SITE_AUTH_TOKEN pair, which a caller maps only where its live check needs one. # inherit is documented for same-org or enterprise callers, so the fleet does not use it across repositories. # No job-level environment: on the caller, unsupported on a job with uses: (ptr727/ProjectTemplate#942). deploy_stub = ( From f2bf10dd9368644b86b08cbd33d9456f50035b9f Mon Sep 17 00:00:00 2001 From: Pieter Viljoen Date: Tue, 1 Sep 2026 21:56:39 -0700 Subject: [PATCH 2/5] Attach the Doc Gates to Both Hook Shapes and Route the Per-Clone Steps The bullet hung 'covering the shared doc gates' on the Husky.Net branch alone and gave the pre-commit branch as a bare alternative, so a repo taking that shape could read the doc gates as a Husky.Net property and wire only its language checks, which is a parity.hooks finding. Both shapes carry them. Following the bullet literally also produced a hook that fails on its first commit, since it named neither the per-clone install steps nor the hub-fetch-run copy and routed nowhere, where the Build requirements section above does route. --- .agents/skills/dotnet-codestyle/SKILL.md | 7 ++++--- .claude-plugin/fleet-skills/.source-digest | 2 +- .../fleet-skills/skills/dotnet-codestyle/SKILL.md | 7 ++++--- .github/skills/dotnet-codestyle/SKILL.md | 7 ++++--- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.agents/skills/dotnet-codestyle/SKILL.md b/.agents/skills/dotnet-codestyle/SKILL.md index 3f77eed2..09d4a8dc 100644 --- a/.agents/skills/dotnet-codestyle/SKILL.md +++ b/.agents/skills/dotnet-codestyle/SKILL.md @@ -105,9 +105,10 @@ updates, dependency upgrades, benchmarks) on top: version management. - CI is the authoritative lint backstop. A repo already keeping a .NET tool manifest declaring Husky.Net wires its local pre-commit hook from `catalog/snippets/husky/` in the hub, hub-local - and not carried into every fleet repo, covering the shared doc gates alongside the language - checks. A repo keeping none, or one preferring the `pre-commit` framework, takes - `catalog/snippets/pre-commit/` instead. + and not carried into every fleet repo. A repo keeping none, or one preferring the `pre-commit` + framework, takes `catalog/snippets/pre-commit/` instead. Either shape covers the shared doc + gates alongside the language checks. Each snippet's own README names the per-clone steps and + the second file to copy alongside it, which the Build requirements section above routes to. - **Required VS Code extensions**: CSharpier, markdownlint, CSpell. Use the workspace settings without overrides. diff --git a/.claude-plugin/fleet-skills/.source-digest b/.claude-plugin/fleet-skills/.source-digest index b3c56dc8..557a6308 100644 --- a/.claude-plugin/fleet-skills/.source-digest +++ b/.claude-plugin/fleet-skills/.source-digest @@ -1 +1 @@ -9727b2b5b117ad6c +3ede520524912d34 diff --git a/.claude-plugin/fleet-skills/skills/dotnet-codestyle/SKILL.md b/.claude-plugin/fleet-skills/skills/dotnet-codestyle/SKILL.md index 3f77eed2..09d4a8dc 100644 --- a/.claude-plugin/fleet-skills/skills/dotnet-codestyle/SKILL.md +++ b/.claude-plugin/fleet-skills/skills/dotnet-codestyle/SKILL.md @@ -105,9 +105,10 @@ updates, dependency upgrades, benchmarks) on top: version management. - CI is the authoritative lint backstop. A repo already keeping a .NET tool manifest declaring Husky.Net wires its local pre-commit hook from `catalog/snippets/husky/` in the hub, hub-local - and not carried into every fleet repo, covering the shared doc gates alongside the language - checks. A repo keeping none, or one preferring the `pre-commit` framework, takes - `catalog/snippets/pre-commit/` instead. + and not carried into every fleet repo. A repo keeping none, or one preferring the `pre-commit` + framework, takes `catalog/snippets/pre-commit/` instead. Either shape covers the shared doc + gates alongside the language checks. Each snippet's own README names the per-clone steps and + the second file to copy alongside it, which the Build requirements section above routes to. - **Required VS Code extensions**: CSharpier, markdownlint, CSpell. Use the workspace settings without overrides. diff --git a/.github/skills/dotnet-codestyle/SKILL.md b/.github/skills/dotnet-codestyle/SKILL.md index 3f77eed2..09d4a8dc 100644 --- a/.github/skills/dotnet-codestyle/SKILL.md +++ b/.github/skills/dotnet-codestyle/SKILL.md @@ -105,9 +105,10 @@ updates, dependency upgrades, benchmarks) on top: version management. - CI is the authoritative lint backstop. A repo already keeping a .NET tool manifest declaring Husky.Net wires its local pre-commit hook from `catalog/snippets/husky/` in the hub, hub-local - and not carried into every fleet repo, covering the shared doc gates alongside the language - checks. A repo keeping none, or one preferring the `pre-commit` framework, takes - `catalog/snippets/pre-commit/` instead. + and not carried into every fleet repo. A repo keeping none, or one preferring the `pre-commit` + framework, takes `catalog/snippets/pre-commit/` instead. Either shape covers the shared doc + gates alongside the language checks. Each snippet's own README names the per-clone steps and + the second file to copy alongside it, which the Build requirements section above routes to. - **Required VS Code extensions**: CSharpier, markdownlint, CSpell. Use the workspace settings without overrides. From 2aaadcc1233d5c256fa8e70c705b770e34223dac Mon Sep 17 00:00:00 2001 From: Pieter Viljoen Date: Tue, 1 Sep 2026 21:56:48 -0700 Subject: [PATCH 3/5] Record the Canonical Review Ledger for the Tooling Bullet --- reports/canonical-review.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/reports/canonical-review.json b/reports/canonical-review.json index 68d04040..1f7a1392 100644 --- a/reports/canonical-review.json +++ b/reports/canonical-review.json @@ -43,11 +43,11 @@ }, { "unit": ".agents/skills/dotnet-codestyle/SKILL.md > Tooling and editor", - "digest": "sha256:bee41f58a11d3ee23789d5839a26798dba19c89d1e500ec468c918f55a41cf40", + "digest": "sha256:7a958f35e8f90f14c08060b35ad883a971f6f67465830f9f8345c712d635cfc5", "reviewer": "agent-skill", - "findings": 1, - "hubCommit": "a2c9dab3bfde574d179b0765f9bb50f413ce7a80", - "stamp": "2026-09-02T03:33:05Z" + "findings": 2, + "hubCommit": "f2bf10dd9368644b86b08cbd33d9456f50035b9f", + "stamp": "2026-09-02T04:56:47Z" }, { "unit": ".agents/skills/drive-pr/SKILL.md > Disposing of Every Finding", From 68be56e977269486eeeca14bdc4982a0adbdb6b3 Mon Sep 17 00:00:00 2001 From: Pieter Viljoen Date: Wed, 2 Sep 2026 06:41:32 -0700 Subject: [PATCH 4/5] End the Routing Sentence Where It Stops Being True The trailing clause claimed the Build requirements section routes to the snippet READMEs. It routes to GOVERNANCE.md's hub-only linters section instead, so the clause was false as well as reading as a dangling reference. --- .agents/skills/dotnet-codestyle/SKILL.md | 2 +- .claude-plugin/fleet-skills/.source-digest | 2 +- .claude-plugin/fleet-skills/skills/dotnet-codestyle/SKILL.md | 2 +- .github/skills/dotnet-codestyle/SKILL.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.agents/skills/dotnet-codestyle/SKILL.md b/.agents/skills/dotnet-codestyle/SKILL.md index 09d4a8dc..a6a32c03 100644 --- a/.agents/skills/dotnet-codestyle/SKILL.md +++ b/.agents/skills/dotnet-codestyle/SKILL.md @@ -108,7 +108,7 @@ updates, dependency upgrades, benchmarks) on top: and not carried into every fleet repo. A repo keeping none, or one preferring the `pre-commit` framework, takes `catalog/snippets/pre-commit/` instead. Either shape covers the shared doc gates alongside the language checks. Each snippet's own README names the per-clone steps and - the second file to copy alongside it, which the Build requirements section above routes to. + the second file to copy alongside it. - **Required VS Code extensions**: CSharpier, markdownlint, CSpell. Use the workspace settings without overrides. diff --git a/.claude-plugin/fleet-skills/.source-digest b/.claude-plugin/fleet-skills/.source-digest index 557a6308..4e1b6d57 100644 --- a/.claude-plugin/fleet-skills/.source-digest +++ b/.claude-plugin/fleet-skills/.source-digest @@ -1 +1 @@ -3ede520524912d34 +a7bfc794d16c14d0 diff --git a/.claude-plugin/fleet-skills/skills/dotnet-codestyle/SKILL.md b/.claude-plugin/fleet-skills/skills/dotnet-codestyle/SKILL.md index 09d4a8dc..a6a32c03 100644 --- a/.claude-plugin/fleet-skills/skills/dotnet-codestyle/SKILL.md +++ b/.claude-plugin/fleet-skills/skills/dotnet-codestyle/SKILL.md @@ -108,7 +108,7 @@ updates, dependency upgrades, benchmarks) on top: and not carried into every fleet repo. A repo keeping none, or one preferring the `pre-commit` framework, takes `catalog/snippets/pre-commit/` instead. Either shape covers the shared doc gates alongside the language checks. Each snippet's own README names the per-clone steps and - the second file to copy alongside it, which the Build requirements section above routes to. + the second file to copy alongside it. - **Required VS Code extensions**: CSharpier, markdownlint, CSpell. Use the workspace settings without overrides. diff --git a/.github/skills/dotnet-codestyle/SKILL.md b/.github/skills/dotnet-codestyle/SKILL.md index 09d4a8dc..a6a32c03 100644 --- a/.github/skills/dotnet-codestyle/SKILL.md +++ b/.github/skills/dotnet-codestyle/SKILL.md @@ -108,7 +108,7 @@ updates, dependency upgrades, benchmarks) on top: and not carried into every fleet repo. A repo keeping none, or one preferring the `pre-commit` framework, takes `catalog/snippets/pre-commit/` instead. Either shape covers the shared doc gates alongside the language checks. Each snippet's own README names the per-clone steps and - the second file to copy alongside it, which the Build requirements section above routes to. + the second file to copy alongside it. - **Required VS Code extensions**: CSharpier, markdownlint, CSpell. Use the workspace settings without overrides. From 39e4f97b746a2d626204dbe2a718f35d9da6b11b Mon Sep 17 00:00:00 2001 From: Pieter Viljoen Date: Wed, 2 Sep 2026 06:41:41 -0700 Subject: [PATCH 5/5] Record the Canonical Review Ledger for the Routing Clause Fix --- reports/canonical-review.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/reports/canonical-review.json b/reports/canonical-review.json index 1f7a1392..204cabd2 100644 --- a/reports/canonical-review.json +++ b/reports/canonical-review.json @@ -43,11 +43,11 @@ }, { "unit": ".agents/skills/dotnet-codestyle/SKILL.md > Tooling and editor", - "digest": "sha256:7a958f35e8f90f14c08060b35ad883a971f6f67465830f9f8345c712d635cfc5", + "digest": "sha256:adaa0bb212c931d838d35dc9777b8ac5605ff46ccffc4448f227c78793085a57", "reviewer": "agent-skill", - "findings": 2, - "hubCommit": "f2bf10dd9368644b86b08cbd33d9456f50035b9f", - "stamp": "2026-09-02T04:56:47Z" + "findings": 1, + "hubCommit": "68be56e977269486eeeca14bdc4982a0adbdb6b3", + "stamp": "2026-09-02T13:41:40Z" }, { "unit": ".agents/skills/drive-pr/SKILL.md > Disposing of Every Finding",