feat(gates): wire GATE 0 into the four orchestrator skill restatements

The include is authoritative, but feat/bugfix/ship-feature/init-project
each restate the verify loop inline — an orchestrator following the
restatement alone would have skipped the floor. Each now carries the
GATE 0 bullet ahead of GATE 1 (4 new structure locks, flip-tested).
The contract-interview weight table stops promising a hotfix oracle
nothing executes: hotfix runs no floor, the hotfixer runs the suite
itself. CHANGELOG extended with the wiring + the RED result.
This commit is contained in:
Bastien Chanot
2026-08-24 13:36:32 +02:00
parent abb4ea7650
commit 33f5356c82
9 changed files with 41 additions and 7 deletions
+6 -1
View File
@@ -172,6 +172,11 @@ Parse the `BUGFIX-EXEC REPORT`:
1. Run the two fresh gates per `$HOME/.claude/lib/verify-secure-loop.md` with
`CONTRACT` = the STEP 3.5 path, `DIFF` = the executor's working-tree diff,
`TEST` = the suite named in its report:
- GATE 0 — deterministic floor, no dispatch: `bash ~/.claude/lib/gates.sh
run "$CONTRACT"` executes the criteria's declared oracles fail-closed
(the regression-test criterion included). UNMET → re-dispatch a FRESH
bugfixer with the NOT-MET rows verbatim — no verifier is spent on a red
floor; own budget, max 3 → escalate. MET → GATE 1.
- GATE 1 — a FRESH verifier judges the fix against the contract (bug gone
+ regression test present). CONFORME on the first pass → straight to
GATE 2, no loop. ECARTS → the "dev" of the loop is the dispatched
@@ -183,7 +188,7 @@ Parse the `BUGFIX-EXEC REPORT`:
path; re-verify the request THEN re-scan, max 3 → escalate.
Loop decisions stay HERE, in the main loop (LRN-083). Nominal = one
executor + one verifier + one security dispatch.
executor + a free floor run + one verifier + one security dispatch.
2. **Pre-commit confirmation gate.** Before running `git commit`, present the diff
summary and the proposed message, then wait for approval: