Adopt the catalog pre-commit suite at aos-precommit-v0.18.0 #90
No reviewers
Labels
No labels
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agent-proxy!90
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/adopt-precommit"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #87.
This repository shipped no
.pre-commit-config.yaml, so no catalog validator had ever run against it.pre-commit run --all-filesfailed withInvalidConfigErrorrather than reporting anything.Adopted at
aos-precommit-v0.18.0, the current release. Note that makes agent-proxy the first repo on the newer suite:deployis still pinned atv0.102.0, which predatestypos,actionlint,actions-run-one-line,source-doc-refs, andcontext-load-points.The config is generated by the owning tool rather than hand-written, so a future
apply-agentic-os-hooks.pyrun is a no-op instead of a conflict.Why it was missed
The rollout script selects targets from the on-disk checkout set, and agent-proxy is not resident. It was never a target and nothing reported a gap. Filed at coilyco-flight-deck/agentic-os#991, along with
ward-mcp, which is missing it for the same reason.Fixed to reach green
CLAUDE.mdbridge so Claude Code loads the shared doctrine.catalog:block in.ward/ward.yaml. No fleet code dependencies, sodependsOnis empty.AGENTS.mdrestructured onto the ten standard sections. Existing content was redistributed, not rewritten, and nothing was dropped.## See alsocross-links inREADME.mdanddocs/FEATURES.md..github/actionlint.yamldeclaring thedockerself-hosted runner label. The rollout script detects that file and adds-config-fileitself, so this survives a re-roll._typos.tomlacceptingser. typos splitsser8and flags the fragment. One entry, and it was the only unique finding across 50 output lines.The Telegram alert moves into a tracked script
.forgejo/workflows/ci.ymlcarried the same ~50-line Python body inlined twice, byte-identical. That is exactly the patternaos-precommit-v0.18.0added a check for.It now lives in
scripts/telegram_alert.pyand both steps call it. The body was decoded out of the workflow programmatically rather than retyped, so it is unchanged apart from a__main__guard. The follow-up commit formats it, and I compared parsed ASTs before and after to confirm that change is whitespace only.Three exemptions, and why they are
excludesnotenabled = false.pre-commit-config.yamlis permanent: its BEGIN and END markers are generated, and they are how the rollout finds its own block to refresh. Hand-editing them would break idempotency.The other two are backlog, filed as #88 (nine oversized docs) and #89 (96 comment blocks). Both list specific files, so every file not named stays governed, including all new ones. Entries come off as the work lands.
Those two are not drive-by work.
docs/trajectory-contract-v1.mdis a versioned contract other services build against, anddocs/proxy.mdis cited fromcoilyco-bridge/deploy, so splitting them changes a citation surface this repo cannot see the far side of. The 96 comment blocks are concentrated inapp/config.py,app/models.py, andapp/resilience.py, where the context-budget arithmetic and fallback policy are explained, and #41 has not yet demonstrated LiteLLM parity, so that reasoning is still load-bearing. The hook asks for those explanations to move intodocs/, not to be deleted.Verification
pre-commit run --all-filespasses all 26 hooks.ward exec format-check,lint,typecheck, andtestall pass. 235 tests.ward exec test-container, which needs a Docker daemon.One thing worth knowing for review:
pre-commit run --all-filesonly covers files git already tracks, so three violations in the generated config itself did not surface until the files were staged. Worth remembering when adopting the suite elsewhere.