Skip to content

shared/phase-discipline

Phases are the unit of progress. Acceptance-gated; closed only when their gates pass. This file codifies the rules that the phase prompts (01-phase-open, 02-phase-close, 03-verification-round) operationalise.

1. Acceptance gates close phases. Nothing else does.

Section titled “1. Acceptance gates close phases. Nothing else does.”

A phase is closed when its declared acceptance gate (in MILESTONES.md) passes — every claim has evidence in docs/verification/ and a paired decision doc in docs/decisions/YYYY-MM-DD-phase-{N}-close.md. A phase is not closed by elapsed time, vibes, or external pressure.

2. The verification round is mandatory at phase close (MR-10).

Section titled “2. The verification round is mandatory at phase close (MR-10).”

Even smooth phases run one. The point of the round isn’t to find problems; the point is to surface what’s been collected without flinching from it. A phase whose verification round was skipped is open regardless of what its decision doc says.

3. Friction surfaced in phase N’s verification round becomes phase

Section titled “3. Friction surfaced in phase N’s verification round becomes phase”

N+1’s input. Never a retrofit.

This is the rule the source project paid the most to discover. Mechanical now:

  • closed — only for trivial follow-ups (typo, broken link, single- line bug). Closes inside the same round.
  • in-budget — the friction is small enough to land in phase N’s remaining budget without re-opening it. Documented in the round’s decision doc, executed before the close-out doc.
  • deferred — anything bigger. Goes into MILESTONES.md as a phase N+1 milestone (M{N+1}.x.y). Never as M{N}.x extension.

The temptation to “just patch this in phase N because we’re already here” is exactly the drift this rule prevents. Resist it.

Once a phase-N-close decision doc is signed off, phase N’s content is frozen. New work that bears on phase N’s surface area opens a new decision doc and proceeds in phase N+1 (or later). The original decision doc stays accurate as a snapshot of what was true at close.

5. Phase IDs are sequential. Subphases are dotted.

Section titled “5. Phase IDs are sequential. Subphases are dotted.”

Phase 6 precedes Phase 7. Within a phase, milestones are M{N}.{n}.{m} (e.g. M3.2.1). Cross-phase references use the full milestone ID. Never reuse an ID, even for cancelled work.

Every phase-close decision doc has a sign-off block. The block is the gate, not a formality. Subagents draft; humans countersign. A phase- close doc without human countersign is open, not closed.