Enforce issue-closing commit discipline in ward so Goose cannot bypass it #511

Closed
opened 2026-07-02 05:03:50 +00:00 by coilysiren · 2 comments
Owner

Goose-driven ward agent engineer --driver goose runs can land commits that do not carry the required same-repo issue-closing reference, even though ward installs pre-commit and commit-msg hooks in the clone.

Observed symptom:

  • a Goose engineer landed a commit in agent-proxy without the issue-closing hook content the operator expects
  • example supplied by the operator: coilyco-flight-deck/agent-proxy commit 95355872b962fc7ff9232c747b22d1409c9e52b6
  • operator statement: this is happening with Goose engineers and not with the other engineer drivers

What ward already does:

  • installPreCommitHooks() installs both default hooks and --hook-type commit-msg in the target clone and each extra repo clone
  • so this is not solved reliably by clone bootstrap alone

Required outcome:

  • ward itself enforces the issue-closing commit discipline for carried issue work, independent of harness behavior
  • Goose must not be able to land a same-repo issue without the required closing reference in the commit path

Acceptance criteria:

  • reproduce and identify the exact bypass path for Goose engineers
  • implement ward-side enforcement at a load-bearing point, not just a best-effort prompt instruction
  • enforce for target repo and granted extra repos when the run is carrying a specific issue
  • add tests that prove Goose cannot land a carried issue without the required closing reference
  • update the relevant ward docs around commit/push discipline if the enforcement point changes

Design direction to evaluate:

  • validate the commit messages before merge/push and fail the carry if the same-repo closing reference is absent
  • if a stricter earlier interception is cleaner, that is acceptable, but the guarantee must belong to ward rather than the harness prompt
Goose-driven `ward agent engineer --driver goose` runs can land commits that do not carry the required same-repo issue-closing reference, even though ward installs `pre-commit` and `commit-msg` hooks in the clone. Observed symptom: - a Goose engineer landed a commit in `agent-proxy` without the issue-closing hook content the operator expects - example supplied by the operator: `coilyco-flight-deck/agent-proxy` commit `95355872b962fc7ff9232c747b22d1409c9e52b6` - operator statement: this is happening with Goose engineers and not with the other engineer drivers What ward already does: - `installPreCommitHooks()` installs both default hooks and `--hook-type commit-msg` in the target clone and each extra repo clone - so this is not solved reliably by clone bootstrap alone Required outcome: - ward itself enforces the issue-closing commit discipline for carried issue work, independent of harness behavior - Goose must not be able to land a same-repo issue without the required closing reference in the commit path Acceptance criteria: - reproduce and identify the exact bypass path for Goose engineers - implement ward-side enforcement at a load-bearing point, not just a best-effort prompt instruction - enforce for target repo and granted extra repos when the run is carrying a specific issue - add tests that prove Goose cannot land a carried issue without the required closing reference - update the relevant ward docs around commit/push discipline if the enforcement point changes Design direction to evaluate: - validate the commit messages before merge/push and fail the carry if the same-repo closing reference is absent - if a stricter earlier interception is cleaner, that is acceptable, but the guarantee must belong to ward rather than the harness prompt
Member

🔒 Reserved by ward agent --driver codex — container engineer-codex-ward-511 on host kais-macbook-pro-2.local is carrying this issue (reserved 2026-07-02T05:03:57Z). Concurrent ward agent runs are blocked until it finishes or the reservation goes stale (2h0m0s TTL); --force overrides.

— Codex, via ward agent

<!-- ward-agent-reservation --> 🔒 Reserved by `ward agent --driver codex` — container `engineer-codex-ward-511` on host `kais-macbook-pro-2.local` is carrying this issue (reserved 2026-07-02T05:03:57Z). Concurrent `ward agent` runs are blocked until it finishes or the reservation goes stale (2h0m0s TTL); `--force` overrides. <!-- ward-agent-signature --> — Codex, via `ward agent`
Author
Owner

WARD-OUTCOME: done - ward now blocks carried issues from landing without the same-repo closes #N reference in reap, including granted repos.

This felt mostly mechanical once I found the landing point, but the repo fought back in the docs budgets and a drifting fleet fixture. I’m fairly confident in the enforcement path and the tests around it, with the main rough edge being that the reaper now makes a hard judgment on commit history instead of trusting hook setup alone.

WARD-OUTCOME: done - ward now blocks carried issues from landing without the same-repo closes #N reference in reap, including granted repos. This felt mostly mechanical once I found the landing point, but the repo fought back in the docs budgets and a drifting fleet fixture. I’m fairly confident in the enforcement path and the tests around it, with the main rough edge being that the reaper now makes a hard judgment on commit history instead of trusting hook setup alone.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
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#511
No description provided.