Process
How work is planned and initially built: the sources of truth, how they stay
honest with each other, and how milestones are cut and delivered. This skill
is the methodology layer and stays project-agnostic; a project's PRD and plan
derive their structure from it.
This governs initial development only — gathering the brief through the
first delivered milestone graph in the plan. Once a project has shipped past
that initial arc (in production, iterating via normal feature work), the PRD
is no longer the live planning surface; don't add new milestones to it or
treat it as covering ongoing/incremental work. Before using a project's PRD
for planning, check its last-applied version (§The PRD) against the version
in the repo's package manifest (package.json version, or equivalent) — if
the manifest is ahead, the PRD is behind current reality and describes a past
state, not the current one; don't plan new work from it without confirming
with the user first.
The working loop
Front-loaded on distillation and direction before any build:
Gather inspiration → distill the essence → set direction → design → plan implementation → deliver.
The brief and observations stages of the PRD (§The PRD) are the path toward the
design: gathering, distillation, and direction-setting. The design file is the
designed solution that path produces, transcribed into the design contract.
Planning the implementation lays out the milestone graph (§Milestones) from the
PRD and the design.
The PRD
Locate the PRD folder before writing to it. Don't assume a path exists:
check the repo for an existing PRD or docs location first; if one exists but
isn't obvious, ask the user where it lives. If none exists, create docs/prd/.
The PRD lives inside the repo it governs, never in an external notes system:
it's canonical, versioned material (§Division of truth), not a side note.
The PRD folder is the numbered product pipeline, read in order; each stage
derives from the ones before it:
| Stage |
Owns |
01-brief.md |
The distilled intent: what it is, who it's for, the aesthetic, references |
02-observations.md |
Research and risks, each paired with the direction taken |
03-solution.md |
The settled design at concept level: concept, surfaces, systems |
04-design.md |
The design-token contract, transcribed from the design file |
05-architecture.md |
Stack, information architecture, repo structure, data layer |
06-plan.md |
The plan: the milestone graph (kinds, dependencies), cut from the stages above |
- Observations follow the priority frame, the order problems get worked in:
- The Problem: one or two sentences.
- The Hardest Failure Mode: what breaks worst; design around it first.
- Key Design Decisions: the load-bearing choices everything else hangs
off.
- What to Prototype First: the riskiest slice to validate early; this
names the proving surface.
- Directions are research, not contract. An observation's direction lands
only when the design file (and its transcription in the design contract)
adopts it; where they conflict, the design contract wins.
- Record the version the PRD was last applied to. Once the initial arc
ships, note the app version (matching the repo's package manifest) the plan
was current as of — e.g. in
06-plan.md. That marker is what later agents
check against the manifest's current version to tell whether the PRD still
describes reality (see the governance note above).
Division of truth
Three authorities, each owning a different kind of truth and each with the
rules that keep it honest:
- The repo holds law and state: the PRD (ending in the plan,
06-plan.md
in the PRD folder, §The PRD, the milestone list with live status), the standards,
and the code; versioned, canonical for intent, contract, and work status. Docs and code
change together in the same change; a discovery the docs missed (a
token value, a variant, a breakpoint) is written back to the owning doc,
never left in a commit message or comment. Docs carry intent and contract;
function-level detail belongs in the code. Each fact lives in exactly one
owning doc: everywhere else points or summarizes, never restates, and when
two docs disagree the owner wins. The plan's milestone status is work state,
not contract; a fact that matters beyond a milestone moves to the owning doc.
- The design tool holds pixels (e.g. Figma): design questions resolve against
its nodes, not guesswork. Use structured design context (metadata/variables/code), not
screenshots, when reading it. A component isn't done until it's been
compared against its design node at desktop and mobile widths.
- GitHub holds review: the milestone PR, machine checks, preview deploys.
Nothing lives only on GitHub; a milestone's status flips in the plan, in the
same PR as the work that completes it.
When all three still leave a question genuinely ambiguous, ask; don't
improvise the product.
Milestones: the human gates
A milestone is a reviewable increment behind a human gate, instantiated as an
entry in the plan (06-plan.md in the PRD folder, §The PRD) binding it to
concrete scope, a definition of done, and a status. Milestones form a
dependency graph, not a fixed sequence, laid out in the plan; three kinds set
what may run in parallel:
| Kind |
The work |
Parallelism |
| System |
Creates or proves shared conventions: scaffold, tokens, the shell |
Serial; nothing may consume unproven conventions |
| Surface |
Delivers one surface on conventions already proven |
Parallel with other surface milestones, as sibling branches with independent gates |
| Sweep |
One cross-cutting pass over everything: coherence, polish, audits, launch |
Serial, after the surfaces it sweeps |
- System milestones gate on a specimen. A system milestone has no surface
to review, so its gate reviews a specimen artifact instead: a design-system
page rendering every token, ramp, and primitive, compared against the design
system file. The specimen stays in the site as a living styleguide route.
- The readiness rule. A milestone may open when everything it consumes is
merged and its inputs are settled: design frames in the design file, content
in the data source. An unready surface (undesigned, content missing) is a
waiting node, never a blocker for its siblings.
- The proving surface. The first surface milestone is chosen deliberately:
the riskiest or most representative surface, named by the observations
stage, built through every layer end to end. Its gate is what unlocks
surface parallelism.
- The initial arc. Foundations (system) → the proving surface. This is the
initial build: it proves the shared conventions and one full surface before
any further surface work is planned or parallelized.
Delivering a milestone
Every milestone runs the same cycle. The human steers at the two cheap points
(the plan and the gate); agents and machines carry the middle.
- Plan. Scope comes from the PRD and the design frames: the milestone's
concrete scope and definition of done, cut as one entry in the plan. An
unknown that blocks the cut gets a spike first: a throwaway experiment
answering one question; spike code is never merged, its answer is written
back to the owning doc. The human approves the scope before build starts;
steering a plan costs minutes, steering merged code costs days.
- Build. The milestone's work lands on its own branch (§Branches and PRs)
as a single PR into
main, passing machine checks and a review before
merge.
- Gate. The human reviews the outcome on the milestone branch's deployed
preview against the design frames at desktop and mobile widths. Outcomes,
not diffs; a human reads code only on escalation.
Branches and PRs
- One branch per milestone (
feat/m02-works), cut from main.
- One PR per milestone, merged into
main at the gate; its merge flips the
milestone's status in the plan, in the same diff.
Review
Three tiers, split by kind, not by priority:
- Machines check mechanics. Lint, types, tests, build, and a green preview
deploy gate the milestone PR; a human never spends attention on what CI can
catch.
- Agents review correctness. Against the standards and the milestone's
definition of done.
- Humans review taste. At plan and gate only (§Delivering a milestone): the
qualities no check can score; fidelity to the design, motion feel, whether
the thing is good.
1---2name: process3description: PRD, product requirements, project plan, planning, roadmap, milestone, scope, kickoff, delivery methodology, GitHub issues, where a decision gets documented, source of truth between repo/design tool/GitHub. Use when planning work, cutting milestones, deciding which doc owns what, or setting up delivery process for a new project.4---56# Process78How work is planned and initially built: the sources of truth, how they stay9honest with each other, and how milestones are cut and delivered. This skill10is the methodology layer and stays project-agnostic; a project's PRD and plan11derive their structure from it.1213**This governs initial development only** — gathering the brief through the14first delivered milestone graph in the plan. Once a project has shipped past15that initial arc (in production, iterating via normal feature work), the PRD16is no longer the live planning surface; don't add new milestones to it or17treat it as covering ongoing/incremental work. Before using a project's PRD18for planning, check its last-applied version (§The PRD) against the version19in the repo's package manifest (`package.json` version, or equivalent) — if20the manifest is ahead, the PRD is behind current reality and describes a past21state, not the current one; don't plan new work from it without confirming22with the user first.2324## The working loop2526Front-loaded on distillation and direction before any build:2728> Gather inspiration → distill the essence → set direction → design → plan implementation → deliver.2930The brief and observations stages of the PRD (§The PRD) are the path toward the31design: gathering, distillation, and direction-setting. The **design file is the32designed solution** that path produces, transcribed into the design contract.33Planning the implementation lays out the milestone graph (§Milestones) from the34PRD and the design.3536## The PRD3738**Locate the PRD folder before writing to it.** Don't assume a path exists:39check the repo for an existing PRD or docs location first; if one exists but40isn't obvious, ask the user where it lives. If none exists, create `docs/prd/`.41The PRD lives inside the repo it governs, never in an external notes system:42it's canonical, versioned material (§Division of truth), not a side note.4344The PRD folder is the numbered product pipeline, read in order; each stage45derives from the ones before it:4647| Stage | Owns |48| --- | --- |49| `01-brief.md` | The distilled intent: what it is, who it's for, the aesthetic, references |50| `02-observations.md` | Research and risks, each paired with the direction taken |51| `03-solution.md` | The settled design at concept level: concept, surfaces, systems |52| `04-design.md` | The design-token contract, transcribed from the design file |53| `05-architecture.md` | Stack, information architecture, repo structure, data layer |54| `06-plan.md` | The plan: the milestone graph (kinds, dependencies), cut from the stages above |5556- **Observations follow the priority frame**, the order problems get worked in:57 1. **The Problem**: one or two sentences.58 2. **The Hardest Failure Mode**: what breaks worst; design around it first.59 3. **Key Design Decisions**: the load-bearing choices everything else hangs60 off.61 4. **What to Prototype First**: the riskiest slice to validate early; this62 names the proving surface.63- **Directions are research, not contract.** An observation's direction lands64 only when the design file (and its transcription in the design contract)65 adopts it; where they conflict, the design contract wins.66- **Record the version the PRD was last applied to.** Once the initial arc67 ships, note the app version (matching the repo's package manifest) the plan68 was current as of — e.g. in `06-plan.md`. That marker is what later agents69 check against the manifest's current version to tell whether the PRD still70 describes reality (see the governance note above).7172## Division of truth7374Three authorities, each owning a different kind of truth and each with the75rules that keep it honest:7677- **The repo holds law and state**: the PRD (ending in the plan, `06-plan.md`78 in the PRD folder, §The PRD, the milestone list with live status), the standards,79 and the code; versioned, canonical for intent, contract, and work status. Docs and code80 change together **in the same change**; a discovery the docs missed (a81 token value, a variant, a breakpoint) is written back to the owning doc,82 never left in a commit message or comment. Docs carry intent and contract;83 function-level detail belongs in the code. Each fact lives in exactly one84 owning doc: everywhere else points or summarizes, never restates, and when85 two docs disagree the owner wins. The plan's milestone status is work state,86 not contract; a fact that matters beyond a milestone moves to the owning doc.87- **The design tool holds pixels** (e.g. Figma): design questions resolve against88 its nodes, not guesswork. Use structured design context (metadata/variables/code), not89 screenshots, when reading it. A component isn't done until it's been90 compared against its design node at desktop and mobile widths.91- **GitHub holds review**: the milestone PR, machine checks, preview deploys.92 Nothing lives only on GitHub; a milestone's status flips in the plan, in the93 same PR as the work that completes it.9495When all three still leave a question genuinely ambiguous, ask; don't96improvise the product.9798## Milestones: the human gates99100A milestone is a reviewable increment behind a human gate, instantiated as an101**entry in the plan** (`06-plan.md` in the PRD folder, §The PRD) binding it to102concrete scope, a definition of done, and a status. Milestones form a103dependency graph, not a fixed sequence, laid out in the plan; three kinds set104what may run in parallel:105106| Kind | The work | Parallelism |107| --- | --- | --- |108| **System** | Creates or proves shared conventions: scaffold, tokens, the shell | Serial; nothing may consume unproven conventions |109| **Surface** | Delivers one surface on conventions already proven | Parallel with other surface milestones, as sibling branches with independent gates |110| **Sweep** | One cross-cutting pass over everything: coherence, polish, audits, launch | Serial, after the surfaces it sweeps |111112- **System milestones gate on a specimen.** A system milestone has no surface113 to review, so its gate reviews a specimen artifact instead: a design-system114 page rendering every token, ramp, and primitive, compared against the design115 system file. The specimen stays in the site as a living styleguide route.116- **The readiness rule.** A milestone may open when everything it consumes is117 merged and its inputs are settled: design frames in the design file, content118 in the data source. An unready surface (undesigned, content missing) is a119 waiting node, never a blocker for its siblings.120- **The proving surface.** The first surface milestone is chosen deliberately:121 the riskiest or most representative surface, named by the observations122 stage, built through every layer end to end. Its gate is what unlocks123 surface parallelism.124- **The initial arc.** Foundations (system) → the proving surface. This is the125 initial build: it proves the shared conventions and one full surface before126 any further surface work is planned or parallelized.127128## Delivering a milestone129130Every milestone runs the same cycle. The human steers at the two cheap points131(the plan and the gate); agents and machines carry the middle.1321331. **Plan.** Scope comes from the PRD and the design frames: the milestone's134 concrete scope and definition of done, cut as one entry in the plan. An135 unknown that blocks the cut gets a **spike** first: a throwaway experiment136 answering one question; spike code is never merged, its answer is written137 back to the owning doc. The human approves the scope before build starts;138 steering a plan costs minutes, steering merged code costs days.1392. **Build.** The milestone's work lands on its own branch (§Branches and PRs)140 as a single PR into `main`, passing machine checks and a review before141 merge.1423. **Gate.** The human reviews the outcome on the milestone branch's deployed143 preview against the design frames at desktop and mobile widths. Outcomes,144 not diffs; a human reads code only on escalation.145146## Branches and PRs147148- One branch per milestone (`feat/m02-works`), cut from `main`.149- One PR per milestone, merged into `main` at the gate; its merge flips the150 milestone's status in the plan, in the same diff.151152## Review153154Three tiers, split by kind, not by priority:155156- **Machines check mechanics.** Lint, types, tests, build, and a green preview157 deploy gate the milestone PR; a human never spends attention on what CI can158 catch.159- **Agents review correctness.** Against the standards and the milestone's160 definition of done.161- **Humans review taste.** At plan and gate only (§Delivering a milestone): the162 qualities no check can score; fidelity to the design, motion feel, whether163 the thing is good.