Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
19 changes: 10 additions & 9 deletions .agents/skills/python-codestyle/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,15 +92,16 @@ repo's type checker: `uv run pyright`, or `uv run mypy src` where mypy is the CI
where the repo runs both (see Type checking above). Run it, plus `uv run pytest`, before
committing. A **lint-only** profile's clean-compile substitutes its `uvx` and `unittest`
equivalents, per Two Profiles above, and has no such command to run before committing beyond
those. These are documented commands, and a VS Code tasks mirror carried per the fleet baseline
(every command-executing task `type: process`, the aggregators dependsOn-only, no `&&` shell
chaining, so it runs the same on any task shell) is in the hub `vscode-tasks-python.json` snippet.
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. 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.
those. These are documented commands, and the hub's `vscode-tasks-python.json` snippet carries the
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.
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.

A restricted executor gives each task a cache directory under a writable temporary root. Point
`UV_CACHE_DIR`, `RUFF_CACHE_DIR`, `MYPY_CACHE_DIR`, and `COVERAGE_FILE` into that directory before
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/workflow-ci-contract/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ The full catalog, each guarantee with the failure mode it prevents, is in `refer

## After Any Workflow Edit

Workflow-only changes are not smoke-built, so run actionlint locally (via the hub-hosted `scripts/docker_lint.py` wrapper, run from the repository being checked as `python3 /path/to/ProjectTemplate/scripts/docker_lint.py --root "$PWD" --linter actionlint`, actionlint invoking `shellcheck` on `run:` blocks, which the wrapper's image provides, and documented in `GOVERNANCE.md`'s hub-only "Running the Linters Locally (Known-Working Invocations)" section) before pushing, and remember a workflow change is only fully exercised by CI, since `secrets: inherit`, `permissions:`, and `needs:` wiring resolve only in a real run.
Workflow-only changes are not smoke-built, so run actionlint locally before pushing. Run it from the repository being checked, as `python3 /path/to/ProjectTemplate/scripts/docker_lint.py --root "$PWD" --linter actionlint`, using the hub-hosted wrapper documented in `GOVERNANCE.md`'s hub-only "Running the Linters Locally (Known-Working Invocations)" section. actionlint includes `shellcheck` for `run:` blocks, so `--linter actionlint` already covers them. A workflow change is still only fully exercised by CI, since `secrets: inherit`, `permissions:`, and `needs:` wiring resolve only in a real run.
2 changes: 1 addition & 1 deletion .claude-plugin/fleet-skills/.source-digest
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2a5718c1f6bca556
fe834763b58313f7
19 changes: 10 additions & 9 deletions .claude-plugin/fleet-skills/skills/python-codestyle/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,15 +92,16 @@ repo's type checker: `uv run pyright`, or `uv run mypy src` where mypy is the CI
where the repo runs both (see Type checking above). Run it, plus `uv run pytest`, before
committing. A **lint-only** profile's clean-compile substitutes its `uvx` and `unittest`
equivalents, per Two Profiles above, and has no such command to run before committing beyond
those. These are documented commands, and a VS Code tasks mirror carried per the fleet baseline
(every command-executing task `type: process`, the aggregators dependsOn-only, no `&&` shell
chaining, so it runs the same on any task shell) is in the hub `vscode-tasks-python.json` snippet.
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. 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.
those. These are documented commands, and the hub's `vscode-tasks-python.json` snippet carries the
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.
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.

A restricted executor gives each task a cache directory under a writable temporary root. Point
`UV_CACHE_DIR`, `RUFF_CACHE_DIR`, `MYPY_CACHE_DIR`, and `COVERAGE_FILE` into that directory before
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ The full catalog, each guarantee with the failure mode it prevents, is in `refer

## After Any Workflow Edit

Workflow-only changes are not smoke-built, so run actionlint locally (via the hub-hosted `scripts/docker_lint.py` wrapper, run from the repository being checked as `python3 /path/to/ProjectTemplate/scripts/docker_lint.py --root "$PWD" --linter actionlint`, actionlint invoking `shellcheck` on `run:` blocks, which the wrapper's image provides, and documented in `GOVERNANCE.md`'s hub-only "Running the Linters Locally (Known-Working Invocations)" section) before pushing, and remember a workflow change is only fully exercised by CI, since `secrets: inherit`, `permissions:`, and `needs:` wiring resolve only in a real run.
Workflow-only changes are not smoke-built, so run actionlint locally before pushing. Run it from the repository being checked, as `python3 /path/to/ProjectTemplate/scripts/docker_lint.py --root "$PWD" --linter actionlint`, using the hub-hosted wrapper documented in `GOVERNANCE.md`'s hub-only "Running the Linters Locally (Known-Working Invocations)" section. actionlint includes `shellcheck` for `run:` blocks, so `--linter actionlint` already covers them. A workflow change is still only fully exercised by CI, since `secrets: inherit`, `permissions:`, and `needs:` wiring resolve only in a real run.
19 changes: 10 additions & 9 deletions .github/skills/python-codestyle/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,15 +92,16 @@ repo's type checker: `uv run pyright`, or `uv run mypy src` where mypy is the CI
where the repo runs both (see Type checking above). Run it, plus `uv run pytest`, before
committing. A **lint-only** profile's clean-compile substitutes its `uvx` and `unittest`
equivalents, per Two Profiles above, and has no such command to run before committing beyond
those. These are documented commands, and a VS Code tasks mirror carried per the fleet baseline
(every command-executing task `type: process`, the aggregators dependsOn-only, no `&&` shell
chaining, so it runs the same on any task shell) is in the hub `vscode-tasks-python.json` snippet.
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. 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.
those. These are documented commands, and the hub's `vscode-tasks-python.json` snippet carries the
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.
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.

A restricted executor gives each task a cache directory under a writable temporary root. Point
`UV_CACHE_DIR`, `RUFF_CACHE_DIR`, `MYPY_CACHE_DIR`, and `COVERAGE_FILE` into that directory before
Expand Down
2 changes: 1 addition & 1 deletion .github/skills/workflow-ci-contract/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ The full catalog, each guarantee with the failure mode it prevents, is in `refer

## After Any Workflow Edit

Workflow-only changes are not smoke-built, so run actionlint locally (via the hub-hosted `scripts/docker_lint.py` wrapper, run from the repository being checked as `python3 /path/to/ProjectTemplate/scripts/docker_lint.py --root "$PWD" --linter actionlint`, actionlint invoking `shellcheck` on `run:` blocks, which the wrapper's image provides, and documented in `GOVERNANCE.md`'s hub-only "Running the Linters Locally (Known-Working Invocations)" section) before pushing, and remember a workflow change is only fully exercised by CI, since `secrets: inherit`, `permissions:`, and `needs:` wiring resolve only in a real run.
Workflow-only changes are not smoke-built, so run actionlint locally before pushing. Run it from the repository being checked, as `python3 /path/to/ProjectTemplate/scripts/docker_lint.py --root "$PWD" --linter actionlint`, using the hub-hosted wrapper documented in `GOVERNANCE.md`'s hub-only "Running the Linters Locally (Known-Working Invocations)" section. actionlint includes `shellcheck` for `run:` blocks, so `--linter actionlint` already covers them. A workflow change is still only fully exercised by CI, since `secrets: inherit`, `permissions:`, and `needs:` wiring resolve only in a real run.
16 changes: 8 additions & 8 deletions reports/canonical-review.json
Original file line number Diff line number Diff line change
Expand Up @@ -163,11 +163,11 @@
},
{
"unit": ".agents/skills/python-codestyle/SKILL.md > Local development loop",
"digest": "sha256:3c48ebba48fbcbdfd018881ae77fcc89396b0989999ba4c339444c86d8e378b5",
"digest": "sha256:6f1081d1c1cf0f719f9c154c0b5652a26c7c1f6d2478adc3717becb248a61458",
"reviewer": "agent-skill",
"findings": 3,
"hubCommit": "a76dda7d67033f43c260d21e3ae6a291e1869c0a",
"stamp": "2026-09-01T06:46:39Z"
"findings": 1,
"hubCommit": "5664a954bf0c11acb6bab9014b0463697d18da4b",
"stamp": "2026-09-01T23:19:53Z"
},
{
"unit": ".agents/skills/repo-worktree/SKILL.md > Creating a Worktree",
Expand Down Expand Up @@ -211,11 +211,11 @@
},
{
"unit": ".agents/skills/workflow-ci-contract/SKILL.md > After Any Workflow Edit",
"digest": "sha256:c7078ad8a7867aaad6ee740e3208aad3d8b45a7c22f76c4b6a91fcb5bf11fa36",
"digest": "sha256:7dc31b8f1e7e25effd4b85078f9099b89cf3663452ed0400cf255df019fbef0e",
"reviewer": "agent-skill",
"findings": 0,
"hubCommit": "6b3271c03c1a0dcdb71fd2ad0447ba2b4a1cd04c",
"stamp": "2026-09-01T15:41:23Z"
"findings": 1,
"hubCommit": "f858a194ce29fa5702e2ce1c6ff8d1f3b221b2ee",
"stamp": "2026-09-01T23:24:57Z"
},
{
"unit": ".agents/skills/workflow-ci-contract/SKILL.md > How the Contract Is Read",
Expand Down