PRD: Product Requirements Document
Generate product specs at the right depth for the decision stage. From a quick one-pager to a full PRD to a technical RFC.
When to Activate
- User says "write a PRD", "product spec", "one-pager for X", "RFC for X"
- User asks for requirements, a spec, or a brief for a feature
- User says "spec this out" or "document the requirements"
Depth Modes
Auto-detect from user phrasing. If ambiguous, ask.
| Mode |
When |
Length |
Contains |
| One-pager |
Early exploration, exec alignment |
1 page |
Problem, hypothesis, success criteria, key risks |
| Brief |
Ready to start design/discovery |
2-3 pages |
Above + user stories, scope (in/out), dependencies |
| Full PRD |
Ready to build |
4-8 pages |
Above + detailed requirements, edge cases, metrics, rollout plan, open questions |
| RFC |
Technical decision needed |
2-5 pages |
Context, proposal, alternatives considered, tradeoffs, migration plan |
Detection heuristics
- "quick spec", "one-pager", "executive summary" → One-pager
- "brief", "enough to start building", "design brief" → Brief
- "PRD", "full spec", "detailed requirements" → Full PRD
- "RFC", "tech spec", "architecture decision", "should we migrate" → RFC
Process
Step 1: Gather Context
Before writing, check for existing context:
- Check for market-research output: If competitive analysis exists for this domain, reference it
- Check memory: Look for project context, stakeholder preferences, prior decisions
- Ask the user (if context is thin):
- What problem does this solve?
- Who is it for?
- What does success look like?
- What constraints exist (timeline, team, tech)?
Do not block on missing context. Use what exists, flag what is assumed.
Step 2: Draft
Write the document at the detected depth level, following the templates below.
Tag uncertain claims:
[Assumption] for things you inferred but the user didn't confirm
[Needs data] for metrics or claims that need validation
[Open question] for decisions that need stakeholder input
Step 3: Review and Cross-Reference
After drafting, suggest next steps:
- "Run
prioritize to score this against your backlog"
- "Use
lenny-podcast for discovery frameworks (Opportunity Solution Trees, JTBD)"
- "Run
market-research if you need competitive context"
- "Use
critique to pressure-test this doc" (if critique skill exists)
Templates
One-Pager
# {Feature Name}: One-Pager
**Status:** Draft
**Author:** {name}
**Date:** {date}
## Problem
{1-2 paragraphs: who has this problem, how painful is it, what evidence exists}
## Hypothesis
If we {solution}, then {outcome}, because {reasoning}.
## Success Criteria
- {Metric 1}: {target}
- {Metric 2}: {target}
## Key Risks
1. {Risk}: {mitigation}
2. {Risk}: {mitigation}
## Open Questions
- {Question that needs answering before committing}
Brief
# {Feature Name}: Brief
**Status:** Draft
**Author:** {name}
**Date:** {date}
## Problem
{Problem statement with evidence}
## User Stories
- As a {persona}, I want to {action}, so that {outcome}
- ...
## Proposed Solution
{High-level approach, 2-3 paragraphs}
## Scope
**In scope:**
- {Item}
**Out of scope:**
- {Item} (reason)
## Dependencies
- {Team/system}: {what we need from them}
## Success Criteria
- {Metric}: {target} (measured by {method})
## Timeline
- Discovery: {dates}
- Build: {dates}
- Launch: {date}
## Open Questions
- {Question}
Full PRD
# {Feature Name}: PRD
**Status:** Draft
**Author:** {name}
**Date:** {date}
**Stakeholders:** {names}
## Problem Statement
{Detailed problem with user research evidence, data, and business impact}
## Goals and Non-Goals
**Goals:**
- {Goal with measurable outcome}
**Non-Goals:**
- {Explicitly excluded scope}
## User Stories and Requirements
### P0 (Must Have)
| ID | Story | Acceptance Criteria |
|----|-------|-------------------|
| R1 | As a {persona}... | Given/When/Then |
### P1 (Should Have)
| ID | Story | Acceptance Criteria |
|----|-------|-------------------|
### P2 (Nice to Have)
| ID | Story | Acceptance Criteria |
|----|-------|-------------------|
## Design
### User Flow
{Step-by-step flow or link to design file}
### Edge Cases
- {Scenario}: {Expected behavior}
### Error States
- {Error}: {How the user recovers}
## Technical Considerations
- {Architecture implications}
- {Data model changes}
- {API changes}
- {Performance requirements}
## Metrics and Analytics
| Metric | Baseline | Target | Measurement |
|--------|----------|--------|-------------|
| {KPI} | {current} | {goal} | {how tracked} |
## Rollout Plan
1. {Phase 1}: {scope, audience, duration}
2. {Phase 2}: {scope, audience, duration}
3. {GA}: {criteria for full launch}
## Risks and Mitigations
| Risk | Likelihood | Impact | Mitigation |
|------|-----------|--------|------------|
| {Risk} | H/M/L | H/M/L | {Plan} |
## Open Questions
- {Question}: {owner, due date}
## Dependencies
- {Team}: {deliverable, timeline}
## Appendix
- {Links to research, designs, prior art}
RFC
# RFC: {Decision Title}
**Status:** Draft
**Author:** {name}
**Date:** {date}
**Decision needed by:** {date}
## Context
{Why this decision matters now. What changed or what is broken.}
## Proposal
{The recommended approach, explained clearly enough for someone outside the team.}
## Alternatives Considered
### Option A: {Name}
- **Pros:** {list}
- **Cons:** {list}
- **Effort:** {estimate}
### Option B: {Name} (recommended)
- **Pros:** {list}
- **Cons:** {list}
- **Effort:** {estimate}
### Option C: Do Nothing
- **Pros:** No effort
- **Cons:** {what gets worse}
## Tradeoffs
{The key tension in this decision. What are we optimizing for? What are we giving up?}
## Migration Plan
1. {Step with timeline}
2. {Step with timeline}
3. {Rollback plan if it fails}
## Open Questions
- {Question}
Rules
- Always tag uncertain claims with
[Assumption], [Needs data], or [Open question]
- Never fabricate metrics, user quotes, or data. Use placeholders if real data is not available.
- Match depth to stage. Do not write a full PRD when a one-pager is sufficient.
- Include "Out of scope" explicitly. The most common PRD failure is unbounded scope.
- Prefer concrete acceptance criteria over vague descriptions.
- If the user provides raw notes or a braindump, extract structure from it rather than asking them to reformat.
1---2name: prd3description: Write product requirements documents at variable depth: one-pager, brief, full PRD, or RFC. Auto-detects depth from context. Reads existing research and context if available. Triggers on: "write a PRD", "product spec", "one-pager", "RFC", "requirements doc", "spec for", "brief for".4---56# PRD: Product Requirements Document78Generate product specs at the right depth for the decision stage. From a quick one-pager to a full PRD to a technical RFC.910## When to Activate1112- User says "write a PRD", "product spec", "one-pager for X", "RFC for X"13- User asks for requirements, a spec, or a brief for a feature14- User says "spec this out" or "document the requirements"1516## Depth Modes1718Auto-detect from user phrasing. If ambiguous, ask.1920| Mode | When | Length | Contains |21|------|------|--------|----------|22| **One-pager** | Early exploration, exec alignment | 1 page | Problem, hypothesis, success criteria, key risks |23| **Brief** | Ready to start design/discovery | 2-3 pages | Above + user stories, scope (in/out), dependencies |24| **Full PRD** | Ready to build | 4-8 pages | Above + detailed requirements, edge cases, metrics, rollout plan, open questions |25| **RFC** | Technical decision needed | 2-5 pages | Context, proposal, alternatives considered, tradeoffs, migration plan |2627### Detection heuristics28- "quick spec", "one-pager", "executive summary" → One-pager29- "brief", "enough to start building", "design brief" → Brief30- "PRD", "full spec", "detailed requirements" → Full PRD31- "RFC", "tech spec", "architecture decision", "should we migrate" → RFC3233## Process3435### Step 1: Gather Context3637Before writing, check for existing context:38391. **Check for market-research output**: If competitive analysis exists for this domain, reference it402. **Check memory**: Look for project context, stakeholder preferences, prior decisions413. **Ask the user** (if context is thin):42 - What problem does this solve?43 - Who is it for?44 - What does success look like?45 - What constraints exist (timeline, team, tech)?4647Do not block on missing context. Use what exists, flag what is assumed.4849### Step 2: Draft5051Write the document at the detected depth level, following the templates below.5253Tag uncertain claims:54- `[Assumption]` for things you inferred but the user didn't confirm55- `[Needs data]` for metrics or claims that need validation56- `[Open question]` for decisions that need stakeholder input5758### Step 3: Review and Cross-Reference5960After drafting, suggest next steps:61- "Run `prioritize` to score this against your backlog"62- "Use `lenny-podcast` for discovery frameworks (Opportunity Solution Trees, JTBD)"63- "Run `market-research` if you need competitive context"64- "Use `critique` to pressure-test this doc" (if critique skill exists)6566## Templates6768### One-Pager6970```markdown71# {Feature Name}: One-Pager7273**Status:** Draft74**Author:** {name}75**Date:** {date}7677## Problem78{1-2 paragraphs: who has this problem, how painful is it, what evidence exists}7980## Hypothesis81If we {solution}, then {outcome}, because {reasoning}.8283## Success Criteria84- {Metric 1}: {target}85- {Metric 2}: {target}8687## Key Risks881. {Risk}: {mitigation}892. {Risk}: {mitigation}9091## Open Questions92- {Question that needs answering before committing}93```9495### Brief9697```markdown98# {Feature Name}: Brief99100**Status:** Draft101**Author:** {name}102**Date:** {date}103104## Problem105{Problem statement with evidence}106107## User Stories108- As a {persona}, I want to {action}, so that {outcome}109- ...110111## Proposed Solution112{High-level approach, 2-3 paragraphs}113114## Scope115**In scope:**116- {Item}117118**Out of scope:**119- {Item} (reason)120121## Dependencies122- {Team/system}: {what we need from them}123124## Success Criteria125- {Metric}: {target} (measured by {method})126127## Timeline128- Discovery: {dates}129- Build: {dates}130- Launch: {date}131132## Open Questions133- {Question}134```135136### Full PRD137138```markdown139# {Feature Name}: PRD140141**Status:** Draft142**Author:** {name}143**Date:** {date}144**Stakeholders:** {names}145146## Problem Statement147{Detailed problem with user research evidence, data, and business impact}148149## Goals and Non-Goals150**Goals:**151- {Goal with measurable outcome}152153**Non-Goals:**154- {Explicitly excluded scope}155156## User Stories and Requirements157158### P0 (Must Have)159| ID | Story | Acceptance Criteria |160|----|-------|-------------------|161| R1 | As a {persona}... | Given/When/Then |162163### P1 (Should Have)164| ID | Story | Acceptance Criteria |165|----|-------|-------------------|166167### P2 (Nice to Have)168| ID | Story | Acceptance Criteria |169|----|-------|-------------------|170171## Design172173### User Flow174{Step-by-step flow or link to design file}175176### Edge Cases177- {Scenario}: {Expected behavior}178179### Error States180- {Error}: {How the user recovers}181182## Technical Considerations183- {Architecture implications}184- {Data model changes}185- {API changes}186- {Performance requirements}187188## Metrics and Analytics189| Metric | Baseline | Target | Measurement |190|--------|----------|--------|-------------|191| {KPI} | {current} | {goal} | {how tracked} |192193## Rollout Plan1941. {Phase 1}: {scope, audience, duration}1952. {Phase 2}: {scope, audience, duration}1963. {GA}: {criteria for full launch}197198## Risks and Mitigations199| Risk | Likelihood | Impact | Mitigation |200|------|-----------|--------|------------|201| {Risk} | H/M/L | H/M/L | {Plan} |202203## Open Questions204- {Question}: {owner, due date}205206## Dependencies207- {Team}: {deliverable, timeline}208209## Appendix210- {Links to research, designs, prior art}211```212213### RFC214215```markdown216# RFC: {Decision Title}217218**Status:** Draft219**Author:** {name}220**Date:** {date}221**Decision needed by:** {date}222223## Context224{Why this decision matters now. What changed or what is broken.}225226## Proposal227{The recommended approach, explained clearly enough for someone outside the team.}228229## Alternatives Considered230231### Option A: {Name}232- **Pros:** {list}233- **Cons:** {list}234- **Effort:** {estimate}235236### Option B: {Name} (recommended)237- **Pros:** {list}238- **Cons:** {list}239- **Effort:** {estimate}240241### Option C: Do Nothing242- **Pros:** No effort243- **Cons:** {what gets worse}244245## Tradeoffs246{The key tension in this decision. What are we optimizing for? What are we giving up?}247248## Migration Plan2491. {Step with timeline}2502. {Step with timeline}2513. {Rollback plan if it fails}252253## Open Questions254- {Question}255```256257## Rules258259- Always tag uncertain claims with `[Assumption]`, `[Needs data]`, or `[Open question]`260- Never fabricate metrics, user quotes, or data. Use placeholders if real data is not available.261- Match depth to stage. Do not write a full PRD when a one-pager is sufficient.262- Include "Out of scope" explicitly. The most common PRD failure is unbounded scope.263- Prefer concrete acceptance criteria over vague descriptions.264- If the user provides raw notes or a braindump, extract structure from it rather than asking them to reformat.