Expose the all-files pre-commit suite as a Ward verb #93
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!93
Loading…
Reference in a new issue
No description provided.
Delete branch "restore-all-files-precommit-verb"
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 #78.
The catalog hook configuration landed in #87, but no Ward verb ever reached it. That left the repository's advertised validation surface disagreeing with the fleet contract in a small but real way:
AGENTS.mdtold agents to run barepre-commit run --all-fileswhile every other quality gate routed throughward exec.What changed
.ward/ward.yaml— addedpre-commit(pre-commit run --all-files), matching the convention already used byagent-composeandinfrastructure: the system binary rather than a uv-managed dependency, sincepre-commitis not in this repo's dev extras..ward/ward.yaml— addedpre-commit-install(pre-commit install --hook-type pre-commit --hook-type pre-push).README.md,AGENTS.md— documented both verbs;AGENTS.mdno longer advertises the bare invocation.Why the second verb
A fresh clone has no hooks in
.git/hooks, so the commit-time gate silently does not run until somebody installs it — an all-files verb alone does not close that. This is not hypothetical: it is exactly what happened on the clone used for #91/#92 earlier today. The first commit there bypassed the suite entirely, andtyposcaught a real defect only once the hooks were installed by hand and re-run.Verification
pre-commit run --all-files— every hook passes across all tracked filesward exec pre-commit— same, through the new verb, on a clean treeexcludesinpyproject.tomlrather than disabled hooks, so every file not on those lists stays governedOut of scope, worth a follow-up
.forgejo/workflows/ci.ymldoes not run the pre-commit suite — itsqualityjob runs ruff, black, mypy, and pytest directly. So the catalog hooks are enforced only at commit time, on clones where somebody ran the install. #78's acceptance criteria do not mention CI, so I have not widened this PR to add the gate, but the validation surface is not fully closed until that happens. Happy to file it separately.