todo2code

Participant: claude (AI agent)

Understanding

The two governance gates answer different questions. make governance compares the working tree to HEAD; the CI job compares base..head. Diagnostics that are properties of the branch rather than of the editGOV-INTENT-003, GOV-TICKET-001, and workstream scope over the full diff — are therefore structurally invisible before a push.

This is not a missing feature. project/governance-check.sh already accepts --actor ci --base --head and reproduces the CI verdict locally in under a second. The gap is purely that nothing prompts anyone to run it, so the verdict arrives from a failed pull request instead.

Execution plan

  1. Resolve the workstream question with the owner; it decides when this ticket may become active, because integration is held by ticket-048.
  2. Add one Makefile target resolving the base via git merge-base origin/main HEAD and delegating to the existing checker.
  3. Prove the gate against real history: the squashed ticket-047 topology must fail, the ticket-048 topology must pass.
  4. State in the governance documentation that this gate, not make governance, is what must be green before a push.

Actual changes

The original plan targeted Makefile, then AGENTS.md. Both were dropped after the constraints were verified rather than assumed: Makefile matches requiredForPaths and raises GOV-INTEGRATION-001 under a governance ticket, and AGENTS.md is hash-locked in managedFiles — the attempted edit raised GOV-SYNC-001 and was reverted. README.md is the only governance-owned, unlocked document outside ticket directories.

Little is lost: the capability already existed and only the obligation was missing. Two follow-ups remain — a make governance-ci wrapper as an integration ticket, and moving the rule into AGENTS.md through a pinned standard upgrade.

Blockers