feat(workflows): add greenfield create-story workflow
Add /bmad_bmm_create-story workflow for net-new features with zero existing implementation. Separates greenfield story generation (fast, no codebase scanning) from brownfield gap analysis workflow. Changes: - Create workflow files in src/modules/bmm and src/bmm locations - Update module-help.csv with both workflow entries - Clarify create-story vs create-story-with-gap-analysis usage - Bump version to 6.1.0-Beta.3 Greenfield workflow skips codebase scanning and marks all tasks incomplete, saving time and tokens for net-new feature development.
This commit is contained in:
parent
3a0d712f41
commit
bacbcc3487
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/package.json",
|
"$schema": "https://json.schemastore.org/package.json",
|
||||||
"name": "@jonahschulte/bmad-method",
|
"name": "@jonahschulte/bmad-method",
|
||||||
"version": "6.1.0-Beta.2",
|
"version": "6.1.0-Beta.3",
|
||||||
"description": "Breakthrough Method of Agile AI-driven Development (Enhanced with TDD, intelligent multi-agent review, and production-hardened enforcement)",
|
"description": "Breakthrough Method of Agile AI-driven Development (Enhanced with TDD, intelligent multi-agent review, and production-hardened enforcement)",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"agile",
|
"agile",
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,8 @@ bmm,3-solutioning,Test Design,TD,50,_bmad/bmm/workflows/testarch/test-design/wor
|
||||||
bmm,3-solutioning,Check Implementation Readiness,IR,70,_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md,bmad_bmm_check-implementation-readiness,true,architect,Validate Mode,"Ensure PRD UX Architecture and Epics Stories are aligned",planning_artifacts,"readiness report",
|
bmm,3-solutioning,Check Implementation Readiness,IR,70,_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md,bmad_bmm_check-implementation-readiness,true,architect,Validate Mode,"Ensure PRD UX Architecture and Epics Stories are aligned",planning_artifacts,"readiness report",
|
||||||
bmm,4-implementation,Sprint Planning,SP,10,_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml,bmad_bmm_sprint-planning,true,sm,Create Mode,"Generate sprint plan for development tasks - this kicks off the implementation phase by producing a plan the implementation agents will follow in sequence for every story in the plan.",implementation_artifacts,"sprint status",
|
bmm,4-implementation,Sprint Planning,SP,10,_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml,bmad_bmm_sprint-planning,true,sm,Create Mode,"Generate sprint plan for development tasks - this kicks off the implementation phase by producing a plan the implementation agents will follow in sequence for every story in the plan.",implementation_artifacts,"sprint status",
|
||||||
bmm,4-implementation,Sprint Status,SS,20,_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml,bmad_bmm_sprint-status,false,sm,Create Mode,"Anytime: Summarize sprint status and route to next workflow",,,
|
bmm,4-implementation,Sprint Status,SS,20,_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml,bmad_bmm_sprint-status,false,sm,Create Mode,"Anytime: Summarize sprint status and route to next workflow",,,
|
||||||
bmm,4-implementation,Create Story,CS,30,_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml,bmad_bmm_create-story,true,sm,Create Mode,"Story cycle start: Prepare first found story in the sprint plan that is next, or if the command is run with a specific epic and story designation with context. Once complete, then VS then DS then CR then back to DS if needed or next CS or ER",implementation_artifacts,story,
|
bmm,4-implementation,Create Story,CS,30,_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml,bmad_bmm_create-story,true,sm,Create Mode,"Story cycle start: Create greenfield story for net-new features with zero existing implementation (no codebase scanning). Once complete, then VS then DS then CR then back to DS if needed or next CS or ER",implementation_artifacts,story,
|
||||||
|
bmm,4-implementation,Create Story with Gap Analysis,CSG,32,_bmad/bmm/workflows/4-implementation/create-story-with-gap-analysis/workflow.yaml,bmad_bmm_create-story-with-gap-analysis,false,sm,Create Mode,"Regenerate story with VERIFIED codebase gap analysis - for brownfield stories with potential existing implementation. Uses Glob/Read tools to verify what exists.",implementation_artifacts,story,
|
||||||
bmm,4-implementation,Validate Story,VS,35,_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml,bmad_bmm_create-story,false,sm,Validate Mode,"Validates story readiness and completeness before development work begins",implementation_artifacts,"story validation report",
|
bmm,4-implementation,Validate Story,VS,35,_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml,bmad_bmm_create-story,false,sm,Validate Mode,"Validates story readiness and completeness before development work begins",implementation_artifacts,"story validation report",
|
||||||
bmm,4-implementation,Dev Story,DS,40,_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml,bmad_bmm_dev-story,true,dev,Create Mode,"Story cycle: Execute story implementation tasks and tests then CR then back to DS if fixes needed",,,
|
bmm,4-implementation,Dev Story,DS,40,_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml,bmad_bmm_dev-story,true,dev,Create Mode,"Story cycle: Execute story implementation tasks and tests then CR then back to DS if fixes needed",,,
|
||||||
bmm,4-implementation,Code Review,CR,50,_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml,bmad_bmm_code-review,false,dev,Create Mode,"Story cycle: If issues back to DS if approved then next CS or ER if epic complete",,,
|
bmm,4-implementation,Code Review,CR,50,_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml,bmad_bmm_code-review,false,dev,Create Mode,"Story cycle: If issues back to DS if approved then next CS or ER if epic complete",,,
|
||||||
|
|
|
||||||
|
Can't render this file because it has a wrong number of fields in line 7.
|
|
|
@ -0,0 +1,270 @@
|
||||||
|
# Create Story v3.0 - Greenfield Story Generation
|
||||||
|
|
||||||
|
<purpose>
|
||||||
|
Generate story for net-new features with zero existing implementation.
|
||||||
|
No codebase scanning—all tasks assumed incomplete (greenfield).
|
||||||
|
Focused on clear requirements and implementation guidance.
|
||||||
|
</purpose>
|
||||||
|
|
||||||
|
<philosophy>
|
||||||
|
**Fast Story Generation for New Features**
|
||||||
|
|
||||||
|
1. Load PRD, epic, and architecture context
|
||||||
|
2. Generate clear user story with acceptance criteria
|
||||||
|
3. All tasks marked incomplete (greenfield assumption)
|
||||||
|
4. No codebase scanning—saves time for net-new work
|
||||||
|
5. Ready for immediate implementation
|
||||||
|
</philosophy>
|
||||||
|
|
||||||
|
<config>
|
||||||
|
name: create-story
|
||||||
|
version: 3.0.0
|
||||||
|
|
||||||
|
task_status:
|
||||||
|
incomplete: "[ ]" # All tasks for greenfield stories
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
update_sprint_status: true
|
||||||
|
create_report: false
|
||||||
|
</config>
|
||||||
|
|
||||||
|
<execution_context>
|
||||||
|
@patterns/verification.md
|
||||||
|
@patterns/hospital-grade.md
|
||||||
|
</execution_context>
|
||||||
|
|
||||||
|
<process>
|
||||||
|
|
||||||
|
<step name="initialize" priority="first">
|
||||||
|
**Identify story and load context**
|
||||||
|
|
||||||
|
```
|
||||||
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
📝 GREENFIELD STORY GENERATION
|
||||||
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
```
|
||||||
|
|
||||||
|
**Ask user for story:**
|
||||||
|
```
|
||||||
|
Which story should I create?
|
||||||
|
|
||||||
|
Provide:
|
||||||
|
- Story number (e.g., "1.9" or "1-9")
|
||||||
|
- OR epic number and story description
|
||||||
|
|
||||||
|
Your choice:
|
||||||
|
```
|
||||||
|
|
||||||
|
**Parse input:**
|
||||||
|
- Extract epic_num, story_num
|
||||||
|
- Determine story file path
|
||||||
|
|
||||||
|
**Load epic context:**
|
||||||
|
```bash
|
||||||
|
Read: {{planning_artifacts}}/epics.md
|
||||||
|
```
|
||||||
|
|
||||||
|
Extract:
|
||||||
|
- Epic business objectives
|
||||||
|
- Technical constraints
|
||||||
|
- Dependencies
|
||||||
|
|
||||||
|
**Load architecture context (if exists):**
|
||||||
|
```bash
|
||||||
|
Read: {{planning_artifacts}}/architecture.md
|
||||||
|
```
|
||||||
|
|
||||||
|
Extract:
|
||||||
|
- Technical architecture patterns
|
||||||
|
- Technology stack
|
||||||
|
- Integration patterns
|
||||||
|
|
||||||
|
**Load PRD context:**
|
||||||
|
```bash
|
||||||
|
Read: {{planning_artifacts}}/prd.md
|
||||||
|
```
|
||||||
|
|
||||||
|
Extract relevant sections:
|
||||||
|
- User personas
|
||||||
|
- Feature requirements
|
||||||
|
- Non-functional requirements
|
||||||
|
|
||||||
|
```
|
||||||
|
✅ Context Loaded
|
||||||
|
|
||||||
|
Story: {{epic_num}}.{{story_num}}
|
||||||
|
Epic: {{epic_title}}
|
||||||
|
Architecture: {{architecture_notes}}
|
||||||
|
|
||||||
|
[C] Continue to Story Generation
|
||||||
|
```
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step name="generate_story">
|
||||||
|
**Generate greenfield story**
|
||||||
|
|
||||||
|
```
|
||||||
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
📝 GENERATING STORY
|
||||||
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
```
|
||||||
|
|
||||||
|
**Story structure:**
|
||||||
|
All tasks marked `[ ]` (incomplete) since this is greenfield.
|
||||||
|
|
||||||
|
**Write story file:**
|
||||||
|
```bash
|
||||||
|
Write: {{story_dir}}/story-{{epic_num}}.{{story_num}}.md
|
||||||
|
```
|
||||||
|
|
||||||
|
**Story template:**
|
||||||
|
```markdown
|
||||||
|
# Story {{epic_num}}.{{story_num}}: {{title}}
|
||||||
|
|
||||||
|
## 📊 Metadata
|
||||||
|
- **Epic**: {{epic_num}} - {{epic_title}}
|
||||||
|
- **Priority**: {{priority}}
|
||||||
|
- **Estimate**: {{estimate}}
|
||||||
|
- **Dependencies**: {{dependencies}}
|
||||||
|
- **Created**: {{date}}
|
||||||
|
|
||||||
|
## 📖 User Story
|
||||||
|
As a {{persona}}
|
||||||
|
I want {{capability}}
|
||||||
|
So that {{benefit}}
|
||||||
|
|
||||||
|
## ✅ Acceptance Criteria
|
||||||
|
1. **{{criterion_1}}**
|
||||||
|
- {{detail_1a}}
|
||||||
|
- {{detail_1b}}
|
||||||
|
|
||||||
|
2. **{{criterion_2}}**
|
||||||
|
- {{detail_2a}}
|
||||||
|
- {{detail_2b}}
|
||||||
|
|
||||||
|
## 🔨 Implementation Tasks
|
||||||
|
### Frontend
|
||||||
|
- [ ] {{frontend_task_1}}
|
||||||
|
- [ ] {{frontend_task_2}}
|
||||||
|
|
||||||
|
### Backend
|
||||||
|
- [ ] {{backend_task_1}}
|
||||||
|
- [ ] {{backend_task_2}}
|
||||||
|
|
||||||
|
### Testing
|
||||||
|
- [ ] {{testing_task_1}}
|
||||||
|
- [ ] {{testing_task_2}}
|
||||||
|
|
||||||
|
## 📋 Technical Notes
|
||||||
|
### Architecture
|
||||||
|
{{architecture_guidance}}
|
||||||
|
|
||||||
|
### Dependencies
|
||||||
|
{{dependency_notes}}
|
||||||
|
|
||||||
|
### API Contracts
|
||||||
|
{{api_contract_notes}}
|
||||||
|
|
||||||
|
## 🧪 Testing Strategy
|
||||||
|
### Unit Tests
|
||||||
|
{{unit_test_strategy}}
|
||||||
|
|
||||||
|
### Integration Tests
|
||||||
|
{{integration_test_strategy}}
|
||||||
|
|
||||||
|
### E2E Tests
|
||||||
|
{{e2e_test_strategy}}
|
||||||
|
|
||||||
|
## 🎯 Definition of Done
|
||||||
|
- [ ] All acceptance criteria met
|
||||||
|
- [ ] Unit tests written and passing
|
||||||
|
- [ ] Integration tests written and passing
|
||||||
|
- [ ] Code reviewed and approved
|
||||||
|
- [ ] Documentation updated
|
||||||
|
- [ ] Deployed to staging environment
|
||||||
|
- [ ] Product owner acceptance
|
||||||
|
|
||||||
|
## 📝 Dev Notes
|
||||||
|
{{additional_context}}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Validate generated story:**
|
||||||
|
```bash
|
||||||
|
# Check 7 sections exist
|
||||||
|
grep "^## " {{story_file}} | wc -l
|
||||||
|
# Should be 7 or more
|
||||||
|
|
||||||
|
# Check metadata section exists
|
||||||
|
grep "## 📊 Metadata" {{story_file}}
|
||||||
|
```
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step name="update_sprint_status" if="update_sprint_status">
|
||||||
|
**Update sprint-status.yaml**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
Read: {{sprint_status}}
|
||||||
|
|
||||||
|
# Add story to sprint status with "ready-for-dev" status
|
||||||
|
# Preserve comments and structure
|
||||||
|
|
||||||
|
Write: {{sprint_status}}
|
||||||
|
```
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step name="final_summary">
|
||||||
|
**Report completion**
|
||||||
|
|
||||||
|
```
|
||||||
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
✅ GREENFIELD STORY CREATED
|
||||||
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
Story: {{epic_num}}.{{story_num}} - {{title}}
|
||||||
|
File: {{story_file}}
|
||||||
|
Sections: 7/7 ✅
|
||||||
|
|
||||||
|
All tasks marked incomplete (greenfield).
|
||||||
|
Ready for implementation.
|
||||||
|
|
||||||
|
Next Steps:
|
||||||
|
1. Review story for accuracy
|
||||||
|
2. Use /story-pipeline or /super-dev-pipeline to implement
|
||||||
|
3. All context loaded and ready
|
||||||
|
|
||||||
|
[N] Create next story
|
||||||
|
[Q] Quit
|
||||||
|
[R] Review generated story
|
||||||
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
```
|
||||||
|
|
||||||
|
**If [N]:** Loop back to initialize with next story.
|
||||||
|
**If [R]:** Display story content, then show menu.
|
||||||
|
</step>
|
||||||
|
|
||||||
|
</process>
|
||||||
|
|
||||||
|
<examples>
|
||||||
|
```bash
|
||||||
|
# Create new greenfield story
|
||||||
|
/create-story
|
||||||
|
> Which story? 20.1
|
||||||
|
|
||||||
|
# With explicit story number
|
||||||
|
/create-story epic=20 story=1
|
||||||
|
```
|
||||||
|
</examples>
|
||||||
|
|
||||||
|
<failure_handling>
|
||||||
|
**Epic not found:** HALT with clear error.
|
||||||
|
**PRD not found:** Warn but continue with available context.
|
||||||
|
**Architecture doc not found:** Warn but continue with epic context.
|
||||||
|
**Write fails:** Report error, display generated content.
|
||||||
|
</failure_handling>
|
||||||
|
|
||||||
|
<success_criteria>
|
||||||
|
- [ ] Epic and PRD context loaded
|
||||||
|
- [ ] Story generated with all 7+ sections
|
||||||
|
- [ ] All tasks marked incomplete (greenfield)
|
||||||
|
- [ ] Story written to correct path
|
||||||
|
- [ ] Sprint status updated (if enabled)
|
||||||
|
</success_criteria>
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
name: create-story
|
||||||
|
description: "Create story for greenfield features with zero existing implementation (no codebase scanning)"
|
||||||
|
author: "Jonah Schulte"
|
||||||
|
|
||||||
|
# Critical variables from config
|
||||||
|
config_source: "{project-root}/_bmad/bmm/config.yaml"
|
||||||
|
user_name: "{config_source}:user_name"
|
||||||
|
communication_language: "{config_source}:communication_language"
|
||||||
|
date: system-generated
|
||||||
|
planning_artifacts: "{config_source}:planning_artifacts"
|
||||||
|
implementation_artifacts: "{config_source}:implementation_artifacts"
|
||||||
|
output_folder: "{implementation_artifacts}"
|
||||||
|
story_dir: "{implementation_artifacts}"
|
||||||
|
|
||||||
|
# Workflow components
|
||||||
|
installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/create-story"
|
||||||
|
instructions: "{installed_path}/workflow.md"
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
variables:
|
||||||
|
sprint_status: "{implementation_artifacts}/sprint-status.yaml"
|
||||||
|
epics_file: "{planning_artifacts}/epics.md"
|
||||||
|
prd_file: "{planning_artifacts}/prd.md"
|
||||||
|
architecture_file: "{planning_artifacts}/architecture.md"
|
||||||
|
|
||||||
|
# Project context
|
||||||
|
project_context: "**/project-context.md"
|
||||||
|
|
||||||
|
default_output_file: "{story_dir}/{{story_key}}.md"
|
||||||
|
|
||||||
|
standalone: true
|
||||||
|
|
||||||
|
web_bundle: false
|
||||||
|
|
@ -0,0 +1,270 @@
|
||||||
|
# Create Story v3.0 - Greenfield Story Generation
|
||||||
|
|
||||||
|
<purpose>
|
||||||
|
Generate story for net-new features with zero existing implementation.
|
||||||
|
No codebase scanning—all tasks assumed incomplete (greenfield).
|
||||||
|
Focused on clear requirements and implementation guidance.
|
||||||
|
</purpose>
|
||||||
|
|
||||||
|
<philosophy>
|
||||||
|
**Fast Story Generation for New Features**
|
||||||
|
|
||||||
|
1. Load PRD, epic, and architecture context
|
||||||
|
2. Generate clear user story with acceptance criteria
|
||||||
|
3. All tasks marked incomplete (greenfield assumption)
|
||||||
|
4. No codebase scanning—saves time for net-new work
|
||||||
|
5. Ready for immediate implementation
|
||||||
|
</philosophy>
|
||||||
|
|
||||||
|
<config>
|
||||||
|
name: create-story
|
||||||
|
version: 3.0.0
|
||||||
|
|
||||||
|
task_status:
|
||||||
|
incomplete: "[ ]" # All tasks for greenfield stories
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
update_sprint_status: true
|
||||||
|
create_report: false
|
||||||
|
</config>
|
||||||
|
|
||||||
|
<execution_context>
|
||||||
|
@patterns/verification.md
|
||||||
|
@patterns/hospital-grade.md
|
||||||
|
</execution_context>
|
||||||
|
|
||||||
|
<process>
|
||||||
|
|
||||||
|
<step name="initialize" priority="first">
|
||||||
|
**Identify story and load context**
|
||||||
|
|
||||||
|
```
|
||||||
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
📝 GREENFIELD STORY GENERATION
|
||||||
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
```
|
||||||
|
|
||||||
|
**Ask user for story:**
|
||||||
|
```
|
||||||
|
Which story should I create?
|
||||||
|
|
||||||
|
Provide:
|
||||||
|
- Story number (e.g., "1.9" or "1-9")
|
||||||
|
- OR epic number and story description
|
||||||
|
|
||||||
|
Your choice:
|
||||||
|
```
|
||||||
|
|
||||||
|
**Parse input:**
|
||||||
|
- Extract epic_num, story_num
|
||||||
|
- Determine story file path
|
||||||
|
|
||||||
|
**Load epic context:**
|
||||||
|
```bash
|
||||||
|
Read: {{planning_artifacts}}/epics.md
|
||||||
|
```
|
||||||
|
|
||||||
|
Extract:
|
||||||
|
- Epic business objectives
|
||||||
|
- Technical constraints
|
||||||
|
- Dependencies
|
||||||
|
|
||||||
|
**Load architecture context (if exists):**
|
||||||
|
```bash
|
||||||
|
Read: {{planning_artifacts}}/architecture.md
|
||||||
|
```
|
||||||
|
|
||||||
|
Extract:
|
||||||
|
- Technical architecture patterns
|
||||||
|
- Technology stack
|
||||||
|
- Integration patterns
|
||||||
|
|
||||||
|
**Load PRD context:**
|
||||||
|
```bash
|
||||||
|
Read: {{planning_artifacts}}/prd.md
|
||||||
|
```
|
||||||
|
|
||||||
|
Extract relevant sections:
|
||||||
|
- User personas
|
||||||
|
- Feature requirements
|
||||||
|
- Non-functional requirements
|
||||||
|
|
||||||
|
```
|
||||||
|
✅ Context Loaded
|
||||||
|
|
||||||
|
Story: {{epic_num}}.{{story_num}}
|
||||||
|
Epic: {{epic_title}}
|
||||||
|
Architecture: {{architecture_notes}}
|
||||||
|
|
||||||
|
[C] Continue to Story Generation
|
||||||
|
```
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step name="generate_story">
|
||||||
|
**Generate greenfield story**
|
||||||
|
|
||||||
|
```
|
||||||
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
📝 GENERATING STORY
|
||||||
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
```
|
||||||
|
|
||||||
|
**Story structure:**
|
||||||
|
All tasks marked `[ ]` (incomplete) since this is greenfield.
|
||||||
|
|
||||||
|
**Write story file:**
|
||||||
|
```bash
|
||||||
|
Write: {{story_dir}}/story-{{epic_num}}.{{story_num}}.md
|
||||||
|
```
|
||||||
|
|
||||||
|
**Story template:**
|
||||||
|
```markdown
|
||||||
|
# Story {{epic_num}}.{{story_num}}: {{title}}
|
||||||
|
|
||||||
|
## 📊 Metadata
|
||||||
|
- **Epic**: {{epic_num}} - {{epic_title}}
|
||||||
|
- **Priority**: {{priority}}
|
||||||
|
- **Estimate**: {{estimate}}
|
||||||
|
- **Dependencies**: {{dependencies}}
|
||||||
|
- **Created**: {{date}}
|
||||||
|
|
||||||
|
## 📖 User Story
|
||||||
|
As a {{persona}}
|
||||||
|
I want {{capability}}
|
||||||
|
So that {{benefit}}
|
||||||
|
|
||||||
|
## ✅ Acceptance Criteria
|
||||||
|
1. **{{criterion_1}}**
|
||||||
|
- {{detail_1a}}
|
||||||
|
- {{detail_1b}}
|
||||||
|
|
||||||
|
2. **{{criterion_2}}**
|
||||||
|
- {{detail_2a}}
|
||||||
|
- {{detail_2b}}
|
||||||
|
|
||||||
|
## 🔨 Implementation Tasks
|
||||||
|
### Frontend
|
||||||
|
- [ ] {{frontend_task_1}}
|
||||||
|
- [ ] {{frontend_task_2}}
|
||||||
|
|
||||||
|
### Backend
|
||||||
|
- [ ] {{backend_task_1}}
|
||||||
|
- [ ] {{backend_task_2}}
|
||||||
|
|
||||||
|
### Testing
|
||||||
|
- [ ] {{testing_task_1}}
|
||||||
|
- [ ] {{testing_task_2}}
|
||||||
|
|
||||||
|
## 📋 Technical Notes
|
||||||
|
### Architecture
|
||||||
|
{{architecture_guidance}}
|
||||||
|
|
||||||
|
### Dependencies
|
||||||
|
{{dependency_notes}}
|
||||||
|
|
||||||
|
### API Contracts
|
||||||
|
{{api_contract_notes}}
|
||||||
|
|
||||||
|
## 🧪 Testing Strategy
|
||||||
|
### Unit Tests
|
||||||
|
{{unit_test_strategy}}
|
||||||
|
|
||||||
|
### Integration Tests
|
||||||
|
{{integration_test_strategy}}
|
||||||
|
|
||||||
|
### E2E Tests
|
||||||
|
{{e2e_test_strategy}}
|
||||||
|
|
||||||
|
## 🎯 Definition of Done
|
||||||
|
- [ ] All acceptance criteria met
|
||||||
|
- [ ] Unit tests written and passing
|
||||||
|
- [ ] Integration tests written and passing
|
||||||
|
- [ ] Code reviewed and approved
|
||||||
|
- [ ] Documentation updated
|
||||||
|
- [ ] Deployed to staging environment
|
||||||
|
- [ ] Product owner acceptance
|
||||||
|
|
||||||
|
## 📝 Dev Notes
|
||||||
|
{{additional_context}}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Validate generated story:**
|
||||||
|
```bash
|
||||||
|
# Check 7 sections exist
|
||||||
|
grep "^## " {{story_file}} | wc -l
|
||||||
|
# Should be 7 or more
|
||||||
|
|
||||||
|
# Check metadata section exists
|
||||||
|
grep "## 📊 Metadata" {{story_file}}
|
||||||
|
```
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step name="update_sprint_status" if="update_sprint_status">
|
||||||
|
**Update sprint-status.yaml**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
Read: {{sprint_status}}
|
||||||
|
|
||||||
|
# Add story to sprint status with "ready-for-dev" status
|
||||||
|
# Preserve comments and structure
|
||||||
|
|
||||||
|
Write: {{sprint_status}}
|
||||||
|
```
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step name="final_summary">
|
||||||
|
**Report completion**
|
||||||
|
|
||||||
|
```
|
||||||
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
✅ GREENFIELD STORY CREATED
|
||||||
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
Story: {{epic_num}}.{{story_num}} - {{title}}
|
||||||
|
File: {{story_file}}
|
||||||
|
Sections: 7/7 ✅
|
||||||
|
|
||||||
|
All tasks marked incomplete (greenfield).
|
||||||
|
Ready for implementation.
|
||||||
|
|
||||||
|
Next Steps:
|
||||||
|
1. Review story for accuracy
|
||||||
|
2. Use /story-pipeline or /super-dev-pipeline to implement
|
||||||
|
3. All context loaded and ready
|
||||||
|
|
||||||
|
[N] Create next story
|
||||||
|
[Q] Quit
|
||||||
|
[R] Review generated story
|
||||||
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
```
|
||||||
|
|
||||||
|
**If [N]:** Loop back to initialize with next story.
|
||||||
|
**If [R]:** Display story content, then show menu.
|
||||||
|
</step>
|
||||||
|
|
||||||
|
</process>
|
||||||
|
|
||||||
|
<examples>
|
||||||
|
```bash
|
||||||
|
# Create new greenfield story
|
||||||
|
/create-story
|
||||||
|
> Which story? 20.1
|
||||||
|
|
||||||
|
# With explicit story number
|
||||||
|
/create-story epic=20 story=1
|
||||||
|
```
|
||||||
|
</examples>
|
||||||
|
|
||||||
|
<failure_handling>
|
||||||
|
**Epic not found:** HALT with clear error.
|
||||||
|
**PRD not found:** Warn but continue with available context.
|
||||||
|
**Architecture doc not found:** Warn but continue with epic context.
|
||||||
|
**Write fails:** Report error, display generated content.
|
||||||
|
</failure_handling>
|
||||||
|
|
||||||
|
<success_criteria>
|
||||||
|
- [ ] Epic and PRD context loaded
|
||||||
|
- [ ] Story generated with all 7+ sections
|
||||||
|
- [ ] All tasks marked incomplete (greenfield)
|
||||||
|
- [ ] Story written to correct path
|
||||||
|
- [ ] Sprint status updated (if enabled)
|
||||||
|
</success_criteria>
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
name: create-story
|
||||||
|
description: "Create story for greenfield features with zero existing implementation (no codebase scanning)"
|
||||||
|
author: "Jonah Schulte"
|
||||||
|
|
||||||
|
# Critical variables from config
|
||||||
|
config_source: "{project-root}/_bmad/bmm/config.yaml"
|
||||||
|
user_name: "{config_source}:user_name"
|
||||||
|
communication_language: "{config_source}:communication_language"
|
||||||
|
date: system-generated
|
||||||
|
planning_artifacts: "{config_source}:planning_artifacts"
|
||||||
|
implementation_artifacts: "{config_source}:implementation_artifacts"
|
||||||
|
output_folder: "{implementation_artifacts}"
|
||||||
|
story_dir: "{implementation_artifacts}"
|
||||||
|
|
||||||
|
# Workflow components
|
||||||
|
installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/create-story"
|
||||||
|
instructions: "{installed_path}/workflow.md"
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
variables:
|
||||||
|
sprint_status: "{implementation_artifacts}/sprint-status.yaml"
|
||||||
|
epics_file: "{planning_artifacts}/epics.md"
|
||||||
|
prd_file: "{planning_artifacts}/prd.md"
|
||||||
|
architecture_file: "{planning_artifacts}/architecture.md"
|
||||||
|
|
||||||
|
# Project context
|
||||||
|
project_context: "**/project-context.md"
|
||||||
|
|
||||||
|
default_output_file: "{story_dir}/{{story_key}}.md"
|
||||||
|
|
||||||
|
standalone: true
|
||||||
|
|
||||||
|
web_bundle: false
|
||||||
Loading…
Reference in New Issue