16 KiB
Level 1 - Epic and Stories Generation
This generates epic and user stories for Level 1 projects after tech-spec completion This is a lightweight story breakdown - not a full PRD Level 1 = coherent feature, 1-10 stories (prefer 2-3), 1 epic This workflow runs AFTER tech-spec.md has been completed Story format MUST match create-story template for compatibility with story-context and dev-story workflows
Read the completed tech-spec.md file from {output_folder}/tech-spec.md Load bmm-workflow-status.yaml from {output_folder}/bmm-workflow-status.yaml (if exists) Extract dev_ephemeral_location from config (where stories are stored)
Extract from the ENHANCED tech-spec structure:
- Overall feature goal from "The Change → Problem Statement" and "Proposed Solution"
- Implementation tasks from "Implementation Guide → Implementation Steps"
- Time estimates from "Implementation Guide → Implementation Steps"
- Dependencies from "Implementation Details → Integration Points" and "Development Context → Dependencies"
- Source tree from "Implementation Details → Source Tree Changes"
- Framework dependencies from "Development Context → Framework/Libraries"
- Existing code references from "Development Context → Relevant Existing Code"
- File paths from "Developer Resources → File Paths Reference"
- Key code locations from "Developer Resources → Key Code Locations"
- Testing locations from "Developer Resources → Testing Locations"
- Acceptance criteria from "Implementation Guide → Acceptance Criteria"
Create 1 epic that represents the entire feature Epic title should be user-facing value statement Epic goal should describe why this matters to users
**Epic Best Practices:** - Title format: User-focused outcome (not implementation detail) - Good: "JS Library Icon Reliability" - Bad: "Update recommendedLibraries.ts file" - Scope: Clearly define what's included/excluded - Success criteria: Measurable outcomes that define "done" **Epic:** JS Library Icon ReliabilityGoal: Eliminate external dependencies for JS library icons to ensure consistent, reliable display and improve application performance.
Scope: Migrate all 14 recommended JS library icons from third-party CDN URLs (GitHub, jsDelivr) to internal static asset hosting.
Success Criteria:
- All library icons load from internal paths
- Zero external requests for library icons
- Icons load 50-200ms faster than baseline
- No broken icons in production
Derive epic slug from epic title (kebab-case, 2-3 words max)
- "JS Library Icon Reliability" → "icon-reliability"
- "OAuth Integration" → "oauth-integration"
- "Admin Dashboard" → "admin-dashboard"
Initialize epics.md summary document using epics_template
Also capture project_level for the epic template
project_level epic_title epic_slug epic_goal epic_scope epic_success_criteria epic_dependencies
Level 1 should have 2-3 stories maximum - prefer longer stories over more stories
Analyze tech spec implementation tasks and time estimates Group related tasks into logical story boundaries
**Story Count Decision Matrix:**2 Stories (preferred for most Level 1):
- Use when: Feature has clear build/verify split
- Example: Story 1 = Build feature, Story 2 = Test and deploy
- Typical points: 3-5 points per story
3 Stories (only if necessary):
- Use when: Feature has distinct setup, build, verify phases
- Example: Story 1 = Setup, Story 2 = Core implementation, Story 3 = Integration and testing
- Typical points: 2-3 points per story
Never exceed 3 stories for Level 1:
- If more needed, consider if project should be Level 2
- Better to have longer stories (5 points) than more stories (5x 1-point stories)
Determine story_count = 2 or 3 based on tech spec complexity
For each story (2-3 total), generate separate story file Story filename format: "story-{epic_slug}-{n}.md" where n = 1, 2, or 3
**Story Generation Guidelines:** - Each story = multiple implementation tasks from tech spec - Story title format: User-focused deliverable (not implementation steps) - Include technical acceptance criteria from tech spec tasks - Link back to tech spec sections for implementation detailsCRITICAL: Acceptance Criteria Must Be:
- Numbered - AC #1, AC #2, AC #3, etc.
- Specific - No vague statements like "works well" or "is fast"
- Testable - Can be verified objectively
- Complete - Covers all success conditions
- Independent - Each AC tests one thing
- Format: Use Given/When/Then when applicable
Good AC Examples: ✅ AC #1: Given a valid email address, when user submits the form, then the account is created and user receives a confirmation email within 30 seconds ✅ AC #2: Given an invalid email format, when user submits, then form displays "Invalid email format" error message ✅ AC #3: All unit tests in UserService.test.ts pass with 100% coverage
Bad AC Examples: ❌ "User can create account" (too vague) ❌ "System performs well" (not measurable) ❌ "Works correctly" (not specific)
Story Point Estimation:
- 1 point = < 1 day (2-4 hours)
- 2 points = 1-2 days
- 3 points = 2-3 days
- 5 points = 3-5 days
Level 1 Typical Totals:
- Total story points: 5-10 points
- 2 stories: 3-5 points each
- 3 stories: 2-3 points each
- If total > 15 points, consider if this should be Level 2
Story Structure (MUST match create-story format):
- Status: Draft
- Story: As a [role], I want [capability], so that [benefit]
- Acceptance Criteria: Numbered list from tech spec
- Tasks / Subtasks: Checkboxes mapped to tech spec tasks (AC: #n references)
- Dev Notes: Technical summary, project structure notes, references
- Dev Agent Record: Empty sections (tech-spec provides context)
NEW: Comprehensive Context Fields
Since tech-spec is context-rich, populate ALL template fields:
- dependencies: Extract from tech-spec "Development Context → Dependencies" and "Integration Points"
- existing_code_references: Extract from "Development Context → Relevant Existing Code" and "Developer Resources → Key Code Locations"
Generate exactly {story_count} story files (2 or 3 based on Step 3 decision)
Stories MUST be ordered so earlier stories don't depend on later ones Each story must have CLEAR, TESTABLE acceptance criteria
Analyze dependencies between stories:
Dependency Rules:
- Infrastructure/setup → Feature implementation → Testing/polish
- Database changes → API changes → UI changes
- Backend services → Frontend components
- Core functionality → Enhancement features
- No story can depend on a later story!
Validate Story Sequence: For each story N, check:
- Does it require anything from Story N+1, N+2, etc.? ❌ INVALID
- Does it only use things from Story 1...N-1? ✅ VALID
- Can it be implemented independently or using only prior stories? ✅ VALID
If invalid dependencies found, REORDER stories!
Generate visual story map showing epic → stories hierarchy with dependencies Calculate total story points across all stories Estimate timeline based on total points (1-2 points per day typical) Define implementation sequence with explicit dependency notes
## Story MapEpic: Icon Reliability
├── Story 1: Build Icon Infrastructure (3 points)
│ Dependencies: None (foundational work)
│
└── Story 2: Test and Deploy Icons (2 points)
Dependencies: Story 1 (requires infrastructure)
Total Story Points: 5 Estimated Timeline: 1 sprint (1 week)
Implementation Sequence
-
Story 1 → Build icon infrastructure (setup, download, configure)
- Dependencies: None
- Deliverable: Icon files downloaded, organized, accessible
-
Story 2 → Test and deploy (depends on Story 1)
- Dependencies: Story 1 must be complete
- Deliverable: Icons verified, tested, deployed to production
Dependency Validation: ✅ Valid sequence - no forward dependencies
story_summaries story_map total_points estimated_timeline implementation_sequence
mode: update action: complete_workflow workflow_name: tech-spec populate_stories_from: {epics_output_file} ✅ Status updated! Loaded {{total_stories}} stories from epics. Next: {{next_workflow}} ({{next_agent}} agent) ⚠️ Status update failed: {{error}}Auto-run validation - NOT optional!
Running automatic story validation...
Validate Story Sequence (CRITICAL):
For each story, check:
- Does Story N depend on Story N+1 or later? ❌ FAIL - Reorder required!
- Are dependencies clearly documented? ✅ PASS
- Can stories be implemented in order 1→2→3? ✅ PASS
If sequence validation FAILS:
- Identify the problem dependencies
- Propose new ordering
- Ask user to confirm reordering
Validate Acceptance Criteria Quality:
For each story's AC, check:
- Is it numbered (AC #1, AC #2, etc.)? ✅ Required
- Is it specific and testable? ✅ Required
- Does it use Given/When/Then or equivalent? ✅ Recommended
- Are all success conditions covered? ✅ Required
Count vague AC (contains "works", "good", "fast", "well"):
- 0 vague AC: ✅ EXCELLENT
- 1-2 vague AC: ⚠️ WARNING - Should improve
- 3+ vague AC: ❌ FAIL - Must improve
Validate Story Completeness:
- Do all stories map to tech spec tasks? ✅ Required
- Do story points align with tech spec estimates? ✅ Recommended
- Are dependencies clearly noted? ✅ Required
- Does each story have testable AC? ✅ Required
Generate validation report
❌ **Story Validation Failed:**{{issues_found}}
Recommended Fixes: {{recommended_fixes}}
Shall I fix these issues? (yes/no)
Apply fixes? (yes/no)
Apply fixes (reorder stories, rewrite vague AC, add missing details) Re-validate ✅ Validation passed after fixes! ✅ **Story Validation Passed!**Sequence: ✅ Valid (no forward dependencies) AC Quality: ✅ All specific and testable Completeness: ✅ All tech spec tasks covered Dependencies: ✅ Clearly documented
Stories are implementation-ready!
Confirm all validation passed Verify total story points align with tech spec time estimates Confirm epic and stories are complete
Level 1 Planning Complete!
Epic: {{epic_title}} Total Stories: {{story_count}} Total Story Points: {{total_points}} Estimated Timeline: {{estimated_timeline}}
Generated Artifacts:
tech-spec.md→ Technical source of truthepics.md→ Epic and story summarystory-{epic_slug}-1.md→ First story (ready for implementation)story-{epic_slug}-2.md→ Second story {{#if story_3}}story-{epic_slug}-3.md→ Third story {{/if}}
Story Location: {dev_ephemeral_location}/
Next Steps - Iterative Implementation:
🎯 RECOMMENDED - Direct to Development (Level 1):
Since the tech-spec is now CONTEXT-RICH with:
- ✅ Brownfield codebase analysis (if applicable)
- ✅ Framework and library details with exact versions
- ✅ Existing patterns and code references
- ✅ Complete file paths and integration points
- ✅ Dependencies clearly mapped
You can skip story-context for most Level 1 stories!
1. Start with Story 1:
a. Load DEV agent: {project-root}/.bmad/bmm/agents/dev.md
b. Run dev-story workflow (select story-{epic_slug}-1.md)
c. Tech-spec provides all context needed
d. Implement story 1
2. After Story 1 Complete:
- Repeat for story-{epic_slug}-2.md
- Reference completed story 1 in your work
3. After Story 2 Complete: {{#if story_3}}
- Repeat for story-{epic_slug}-3.md {{/if}}
- Level 1 feature complete!
Option B - Generate Additional Context (optional):
Only needed for extremely complex multi-story dependencies:
- Load SM agent:
{project-root}/.bmad/bmm/agents/sm.md - Run
story-contextworkflow for complex stories - Then load DEV agent and run
dev-story
Progress Tracking:
- All decisions logged in:
bmm-workflow-status.yaml - Next action clearly identified
Ready to proceed? Choose your path:
- Go directly to dev-story for story 1 (RECOMMENDED - tech-spec has all context)
- Generate additional story context first (for complex dependencies)
- Exit for now
Select option (1-3):