memstack-product-prd-writer

$npx mdskill add cwinvestments/memstack/memstack-product-prd-writer

*Generates a complete engineering-ready PRD with problem statement, user personas, functional and non-functional requirements, MoSCoW prioritization, success metrics, and implementation timeline.*

SKILL.md

.github/skills/memstack-product-prd-writerView on GitHub ↗
---
name: memstack-product-prd-writer
description: "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."
version: 1.0.0
license: "Proprietary — MemStack™ Pro by CW Affiliate Investments LLC. See LICENSE.txt"
---

# 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:

> 1. **Product name** — what are you building?
> 2. **Problem statement** — what problem does this solve? For whom?
> 3. **Target users** — who are the primary and secondary users?
> 4. **Business context** — why now? What's the opportunity?
> 5. **Scope** — is this a new product, a major feature set, or a v2?
> 6. **Constraints** — timeline, budget, team size, tech stack?

### Step 2: Write Problem Statement

**Problem statement template:**

```markdown
## 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:**

```markdown
### 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:**

```markdown
### 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:**
- [ ] [Dependency 1: Design mockups for [flow] — needed by [date]]
- [ ] [Dependency 2: API endpoint from [team] — needed by [date]]
- [ ] [Dependency 3: Third-party integration approval — needed by [date]]

**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

```markdown
# 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)

More from cwinvestments/memstack

SkillDescription
compressUse when the user says 'headroom', 'compression', 'token savings', 'proxy status', or asks about context window usage.
diaryUse when the user says 'save diary', 'log session', 'wrapping up', or at end of a productive session.
echoUse when the user references past sessions, asks 'what did we do', 'do you remember', 'last session', 'recall', or 'continue from'.
familiarUse when the user says 'dispatch', 'send familiar', 'split task', or needs work split across parallel CC sessions.
forgeUse when the user says 'forge this', 'new skill', 'create enchantment', or wants to create a MemStack skill.
governorUse when the user says 'new project', 'project init', 'what tier', 'scope', or discusses project maturity, complexity budget, or what's appropriate to build.
grimoireUse when the user says 'update context', 'update claude', 'save library', or after significant project changes.
memstack-automation-api-integrationUse this skill when the user says 'API integration', 'connect APIs', 'sync data', 'data mapping', 'rate limiting', or needs system-to-system connectors with authentication, rate limit handling, and error recovery. Generates API integration code with authentication (OAuth, API key, JWT), request/response mapping, rate limit handling, error recovery with circuit breakers, and sync monitoring. Do NOT use for visual n8n workflows or webhook receiving.
memstack-automation-content-pipelineUse this skill when the user says 'content pipeline', 'content automation', 'auto-publish', 'repurpose content', 'multi-platform publishing', or needs end-to-end content workflow from ideation through cross-platform formatting and publishing. Do NOT use for single social media posts or individual blog posts.
memstack-automation-cron-schedulerUse this skill when the user says 'cron job', 'scheduled task', 'run every', 'cron expression', 'recurring job', or needs production-grade scheduled jobs with overlap prevention, monitoring, and structured logging. Do NOT use for n8n workflows or event-driven webhooks.