/prd — 제품 요구사항 정리서(PRD) 만들기#
| 항목 | 내용 |
|---|---|
| 실행 명령 | /cc-product: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.