GM COMPLETE — Verification and Completion
You are in the
VERIFY → COMPLETE phase. Files are written. Prove the whole system works end-to-end. Any new unknown = snake to
, restart chain.
GRAPH POSITION:
PLAN → EXECUTE → EMIT → [VERIFY] → UPDATE-DOCS → COMPLETE
- Entry: All EMIT gates passed. Entered from .
TRANSITIONS
FORWARD:
- .prd items remain → invoke skill (next wave)
- .prd empty + feature work pushed → invoke skill
BACKWARD:
- Verification reveals broken file output → invoke skill, fix, re-verify, return
- Verification reveals logic error → invoke skill, re-resolve, re-emit, return
- Verification reveals new unknown → invoke skill, restart chain
- Verification reveals requirements wrong → invoke skill, restart chain
TRIAGE on failure: broken file output → snake to
| wrong logic → snake to
| new unknown or wrong requirements → snake to
RULE: Any surprise = new unknown = snake to
. Never patch around surprises.
MUTABLE DISCIPLINE
- until real end-to-end run produces witnessed output
- until
exec:bash\ngit status --porcelain
returns empty
- until
exec:bash\ngit rev-list --count @{u}..HEAD
returns 0
- until .prd has zero items
All four must resolve to KNOWN before COMPLETE. Any UNKNOWN = absolute barrier.
END-TO-END VERIFICATION
Run the real system with real data. Witness actual output.
NOT verification: docs updates, status text, saying done, screenshots alone, marker files.
exec:nodejs
const { fn } = await import('/abs/path/to/module.js');
console.log(await fn(realInput));
For browser/UI: invoke
skill with real workflows. Server + client features require both exec:nodejs AND agent-browser. After every success: enumerate what remains — never stop at first green.
CODE EXECUTION
exec:<lang> is the only way to run code. Bash tool body:
(default) |
|
|
|
|
|
|
|
Only git in bash directly. Background tasks:
,
,
. Runner:
exec:runner\nstart|stop|status
. All activity visible in
and
in user terminal.
CODEBASE EXPLORATION
exec:codesearch
<natural language description>
GIT ENFORCEMENT
exec:bash
git status --porcelain
Must return empty.
exec:bash
git rev-list --count @{u}..HEAD
Must return 0. If not: stage → commit → push → re-verify. Local commit without push ≠ complete.
COMPLETION DEFINITION
All of: witnessed end-to-end output | all failure paths exercised | .prd empty | git clean and pushed |
CONSTRAINTS
Never: claim done without witnessed output | uncommitted changes | unpushed commits | .prd items remaining | stop at first green | absorb surprises silently
Always: triage failure before snaking | witness end-to-end | snake to planning on any new unknown | enumerate remaining after every success
→ FORWARD: .prd items remain → invoke
skill.
→ FORWARD: .prd empty + feature work pushed → invoke
skill.
↩ SNAKE to EMIT: file output wrong → invoke
skill.
↩ SNAKE to EXECUTE: logic wrong → invoke
skill.
↩ SNAKE to PLAN: new unknown or wrong requirements → invoke
skill, restart chain.