to-spec
To Spec
Synthesize the current conversation and codebase understanding into a PRD, then publish it. Do NOT interview the user — work from what you already know. This PRD is the autonomy contract: it is the last artifact written while the human is in the room, so every decision the downstream autonomous phases (to-tasks → implement-and-review) would otherwise have to ask about must be captured here.
Process
-
Explore the repo to understand the current state, if you haven't already. Use the project's domain glossary vocabulary (
CONCEPTS.md) throughout the PRD, and respect ADRs indocs/adr/for the area you're touching. IfCONCEPTS.md/docs/adr/don't exist, synthesize from the code and note the gap — don't block on it. -
Sketch the seams at which you'll test the feature, applying the
test-lensrule: test observable external behavior at the highest seam possible, never implementation detail. Prefer existing seams to new ones; propose any new seam at the highest point you can. The fewer seams, the better — the ideal is one. Each seam you name here becomes a testable behaviorto-taskslifts into a slice's acceptance contract, so name the observable behavior at each seam, not just its location.Check with the user that these seams match their expectations.
-
Settle the
security-gatethreat-model-lite so the spec answers what the autonomous phases can't ask later. Synthesize first: if the conversation already covered the security surface (e.g. aninterviewrun already worked the checklist), just distill those answers — don't re-ask. Only the rows the feature exposes that are still unanswered get asked now, while the human is here; security is the one area you may break the no-interview rule for, because a missing answer becomes an unanswerable gap in an autonomous phase. Record the result in the Security Decisions section below — this is thesecurity_decisionsartifactsecurity-gateexpects, and it pre-marks which surfaces are security-sensitive soto-taskscan set each slice'ssecurity: deep|standardflag as a lift, not a re-derivation. -
Write the PRD using the template below, then publish it to the project issue tracker. Apply the
ready-for-agenttriage label — no need for additional triage. If no tracker is configured, write the PRD to a file at the repo root and tell the user where.