Phase-open prompt
Paste at the start of each phase. The agent verifies entry criteria, writes the phase-open decision doc, and triggers
phase.opendownstream.
Prompt to paste
Section titled “Prompt to paste”You are opening Phase <AGENTS.xml).
Step 1 — Re-read the ground truth
Section titled “Step 1 — Re-read the ground truth”Do not skim. Read these in order:
docs/north-star/intent.md— confirm the phase you’re about to open serves the intent. If it doesn’t, stop and tell me what you found.MILESTONES.md§ Phase <> — read the entry criteria, subphases, acceptance gates, verification round trigger, and handoff to phase <<N+1>>. - The phase-close decision doc for phase <
> ( docs/decisions/YYYY-MM-DD-phase-<<N-1>>-close.md) — note which deferred milestones from that phase live in this one. They get priority. CLAUDE.md§ Invariants and § Drift watches.META-RULES.md— particularly MR-1, MR-2, MR-10, MR-11.
Step 2 — Check entry criteria
Section titled “Step 2 — Check entry criteria”For each entry criterion in MILESTONES.md § Phase <met, not-met, or n/a with a citation. If any criterion is not-met, stop and surface what’s missing — do not open the phase.
Step 3 — Re-evaluate the phase scope
Section titled “Step 3 — Re-evaluate the phase scope”Now that you’ve read the ground truth, look at the phase as currently scoped in MILESTONES.md and answer:
- Does the scope still serve north-star intent? (Yes / No / Drift-suspected.) If drift-suspected, route to the drift-watcher subagent before opening.
- Are the deferred milestones from phase <
> still relevant? Things change between phases; some deferred items may now be n/a or superseded. Surface any to me for confirmation. - Are the acceptance gates still falsifiable as written? If any gate has become vague or reads “we’ll know it when we see it”, flag it. Vague gates are how phases never close.
Step 4 — Write the phase-open decision doc
Section titled “Step 4 — Write the phase-open decision doc”Create docs/decisions/<<TODAY_ISO>>-phase-<<N>>-open.md with this structure:
# Phase <<N>> — <<TITLE>> — open
**Date:** <<TODAY_ISO>>**Predecessor:** Phase <<N-1>> (`docs/decisions/<<DATE>>-phase-<<N-1>>-close.md`)**Status:** open
## Entry criteria — verdict| Criterion | Verdict | Citation || --------- | ------- | -------- || ... | met | <<file:line>> |
## Inherited from phase <<N-1>>- Deferred milestones: <<list with M-IDs>>- Open questions: <<list>>- Invariants in flight: <<list>>
## Phase scope (re-confirmed)- Goal: <<ONE_PARAGRAPH>>- Subphases: <<M{N}.1, M{N}.2, ...>>- Acceptance gates: <<list, copied from MILESTONES.md>>- Verification round trigger: <<when>>- Handoff target: phase <<N+1>>
## Anti-shape watchFor this phase, the active drift risks are:- <<NAMED_ANTISHAPE_1>> — guarded by <<COUNTER_ANCHOR>>- <<NAMED_ANTISHAPE_2>> — guarded by <<COUNTER_ANCHOR>>
## Subagents that will spawn this phase- <<list, derived from AGENTS.xml spawns_on triggers>>
## Open questions deferred to phase <<N+1>>*(initially empty; populated by the verification round at close)*
## Sign-off- Planner: <agent run>- Human: <name + date when confirmed>Step 5 — Update MILESTONES.md
Section titled “Step 5 — Update MILESTONES.md”Set Phase <open. Update the Active phase block at the top of MILESTONES.md to point at Phase <
Step 6 — Hand off
Section titled “Step 6 — Hand off”End your turn with:
- Path to the phase-open decision doc.
- The first milestone (
M<<N>>.1) and the subagent that owns it. - A reminder: the implementer should be invoked next, with
M<<N>>.1as its scope.
Do not start implementer work in this session. Phase open is its own act.
Notes for the human
Section titled “Notes for the human”- If Step 2 returns
not-meton any criterion, don’t override it. The criteria exist because the prior phase’s verification round earned them. Override is how the system rots. - Step 3’s drift-suspected verdict is rare but important. If it fires, paste
prompts/04-drift-check.mdnext, not the implementer prompt. - The phase-open decision doc is short on purpose. The richness is in MILESTONES.md and the prior phase-close doc; this one is a checkpoint, not an essay.