Plan is the stage between a pinned spec and any code, and no implementation path skips it. It grounds the task in the actual tree and Git topology first, records a short programme map of how the connected specs fit and where the current work sits, then writes a plan that states its source, its acceptance criteria, its dependencies and ordered steps, its explicit non-goals, a real field fixture to test against, the verification commands, and a diff budget. A worktree is not created and a worker is not dispatched until this is done.

Ground, map, then the necessity gate. Reuse, connect, configure, delete or document are tried first, and new code is the last route the plan takes.

The part of the contract worth naming is the necessity decision. Every plan has to ask whether the outcome can be reached by reusing, connecting, configuring, deleting or documenting existing behaviour before it is allowed to propose new production code. New code is the last resort, not the default, and when it is genuinely necessary the plan commits to the fewest files and lines that make the function live. The stage does not wait for approval, because the approach was already settled in the grill; the plan travels attached to the handoff for audit.