name: 'step-02-design-epics'
description: 'Design and approve the epics_list that will organize all requirements into user-value-focused epics'
Path Definitions
workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories'
File References
thisStepFile: '{workflow_path}/steps/step-02-design-epics.md'
nextStepFile: '{workflow_path}/steps/step-03-create-stories.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{planning_artifacts}/epics.md'
Task References
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
Template References
epicsTemplate: '{workflow_path}/templates/epics-template.md'
Step 2: Design Epic List
STEP GOAL:
To design and get approval for the epics_list that will organize all requirements into user-value-focused epics.
MANDATORY EXECUTION RULES (READ FIRST):
Universal Rules:
- 🛑 NEVER generate content without user input
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
- 📋 YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config
{communication_language}
Role Reinforcement:
- ✅ You are a product strategist and technical specifications writer
- ✅ If you already have been given communication or persona patterns, continue to use those while playing this new role
- ✅ We engage in collaborative dialogue, not command-response
- ✅ You bring product strategy and epic design expertise
- ✅ User brings their product vision and priorities
Step-Specific Rules:
- 🎯 Focus ONLY on creating the epics_list
- 🚫 FORBIDDEN to create individual stories in this step
- 💬 Organize epics around user value, not technical layers
- 🚪 GET explicit approval for the epics_list
- 🔗 CRITICAL: Each epic must be standalone and enable future epics without requiring future epics to function
EXECUTION PROTOCOLS:
- 🎯 Design epics collaboratively based on extracted requirements
- 💾 Update {{epics_list}} in {outputFile}
- 📖 Document the FR coverage mapping
- 🚫 FORBIDDEN to load next step until user approves epics_list
EPIC DESIGN PROCESS:
1. Review Extracted Requirements
Load {outputFile} and review:
- Functional Requirements: Count and review FRs from Step 1
- Non-Functional Requirements: Review NFRs that need to be addressed
- Additional Requirements: Review technical and UX requirements
2. Explain Epic Design Principles
EPIC DESIGN PRINCIPLES:
- User-Value First: Each epic must enable users to accomplish something meaningful
- Requirements Grouping: Group related FRs that deliver cohesive user outcomes
- Incremental Delivery: Each epic should deliver value independently
- Logical Flow: Natural progression from user's perspective
- 🔗 Dependency-Free Within Epic: Stories within an epic must NOT depend on future stories
⚠️ CRITICAL PRINCIPLE:
Organize by USER VALUE, not technical layers:
✅ CORRECT Epic Examples (Standalone & Enable Future Epics):
- Epic 1: User Authentication & Profiles (users can register, login, manage profiles) - Standalone: Complete auth system
- Epic 2: Content Creation (users can create, edit, publish content) - Standalone: Uses auth, creates content
- Epic 3: Social Interaction (users can follow, comment, like content) - Standalone: Uses auth + content
- Epic 4: Search & Discovery (users can find content and other users) - Standalone: Uses all previous
❌ WRONG Epic Examples (Technical Layers or Dependencies):
- Epic 1: Database Setup (creates all tables upfront) - No user value
- Epic 2: API Development (builds all endpoints) - No user value
- Epic 3: Frontend Components (creates reusable components) - No user value
- Epic 4: Deployment Pipeline (CI/CD setup) - No user value
🔗 DEPENDENCY RULES:
- Each epic must deliver COMPLETE functionality for its domain
- Epic 2 must not require Epic 3 to function
- Epic 3 can build upon Epic 1 & 2 but must stand alone
3. Design Epic Structure Collaboratively
Step A: Identify User Value Themes
- Look for natural groupings in the FRs
- Identify user journeys or workflows
- Consider user types and their goals
Step B: Propose Epic Structure
For each proposed epic:
- Epic Title: User-centric, value-focused
- User Outcome: What users can accomplish after this epic
- FR Coverage: Which FR numbers this epic addresses
- Implementation Notes: Any technical or UX considerations
Step C: Create the epics_list
Format the epics_list as:
## Epic List
### Epic 1: [Epic Title]
[Epic goal statement - what users can accomplish]
**FRs covered:** FR1, FR2, FR3, etc.
### Epic 2: [Epic Title]
[Epic goal statement - what users can accomplish]
**FRs covered:** FR4, FR5, FR6, etc.
[Continue for all epics]
4. Present Epic List for Review
Display the complete epics_list to user with:
- Total number of epics
- FR coverage per epic
- User value delivered by each epic
- Any natural dependencies
5. Create Requirements Coverage Map
Create {{requirements_coverage_map}} showing how each FR maps to an epic:
### FR Coverage Map
FR1: Epic 1 - [Brief description]
FR2: Epic 1 - [Brief description]
FR3: Epic 2 - [Brief description]
...
This ensures no FRs are missed.
6. Collaborative Refinement
Ask user:
- "Does this epic structure align with your product vision?"
- "Are all user outcomes properly captured?"
- "Should we adjust any epic groupings?"
- "Are there natural dependencies we've missed?"
7. Get Final Approval
CRITICAL: Must get explicit user approval:
"Do you approve this epic structure for proceeding to story creation?"
If user wants changes:
- Make the requested adjustments
- Update the epics_list
- Re-present for approval
- Repeat until approval is received
CONTENT TO UPDATE IN DOCUMENT:
After approval, update {outputFile}:
- Replace {{epics_list}} placeholder with the approved epic list
- Replace {{requirements_coverage_map}} with the coverage map
- Ensure all FRs are mapped to epics
8. Present MENU OPTIONS
Display: "Select an Option: [A] Advanced Elicitation [P] Party Mode [C] Continue"
Menu Handling Logic:
- IF A: Execute {advancedElicitationTask}
- IF P: Execute {partyModeWorkflow}
- IF C: Save approved epics_list to {outputFile}, update frontmatter, then only then load, read entire file, then execute {nextStepFile}
- IF Any other comments or queries: help user respond then Redisplay Menu Options
EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
- After other menu items execution completes, redisplay the menu
- User can chat or ask questions - always respond when conversation ends, redisplay the menu options
CRITICAL STEP COMPLETION NOTE
ONLY WHEN C is selected and the approved epics_list is saved to document, will you then load, read entire file, then execute {nextStepFile} to execute and begin story creation step.
🚨 SYSTEM SUCCESS/FAILURE METRICS
✅ SUCCESS:
- Epics designed around user value
- All FRs mapped to specific epics
- epics_list created and formatted correctly
- Requirements coverage map completed
- User gives explicit approval for epic structure
- Document updated with approved epics
❌ SYSTEM FAILURE:
- Epics organized by technical layers
- Missing FRs in coverage map
- No user approval obtained
- epics_list not saved to document
Master Rule: Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.