PRD Writer: Writing product requirements document...
Generates a complete engineering-ready PRD with problem statement, user personas, functional and non-functional requirements, MoSCoW prioritization, success metrics, and implementation timeline.
Activation
When this skill activates, output:
PRD Writer: Writing product requirements document...
Then execute the protocol below.
Context Guard
| Context |
Status |
| User says "PRD", "product requirements", "requirements document" |
ACTIVE |
| User wants a full product spec for engineering handoff |
ACTIVE |
| User is planning a new product or major feature set |
ACTIVE |
| User wants a spec for ONE feature |
DORMANT: use Feature Spec |
| User wants user stories for sprint planning |
DORMANT: use User Story Generator |
Common Mistakes
| Mistake |
Why It's Wrong |
| "Start with the solution" |
Start with the problem. Requirements without clear problems lead to building the wrong thing. |
| "List every possible feature" |
A PRD with 50 features is a wish list, not a plan. MoSCoW forces hard trade-offs. |
| "Skip non-functional requirements" |
Performance, security, and scalability are invisible until they break. Spec them upfront. |
| "No success metrics" |
Without measurable outcomes, you can't tell if the product succeeded. Define metrics before building. |
| "Write it alone" |
PRDs need input from engineering, design, and stakeholders. Write the draft, then review together. |
Protocol
Step 1: Gather Product Context
If the user hasn't provided details, ask:
- Product name: what are you building?
- Problem statement: what problem does this solve? For whom?
- Target users: who are the primary and secondary users?
- Business context: why now? What's the opportunity?
- Scope: is this a new product, a major feature set, or a v2?
- Constraints: timeline, budget, team size, tech stack?
Step 2: Write Problem Statement
Problem statement template:
## Problem Statement
### The Problem
[Target users] struggle with [specific problem].
Currently, they [workaround or current behavior], which results in
[negative consequences: wasted time, lost revenue, frustration, errors].
### Evidence
- [Data point 1: user research, support tickets, survey results]
- [Data point 2: market data, competitor traction, industry trends]
- [Data point 3: internal metrics showing the gap]
### Impact
If unsolved, this problem costs [users/business] approximately
[quantified impact: time, money, churn rate, opportunity cost].
### Opportunity
By solving this problem, we can [positive outcome for users]
and [positive outcome for the business: revenue, retention, growth].
Problem statement rules:
- Be specific, "Users struggle with X" not "The experience could be better"
- Include evidence: data, quotes, or research that proves the problem exists
- Quantify the impact: makes prioritization decisions easier
- Separate the problem from the solution (no feature names here)
Step 3: Define User Personas
Create 2-3 personas (no more):
Persona template:
### Persona: [Name]: [Role/Title]
**Demographics:** [Age range, job title, company size, tech savviness]
**Goals:**
1. [Primary goal, what they're trying to achieve]
2. [Secondary goal]
**Pain points:**
1. [Frustration 1, related to the problem statement]
2. [Frustration 2]
3. [Frustration 3]
**Current behavior:**
- Currently uses [tool/process] to [accomplish task]
- Spends [X hours/week] on [manual process]
- Workaround: [How they hack around the limitation]
**Success criteria:**
- This persona succeeds when they can [measurable outcome]
**Quote:** "[A sentence that captures their frustration in their own words]"
Persona rules:
- Primary persona: The person the product is primarily designed for (gets priority in trade-offs)
- Secondary persona: Benefits from the product but doesn't drive design decisions
- Anti-persona: Who this product is NOT for (prevents scope creep)
Step 4: List Requirements (MoSCoW)
Functional requirements:
| ID |
Requirement |
Priority |
Persona |
Notes |
| FR-001 |
[User can do X] |
Must |
[Persona] |
[Context] |
| FR-002 |
[System does Y when Z] |
Must |
[Persona] |
[Context] |
| FR-003 |
[User can configure W] |
Should |
[Persona] |
[Context] |
| FR-004 |
[System supports V] |
Could |
[Persona] |
[Context] |
| FR-005 |
[User can do U] |
Won't (this version) |
[Persona] |
[Context] |
MoSCoW definitions:
| Priority |
Meaning |
Rule of Thumb |
| Must |
Product doesn't work without it |
60% of effort |
| Should |
Important but not blocking launch |
20% of effort |
| Could |
Nice to have, include if time allows |
15% of effort |
| Won't |
Explicitly out of scope for this version |
5% (spec only, don't build) |
Non-functional requirements:
| ID |
Category |
Requirement |
Target |
| NFR-001 |
Performance |
Page load time |
<2 seconds (p95) |
| NFR-002 |
Performance |
API response time |
<500ms (p95) |
| NFR-003 |
Scalability |
Concurrent users |
[X] users |
| NFR-004 |
Availability |
Uptime SLA |
99.9% |
| NFR-005 |
Security |
Authentication |
[Method: OAuth, JWT, etc.] |
| NFR-006 |
Security |
Data encryption |
At rest + in transit |
| NFR-007 |
Accessibility |
WCAG compliance |
Level AA |
| NFR-008 |
Compatibility |
Browser support |
[List of browsers] |
| NFR-009 |
Data |
Backup frequency |
[Daily/hourly] |
| NFR-010 |
Compliance |
Regulations |
[GDPR, SOC 2, HIPAA, etc.] |
Requirement writing rules:
- Each requirement should be testable (you can verify it's done)
- Use "User can [action]" or "System [behavior] when [condition]"
- Never combine two requirements in one row
- Include "Won't" items explicitly, prevents scope creep conversations later
Step 5: Define User Flows
For each Must requirement, document the primary user flow:
User flow template:
### Flow: [Action Name]
**Trigger:** [What initiates this flow]
**Actor:** [Which persona]
**Preconditions:** [What must be true before this flow starts]
**Happy path:**
1. User [action]
2. System [response]
3. User [action]
4. System [response]
5. User sees [outcome/confirmation]
**Error states:**
- If [condition], show [error message] and [recovery action]
- If [condition], redirect to [fallback]
**Edge cases:**
- [Edge case 1: what happens when...]
- [Edge case 2: what happens when...]
Step 6: Define Success Metrics
| Metric |
Current |
Target |
Timeframe |
How to Measure |
| [Primary metric, e.g., conversion rate] |
[X]% |
[Y]% |
[90 days] |
[Analytics tool] |
| [Secondary metric, e.g., time-on-task] |
[X min] |
[Y min] |
[90 days] |
[Analytics tool] |
| [Business metric, e.g., revenue impact] |
$[X] |
$[Y] |
[6 months] |
[Revenue dashboard] |
| [User satisfaction, e.g., NPS] |
[X] |
[Y] |
[90 days] |
[Survey tool] |
Metric rules:
- 1 primary metric (the North Star for this product/feature)
- 2-3 secondary metrics (supporting indicators)
- 1 guardrail metric (something that must NOT get worse, e.g., page load time)
- All metrics must have current baselines and targets with timeframes
Step 7: Outline Timeline & Dependencies
Phase breakdown:
| Phase |
Scope |
Duration |
Dependencies |
| Phase 1: Foundation |
Must-have features only |
[X weeks] |
[None / design complete / API ready] |
| Phase 2: Enhancement |
Should-have features |
[X weeks] |
Phase 1 complete |
| Phase 3: Polish |
Could-have features + optimization |
[X weeks] |
Phase 2 complete |
Key dependencies:
Risks:
| Risk |
Probability |
Impact |
Mitigation |
| [Risk 1] |
High/Med/Low |
High/Med/Low |
[Mitigation strategy] |
| [Risk 2] |
High/Med/Low |
High/Med/Low |
[Mitigation strategy] |
Output Format
# PRD: [Product Name]
**Author:** [Name]
**Date:** [Date]
**Version:** [1.0]
**Status:** [Draft / In Review / Approved]
## 1. Problem Statement
[From Step 2]
## 2. User Personas
[From Step 3]
## 3. Requirements
### 3.1 Functional Requirements
[MoSCoW table from Step 4]
### 3.2 Non-Functional Requirements
[NFR table from Step 4]
## 4. User Flows
[From Step 5]
## 5. Success Metrics
[From Step 6]
## 6. Timeline & Dependencies
[From Step 7]
## 7. Open Questions
[Anything unresolved that needs stakeholder input]
## 8. Appendix
[Wireframes, research data, competitive context]
Completion
PRD Writer: Complete!
Product: [Name]
Problem: [One-line summary]
Personas: [Count]
Must-have requirements: [Count]
Total requirements: [Count]
Phases: [Count]
Estimated timeline: [X weeks]
Next steps:
1. Review with engineering for feasibility and estimates
2. Review with design for user flow validation
3. Get stakeholder sign-off on MoSCoW priorities
4. Break Phase 1 "Must" requirements into user stories (use User Story Generator)
5. Schedule kickoff meeting
Level History
- Lv.1: Base: Problem statement template with evidence/impact/opportunity, persona template (goals, pains, behaviors, quote), MoSCoW functional requirements table, non-functional requirements (10 categories), user flow template with error states and edge cases, success metrics with baselines/targets/timeframes, phased timeline with dependencies and risk matrix. (Origin: MemStack Pro v3.2, Mar 2026)
1---2name: memstack-product-prd-writer3description: Use this skill when the user says 'PRD', 'product requirements', 'requirements document', or needs a complete engineering-ready PRD with problem statement, personas, MoSCoW features, and success metrics. Do NOT use for single feature specs or user story backlogs.4license: Proprietary, MemStack™ Pro by CW Affiliate Investments LLC. See 5---67# PRD Writer: Writing product requirements document...8*Generates a complete engineering-ready PRD with problem statement, user personas, functional and non-functional requirements, MoSCoW prioritization, success metrics, and implementation timeline.*910## Activation1112When this skill activates, output:1314`PRD Writer: Writing product requirements document...`1516Then execute the protocol below.1718## Context Guard1920| Context | Status |21|---------|--------|22| User says "PRD", "product requirements", "requirements document" | ACTIVE |23| User wants a full product spec for engineering handoff | ACTIVE |24| User is planning a new product or major feature set | ACTIVE |25| User wants a spec for ONE feature | DORMANT: use Feature Spec |26| User wants user stories for sprint planning | DORMANT: use User Story Generator |2728## Common Mistakes2930| Mistake | Why It's Wrong |31|---------|---------------|32| "Start with the solution" | Start with the problem. Requirements without clear problems lead to building the wrong thing. |33| "List every possible feature" | A PRD with 50 features is a wish list, not a plan. MoSCoW forces hard trade-offs. |34| "Skip non-functional requirements" | Performance, security, and scalability are invisible until they break. Spec them upfront. |35| "No success metrics" | Without measurable outcomes, you can't tell if the product succeeded. Define metrics before building. |36| "Write it alone" | PRDs need input from engineering, design, and stakeholders. Write the draft, then review together. |3738## Protocol3940### Step 1: Gather Product Context4142If the user hasn't provided details, ask:4344> 1. **Product name**: what are you building?45> 2. **Problem statement**: what problem does this solve? For whom?46> 3. **Target users**: who are the primary and secondary users?47> 4. **Business context**: why now? What's the opportunity?48> 5. **Scope**: is this a new product, a major feature set, or a v2?49> 6. **Constraints**: timeline, budget, team size, tech stack?5051### Step 2: Write Problem Statement5253**Problem statement template:**5455```markdown56## Problem Statement5758### The Problem59[Target users] struggle with [specific problem].6061Currently, they [workaround or current behavior], which results in62[negative consequences: wasted time, lost revenue, frustration, errors].6364### Evidence65- [Data point 1: user research, support tickets, survey results]66- [Data point 2: market data, competitor traction, industry trends]67- [Data point 3: internal metrics showing the gap]6869### Impact70If unsolved, this problem costs [users/business] approximately71[quantified impact: time, money, churn rate, opportunity cost].7273### Opportunity74By solving this problem, we can [positive outcome for users]75and [positive outcome for the business: revenue, retention, growth].76```7778**Problem statement rules:**79- Be specific, "Users struggle with X" not "The experience could be better"80- Include evidence: data, quotes, or research that proves the problem exists81- Quantify the impact: makes prioritization decisions easier82- Separate the problem from the solution (no feature names here)8384### Step 3: Define User Personas8586Create 2-3 personas (no more):8788**Persona template:**8990```markdown91### Persona: [Name]: [Role/Title]9293**Demographics:** [Age range, job title, company size, tech savviness]9495**Goals:**961. [Primary goal, what they're trying to achieve]972. [Secondary goal]9899**Pain points:**1001. [Frustration 1, related to the problem statement]1012. [Frustration 2]1023. [Frustration 3]103104**Current behavior:**105- Currently uses [tool/process] to [accomplish task]106- Spends [X hours/week] on [manual process]107- Workaround: [How they hack around the limitation]108109**Success criteria:**110- This persona succeeds when they can [measurable outcome]111112**Quote:** "[A sentence that captures their frustration in their own words]"113```114115**Persona rules:**116- Primary persona: The person the product is primarily designed for (gets priority in trade-offs)117- Secondary persona: Benefits from the product but doesn't drive design decisions118- Anti-persona: Who this product is NOT for (prevents scope creep)119120### Step 4: List Requirements (MoSCoW)121122**Functional requirements:**123124| ID | Requirement | Priority | Persona | Notes |125|----|------------|----------|---------|-------|126| FR-001 | [User can do X] | Must | [Persona] | [Context] |127| FR-002 | [System does Y when Z] | Must | [Persona] | [Context] |128| FR-003 | [User can configure W] | Should | [Persona] | [Context] |129| FR-004 | [System supports V] | Could | [Persona] | [Context] |130| FR-005 | [User can do U] | Won't (this version) | [Persona] | [Context] |131132**MoSCoW definitions:**133134| Priority | Meaning | Rule of Thumb |135|----------|---------|--------------|136| **Must** | Product doesn't work without it | 60% of effort |137| **Should** | Important but not blocking launch | 20% of effort |138| **Could** | Nice to have, include if time allows | 15% of effort |139| **Won't** | Explicitly out of scope for this version | 5% (spec only, don't build) |140141**Non-functional requirements:**142143| ID | Category | Requirement | Target |144|----|----------|------------|--------|145| NFR-001 | Performance | Page load time | <2 seconds (p95) |146| NFR-002 | Performance | API response time | <500ms (p95) |147| NFR-003 | Scalability | Concurrent users | [X] users |148| NFR-004 | Availability | Uptime SLA | 99.9% |149| NFR-005 | Security | Authentication | [Method: OAuth, JWT, etc.] |150| NFR-006 | Security | Data encryption | At rest + in transit |151| NFR-007 | Accessibility | WCAG compliance | Level AA |152| NFR-008 | Compatibility | Browser support | [List of browsers] |153| NFR-009 | Data | Backup frequency | [Daily/hourly] |154| NFR-010 | Compliance | Regulations | [GDPR, SOC 2, HIPAA, etc.] |155156**Requirement writing rules:**157- Each requirement should be testable (you can verify it's done)158- Use "User can [action]" or "System [behavior] when [condition]"159- Never combine two requirements in one row160- Include "Won't" items explicitly, prevents scope creep conversations later161162### Step 5: Define User Flows163164For each Must requirement, document the primary user flow:165166**User flow template:**167168```markdown169### Flow: [Action Name]170171**Trigger:** [What initiates this flow]172**Actor:** [Which persona]173**Preconditions:** [What must be true before this flow starts]174175**Happy path:**1761. User [action]1772. System [response]1783. User [action]1794. System [response]1805. User sees [outcome/confirmation]181182**Error states:**183- If [condition], show [error message] and [recovery action]184- If [condition], redirect to [fallback]185186**Edge cases:**187- [Edge case 1: what happens when...]188- [Edge case 2: what happens when...]189```190191### Step 6: Define Success Metrics192193| Metric | Current | Target | Timeframe | How to Measure |194|--------|---------|--------|-----------|---------------|195| [Primary metric, e.g., conversion rate] | [X]% | [Y]% | [90 days] | [Analytics tool] |196| [Secondary metric, e.g., time-on-task] | [X min] | [Y min] | [90 days] | [Analytics tool] |197| [Business metric, e.g., revenue impact] | $[X] | $[Y] | [6 months] | [Revenue dashboard] |198| [User satisfaction, e.g., NPS] | [X] | [Y] | [90 days] | [Survey tool] |199200**Metric rules:**201- 1 primary metric (the North Star for this product/feature)202- 2-3 secondary metrics (supporting indicators)203- 1 guardrail metric (something that must NOT get worse, e.g., page load time)204- All metrics must have current baselines and targets with timeframes205206### Step 7: Outline Timeline & Dependencies207208**Phase breakdown:**209210| Phase | Scope | Duration | Dependencies |211|-------|-------|----------|-------------|212| Phase 1: Foundation | Must-have features only | [X weeks] | [None / design complete / API ready] |213| Phase 2: Enhancement | Should-have features | [X weeks] | Phase 1 complete |214| Phase 3: Polish | Could-have features + optimization | [X weeks] | Phase 2 complete |215216**Key dependencies:**217- [ ] [Dependency 1: Design mockups for [flow]: needed by [date]]218- [ ] [Dependency 2: API endpoint from [team]: needed by [date]]219- [ ] [Dependency 3: Third-party integration approval: needed by [date]]220221**Risks:**222223| Risk | Probability | Impact | Mitigation |224|------|------------|--------|-----------|225| [Risk 1] | High/Med/Low | High/Med/Low | [Mitigation strategy] |226| [Risk 2] | High/Med/Low | High/Med/Low | [Mitigation strategy] |227228## Output Format229230```markdown231# PRD: [Product Name]232233**Author:** [Name]234**Date:** [Date]235**Version:** [1.0]236**Status:** [Draft / In Review / Approved]237238## 1. Problem Statement239[From Step 2]240241## 2. User Personas242[From Step 3]243244## 3. Requirements245### 3.1 Functional Requirements246[MoSCoW table from Step 4]247### 3.2 Non-Functional Requirements248[NFR table from Step 4]249250## 4. User Flows251[From Step 5]252253## 5. Success Metrics254[From Step 6]255256## 6. Timeline & Dependencies257[From Step 7]258259## 7. Open Questions260[Anything unresolved that needs stakeholder input]261262## 8. Appendix263[Wireframes, research data, competitive context]264```265266## Completion267268```269PRD Writer: Complete!270271Product: [Name]272Problem: [One-line summary]273Personas: [Count]274Must-have requirements: [Count]275Total requirements: [Count]276Phases: [Count]277Estimated timeline: [X weeks]278279Next steps:2801. Review with engineering for feasibility and estimates2812. Review with design for user flow validation2823. Get stakeholder sign-off on MoSCoW priorities2834. Break Phase 1 "Must" requirements into user stories (use User Story Generator)2845. Schedule kickoff meeting285```286287## Level History288289- **Lv.1**: Base: Problem statement template with evidence/impact/opportunity, persona template (goals, pains, behaviors, quote), MoSCoW functional requirements table, non-functional requirements (10 categories), user flow template with error states and edge cases, success metrics with baselines/targets/timeframes, phased timeline with dependencies and risk matrix. (Origin: MemStack Pro v3.2, Mar 2026)