Write Phase Plan
Goal
Produce a plan document that a phase-orchestrator run can execute without
re-deriving structure. Each phase must be implementable by a worker that has
no chat history: the phase section is the worker's entire brief, plus repo
rules and the code itself.
The plan is the source of truth during the run. The orchestrator updates phase
status and appends log entries as it goes, so the document must be written to
absorb that.
Where The Plan Lives
Follow the repo's convention for design docs (for example plans/<author>/ in
repos that define one). One markdown file per plan. Link out to the PRD/spec
rather than duplicating it.
Document Structure
# <Feature name>
## Overview
One or two paragraphs: what is being built and why. Link the PRD/spec.
## Constraints
Repo-wide facts every phase needs: commit/PR policy, validation commands,
branch or worktree requirements, anything the orchestrator must not infer.
## Phases
A short table or list: phase ID, name, depends-on, parallelizable-with.
## Phase 1: <name>
- **Status:** Not started
- **Depends on:** none | Phase N
- **Objective:** one sentence, the outcome not the activity.
- **Scope:** the files/modules this phase owns (its write scope).
- **Out of scope:** adjacent work this phase must not touch.
- **Approach:** implementation notes — key decisions already made, pointers
to the code the worker should read first, known landmines.
- **Acceptance criteria:** checkable statements (see below).
- **Validation:** exact commands to run, plus any manual checks.
## Phase 2: <name>
...
## Implementation log
(Empty at authoring time. The orchestrator appends one entry per phase:
date, phase, summary, validation results, review outcome, commit SHAs,
deviations, remaining risks.)
Sizing And Ordering Phases
- One phase = one implementer worker session. If a phase's Approach section
needs subheadings to stay coherent, split it.
- Order by dependency, foundations first. A schema/migration phase is always
its own phase (and in many repos its own PR — record that in Constraints).
- Phases that can run in parallel must have disjoint write scopes. Declare
parallelizability explicitly in the phase list; the orchestrator will not
guess.
- If a phase exists only to set up a later phase, say which one, so the
orchestrator knows a deviation there propagates.
Writing For A Context-Free Worker
The implementer sees the plan, the repo, and nothing else. So:
- Use standalone spec language. No "as discussed", "still", "instead of the
old approach", or references to conversations that produced the plan.
- Name concrete things: file paths, function names, commands — not "the
relevant helper" or "the usual checks".
- State decisions as decisions. If something is genuinely unresolved, mark it
as an explicit open question and say who resolves it (the worker may decide
in-scope questions; the orchestrator escalates cross-cutting ones).
- Put shared context in Constraints once rather than repeating it per phase.
Acceptance Criteria
Each criterion must be checkable by the reviewer from the diff and the running
code, without asking the author:
- Good: "
POST /orgs/:id/invites returns 403 for a non-admin member; covered
by a route test."
- Bad: "Invites are properly secured."
Include the negative space: what must not change (existing behavior, public
contracts, performance characteristics) when regression there is a real risk.
Status And Log Conventions
- Phase status vocabulary: Not started, In progress, Done, Partial, Blocked.
- The orchestrator owns status transitions and log entries during the run;
the author sets everything to Not started.
- Keep the Implementation log section present even when empty, so run updates
have a stable place to land.
Anti-Patterns
- Phases split by activity (design/build/test) instead of by deliverable —
every phase should end with validated, committable work.
- Two phases that edit the same files marked as parallel.
- Acceptance criteria that restate the objective instead of testing it.
- A plan that embeds the whole PRD — link it and keep the plan operational.
- Hidden sequencing: prose that implies an order the phase list doesn't state.
1---2name: write-phase-plan3description: Writes or restructures an implementation plan in the format the phase-orchestrator skill consumes: dependency-ordered phases with explicit scope, acceptance criteria, validation commands, and status/log conventions. Use when the user asks to write a plan for phase orchestration, prepare a plan or PRD for delegated multi-agent implementation, or convert a spec, checklist, or design doc into implementable phases.4license: MIT5---67# Write Phase Plan89## Goal1011Produce a plan document that a phase-orchestrator run can execute without12re-deriving structure. Each phase must be implementable by a worker that has13no chat history: the phase section is the worker's entire brief, plus repo14rules and the code itself.1516The plan is the source of truth during the run. The orchestrator updates phase17status and appends log entries as it goes, so the document must be written to18absorb that.1920## Where The Plan Lives2122Follow the repo's convention for design docs (for example `plans/<author>/` in23repos that define one). One markdown file per plan. Link out to the PRD/spec24rather than duplicating it.2526## Document Structure2728```markdown29# <Feature name>3031## Overview32One or two paragraphs: what is being built and why. Link the PRD/spec.3334## Constraints35Repo-wide facts every phase needs: commit/PR policy, validation commands,36branch or worktree requirements, anything the orchestrator must not infer.3738## Phases39A short table or list: phase ID, name, depends-on, parallelizable-with.4041## Phase 1: <name>42- **Status:** Not started43- **Depends on:** none | Phase N44- **Objective:** one sentence, the outcome not the activity.45- **Scope:** the files/modules this phase owns (its write scope).46- **Out of scope:** adjacent work this phase must not touch.47- **Approach:** implementation notes — key decisions already made, pointers48 to the code the worker should read first, known landmines.49- **Acceptance criteria:** checkable statements (see below).50- **Validation:** exact commands to run, plus any manual checks.5152## Phase 2: <name>53...5455## Implementation log56(Empty at authoring time. The orchestrator appends one entry per phase:57date, phase, summary, validation results, review outcome, commit SHAs,58deviations, remaining risks.)59```6061## Sizing And Ordering Phases6263- One phase = one implementer worker session. If a phase's Approach section64 needs subheadings to stay coherent, split it.65- Order by dependency, foundations first. A schema/migration phase is always66 its own phase (and in many repos its own PR — record that in Constraints).67- Phases that can run in parallel must have disjoint write scopes. Declare68 parallelizability explicitly in the phase list; the orchestrator will not69 guess.70- If a phase exists only to set up a later phase, say which one, so the71 orchestrator knows a deviation there propagates.7273## Writing For A Context-Free Worker7475The implementer sees the plan, the repo, and nothing else. So:7677- Use standalone spec language. No "as discussed", "still", "instead of the78 old approach", or references to conversations that produced the plan.79- Name concrete things: file paths, function names, commands — not "the80 relevant helper" or "the usual checks".81- State decisions as decisions. If something is genuinely unresolved, mark it82 as an explicit open question and say who resolves it (the worker may decide83 in-scope questions; the orchestrator escalates cross-cutting ones).84- Put shared context in Constraints once rather than repeating it per phase.8586## Acceptance Criteria8788Each criterion must be checkable by the reviewer from the diff and the running89code, without asking the author:9091- Good: "`POST /orgs/:id/invites` returns 403 for a non-admin member; covered92 by a route test."93- Bad: "Invites are properly secured."9495Include the negative space: what must not change (existing behavior, public96contracts, performance characteristics) when regression there is a real risk.9798## Status And Log Conventions99100- Phase status vocabulary: Not started, In progress, Done, Partial, Blocked.101- The orchestrator owns status transitions and log entries during the run;102 the author sets everything to Not started.103- Keep the Implementation log section present even when empty, so run updates104 have a stable place to land.105106## Anti-Patterns107108- Phases split by activity (design/build/test) instead of by deliverable —109 every phase should end with validated, committable work.110- Two phases that edit the same files marked as parallel.111- Acceptance criteria that restate the objective instead of testing it.112- A plan that embeds the whole PRD — link it and keep the plan operational.113- Hidden sequencing: prose that implies an order the phase list doesn't state.