home / skills / charon-fan / agent-playbook / prd-planner
npx playbooks add skill charon-fan/agent-playbook --skill prd-plannerReview the files below or copy the command above to add this skill to your agents.
---
name: prd-planner
description: Creates PRDs using persistent file-based planning. Use when user explicitly says "PRD", "product requirements document", or "产品需求文档". Combines PRD methodology with planning-with-files to avoid context switching.
allowed-tools: Read, Write, Edit, Bash, Grep, Glob, AskUserQuestion, WebSearch
metadata:
hooks:
after_complete:
- trigger: self-improving-agent
mode: background
reason: "Extract patterns and improve PRD quality"
- trigger: session-logger
mode: auto
reason: "Save session context"
---
# PRD Planner
A PRD creation skill that uses persistent file-based planning to maintain coherent thinking and avoid "left-brain vs right-brain" context switching issues.
## When This Skill Activates
This skill activates when you:
- Explicitly say "PRD", "prd", "create a PRD", or "产品需求文档"
- Say "product requirements document" or "产品需求"
- Mention "write a PRD for..."
- Say "PRD planning" or "PRD 设计"
**If user says "design solution" or "architecture design" without mentioning PRD, use `architecting-solutions` instead.**
## The Core Philosophy
> "PRD creation should be traceable, coherent, and persistent - not scattered across context switches."
This skill combines:
- **PRD methodology** (from architecting-solutions)
- **File-based persistence** (from planning-with-files)
To create a single, coherent PRD creation workflow that doesn't lose context.
## 4-File Pattern for PRD Creation
For every PRD project, create FOUR files:
Pick a SCOPE (short, unique, kebab-case slug) and use it as a prefix for all files.
```text
docs/{scope}-prd-notes.md → Store research, requirements, findings, options
docs/{scope}-prd-task-plan.md → Track PRD creation phases and progress
docs/{scope}-prd.md → Product requirements (what & why)
docs/{scope}-tech.md → Technical design (how)
```
### File Purposes
| File | Purpose | Audience | Updated When |
|------|---------|----------|--------------|
| `{scope}-prd-notes.md` | Raw research, requirements, architecture options (A/B/C) | Self + reviewers | New information gathered |
| `{scope}-prd-task-plan.md` | Track progress, phases, checkboxes, timestamps | PM + dev lead | Each phase completion |
| `{scope}-prd.md` | Product requirements (what & why), user flows | PM + stakeholders + devs | After requirements are clear |
| `{scope}-tech.md` | Technical design (API, data flow, implementation) | Developers + architects | After architecture is decided |
## Workflow
```
┌─────────────────────────────────────────────────────────────────┐
│ PRD Creation Workflow │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. Initialize → Create 4 files with template │
│ 2. Requirements → Gather to {scope}-prd-notes.md │
│ 2.5 Edge Cases → Scan codebase, infer patterns, ask smartly │
│ 3. Analysis → Research best practices, save to notes │
│ 4. Design → Propose architecture options (A/B/C), save to notes │
│ 5. PRD → Write product requirements to {scope}-prd.md │
│ 6. Tech → Write technical design to {scope}-tech.md │
│ 7. Validate → Review with user, finalize │
│ │
└─────────────────────────────────────────────────────────────────┘
↓
All thinking persisted to files
↓
No context switching
```
## Step 1: Initialize
Create the four files with templates:
### {scope}-prd-task-plan.md
```markdown
# PRD Task Plan: {Feature Name}
## Goal
Create a PRD and technical design for {feature description}.
## Owner
{User name/role}
## Phases
- [x] Phase 1: Initialize files ✓
- [ ] Phase 2: Gather requirements (CURRENT)
- [ ] Phase 3: Research & analysis
- [ ] Phase 4: Design solution
- [ ] Phase 5: Write PRD
- [ ] Phase 6: Write technical design
- [ ] Phase 7: Validate & finalize
## Status
**Currently in Phase 2** - Gathering requirements from user
## Progress Log
- {timestamp} - Phase 1 complete: Files initialized
```
### {scope}-prd-notes.md
```markdown
# PRD Notes: {Feature Name}
## Raw Requirements
(Add user requirements as they emerge)
## Constraints
(Add technical, business, time constraints)
## Inferred Patterns (from codebase)
| Edge Case | Source | Pattern Applied |
|-----------|--------|-----------------|
| (Filled after Step 2.5 codebase scan) | | |
## Edge Cases
### Auto-handled (following codebase patterns)
- (Filled after Step 2.5 analysis)
### Confirmed by User
- (Filled after user confirms edge case decisions)
### Open Questions
- (Track questions to ask user)
## Research Findings
(Add research on best practices, similar solutions)
## Architecture Options
- Option A: {Description}
- Pros: {Advantages}
- Cons: {Disadvantages}
- Option B: {Description}
- Pros: {Advantages}
- Cons: {Disadvantages}
- Option C: {Description}
- Pros: {Advantages}
- Cons: {Disadvantages}
**Selected**: Option {X}
```
### {scope}-prd.md
```markdown
# PRD: {Feature Name}
> Status: DRAFT
> Last updated: {timestamp}
## Table of Contents
- [Problem Statement](#problem-statement)
- [Goals and Non-Goals](#goals-and-non-goals)
- [Success Criteria](#success-criteria)
- [Scope](#scope)
- [Requirements](#requirements)
- [User Flows](#user-flows)
- [Implementation Plan](#implementation-plan)
---
## Problem Statement
_To be filled after requirements gathering_
## Goals and Non-Goals
### Goals
- {Specific achievable outcomes}
### Non-Goals
- {Explicit exclusions}
## Success Criteria
_To be filled with measurable criteria_
## Scope
### In Scope
- {Specific items included}
### Out of Scope
- {Specific items excluded}
... (rest of PRD sections)
```
### {scope}-tech.md
```markdown
# Technical Design: {Feature Name}
> Status: DRAFT
> Last updated: {timestamp}
## Overview
{High-level technical approach}
## Key Components
{List major components and their responsibilities}
## API Design
{API signatures, request/response formats}
## Data Flow
{How data flows through the system}
## Implementation Details
{Specific implementation notes}
## Migration Plan
{If applicable, how to migrate from existing system}
```
## Step 2: Gather Requirements
Ask clarifying questions and save responses to `{scope}-prd-notes.md`:
### Core Questions to Ask
1. **Problem**: What problem are we solving?
2. **Users**: Who will use this?
3. **Success**: How do we know it's successful?
4. **Constraints**: Any technical/time/budget constraints?
Save each answer to `{scope}-prd-notes.md` under appropriate section.
**Always update `{scope}-prd-task-plan.md` after gathering info:**
```markdown
- [x] Phase 2: Gather requirements ✓
- [ ] Phase 2.5: Edge case analysis (CURRENT)
- [ ] Phase 3: Research & analysis
```
## Step 2.5: Context-Aware Edge Case Analysis
Before asking users about edge cases, **scan the codebase first** to infer existing patterns. This reduces redundant questions and ensures consistency with the project.
> **Detailed reference**: See `references/edge-case-analysis.md` for full scanning commands and output formats.
### Quick Process
1. **Scan codebase** for existing patterns (delete strategy, error handling, empty states, pagination)
2. **Identify requirement type** (CRUD, State Workflow, Async, Data Display, Form, File)
3. **Generate smart assumptions** - patterns found in code don't need user confirmation
4. **Ask only when needed** - no precedent, multiple patterns, or business decision required
### When to Ask Users
| Condition | Action |
|-----------|--------|
| Pattern exists in codebase | Auto-apply, no question needed |
| No precedent found | Ask user with options |
| Multiple conflicting patterns | Ask user to choose |
| Business rule required | Ask user |
### Output to Notes File
Update `{scope}-prd-notes.md` with:
```markdown
## Inferred Patterns (from codebase)
| Edge Case | Source | Pattern Applied |
|-----------|--------|-----------------|
| Delete | `src/models/User.ts:45` | Soft delete |
## Edge Cases
### Auto-handled (following codebase patterns)
- Empty list → Use existing EmptyState component
### Confirmed by User
- Concurrent edit: Last write wins (confirmed {date})
```
**Update task plan:**
```markdown
- [x] Phase 2.5: Edge case analysis ✓
- [ ] Phase 3: Research & analysis (CURRENT)
```
## Step 3: Research & Analysis
Research best practices and save to `{scope}-prd-notes.md`:
```bash
# Search for similar implementations
grep -r "keyword" packages/ --include="*.ts"
# Search web for best practices
web search "best practices for {feature}"
```
Save findings to `{scope}-prd-notes.md` → Research Findings section.
## Step 4: Design Solution
Propose architecture with trade-offs, save to `{scope}-prd-notes.md`:
```markdown
## Architecture Options
- Option A: {Description}
- Pros: {Advantages}
- Cons: {Disadvantages}
- Option B: {Description}
- Pros: {Advantages}
- Cons: {Disadvantages}
- Option C: {Description}
- Pros: {Advantages}
- Cons: {Disadvantages}
**Selected**: Option {X} - because {reason}
```
## Step 5: Write PRD
Read `{scope}-prd-notes.md` and synthesize into polished PRD:
```markdown
1. Read {scope}-prd-notes.md to understand:
- Requirements gathered
- Research findings
- Architecture decision (which option was selected)
2. Write {scope}-prd.md with:
- Clear problem statement
- Goals and Non-Goals (explicit exclusions)
- Measurable success criteria (specific numbers/timings)
- Scope (In Scope / Out of Scope)
- Functional requirements
- Non-functional requirements
- User flows
- Implementation plan (high level)
3. Reference tech doc: "See {scope}-tech.md for technical design"
```
## Step 6: Write Technical Design
```markdown
1. Read {scope}-prd-notes.md for selected architecture option
2. Write {scope}-tech.md with:
- Overview (technical approach summary)
- Key Components (what pieces, responsibilities)
- API Design (signatures, contracts)
- Data Flow (how data moves through system)
- Implementation Details (specific notes)
- Migration Plan (if applicable)
```
## Step 7: Validate & Finalize
Review with user:
1. Present PRD summary
2. Ask for feedback
3. Incorporate changes
4. Mark Phase 7 complete
## Important Rules
| Rule | Bad | Good |
|------|-----|------|
| Use Files | Keep in memory | Save to {scope}-prd-notes.md |
| Update Plan | Move on without update | Update task-plan.md with checkbox |
| Read Before Decide | Decide from memory | Read notes first |
| Separate Docs | Mix PRD + Tech | PRD for "what", Tech for "how" |
| Include Options | Jump to solution | Document 2-3 options with pros/cons |
## Phase Transitions
Update `{scope}-prd-task-plan.md` after each phase with checkbox ✓ and timestamp.
## Completing a PRD
Mark all phases complete, set status to "✅ COMPLETE", log final deliverables.
## File Cleanup (Optional)
After PRD is complete:
- Keep `{scope}-prd-notes.md` for reference (shows decision process)
- Archive `{scope}-prd-task-plan.md` or delete
- Final outputs are `{scope}-prd.md` and `{scope}-tech.md`
## Quick Start Template
```markdown
# PRD Task Plan: {Feature}
## Goal
Create PRD and technical design for {description}
## Phases
- [ ] Initialize 4 files
- [ ] Gather requirements
- [ ] Research & analysis
- [ ] Design solution (A/B/C options)
- [ ] Write PRD
- [ ] Write technical design
- [ ] Validate & finalize
## Status
Phase 1: Initializing files
```
## Why This Works
| Problem | Solution |
|---------|----------|
| Context switching | All thinking in files, read anytime |
| Lost requirements | Saved to {scope}-prd-notes.md immediately |
| Inconsistent PRDs | Same process, same structure |
| "Left brain vs right brain" | One coherent workflow |
| Re-explaining context | Files contain full context |
| Mixed concerns | PRD (product) separate from Tech (implementation) |
| Hidden decisions | Architecture options A/B/C documented |
## References
- [planning-with-files](../planning-with-files/) - File-based planning methodology
- [architecting-solutions](../architecting-solutions/) - PRD creation best practices
- Edge case scanning: `references/edge-case-analysis.md`
---
## Auto-Trigger (Automation)
When this skill completes, automatically trigger:
1. **self-improving-agent** (background) - Extract patterns
2. **session-logger** (auto) - Save session context