Create PRD
Quick Start
Copy the template: assets/prd-template.md
Fill it out in the target dossier:
- Single-PRD dossier:
prd.md
- Multi-PRD dossier:
- Overall / spine PRD at the dossier root:
prd-overall.md
- Slice PRDs under
prds/: prds/<slice_id>_<slug>/prd.md
Notes:
- Lowest-level PRD filenames are always
prd.md (no prd-slice-* filenames).
- Use a short kebab-case slug like
auth-token-rotation or invoice-pdf-export.
Pull all details from shaping inputs into the PRD so it’s implementable without extra context (no information loss)
PRD Slicing Rubric (Reusable)
Rules of thumb (thin PRDs)
- One PRD should deliver one user-visible affordance (or one backend capability with a measurable, observable effect), not a whole workflow.
- Each PRD must have measurable acceptance criteria tied to at least one replayable verification pack (fixture data, synthetic dataset, scripted scenario, etc.).
- Keep PRDs vertical-ish: UI + a thin API/data change where needed, but avoid building platform layers unless they directly unblock the next slice.
- If a PRD introduces a new failure mode, it must also introduce the UX to surface it (no silent failures).
- Prefer scaffold then replace: ship a deterministic baseline behind stable contracts first, then swap in ML/OCR/retrieval/LLM (or other complex components) behind the same interface.
Examples (good slices)
- "UI affordance X triggers state Y, persists, and is visible after refresh."
- "API returns payload + stable checksum/hash so clients can detect mismatches."
- "Verifier rejects records on checksum mismatch and surfaces a user-visible error state."
- "Parser extracts a single structured list into a table with row-level provenance."
Examples (bad slices)
- "Build ingestion + parsing + retrieval + drafting + verification + export" (too many risks bundled).
- "Implement an autonomous multi-agent copilot" (non-deterministic + typically too broad for a single slice).
- "Add full template/customisation system" (platform work without proving the core loop).
Red flags a PRD is too fat
- Touches 3+ major subsystems/components in one go.
- Needs more than 1-2 new schemas or widespread data model churn.
- Acceptance criteria can't be tested against a pack/fixture/script.
- Contains multiple hard unknowns at once (new parsing + matching + verification together).
Minimum PRD structure (every PRD)
The minimum structure is defined by assets/prd-template.md and must include:
- Introduction/Overview (problem + goal)
- Goals
- User stories
- Functional requirements (numbered)
- Non-goals (out of scope)
- Success metrics
- Open questions
Additionally, every PRD must include:
- Acceptance criteria + verification plan (pack/fixture/script)
- Failure states + user-visible UX (no silent failures)
- Metrics/logging (at least 1 signal)
- Rollback/disable path (feature flag or safe default)
- A lightweight "Sources" section pointing to shaping inputs (brief/breadboard/spike/risk-register)
Inputs
One or more of the following:
- Problem statement + target users
- Success metric
- Constraints, risks, dependencies
- Any existing verification packs/fixtures/scripts (or willingness to create a minimal one)
No Context Loss (Requirement)
If any of the following shaping files exist, no information should be lost from them:
brief.md
breadboard-pack.md
spike-investigation.md
risk-register.md
Guidance:
- Prefer integrating shaping details directly into the PRD sections (requirements, risks, constraints, UX, verification).
- Add a short "Sources" section with links/paths to the shaping files you used.
- If a detail does not fit cleanly into a PRD section, add it to the appendix as notes or key excerpts. Avoid dumping large verbatim blocks by default.
- Each PRD must be implementable without needing additional context outside the PRD.
Try find this information:
brief.md
breadboard-pack.md
spike-investigation.md
risk-register.md
Where unclear, use the ask-questions-if-underspecified skill.
Outputs
- Single-PRD dossier:
prd.md in the dossier root.
- Multi-PRD dossier:
- Overall / spine PRD in the dossier root as
prd-overall.md.
- Slice PRDs under
prds/<slice_id>_<slug>/prd.md.
Steps
Ask 3-5 clarifying questions (answerable as 1A, 2B) that force a thin slice:
- What is the single user-visible affordance (or single observable backend capability)?
- What is the primary observable effect (what changes, where can we see it)?
- What pack/fixture/script will we use to verify acceptance criteria?
- What new failure modes does this introduce, and how should UX surface them?
- What is the rollback/disable path (flag/default-off/fallback)?
Run the slicing rubric:
- If the scope triggers a red flag, propose a split into PRD-1/PRD-2/... and proceed with the smallest slice that unblocks the next.
Use the PRD template at assets/prd-template.md.
Fill sections (short, explicit; keep the template headings):
- Introduction/Overview + goals
- In scope + non-goals (out of scope)
- User stories (US-001...), one sprint-sized
- Functional requirements (FR-001...)
- Acceptance criteria + verification plan per story (measurable; tied to a pack/fixture/script)
- Failure states and UX (no silent failures)
- Metrics/logging + rollback/disable path
- Risks + dependencies
- Success metrics + open questions
- Sources: link to shaping inputs used
- Appendix (optional): shaping notes / key excerpts when needed (see "No Context Loss")
Ensure criteria map to verification; split oversized stories. If generating multiple PRDs:
- Create the overall/spine PRD at the dossier root as
prd-overall.md.
- Create each slice PRD under
prds/<slice_id>_<slug>/prd.md (one folder per slice).
Each PRD must be independently implementable and must not lose shaping input information.
Verification
- PRD delivers one affordance / one observable capability.
- Acceptance criteria measurable, testable, and tied to at least one pack/fixture/script.
- Acceptance criteria mapped to verification (tests/build/smoke/scripts).
- Failure modes surfaced in UX (no silent failures).
- At least 1 metric/log signal is specified.
- Rollback/disable path is explicit (flag or safe default).
- Stories small, priority ordered.
- Location matches
docs/AGENTS.md.
- If there are multiple PRDs for a dossier:
- the overall/spine PRD is
prd-overall.md in the dossier root
- each slice lives under
prds/<slice_id>_<slug>/prd.md (folder-per-slice; lowest-level PRD filename is always prd.md)
- Sources section links to shaping inputs used.
- No information is lost from shaping inputs (details are integrated into the PRD or captured in the appendix).
1---2name: create-prd3description: Draft PRD with scope, stories, acceptance criteria, verification. Use when shaping a new feature or spec.4---56# Create PRD78## Quick Start91. Copy the template: `assets/prd-template.md`102. Fill it out in the target dossier:11 - Single-PRD dossier: `prd.md`12 - Multi-PRD dossier:13 - Overall / spine PRD at the dossier root: `prd-overall.md`14 - Slice PRDs under `prds/`: `prds/<slice_id>_<slug>/prd.md`1516 Notes:17 - Lowest-level PRD filenames are always `prd.md` (no `prd-slice-*` filenames).18 - Use a short kebab-case slug like `auth-token-rotation` or `invoice-pdf-export`.193. Pull all details from shaping inputs into the PRD so it’s implementable without extra context (no information loss)2021## PRD Slicing Rubric (Reusable)2223### Rules of thumb (thin PRDs)24- One PRD should deliver **one user-visible affordance** (or one backend capability with a **measurable, observable effect**), not a whole workflow.25- Each PRD must have **measurable acceptance criteria** tied to at least one **replayable verification pack** (fixture data, synthetic dataset, scripted scenario, etc.).26- Keep PRDs **vertical-ish**: UI + a thin API/data change where needed, but avoid building platform layers unless they **directly unblock the next slice**.27- If a PRD introduces a new failure mode, it must also introduce the **UX to surface it** (no silent failures).28- Prefer **scaffold then replace**: ship a deterministic baseline behind stable contracts first, then swap in ML/OCR/retrieval/LLM (or other complex components) behind the same interface.2930### Examples (good slices)31- "UI affordance X triggers state Y, persists, and is visible after refresh."32- "API returns payload + stable checksum/hash so clients can detect mismatches."33- "Verifier rejects records on checksum mismatch and surfaces a user-visible error state."34- "Parser extracts a single structured list into a table with row-level provenance."3536### Examples (bad slices)37- "Build ingestion + parsing + retrieval + drafting + verification + export" (too many risks bundled).38- "Implement an autonomous multi-agent copilot" (non-deterministic + typically too broad for a single slice).39- "Add full template/customisation system" (platform work without proving the core loop).4041### Red flags a PRD is too fat42- Touches 3+ major subsystems/components in one go.43- Needs more than 1-2 new schemas or widespread data model churn.44- Acceptance criteria can't be tested against a pack/fixture/script.45- Contains multiple hard unknowns at once (new parsing + matching + verification together).4647### Minimum PRD structure (every PRD)48The minimum structure is defined by `assets/prd-template.md` and must include:49- Introduction/Overview (problem + goal)50- Goals51- User stories52- Functional requirements (numbered)53- Non-goals (out of scope)54- Success metrics55- Open questions5657Additionally, every PRD must include:58- Acceptance criteria + verification plan (pack/fixture/script)59- Failure states + user-visible UX (no silent failures)60- Metrics/logging (at least 1 signal)61- Rollback/disable path (feature flag or safe default)62- A lightweight "Sources" section pointing to shaping inputs (brief/breadboard/spike/risk-register)6364## Inputs65One or more of the following:66- Problem statement + target users67- Success metric68- Constraints, risks, dependencies69- Any existing verification packs/fixtures/scripts (or willingness to create a minimal one)7071## No Context Loss (Requirement)72If any of the following shaping files exist, no information should be lost from them:73- `brief.md`74- `breadboard-pack.md`75- `spike-investigation.md`76- `risk-register.md`7778Guidance:79- Prefer integrating shaping details directly into the PRD sections (requirements, risks, constraints, UX, verification).80- Add a short "Sources" section with links/paths to the shaping files you used.81- If a detail does not fit cleanly into a PRD section, add it to the appendix as notes or key excerpts. Avoid dumping large verbatim blocks by default.82- Each PRD must be implementable without needing additional context outside the PRD.8384Try find this information:85- `brief.md`86- `breadboard-pack.md`87- `spike-investigation.md` 88- `risk-register.md`8990Where unclear, use the `ask-questions-if-underspecified` skill.9192## Outputs93- Single-PRD dossier: `prd.md` in the dossier root.94- Multi-PRD dossier:95 - Overall / spine PRD in the dossier root as `prd-overall.md`.96 - Slice PRDs under `prds/<slice_id>_<slug>/prd.md`.9798## Steps991. Ask 3-5 clarifying questions (answerable as 1A, 2B) that force a thin slice:100 - What is the single user-visible affordance (or single observable backend capability)?101 - What is the primary observable effect (what changes, where can we see it)?102 - What pack/fixture/script will we use to verify acceptance criteria?103 - What new failure modes does this introduce, and how should UX surface them?104 - What is the rollback/disable path (flag/default-off/fallback)?1052. Run the slicing rubric:106 - If the scope triggers a red flag, propose a split into PRD-1/PRD-2/... and proceed with the smallest slice that unblocks the next.1073. Use the PRD template at `assets/prd-template.md`.1084. Fill sections (short, explicit; keep the template headings):109 - Introduction/Overview + goals110 - In scope + non-goals (out of scope)111 - User stories (US-001...), one sprint-sized112 - Functional requirements (FR-001...)113 - Acceptance criteria + verification plan per story (measurable; tied to a pack/fixture/script)114 - Failure states and UX (no silent failures)115 - Metrics/logging + rollback/disable path116 - Risks + dependencies117 - Success metrics + open questions118 - Sources: link to shaping inputs used119 - Appendix (optional): shaping notes / key excerpts when needed (see "No Context Loss")1205. Ensure criteria map to verification; split oversized stories. If generating multiple PRDs:121 - Create the overall/spine PRD at the dossier root as `prd-overall.md`.122 - Create each slice PRD under `prds/<slice_id>_<slug>/prd.md` (one folder per slice).123124 Each PRD must be independently implementable and must not lose shaping input information.125126## Verification127- PRD delivers one affordance / one observable capability.128- Acceptance criteria measurable, testable, and tied to at least one pack/fixture/script.129- Acceptance criteria mapped to verification (tests/build/smoke/scripts).130- Failure modes surfaced in UX (no silent failures).131- At least 1 metric/log signal is specified.132- Rollback/disable path is explicit (flag or safe default).133- Stories small, priority ordered.134- Location matches `docs/AGENTS.md`.135- If there are multiple PRDs for a dossier:136 - the overall/spine PRD is `prd-overall.md` in the dossier root137 - each slice lives under `prds/<slice_id>_<slug>/prd.md` (folder-per-slice; lowest-level PRD filename is always `prd.md`)138- Sources section links to shaping inputs used.139- No information is lost from shaping inputs (details are integrated into the PRD or captured in the appendix).