| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| Invoke | /prd |
/prd โ ์ ํ ์๊ตฌ์ฌํญ ์ ๋ฆฌ์(PRD) ๋ง๋ค๊ธฐ#
ํ๋ง๋๋ก#
"์ด ์ ํ์ด ๋ฌด์์ ํด์ผ ํ๋์ง"๋ฅผ ๋น ์ง์์ด ์ ์ด๋๋ ์ค๊ณ ๋ช ์ธ์๋ฅผ ๋ง๋๋ ๋จ๊ณ์ ๋๋ค. ์ง์ ์ง๊ธฐ ์ ์ ๋ฐฉ ๊ฐ์, ํ์ฅ์ค ์์น, ์ ๊ธฐยท์๋ ๊ฐ์ ์กฐ๊ฑด์ ์ข ์ด์ ๋ค ์ ์ด๋๋ ๊ฒ๊ณผ ๊ฐ์์. ๋์ค์ "์ด๊ฑด ๋น ์ก๋ค" ํ๊ณ ๋คํฌ์ง ์๋๋ก ๋ฏธ๋ฆฌ ํฉ์ํด ๋ก๋๋ค.
๋๊ฐยท์ธ์ ์ฐ๋์#
- ์ ํ/๊ธฐ๋ฅ์ ๋ณธ๊ฒฉ์ ์ผ๋ก ๋ง๋ค๊ธฐ ์ , ๋ฌด์์ ๋ง๋ค์ง ์ ๋ฆฌํ๊ณ ์ถ์ ๊ธฐํ์(Product Manager)
- ๋ง๋ค ํญ๋ชฉ์ด ์ด๋ ์ ๋ ๊ท๋ชจ๊ฐ ๋๋ ๊ฒฝ์ฐ (๋๋ต ์คํ ๋ฆฌ 5๊ฐ ์ด์์ Level 2 ์ด์ ํ๋ก์ ํธ์ ์ ํฉ)
- ์์ ๋ง๋ ์ ํ ๋ธ๋ฆฌํ(product brief)๊ฐ ์๋ค๋ฉด ๊ทธ๊ฒ์ ํ ๋๋ก, ์๋ค๋ฉด ๋ํ๋ก ์ฒ์๋ถํฐ ์๊ตฌ์ฌํญ์ ๋ชจ์๋๋ค.
์์ ์๊ฐ์ ๋ณดํต 45~90๋ถ ์ ๋์ ๋๋ค.
๋ฌด์์ ํด์ฃผ๋์#
๋ํ๋ฅผ ํตํด ์๊ตฌ์ฌํญ์ ๋ชจ์ผ๊ณ , ํ ๊ฐ์ ์ ๋ฆฌ ๋ฌธ์๋ก ๋ง๋ค์ด ์ค๋๋ค.
- ๊ฒฐ๊ณผ๋ฌผ:
.bmad/prd-{ํ๋ก์ ํธ์ด๋ฆ}-{๋ ์ง}.mdํ์ผ ํ ๊ฐ -
๊ทธ ์์ ๋ด๊ธฐ๋ ๋ด์ฉ:
- ๊ธฐ๋ฅ ์๊ตฌ์ฌํญ(FR) โ ์์คํ ์ด "๋ฌด์์" ํ๋์ง (์: PDF ์ ๋ก๋ ๊ธฐ๋ฅ). ์ค์๋๋ฅผ Must/Should/Could๋ก ๋๋๋๋ค.
- ๋น๊ธฐ๋ฅ ์๊ตฌ์ฌํญ(NFR) โ ์์คํ ์ด "์ผ๋ง๋ ์" ๋์ํ๋์ง (์ฑ๋ฅ, ๋ณด์, ์์ ์ฑ ๋ฑ)
- ์ํฝ(Epic) โ ๊ด๋ จ๋ ๊ธฐ๋ฅ๋ค์ ๋ฌถ์ ํฐ ์์ ๋จ์
- ์ถ์ ํ(traceability matrix) โ ์ด๋ค ์ํฝ์ ์ด๋ค ๊ธฐ๋ฅ์ด ๋ค์ด๊ฐ๋์ง ํ๋์ ๋ณด๋ ํ
- ์ฌ์ฉ์ ํ๋ฅด์๋, ํต์ฌ ์ฌ์ฉ์ ํ๋ฆ, ์์กด์ฑ, ๊ฐ์ , ๋ฒ์ ๋ฐ ํญ๋ชฉ ๋ฑ ๋ณด์กฐ ์ ๋ณด
์ด๋ป๊ฒ ์ฐ๋์#
# PRD ์์ฑ ์ํฌํ๋ก ์คํ
/prd
์ด ๋ช ๋ น์ ์ต์ ์์ด ์คํํ๋ฉฐ, ์ดํ ์ง๋ฌธ์ ๋ตํ๋ ๋ฐฉ์์ผ๋ก ์งํ๋ฉ๋๋ค. ๋ช ๋ น์ ์คํํ๋ฉด ๋จผ์ ๊ธฐ์กด ์ ํ ๋ธ๋ฆฌํ๊ฐ ์๋์ง ํ์ธํ๊ณ , ๊ธฐ๋ฅ โ ๋น๊ธฐ๋ฅ โ ์ํฝ โ (์ ํ)์คํ ๋ฆฌ ์์๋ก ํ๋์ฉ ๋ฌผ์ด๋ด ๋๋ค. ๋ต์ ๋ชจ์ผ๋ฉด PRD ๋ฌธ์๋ฅผ ์๋์ผ๋ก ๋ง๋ค์ด ์ค๋๋ค.
์์์ ๋ฌด์จ ์ผ์ด ๋ฒ์ด์ง๋์#
ํฌ๊ฒ ๋ค์ ์์๋ก ์งํ๋ฉ๋๋ค.
- ์ค๋น โ ์ค์ ๊ณผ ์งํ ์ํ๋ฅผ ์ฝ๊ณ , ๊ธฐ์กด ์ ํ ๋ธ๋ฆฌํ์ PRD ์์(ํ ํ๋ฆฟ)์ ๋ถ๋ฌ์ต๋๋ค.
- ๊ธฐ๋ฅ ์๊ตฌ์ฌํญ ์์ง โ ๊ธฐ๋ฅ ์์ญ๋ณ๋ก "์์คํ ์ด ๋ฌด์์ ํด์ผ ํ๋์?"๋ฅผ ๋ฌป๊ณ , ๊ฐ ํญ๋ชฉ์ ๋ฒํธ(FR-001 ๋ฑ)์ ์ค์๋(Must/Should/Could), ํต๊ณผ ๊ธฐ์ค์ ๋ถ์ ๋๋ค.
- ๋น๊ธฐ๋ฅ ์๊ตฌ์ฌํญ ์์ง โ ์ฑ๋ฅยท๋ณด์ยทํ์ฅ์ฑยท์์ ์ฑยท์ฌ์ฉ์ฑ ๋ฑ ํ์ง ์กฐ๊ฑด์ ์ธก์ ๊ฐ๋ฅํ ์ซ์๋ก ์ ๋ฆฌํฉ๋๋ค.
- ์ํฝ ์ ๋ฆฌ โ ๊ด๋ จ ๊ธฐ๋ฅ๋ค์ ํฐ ๋ฉ์ด๋ฆฌ๋ก ๋ฌถ๊ณ , ๊ฐ ๋ฉ์ด๋ฆฌ๊ฐ ๋ช ๊ฐ ์คํ ๋ฆฌ๊ฐ ๋ ์ง ๊ฐ๋ ํฉ๋๋ค.
- (์ ํ) ์ฌ์ฉ์ ์คํ ๋ฆฌยท๋ณด์กฐ ์ ๋ณด โ ์ํ๋ฉด ์์ ์คํ ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ , ํ๋ฅด์๋ยท์ฌ์ฉ์ ํ๋ฆยท๊ฐ์ ยท๋ฒ์ ๋ฐ ํญ๋ชฉ ๋ฑ์ ๋ณด์ถฉํฉ๋๋ค.
- ๋ฌธ์ ์์ฑ โ ๋ชจ์ ๋ด์ฉ์ ํ ํ๋ฆฟ์ ์ฑ์ ๋ฃ๊ณ ์ถ์ ํ์ ์ฐ์ ์์ ์์ฝ์ ๋ง๋ ๋ค ํ์ผ๋ก ์ ์ฅํ๊ณ ์์ฝ์ ๋ณด์ฌ์ค๋๋ค.
-
๊ฒ์ฆยท๋ค์ ๋จ๊ณ ์๋ด โ ์ฒดํฌ๋ฆฌ์คํธ๋ก ๋น ์ง ๊ฒ ์๋์ง ์ ๊ฒํ๊ณ , ์งํ ์ํ๋ฅผ ๊ฐฑ์ ํ ๋ค ๋ค์ ๋จ๊ณ(๋ณดํต
/architecture์ค๊ณ)๋ก ์๋ดํฉ๋๋ค.
โ๏ธ ์์ธ ์ต์ ยท์คํ ๋ช ์ธ (๊ฐ๋ฐ์ / AI ์์ด์ ํธ์ฉ)
Workflow Overview#
Goal: Create comprehensive PRD defining functional requirements, non-functional requirements, and epics
Phase: 2 - Planning
Agent: Product Manager
Inputs: Product brief (if available), interactive requirements gathering
Output: .bmad/prd-{project-name}-{date}.md
Duration: 45-90 minutes
Best for: Level 2+ projects (5+ stories)
Pre-Flight#
Execute these helper operations:
- Load context per
helpers.md#Combined-Config-Load - Check status per
helpers.md#Load-Workflow-Status - Load product brief if exists:
- Check
.bmad/forproduct-brief-*.md - Read and extract key information
- Use as foundation for PRD
- Check
- Load template per
helpers.md#Load-Template- Template:
${CLAUDE_PLUGIN_ROOT}/references/templates/prd.md
- Template:
Requirements Gathering Process#
Use TodoWrite to track: Pre-flight โ FRs โ NFRs โ Epics โ Stories โ Generate โ Validate โ Update
Approach: Strategic, organized, pragmatic.
Part 1: Foundation (From Product Brief)#
If product brief exists, extract and confirm:
- Executive summary
- Business objectives
- Success metrics
- User personas
- Out of scope items
Ask user: "I've reviewed your product brief. Are there any changes or additions before we define requirements?"
If NO product brief: Ask user: "Let's establish the foundation. What are your top 3 business objectives for this project?"
Store as: {{business_objectives}}, {{success_metrics}}
Part 2: Functional Requirements (FRs)#
Explain to user:
"Functional Requirements define what the system does. Each FR is a specific capability or feature. We'll organize these into Must/Should/Could priorities using the MoSCoW method."
Interactive FR Collection:
For each major feature area (derived from product brief or user input):
Ask: "What should the system do for [feature area]?"
For each requirement, collect:
- Description (specific, actionable)
- Priority (Must/Should/Could)
- Acceptance Criteria (how to test it's done)
Assign FR-ID: FR-001, FR-002, etc. (sequential)
Format each FR:
### FR-{ID}: {Short Title}
**Priority:** {Must Have | Should Have | Could Have}
**Description:**
{What the system should do - specific and testable}
**Acceptance Criteria:**
- [ ] Criterion 1
- [ ] Criterion 2
- [ ] Criterion 3
**Dependencies:** {FR-XXX if applicable}Guidance:
- Must Have: Critical for MVP, project fails without it
- Should Have: Important but workaround exists
- Could Have: Nice to have, skip if time/budget tight
Typical FR count by level:
- Level 2: 8-15 FRs
- Level 3: 15-30 FRs
- Level 4: 30-50 FRs
Store as: {{functional_requirements}} (markdown formatted list)
Part 3: Non-Functional Requirements (NFRs)#
Explain to user:
"Non-Functional Requirements define how the system performs - quality attributes like performance, security, scalability."
NFR Categories to cover:
Performance
- Response time targets
- Throughput requirements
- Concurrent user capacity
Security
- Authentication requirements
- Authorization rules
- Data encryption needs
- Compliance (GDPR, HIPAA, etc.)
Scalability
- Expected growth
- Load handling
- Data volume
Reliability/Availability
- Uptime targets (99%, 99.9%, 99.99%)
- Disaster recovery
- Backup requirements
Usability
- Accessibility standards (WCAG)
- Browser/device support
- Internationalization
Maintainability
- Code quality standards
- Documentation requirements
- Testing coverage
Compatibility
- Integration requirements
- API standards
- Data format requirements
For each relevant NFR:
Ask: "What are your [category] requirements?"
Format:
### NFR-{ID}: {Category} - {Short Title}
**Priority:** {Must Have | Should Have}
**Description:**
{Specific, measurable requirement}
**Acceptance Criteria:**
- [ ] Measurable criterion (e.g., " Response time < 200ms for 95% of requests " )
**Rationale:**
{Why this matters}Typical NFR count: 5-12 NFRs
Store as: {{non_functional_requirements}} (markdown formatted list)
Part 4: Epics#
Explain to user:
"Epics are large bodies of work that group related FRs. Each epic will break down into 2-10 user stories in Phase 4."
Epic Creation Process:
- Review FRs, identify natural groupings
- For each epic:
- ID: EPIC-001, EPIC-002, etc.
- Name: Short, descriptive
- Description: What this epic accomplishes
- Related FRs: Which FRs belong to this epic
- Story Count Estimate: 2-10 stories
Format:
### EPIC-{ID}: {Epic Name}
**Description:**
{What this epic delivers}
**Functional Requirements:**
- FR-001
- FR-003
- FR-007
**Story Count Estimate:** {2-10}
**Priority:** {Must Have | Should Have | Could Have}
**Business Value:**
{Why this epic matters}Typical epic count by level:
- Level 2: 2-4 epics
- Level 3: 4-8 epics
- Level 4: 8-15 epics
Store as: {{epics}} (markdown formatted list)
Part 5: High-Level User Stories (Optional)#
Ask user: "Would you like to create high-level user stories now, or wait for sprint planning (Phase 4)?"
If YES: For each epic, create 2-3 example stories in format:
"As a [user type], I want [goal] so that [benefit]."
Store as: {{user_stories}}
If NO:
Set {{user_stories}} to:
"Detailed user stories will be created during sprint planning (Phase 4)."
Part 6: Additional Sections#
Collect briefly:
User Personas (if not in product brief): "Who are the primary user types?" Store as:
{{user_personas}}Key User Flows: "What are the 2-3 most important user journeys?" Store as:
{{user_flows}}Dependencies: "What does this project depend on (internal systems, external APIs, etc.)?" Store as:
{{internal_dependencies}},{{external_dependencies}}Assumptions: "What assumptions are we making?" Store as:
{{assumptions}}Out of Scope (confirm from brief): Store as:
{{out_of_scope}}Open Questions: "Are there any unresolved questions?" Store as:
{{open_questions}}Stakeholders (from brief or new): Store as:
{{stakeholders}}
Generate Document#
Load template from
${CLAUDE_PLUGIN_ROOT}/references/templates/prd.mdSubstitute variables per
helpers.md#Apply-Variables-to-Template:- All collected requirements (FRs, NFRs, Epics)
- Standard variables (date, user_name, project_name, etc.)
- Product brief path if available
Generate traceability matrix:
| Epic ID | Epic Name | FRs | Story Estimate | |---------|-----------|-----|----------------| | EPIC-001 | User Management | FR-001, FR-002, FR-005 | 5-8 stories |Store as:
{{traceability_matrix}}Generate prioritization summary:
- Count Must/Should/Could FRs and NFRs
- Store as:
{{prioritization_details}}
Determine output path per
helpers.md#Save-Output-Document:- Format:
{output_folder}/prd-{project-name}-{date}.md
- Format:
Write document using Write tool
Display summary:
โ PRD Created! Summary: - Functional Requirements: {count} ({must} must, {should} should, {could} could) - Non-Functional Requirements: {count} - Epics: {count} - Estimated Stories: {total}
Validation#
Review the PRD:
โ Checklist:
- [ ] All Must-Have FRs are clearly defined
- [ ] Each FR has testable acceptance criteria
- [ ] NFRs cover key quality attributes (performance, security, etc.)
- [ ] NFRs are measurable (specific numbers/targets)
- [ ] Epics logically group related FRs
- [ ] All FRs are assigned to epics
- [ ] Priorities are realistic (not everything is " Must Have " )
- [ ] Requirements trace to business objectives
- [ ] Out of scope is clearly statedAsk user: "Please review the PRD. Are the requirements complete and clear?"
If changes needed โ Edit and re-validate If approved โ Continue
Update Status#
Per helpers.md#Update-Workflow-Status:
- Load
.bmad/bmm-workflow-status.yaml - Update
prdstatus to file path - Update
last_updatedtimestamp - Save
Recommend Next Steps#
Per helpers.md#Determine-Next-Workflow:
Based on project level:
Level 2:
โ PRD complete!
Next: Architecture Design
Run /architecture to design system that meets all requirements.
Why architecture? Level 2 projects need architectural planning to ensure
FRs and NFRs are addressed systematically.Level 3-4:
โ PRD complete!
Next: Architecture Design (Required)
Run /architecture to design comprehensive system architecture.
With {count} requirements and {epic_count} epics, architectural planning
is critical for success.Offer: "Would you like me to hand off to System Architect to design your system?"
Helper References#
- Load config:
helpers.md#Combined-Config-Load - Load status:
helpers.md#Load-Workflow-Status - Load template:
helpers.md#Load-Template - Apply variables:
helpers.md#Apply-Variables-to-Template - Save document:
helpers.md#Save-Output-Document - Update status:
helpers.md#Update-Workflow-Status - Recommend next:
helpers.md#Determine-Next-Workflow
Tips for Effective Requirements Gathering#
Functional Requirements:
- Be specific: "User can upload PDF files up to 10MB" vs. "User can upload files"
- Be testable: Include clear acceptance criteria
- Avoid solution statements: "User can reset password" vs. "System uses JWT tokens"
- One requirement per FR: Break complex features into atomic FRs
Non-Functional Requirements:
- Be measurable: "API response < 200ms" vs. "System is fast"
- Include context: "99.9% uptime during business hours (M-F, 8am-6pm EST)"
- Consider cost: Some NFRs are expensive (e.g., 99.999% uptime)
Epics:
- Epic โ Feature: An epic can span multiple features
- Right-sized: 2-10 stories each (not 1, not 50)
- Vertical slices: Each epic delivers end-to-end value
Prioritization:
- Not everything is "Must Have" - be honest about what's critical
- Use data: Impact ร Reach รท Effort
- Consider dependencies: Some FRs must come before others
Notes for LLMs#
- Maintain approach (strategic, organized, pragmatic)
- Use TodoWrite to track 8 major sections
- Apply MoSCoW prioritization consistently
- Ensure all requirements are testable
- Create traceability (FRs โ Epics โ Stories)
- Use Memory tool to store requirements for Phase 4
- Don't rush - good requirements save time later
- Validate completeness before finalizing
Remember: PRD quality determines implementation success. Take time to get requirements right.