ward injects an unsatisfiable agent commit-msg gate (retired closes-issue/conventional-commit hooks) -> forces --no-verify on every run #244

Closed
opened 2026-06-24 05:50:03 +00:00 by coilyco-ops · 1 comment
Member

Defect

Every warded-agent commit is forced to use git commit --no-verify, which directly violates the fleet's never---no-verify doctrine. Seen concretely in the infra#396 headless run (and latent in every container commit).

Root cause

ward injects an agent commit-msg gate at .git/ward-agent-precommit.yaml that references the hook ids closes-issue and conventional-commit. Those two commit-msg hooks were retired from the agentic-os suite (per agentic-os house rules: "the conventional-commit and closes-issue commit-msg hooks have been retired from the suite"). They exist at no agentic-os tag (checked v0.21.0 through v0.102.0).

So the injected gate is unsatisfiable: pre-commit can never resolve those hook ids, the commit-msg stage errors, and the only way the agent can land its commit is --no-verify. The agent's real fix: it ran the actual project pre-commit suite (all hooks) first and it passed - the bypass was solely for the phantom ward-injected config. But the net effect is a --no-verify on canonical main on every run.

Fix

Regenerate ward's injected agent precommit config from the current suite so it no longer references retired hooks (closes-issue / conventional-commit). After that the agent commit-msg gate is satisfiable and --no-verify is never needed.

Impact

  • Doctrine violation (--no-verify on canonical main) on every warded-agent commit.
  • Masks any real commit-msg gate that should run, since the whole stage is bypassed.

Refs

  • Surfaced by the infra#396 rollout agent (commit 6469313).
  • Same harness, same container path as deploy#22 / the current Gatus fleet-reachability pipeline.
## Defect Every warded-agent commit is forced to use `git commit --no-verify`, which directly violates the fleet's never-`--no-verify` doctrine. Seen concretely in the infra#396 headless run (and latent in every container commit). ## Root cause ward injects an agent commit-msg gate at `.git/ward-agent-precommit.yaml` that references the hook ids **`closes-issue`** and **`conventional-commit`**. Those two commit-msg hooks were **retired from the agentic-os suite** (per agentic-os house rules: "the `conventional-commit` and `closes-issue` commit-msg hooks have been retired from the suite"). They exist at **no agentic-os tag** (checked v0.21.0 through v0.102.0). So the injected gate is **unsatisfiable**: pre-commit can never resolve those hook ids, the commit-msg stage errors, and the only way the agent can land its commit is `--no-verify`. The agent's real fix: it ran the *actual* project pre-commit suite (all hooks) first and it passed - the bypass was solely for the phantom ward-injected config. But the net effect is a `--no-verify` on canonical `main` on every run. ## Fix Regenerate ward's injected agent precommit config from the **current** suite so it no longer references retired hooks (`closes-issue` / `conventional-commit`). After that the agent commit-msg gate is satisfiable and `--no-verify` is never needed. ## Impact - Doctrine violation (`--no-verify` on canonical main) on every warded-agent commit. - Masks any *real* commit-msg gate that should run, since the whole stage is bypassed. ## Refs - Surfaced by the infra#396 rollout agent (commit `6469313`). - Same harness, same container path as deploy#22 / the current Gatus fleet-reachability pipeline.
Author
Member

🔒 Reserved by ward agent claude — container ward-ward-issue-244-claude-701df785 on host kais-macbook-pro-2.local is carrying this issue (reserved 2026-06-24T06:09:16Z). Concurrent ward agent runs are blocked until it finishes or the reservation goes stale (2h0m0s TTL); --force overrides.

— Claude (she/her), via ward agent

<!-- ward-agent-reservation --> 🔒 Reserved by `ward agent claude` — container `ward-ward-issue-244-claude-701df785` on host `kais-macbook-pro-2.local` is carrying this issue (reserved 2026-06-24T06:09:16Z). Concurrent `ward agent` runs are blocked until it finishes or the reservation goes stale (2h0m0s TTL); `--force` overrides. <!-- ward-agent-signature --> — Claude (she/her), via `ward agent`
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-flight-deck/ward#244
No description provided.