# Product Requirements Document

## 1. Problem Statement

{What problem are we solving? Who has this problem? Why does it matter? What happens if we do not solve it?}

## 2. Goals

- {Goal 1: measurable outcome we want to achieve}
- {Goal 2: measurable outcome we want to achieve}
- {Goal 3: measurable outcome we want to achieve}

## 3. Non-Goals

- {Explicitly out of scope item 1 — and why}
- {Explicitly out of scope item 2 — and why}

## 4. User Personas

### Persona: {Name}
- **Role**: {Who they are}
- **Goals**: {What they want to accomplish}
- **Pain points**: {What frustrates them today}
- **Technical level**: {Novice / Intermediate / Expert}

### Persona: {Name}
- **Role**: {Who they are}
- **Goals**: {What they want to accomplish}
- **Pain points**: {What frustrates them today}
- **Technical level**: {Novice / Intermediate / Expert}

## 5. User Journeys

Define the end-to-end flows users perform. Each journey chains multiple requirements into a single testable path. E2E tests are derived from these journeys.

### Journey: {Journey Name}
**Priority:** Must / Should / Could
**Persona:** {which persona performs this journey}

| Step | User Does | System Response | Requirements |
|---|---|---|---|
| 1 | {user action} | {what the system does in response} | {FR-xxx} |
| 2 | {user action} | {what the system does in response} | {FR-xxx} |
| 3 | {user action} | {what the system does in response} | {FR-xxx} |

**Error paths:**
- At step {N}, if {error condition}: {expected system behavior}

### Journey: {Journey Name}
**Priority:** Must / Should / Could
**Persona:** {which persona performs this journey}

| Step | User Does | System Response | Requirements |
|---|---|---|---|
| 1 | {user action} | {system response} | {FR-xxx} |

## 6. Requirements

### 6.1 Functional Requirements

| ID | Requirement | Priority | Acceptance Criteria |
|----|------------|----------|-------------------|
| FR-001 | {requirement description} | Must | {how to verify it works} |
| FR-002 | {requirement description} | Should | {how to verify it works} |
| FR-003 | {requirement description} | Could | {how to verify it works} |

### 6.2 Non-Functional Requirements

| ID | Requirement | Category | Target |
|----|------------|----------|--------|
| NFR-001 | {requirement} | Performance | {e.g., p95 latency < 200ms} |
| NFR-002 | {requirement} | Reliability | {e.g., 99.9% uptime} |
| NFR-003 | {requirement} | Security | {e.g., SOC2 compliant} |
| NFR-004 | {requirement} | Scalability | {e.g., support 10k concurrent users} |
| NFR-005 | {requirement} | Accessibility | {e.g., WCAG 2.1 AA} |

## 7. Success Metrics

| Metric | Current Baseline | Target | Measurement Method |
|--------|-----------------|--------|-------------------|
| {metric name} | {current value or N/A} | {target value} | {how we measure} |
| {metric name} | {current value or N/A} | {target value} | {how we measure} |

## 8. Timeline

| Milestone | Target Date | Dependencies |
|-----------|------------|-------------|
| Requirements finalized | {date} | Stakeholder approval |
| Architecture approved | {date} | Requirements |
| MVP complete | {date} | Architecture |
| Testing complete | {date} | MVP |
| Launch | {date} | Testing |

## 9. Open Questions

| # | Question | Owner | Status | Answer |
|---|---------|-------|--------|--------|
| 1 | {question that needs to be resolved} | {who decides} | Open | — |
| 2 | {question that needs to be resolved} | {who decides} | Resolved | {answer} |
