Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
4d5accf
Settle Three Carried Sentences Whose Hub Sources Disagreed
ptr727 Sep 2, 2026
19e9f5b
Answer Seven Review Findings Against the Settled Wording
ptr727 Sep 2, 2026
1d50602
Sweep the Prose That Still Asserted the Language-Scoped Hook Rule
ptr727 Sep 2, 2026
01475e0
Sweep the Carried Copies and Correct the Deploy-Site Justification
ptr727 Sep 2, 2026
6b31b27
Name Both Hook Shapes and Both Crossing Secrets Without a Dangling Re…
ptr727 Sep 2, 2026
b2601b0
Record the Canonical Review Ledger for This Branch's Changed Units
ptr727 Sep 2, 2026
d4cb996
Keep the Third Hook Shape the Two Snippets Do Not Cover
ptr727 Sep 2, 2026
6877a86
Record the Canonical Review Ledger for the Third-Hook-Shape Round
ptr727 Sep 2, 2026
52eafe0
Put the Third Hook Shape at the Path the Audit Actually Reads
ptr727 Sep 2, 2026
09d33a3
Say Which Fidelity Tiers the Audit Detects, and Name Both Hook Paths
ptr727 Sep 2, 2026
c6fd0b6
Drop a Provenance Qualifier and Name the Stale Verdict Too
ptr727 Sep 2, 2026
4049af1
Record the Canonical Review Ledger for the Final Round
ptr727 Sep 2, 2026
926154f
Select the Husky Snippet by the Tool Manifest It Actually Needs
ptr727 Sep 2, 2026
bb29973
Propagate the Manifest Discriminator to Every Surface That Still Name…
ptr727 Sep 2, 2026
112ffd8
Point Every Single-Unit Reader at the Per-Clone Enablement Steps
ptr727 Sep 2, 2026
9bdecbb
Record the Canonical Review Ledger for the Review-Response Rounds
ptr727 Sep 2, 2026
87aed64
Separate a Structural Verbatim-Tree Failure and a Deleted Presence Unit
ptr727 Sep 2, 2026
355606a
Count the Third Advisory and Unpick the Garbled Sentence
ptr727 Sep 2, 2026
9189ab4
Give the Reason a Local Patch Is Wrong Instead of Enumerating the Audit
ptr727 Sep 2, 2026
f0ff674
Reduce the Copilot Guidance Change to Deleting the False Qualifier
ptr727 Sep 2, 2026
81da922
Record the Canonical Review Ledger for the Copilot Guidance Reduction
ptr727 Sep 2, 2026
211f8c1
Record That the pre-commit Runner Judges the Staged State, Not the Tree
ptr727 Sep 2, 2026
38c408c
Name the Alternative Runner and Keep the Two Selection Reasons Coordi…
ptr727 Sep 2, 2026
a2c9dab
State the Selection Condition Instead of Hedging It
ptr727 Sep 2, 2026
863320e
Record the Canonical Review Ledger for the Skill Selection Rounds
ptr727 Sep 2, 2026
d0e2b62
Reflow the pre-commit Snippet's Opening Paragraph
ptr727 Sep 2, 2026
082fcbb
Say the Required Crossing Secret Rather Than the One Crossing Secret
ptr727 Sep 2, 2026
b3c0c0c
Scope the Manifest Condition to One Declaring Husky.Net
ptr727 Sep 2, 2026
5eb1454
Drop the .NET Example the Sharpened Manifest Condition Falsifies
ptr727 Sep 2, 2026
39fb83f
Record the Canonical Review Ledger for the Manifest Scoping Round
ptr727 Sep 2, 2026
aeaccc7
Name the Normalization Rather Than Point Above at It
ptr727 Sep 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .agents/skills/agent-conduct/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Claims about a pull request being reviewed, clean, or mergeable are owned by the
## When a Failure Surfaces a Lesson

- **Durable knowledge lands in the committed docs, not in agent memory**, as part of the change that surfaced it, per `GOVERNANCE.md` "Durable Knowledge and Self-Improvement". Memory does not survive a new session or machine, so it holds only environment nuance and in-flight state.
- **Where the governing doc is carried from the hub, file the finding against `ptr727/ProjectTemplate`** rather than only patching it locally. A local fix leaves every sibling repo with the same trap. Search open and closed issues first, then update the matching issue or file a new one.
- **Where the governing doc is carried from the hub, file the finding against `ptr727/ProjectTemplate`.** Patching the local copy leaves every sibling repo with the same trap. Search open and closed issues first, then update the matching issue or file a new one.
Comment thread
qodo-code-review[bot] marked this conversation as resolved.
- **A review flags an instance, so fix the class**: sweep for the siblings before replying, because reviewers sample rather than enumerate.
- **A rule that keeps needing restating** is usually a stale or missing skills install, so run `python3 scripts/skills_install.py --report` from a hub checkout (the `fleet-conformance-check` skill) before concluding the rule does not exist.

Expand Down
20 changes: 14 additions & 6 deletions .agents/skills/dotnet-codestyle/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,14 @@ All builds must complete without warnings, enforced three ways:
surfaced as a warning fails the build and must be fixed or deliberately suppressed at the
narrowest scope that fits (see Analyzer suppressions below), never left to accumulate.
- **CI lint backstop.** CI runs the clean-compile checks on every PR as the authoritative gate.
The .NET mechanism for a local hook is Husky.Net, wired from the canonical
`catalog/snippets/husky/` config in the hub, hub-local and not carried into every fleet repo.
Husky.Net is wired from the canonical `catalog/snippets/husky/` config in the hub, hub-local
and not carried into every fleet repo. Its hook needs a .NET tool manifest declaring
Husky.Net, which the snippet does not ship. A repo keeping no such manifest takes the other
canonical shape, `catalog/snippets/pre-commit/`, and so does a repo that simply prefers the
`pre-commit` framework. Each shape carries whichever language checks its own repo keeps. A repo may also wire an equivalent hook of its own at `.husky/pre-commit`,
enabled with `core.hooksPath` and sourcing nothing, since the husky snippet's own hook sources
a file only `dotnet husky install` generates. That path and `.pre-commit-config.yaml` are the
two the audit reads.
GOVERNANCE.md's hub-only "Running the Linters Locally (Known-Working Invocations)" section
carries the obligation itself, what the hook must cover, its audit treatment, and the
per-clone enablement steps.
Expand Down Expand Up @@ -81,7 +87,7 @@ in place.
### Build tasks

Run these from VS Code's task runner (Terminal -> Run Task) or an agent's task-running tool. The
three clean-compile tasks are carried verbatim, and a repo adds its own convenience tasks (tool
three clean-compile tasks are carried unchanged, and a repo adds its own convenience tasks (tool
updates, dependency upgrades, benchmarks) on top:

- `.NET Build`: build with diagnostic verbosity *(clean-compile)*
Expand All @@ -97,9 +103,11 @@ updates, dependency upgrades, benchmarks) on top:
`dotnet format style --verify-no-changes --severity=info --verbosity=detailed`.
- **`dotnet-outdated-tool`** checks for dependency updates, and Nerdbank.GitVersioning owns
version management.
- CI is the authoritative lint backstop. The .NET mechanism for a local pre-commit hook is
Husky.Net, wired from `catalog/snippets/husky/` in the hub, hub-local and not carried into every
fleet repo, and covering the shared doc gates alongside the language checks.
- 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.
- **Required VS Code extensions**: CSharpier, markdownlint, CSpell. Use the workspace settings
without overrides.

Expand Down
12 changes: 9 additions & 3 deletions .agents/skills/python-codestyle/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,15 @@ those. These are documented commands, and the hub's `vscode-tasks-python.json` s
VS Code tasks mirror that the fleet baseline expects. Every command-executing task in it is
`type: process`, and every aggregator is `dependsOn`-only. Neither chains with `&&`, so the mirror
runs the same on any task shell. CI runs the same clean-compile commands as the authoritative
backstop. The Python mechanism for a local hook is the `pre-commit` framework, wired from the
canonical `catalog/snippets/pre-commit/` directory, hub-local and not carried into every fleet
repo. That directory's own README names the second file to copy alongside the config.
backstop. A repo that keeps no .NET tool manifest declaring Husky.Net, or one that prefers the
`pre-commit` framework, wires its local hook from the canonical `catalog/snippets/pre-commit/` directory,
hub-local and not carried into every fleet repo. Any repo may instead wire an equivalent hook of
its own at `.husky/pre-commit`, enabled with `core.hooksPath` and sourcing nothing. That path and
`.pre-commit-config.yaml` are the two the audit reads. The runner is bounded by the toolchain the
repo already keeps rather than by the languages the hook checks, so a repo keeping a Husky.Net
manifest may run these same Python checks from the `catalog/snippets/husky/` shape instead. Each
shape carries whichever language checks its own repo keeps. The `pre-commit` directory's own
README names the second file to copy alongside the config.
GOVERNANCE.md's hub-only "Running the Linters Locally (Known-Working Invocations)" section carries
the obligation itself, what the hook must cover, its audit treatment, and the per-clone enablement
steps.
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/fleet-skills/.source-digest
Original file line number Diff line number Diff line change
@@ -1 +1 @@
fe834763b58313f7
c7efdbdc80111e8f
2 changes: 1 addition & 1 deletion .claude-plugin/fleet-skills/skills/agent-conduct/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Claims about a pull request being reviewed, clean, or mergeable are owned by the
## When a Failure Surfaces a Lesson

- **Durable knowledge lands in the committed docs, not in agent memory**, as part of the change that surfaced it, per `GOVERNANCE.md` "Durable Knowledge and Self-Improvement". Memory does not survive a new session or machine, so it holds only environment nuance and in-flight state.
- **Where the governing doc is carried from the hub, file the finding against `ptr727/ProjectTemplate`** rather than only patching it locally. A local fix leaves every sibling repo with the same trap. Search open and closed issues first, then update the matching issue or file a new one.
- **Where the governing doc is carried from the hub, file the finding against `ptr727/ProjectTemplate`.** Patching the local copy leaves every sibling repo with the same trap. Search open and closed issues first, then update the matching issue or file a new one.
- **A review flags an instance, so fix the class**: sweep for the siblings before replying, because reviewers sample rather than enumerate.
- **A rule that keeps needing restating** is usually a stale or missing skills install, so run `python3 scripts/skills_install.py --report` from a hub checkout (the `fleet-conformance-check` skill) before concluding the rule does not exist.

Expand Down
20 changes: 14 additions & 6 deletions .claude-plugin/fleet-skills/skills/dotnet-codestyle/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,14 @@ All builds must complete without warnings, enforced three ways:
surfaced as a warning fails the build and must be fixed or deliberately suppressed at the
narrowest scope that fits (see Analyzer suppressions below), never left to accumulate.
- **CI lint backstop.** CI runs the clean-compile checks on every PR as the authoritative gate.
The .NET mechanism for a local hook is Husky.Net, wired from the canonical
`catalog/snippets/husky/` config in the hub, hub-local and not carried into every fleet repo.
Husky.Net is wired from the canonical `catalog/snippets/husky/` config in the hub, hub-local
and not carried into every fleet repo. Its hook needs a .NET tool manifest declaring
Husky.Net, which the snippet does not ship. A repo keeping no such manifest takes the other
canonical shape, `catalog/snippets/pre-commit/`, and so does a repo that simply prefers the
`pre-commit` framework. Each shape carries whichever language checks its own repo keeps. A repo may also wire an equivalent hook of its own at `.husky/pre-commit`,
enabled with `core.hooksPath` and sourcing nothing, since the husky snippet's own hook sources
a file only `dotnet husky install` generates. That path and `.pre-commit-config.yaml` are the
two the audit reads.
GOVERNANCE.md's hub-only "Running the Linters Locally (Known-Working Invocations)" section
carries the obligation itself, what the hook must cover, its audit treatment, and the
per-clone enablement steps.
Expand Down Expand Up @@ -81,7 +87,7 @@ in place.
### Build tasks

Run these from VS Code's task runner (Terminal -> Run Task) or an agent's task-running tool. The
three clean-compile tasks are carried verbatim, and a repo adds its own convenience tasks (tool
three clean-compile tasks are carried unchanged, and a repo adds its own convenience tasks (tool
updates, dependency upgrades, benchmarks) on top:

- `.NET Build`: build with diagnostic verbosity *(clean-compile)*
Expand All @@ -97,9 +103,11 @@ updates, dependency upgrades, benchmarks) on top:
`dotnet format style --verify-no-changes --severity=info --verbosity=detailed`.
- **`dotnet-outdated-tool`** checks for dependency updates, and Nerdbank.GitVersioning owns
version management.
- CI is the authoritative lint backstop. The .NET mechanism for a local pre-commit hook is
Husky.Net, wired from `catalog/snippets/husky/` in the hub, hub-local and not carried into every
fleet repo, and covering the shared doc gates alongside the language checks.
- 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.
- **Required VS Code extensions**: CSharpier, markdownlint, CSpell. Use the workspace settings
without overrides.

Expand Down
12 changes: 9 additions & 3 deletions .claude-plugin/fleet-skills/skills/python-codestyle/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,15 @@ those. These are documented commands, and the hub's `vscode-tasks-python.json` s
VS Code tasks mirror that the fleet baseline expects. Every command-executing task in it is
`type: process`, and every aggregator is `dependsOn`-only. Neither chains with `&&`, so the mirror
runs the same on any task shell. CI runs the same clean-compile commands as the authoritative
backstop. The Python mechanism for a local hook is the `pre-commit` framework, wired from the
canonical `catalog/snippets/pre-commit/` directory, hub-local and not carried into every fleet
repo. That directory's own README names the second file to copy alongside the config.
backstop. A repo that keeps no .NET tool manifest declaring Husky.Net, or one that prefers the
`pre-commit` framework, wires its local hook from the canonical `catalog/snippets/pre-commit/` directory,
hub-local and not carried into every fleet repo. Any repo may instead wire an equivalent hook of
its own at `.husky/pre-commit`, enabled with `core.hooksPath` and sourcing nothing. That path and
`.pre-commit-config.yaml` are the two the audit reads. The runner is bounded by the toolchain the
repo already keeps rather than by the languages the hook checks, so a repo keeping a Husky.Net
manifest may run these same Python checks from the `catalog/snippets/husky/` shape instead. Each
shape carries whichever language checks its own repo keeps. The `pre-commit` directory's own
README names the second file to copy alongside the config.
GOVERNANCE.md's hub-only "Running the Linters Locally (Known-Working Invocations)" section carries
the obligation itself, what the hook must cover, its audit treatment, and the per-clone enablement
steps.
Expand Down
3 changes: 1 addition & 2 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@ put a release-bump magnitude in the title. The full contract is in

Follow the fidelity declared for the file. A byte-locked reference to shared infrastructure that
this repository does not carry is intentional, not a broken link. Raise substantive defects in
canonical content, but locate the fix at its canonical source instead of proposing a local edit
that its fidelity rejects.
canonical content, but locate the fix at its canonical source instead of proposing a local edit.

## GitHub Copilot Review Runbook

Expand Down
2 changes: 1 addition & 1 deletion .github/skills/agent-conduct/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Claims about a pull request being reviewed, clean, or mergeable are owned by the
## When a Failure Surfaces a Lesson

- **Durable knowledge lands in the committed docs, not in agent memory**, as part of the change that surfaced it, per `GOVERNANCE.md` "Durable Knowledge and Self-Improvement". Memory does not survive a new session or machine, so it holds only environment nuance and in-flight state.
- **Where the governing doc is carried from the hub, file the finding against `ptr727/ProjectTemplate`** rather than only patching it locally. A local fix leaves every sibling repo with the same trap. Search open and closed issues first, then update the matching issue or file a new one.
- **Where the governing doc is carried from the hub, file the finding against `ptr727/ProjectTemplate`.** Patching the local copy leaves every sibling repo with the same trap. Search open and closed issues first, then update the matching issue or file a new one.
- **A review flags an instance, so fix the class**: sweep for the siblings before replying, because reviewers sample rather than enumerate.
- **A rule that keeps needing restating** is usually a stale or missing skills install, so run `python3 scripts/skills_install.py --report` from a hub checkout (the `fleet-conformance-check` skill) before concluding the rule does not exist.

Expand Down
20 changes: 14 additions & 6 deletions .github/skills/dotnet-codestyle/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,14 @@ All builds must complete without warnings, enforced three ways:
surfaced as a warning fails the build and must be fixed or deliberately suppressed at the
narrowest scope that fits (see Analyzer suppressions below), never left to accumulate.
- **CI lint backstop.** CI runs the clean-compile checks on every PR as the authoritative gate.
The .NET mechanism for a local hook is Husky.Net, wired from the canonical
`catalog/snippets/husky/` config in the hub, hub-local and not carried into every fleet repo.
Husky.Net is wired from the canonical `catalog/snippets/husky/` config in the hub, hub-local
and not carried into every fleet repo. Its hook needs a .NET tool manifest declaring
Husky.Net, which the snippet does not ship. A repo keeping no such manifest takes the other
canonical shape, `catalog/snippets/pre-commit/`, and so does a repo that simply prefers the
`pre-commit` framework. Each shape carries whichever language checks its own repo keeps. A repo may also wire an equivalent hook of its own at `.husky/pre-commit`,
enabled with `core.hooksPath` and sourcing nothing, since the husky snippet's own hook sources
a file only `dotnet husky install` generates. That path and `.pre-commit-config.yaml` are the
two the audit reads.
GOVERNANCE.md's hub-only "Running the Linters Locally (Known-Working Invocations)" section
carries the obligation itself, what the hook must cover, its audit treatment, and the
per-clone enablement steps.
Expand Down Expand Up @@ -81,7 +87,7 @@ in place.
### Build tasks

Run these from VS Code's task runner (Terminal -> Run Task) or an agent's task-running tool. The
three clean-compile tasks are carried verbatim, and a repo adds its own convenience tasks (tool
three clean-compile tasks are carried unchanged, and a repo adds its own convenience tasks (tool
updates, dependency upgrades, benchmarks) on top:

- `.NET Build`: build with diagnostic verbosity *(clean-compile)*
Expand All @@ -97,9 +103,11 @@ updates, dependency upgrades, benchmarks) on top:
`dotnet format style --verify-no-changes --severity=info --verbosity=detailed`.
- **`dotnet-outdated-tool`** checks for dependency updates, and Nerdbank.GitVersioning owns
version management.
- CI is the authoritative lint backstop. The .NET mechanism for a local pre-commit hook is
Husky.Net, wired from `catalog/snippets/husky/` in the hub, hub-local and not carried into every
fleet repo, and covering the shared doc gates alongside the language checks.
- 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.
- **Required VS Code extensions**: CSharpier, markdownlint, CSpell. Use the workspace settings
without overrides.

Expand Down
12 changes: 9 additions & 3 deletions .github/skills/python-codestyle/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,15 @@ those. These are documented commands, and the hub's `vscode-tasks-python.json` s
VS Code tasks mirror that the fleet baseline expects. Every command-executing task in it is
`type: process`, and every aggregator is `dependsOn`-only. Neither chains with `&&`, so the mirror
runs the same on any task shell. CI runs the same clean-compile commands as the authoritative
backstop. The Python mechanism for a local hook is the `pre-commit` framework, wired from the
canonical `catalog/snippets/pre-commit/` directory, hub-local and not carried into every fleet
repo. That directory's own README names the second file to copy alongside the config.
backstop. A repo that keeps no .NET tool manifest declaring Husky.Net, or one that prefers the
`pre-commit` framework, wires its local hook from the canonical `catalog/snippets/pre-commit/` directory,
hub-local and not carried into every fleet repo. Any repo may instead wire an equivalent hook of
its own at `.husky/pre-commit`, enabled with `core.hooksPath` and sourcing nothing. That path and
`.pre-commit-config.yaml` are the two the audit reads. The runner is bounded by the toolchain the
repo already keeps rather than by the languages the hook checks, so a repo keeping a Husky.Net
manifest may run these same Python checks from the `catalog/snippets/husky/` shape instead. Each
shape carries whichever language checks its own repo keeps. The `pre-commit` directory's own
README names the second file to copy alongside the config.
GOVERNANCE.md's hub-only "Running the Linters Locally (Known-Working Invocations)" section carries
the obligation itself, what the hook must cover, its audit treatment, and the per-clone enablement
steps.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy-site-task.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ on:
required: true
type: string
secrets:
# The one credential that crosses this reusable workflow's boundary as a named secret.
# The credentials that cross this reusable workflow's boundary as named secrets.
# The host address, the user, and the known-hosts value are GitHub Environment variables instead, since they are integrity-critical but not confidential.
# The deploy job below reads them directly through its own environment binding.
DEPLOY_SSH_PRIVATE_KEY:
Expand Down
Loading