step-02-design-epics.md 7.8 KB


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:

  1. User-Value First: Each epic must enable users to accomplish something meaningful
  2. Requirements Grouping: Group related FRs that deliver cohesive user outcomes
  3. Incremental Delivery: Each epic should deliver value independently
  4. Logical Flow: Natural progression from user's perspective
  5. 🔗 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:

  1. Epic Title: User-centric, value-focused
  2. User Outcome: What users can accomplish after this epic
  3. FR Coverage: Which FR numbers this epic addresses
  4. 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}:

  1. Replace {{epics_list}} placeholder with the approved epic list
  2. Replace {{requirements_coverage_map}} with the coverage map
  3. 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.