bmad初始化
This commit is contained in:
260
bmad/bmm/workflows/workflow-status/README.md
Normal file
260
bmad/bmm/workflows/workflow-status/README.md
Normal file
@@ -0,0 +1,260 @@
|
||||
# Workflow Status System
|
||||
|
||||
The universal entry point for BMM workflows - answers "what should I do now?" for any agent.
|
||||
|
||||
## Overview
|
||||
|
||||
The workflow status system provides:
|
||||
|
||||
- **Smart project initialization** - Detects existing work and infers project details
|
||||
- **Simple status tracking** - Key-value pairs for instant parsing
|
||||
- **Intelligent routing** - Suggests next actions based on current state
|
||||
- **Modular workflow paths** - Each project type/level has its own clean definition
|
||||
|
||||
## Architecture
|
||||
|
||||
### Core Components
|
||||
|
||||
```
|
||||
workflow-status/
|
||||
├── workflow.yaml # Main configuration
|
||||
├── instructions.md # Status checker (99 lines)
|
||||
├── workflow-status-template.yaml # Clean YAML status template
|
||||
├── project-levels.yaml # Source of truth for scale definitions
|
||||
└── paths/ # Modular workflow definitions
|
||||
├── greenfield-level-0.yaml through level-4.yaml
|
||||
├── brownfield-level-0.yaml through level-4.yaml
|
||||
└── game-design.yaml
|
||||
```
|
||||
|
||||
### Related Workflow
|
||||
|
||||
```
|
||||
workflow-init/
|
||||
├── workflow.yaml # Initialization configuration
|
||||
└── instructions.md # Smart setup (182 lines)
|
||||
```
|
||||
|
||||
## How It Works
|
||||
|
||||
### For New Projects
|
||||
|
||||
1. User runs `workflow-status`
|
||||
2. System finds no status file
|
||||
3. Directs to `workflow-init`
|
||||
4. Init workflow:
|
||||
- Scans for existing work (PRDs, code, etc.)
|
||||
- Infers project details from what it finds
|
||||
- Asks minimal questions (name + description)
|
||||
- Confirms understanding in one step
|
||||
- Creates status file with workflow path
|
||||
|
||||
### For Existing Projects
|
||||
|
||||
1. User runs `workflow-status`
|
||||
2. System reads status file
|
||||
3. Shows current state and options:
|
||||
- Continue in-progress work
|
||||
- Next required step
|
||||
- Available optional workflows
|
||||
4. User picks action
|
||||
|
||||
## Status File Format
|
||||
|
||||
Clean YAML format with all workflows listed up front:
|
||||
|
||||
```yaml
|
||||
# generated: 2025-10-29
|
||||
# project: MyProject
|
||||
# project_type: software
|
||||
# project_level: 2
|
||||
# field_type: greenfield
|
||||
# workflow_path: greenfield-level-2.yaml
|
||||
|
||||
workflow_status:
|
||||
# Phase 1: Analysis
|
||||
brainstorm-project: optional
|
||||
research: optional
|
||||
product-brief: recommended
|
||||
|
||||
# Phase 2: Planning
|
||||
prd: docs/prd.md
|
||||
validate-prd: optional
|
||||
create-design: conditional
|
||||
|
||||
# Phase 3: Solutioning
|
||||
create-architecture: required
|
||||
validate-architecture: optional
|
||||
solutioning-gate-check: required
|
||||
```
|
||||
|
||||
**Status Values:**
|
||||
|
||||
- `required` / `optional` / `recommended` / `conditional` - Not yet started
|
||||
- `{file-path}` - Completed (e.g., `docs/prd.md`)
|
||||
- `skipped` - Optional workflow that was skipped
|
||||
|
||||
Any agent can instantly parse what they need:
|
||||
|
||||
- Read YAML to see all workflows and their status
|
||||
- Check which workflows are completed vs pending
|
||||
- Auto-detect existing work by scanning for output files
|
||||
|
||||
## Project Levels
|
||||
|
||||
Source of truth: `/src/modules/bmm/README.md` lines 77-85
|
||||
|
||||
- **Level 0**: Single atomic change (1 story)
|
||||
- **Level 1**: Small feature (1-10 stories)
|
||||
- **Level 2**: Medium project (5-15 stories)
|
||||
- **Level 3**: Complex system (12-40 stories)
|
||||
- **Level 4**: Enterprise scale (40+ stories)
|
||||
|
||||
## Workflow Paths
|
||||
|
||||
Each combination has its own file:
|
||||
|
||||
- `greenfield-level-X.yaml` - New projects at each level
|
||||
- `brownfield-level-X.yaml` - Existing codebases at each level
|
||||
- `game-design.yaml` - Game projects (all levels)
|
||||
|
||||
Benefits:
|
||||
|
||||
- Load only what's needed (60 lines vs 750+)
|
||||
- Easy to maintain individual paths
|
||||
- Clear separation of concerns
|
||||
|
||||
## Smart Detection
|
||||
|
||||
The init workflow intelligently detects:
|
||||
|
||||
**Project Type:**
|
||||
|
||||
- Finds GDD → game
|
||||
- Otherwise → software
|
||||
|
||||
**Project Level:**
|
||||
|
||||
- Reads PRD epic/story counts
|
||||
- Analyzes scope descriptions
|
||||
- Makes educated guess
|
||||
|
||||
**Field Type:**
|
||||
|
||||
- Finds source code → brownfield
|
||||
- Only planning docs → greenfield
|
||||
- Checks git history age
|
||||
|
||||
**Documentation Status:**
|
||||
|
||||
- Finds index.md → was undocumented
|
||||
- Good README → documented
|
||||
- Missing docs → needs documentation
|
||||
|
||||
## Usage Examples
|
||||
|
||||
### Any Agent Checking Status
|
||||
|
||||
```
|
||||
Agent: workflow-status
|
||||
Result: "Current: Phase 2 - Planning, Next: prd (pm agent)"
|
||||
```
|
||||
|
||||
### New Project Setup
|
||||
|
||||
```
|
||||
Agent: workflow-status
|
||||
System: "No status found. Run workflow-init"
|
||||
Agent: workflow-init
|
||||
System: "Tell me about your project"
|
||||
User: "Building a dashboard with user management"
|
||||
System: "Level 2 greenfield software project. Correct?"
|
||||
User: "Yes"
|
||||
System: "Status created! Next: pm agent, run prd"
|
||||
```
|
||||
|
||||
### Smart Inference
|
||||
|
||||
```
|
||||
System finds: prd-dashboard.md with 3 epics
|
||||
System finds: package.json, src/ directory
|
||||
System infers: Level 2 brownfield software
|
||||
User confirms or corrects
|
||||
```
|
||||
|
||||
## Philosophy
|
||||
|
||||
**Less Structure, More Intelligence**
|
||||
|
||||
Instead of complex if/else logic:
|
||||
|
||||
- Trust the LLM to analyze and infer
|
||||
- Use natural language for corrections
|
||||
- Keep menus simple and contextual
|
||||
- Let intelligence emerge from the model
|
||||
|
||||
**Result:** A workflow system that feels like talking to a smart assistant, not filling out a form.
|
||||
|
||||
## Implementation Details
|
||||
|
||||
### workflow-init (6 Steps)
|
||||
|
||||
1. **Scan for existing work** - Check for docs, code, git history
|
||||
2. **Confirm findings** - Show what was detected (if anything)
|
||||
3. **Gather info** - Name, description, confirm type/level/field
|
||||
4. **Load path file** - Select appropriate workflow definition
|
||||
5. **Generate workflow** - Build from path file
|
||||
6. **Create status file** - Save and show next step
|
||||
|
||||
### workflow-status (4 Steps)
|
||||
|
||||
1. **Check for status file** - Direct to init if missing
|
||||
2. **Parse status** - Extract key-value pairs
|
||||
3. **Display options** - Show current, required, optional
|
||||
4. **Handle selection** - Execute user's choice
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Let the AI guess** - It's usually right, user corrects if needed
|
||||
2. **One conversation** - Get all info in Step 3 of init
|
||||
3. **Simple parsing** - Key-value pairs, not complex structures
|
||||
4. **Modular paths** - Each scenario in its own file
|
||||
5. **Trust intelligence** - LLM understands context better than rules
|
||||
|
||||
## Integration
|
||||
|
||||
Other workflows read the status to coordinate:
|
||||
|
||||
- Any workflow can check CURRENT_PHASE
|
||||
- Workflows can verify prerequisites are complete
|
||||
- All agents can ask "what should I do?"
|
||||
|
||||
**Phase 4 (Implementation):**
|
||||
|
||||
- workflow-status only tracks sprint-planning completion
|
||||
- After sprint-planning, all story/epic tracking happens in sprint-status.yaml
|
||||
- Phase 4 workflows do NOT read/write workflow-status (except sprint-planning for prerequisite verification)
|
||||
|
||||
The workflow-status.yaml file is the single source of truth for Phases 1-3, and sprint-status.yaml takes over for Phase 4 implementation tracking.
|
||||
|
||||
## Benefits
|
||||
|
||||
✅ **Smart Detection** - Infers from existing work instead of asking everything
|
||||
✅ **Minimal Questions** - Just name and description in most cases
|
||||
✅ **Clean Status** - Simple key-value pairs for instant parsing
|
||||
✅ **Modular Paths** - 60-line files instead of 750+ line monolith
|
||||
✅ **Natural Language** - "Tell me about your project" not "Pick 1-12"
|
||||
✅ **Intelligent Menus** - Shows only relevant options
|
||||
✅ **Fast Parsing** - Grep instead of complex logic
|
||||
✅ **Easy Maintenance** - Change one level without affecting others
|
||||
|
||||
## Future Enhancements
|
||||
|
||||
- Visual progress indicators
|
||||
- Time tracking and estimates
|
||||
- Multi-project support
|
||||
- Team synchronization
|
||||
|
||||
---
|
||||
|
||||
**This workflow is the front door to BMad Method. Start here to know what to do next.**
|
||||
390
bmad/bmm/workflows/workflow-status/init/instructions.md
Normal file
390
bmad/bmm/workflows/workflow-status/init/instructions.md
Normal file
@@ -0,0 +1,390 @@
|
||||
# Workflow Init - Project Setup Instructions
|
||||
|
||||
<critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical>
|
||||
<critical>You MUST have already loaded and processed: workflow-init/workflow.yaml</critical>
|
||||
<critical>Communicate in {communication_language} with {user_name}</critical>
|
||||
|
||||
<workflow>
|
||||
|
||||
<step n="1" goal="Quick scan and ask user about THEIR work">
|
||||
<output>Welcome to BMad Method, {user_name}!</output>
|
||||
|
||||
<action>Quick scan for context (do NOT analyze in depth yet):</action>
|
||||
|
||||
- Check for codebase: src/, lib/, package.json, .git, etc.
|
||||
- Check for BMM artifacts: PRD, epics, stories, tech-spec, architecture docs
|
||||
- Store what was found but do NOT infer project details yet
|
||||
|
||||
<ask>What's your project called? {{#if project_name}}(Config shows: {{project_name}}){{/if}}</ask>
|
||||
<action>Set project_name</action>
|
||||
<template-output>project_name</template-output>
|
||||
|
||||
<check if="found artifacts OR found codebase">
|
||||
<output>I found some existing work here. Let me understand what you're working on:</output>
|
||||
|
||||
<check if="found artifacts">
|
||||
<output>
|
||||
**Planning Documents Found:**
|
||||
{{#each artifacts}}
|
||||
- {{artifact_name}} ({{artifact_type}}, {{story_count}} stories, modified {{date}})
|
||||
{{/each}}
|
||||
</output>
|
||||
</check>
|
||||
|
||||
<check if="found codebase">
|
||||
<output>
|
||||
**Codebase Found:**
|
||||
- Source code in: {{source_dirs}}
|
||||
- Tech stack: {{detected_tech_stack}}
|
||||
{{#if git_history}}
|
||||
- Git history: {{commit_count}} commits, last commit {{last_commit_date}}
|
||||
{{/if}}
|
||||
</output>
|
||||
</check>
|
||||
|
||||
<ask>Looking at what I found, are these:
|
||||
|
||||
a) **Works in progress you're finishing** - continuing the work described in these documents
|
||||
b) **Documents from a previous effort** - you're starting something NEW and different now
|
||||
c) **The proposed work you're about to start** - these describe what you want to do
|
||||
d) **None of these** - let me explain what I'm actually working on
|
||||
|
||||
Your choice [a/b/c/d]:</ask>
|
||||
|
||||
<check if="choice == a">
|
||||
<action>User is continuing old work - analyze artifacts to get details</action>
|
||||
<action>Set continuing_old_work = true</action>
|
||||
<action>Go to Step 2 (Analyze artifacts for details)</action>
|
||||
</check>
|
||||
|
||||
<check if="choice == b">
|
||||
<action>User is doing NEW work - old artifacts are just context</action>
|
||||
<action>Set continuing_old_work = false</action>
|
||||
<action>Go to Step 3 (Ask about NEW work)</action>
|
||||
</check>
|
||||
|
||||
<check if="choice == c">
|
||||
<action>Artifacts describe proposed work</action>
|
||||
<action>Set continuing_old_work = true</action>
|
||||
<action>Go to Step 2 (Analyze artifacts for details)</action>
|
||||
</check>
|
||||
|
||||
<check if="choice == d">
|
||||
<action>User will explain their situation</action>
|
||||
<action>Go to Step 3 (Ask about their work)</action>
|
||||
</check>
|
||||
</check>
|
||||
|
||||
<check if="NOT found artifacts AND NOT found codebase">
|
||||
<output>I don't see any existing code or planning documents. Looks like we're starting fresh!</output>
|
||||
<action>Go to Step 3 (Ask about their work)</action>
|
||||
</check>
|
||||
</step>
|
||||
|
||||
<step n="2" goal="Analyze artifacts for continuing work" if="continuing_old_work == true">
|
||||
<action>Analyze found artifacts in detail:</action>
|
||||
<action>Extract project type from content (game vs software)</action>
|
||||
<action>Count stories/epics to estimate level:
|
||||
- Level 0: 1 story
|
||||
- Level 1: 1-10 stories
|
||||
- Level 2: 5-15 stories
|
||||
- Level 3: 12-40 stories
|
||||
- Level 4: 40+ stories
|
||||
</action>
|
||||
<action>Detect field type from codebase presence (greenfield vs brownfield)</action>
|
||||
|
||||
<output>Based on the artifacts you're continuing, I'm suggesting **Level {{project_level}}** because I found {{story_count}} stories across {{epic_count}} epics.
|
||||
|
||||
Here's the complexity scale for reference:
|
||||
|
||||
**{{field_type}} Project Levels:**
|
||||
|
||||
- **Level 0** - Single atomic change (1 story) - bug fixes, typos, minor updates
|
||||
- **Level 1** - Small feature (1-10 stories) - simple additions, isolated features
|
||||
- **Level 2** - Medium feature set (5-15 stories) - dashboards, multiple related features
|
||||
- **Level 3** - Complex integration (12-40 stories) - platform features, major integrations
|
||||
- **Level 4** - Enterprise expansion (40+ stories) - multi-tenant, ecosystem changes
|
||||
|
||||
**My suggestion:** Level {{project_level}} {{field_type}} {{project_type}} project
|
||||
</output>
|
||||
|
||||
<ask>Does this match what you're working on? (y/n or tell me what's different)</ask>
|
||||
|
||||
<check if="user confirms">
|
||||
<action>Use analyzed values</action>
|
||||
<action>Go to Step 4 (Load workflow path)</action>
|
||||
</check>
|
||||
|
||||
<check if="user corrects">
|
||||
<action>Update values based on user corrections</action>
|
||||
<ask>Updated to: Level {{project_level}} {{field_type}} {{project_type}}. Correct? (y/n)</ask>
|
||||
<action>Go to Step 4 (Load workflow path)</action>
|
||||
</check>
|
||||
|
||||
<template-output>project_name</template-output>
|
||||
<template-output>project_type</template-output>
|
||||
<template-output>project_level</template-output>
|
||||
<template-output>field_type</template-output>
|
||||
</step>
|
||||
|
||||
<step n="3" goal="Ask user about THEIR work">
|
||||
<ask>Tell me about what you're working on. What's the goal?</ask>
|
||||
|
||||
<action>Analyze user's description using keyword detection:
|
||||
|
||||
- Level 0 keywords: "fix", "bug", "typo", "small change", "update", "patch", "one file"
|
||||
- Level 1 keywords: "simple", "basic", "small feature", "add", "minor", "single feature"
|
||||
- Level 2 keywords: "dashboard", "several features", "admin panel", "medium", "feature set"
|
||||
- Level 3 keywords: "platform", "integration", "complex", "system", "architecture"
|
||||
- Level 4 keywords: "enterprise", "multi-tenant", "multiple products", "ecosystem", "phased"
|
||||
</action>
|
||||
|
||||
<action>Make initial determination:
|
||||
|
||||
- project_type (game or software)
|
||||
- project_level (0-4) - tentative based on keywords
|
||||
- field_type (greenfield or brownfield)
|
||||
- confidence (high/medium/low) - based on clarity of description
|
||||
</action>
|
||||
|
||||
<check if="confidence == low OR description is ambiguous">
|
||||
<output>Thanks! Let me ask a few clarifying questions to make sure I route you correctly:</output>
|
||||
|
||||
<ask>1. Roughly how many distinct features or changes do you think this involves?
|
||||
|
||||
- Just one thing (e.g., fix a bug, add one button, update one API)
|
||||
- A small feature (2-5 related changes)
|
||||
- Several features (5-15 related things)
|
||||
- A major addition (15-40 things to do)
|
||||
- A large initiative (40+ changes across many areas)
|
||||
</ask>
|
||||
|
||||
<action>Adjust project_level based on response</action>
|
||||
|
||||
<ask>2. How much of the existing codebase will this touch?
|
||||
|
||||
- Single file or small area
|
||||
- One module or component
|
||||
- Multiple modules (2-4 areas)
|
||||
- Many modules with integration needs
|
||||
- System-wide changes
|
||||
</ask>
|
||||
|
||||
<action>Validate and adjust project_level based on scope</action>
|
||||
|
||||
<check if="project_type unclear">
|
||||
<ask>3. Is this a game or a software application?</ask>
|
||||
<action>Set project_type based on response</action>
|
||||
</check>
|
||||
</check>
|
||||
|
||||
<check if="found codebase BUT field_type still unclear">
|
||||
<ask>I see you have existing code here. Are you:
|
||||
|
||||
1. **Adding to or modifying** the existing codebase (brownfield)
|
||||
2. **Starting fresh** - the existing code is just a scaffold/template (greenfield)
|
||||
3. **Something else** - let me clarify
|
||||
|
||||
Your choice [1/2/3]:</ask>
|
||||
|
||||
<check if="choice == 1">
|
||||
<action>Set field_type = "brownfield"</action>
|
||||
</check>
|
||||
|
||||
<check if="choice == 2">
|
||||
<action>Set field_type = "greenfield"</action>
|
||||
<output>Got it - treating as greenfield despite the scaffold.</output>
|
||||
</check>
|
||||
|
||||
<check if="choice == 3">
|
||||
<ask>Please explain your situation:</ask>
|
||||
<action>Analyze explanation and set field_type accordingly</action>
|
||||
</check>
|
||||
</check>
|
||||
|
||||
<action>Build reasoning for suggestion</action>
|
||||
<action>Store detected_indicators (keywords, scope indicators, complexity signals)</action>
|
||||
|
||||
<output>Based on what you've described, I'm suggesting **Level {{project_level}}** because:
|
||||
|
||||
{{reasoning}} (detected: {{detected_indicators}})
|
||||
|
||||
Here's the complexity scale for reference:
|
||||
|
||||
**{{field_type}} Project Levels:**
|
||||
|
||||
- **Level 0** - Single atomic change (1 story) - bug fixes, typos, minor updates, single file changes
|
||||
- **Level 1** - Small feature (1-10 stories) - simple additions, isolated features, one module
|
||||
- **Level 2** - Medium feature set (5-15 stories) - dashboards, multiple related features, several modules
|
||||
- **Level 3** - Complex integration (12-40 stories) - platform features, major integrations, architectural changes
|
||||
- **Level 4** - Enterprise expansion (40+ stories) - multi-tenant, ecosystem changes, system-wide initiatives
|
||||
|
||||
**My suggestion:** Level {{project_level}} {{field_type}} {{project_type}} project
|
||||
</output>
|
||||
|
||||
<ask>Does this match what you're working on? (y/n or tell me what's different)</ask>
|
||||
|
||||
<check if="user confirms">
|
||||
<action>Use determined values</action>
|
||||
<action>Go to Step 4 (Load workflow path)</action>
|
||||
</check>
|
||||
|
||||
<check if="user corrects">
|
||||
<action>Update values based on corrections</action>
|
||||
<output>Updated to: Level {{project_level}} {{field_type}} {{project_type}}</output>
|
||||
<ask>Does that look right now? (y/n)</ask>
|
||||
<action>If yes, go to Step 4. If no, ask what needs adjustment and repeat.</action>
|
||||
</check>
|
||||
|
||||
<template-output>project_name</template-output>
|
||||
<template-output>project_type</template-output>
|
||||
<template-output>project_level</template-output>
|
||||
<template-output>field_type</template-output>
|
||||
</step>
|
||||
|
||||
<step n="4" goal="Load appropriate workflow path">
|
||||
<action>Determine path file based on selections:</action>
|
||||
|
||||
<check if="project_type == game">
|
||||
<action>Load {path_files}/game-design.yaml</action>
|
||||
<action>Set workflow_path_file = "game-design.yaml"</action>
|
||||
</check>
|
||||
|
||||
<check if="project_type == software">
|
||||
<!-- field_type will be "greenfield" or "brownfield", project_level will be 0-4 -->
|
||||
<action>Build filename: {field_type}-level-{project_level}.yaml</action>
|
||||
<action>Load {path_files}/{field_type}-level-{project_level}.yaml</action>
|
||||
<action>Set workflow_path_file = constructed filename</action>
|
||||
</check>
|
||||
|
||||
<action>Parse workflow path file to extract phases and workflows</action>
|
||||
<template-output>workflow_path_file</template-output>
|
||||
</step>
|
||||
|
||||
<step n="5" goal="Build workflow status YAML structure">
|
||||
<action>Parse the loaded workflow path file and extract all workflows</action>
|
||||
|
||||
<action>For each phase in the path file:
|
||||
|
||||
- Extract phase number and name
|
||||
- Extract all workflows in that phase
|
||||
- For each workflow, determine its status type:
|
||||
- required: true → status = "required"
|
||||
- recommended: true → status = "recommended"
|
||||
- conditional: "if_has_ui" → status = "conditional"
|
||||
- optional: true → status = "optional"
|
||||
- Default if not specified → status = "required"
|
||||
</action>
|
||||
|
||||
<action>Build the workflow_items list in this format:
|
||||
|
||||
For each phase:
|
||||
|
||||
1. Add comment header: ` # Phase {n}: {Phase Name}`
|
||||
2. For each workflow in phase:
|
||||
- Add entry: ` {workflow-id}: {status}`
|
||||
3. Add blank line between phases
|
||||
|
||||
Example structure:
|
||||
|
||||
```
|
||||
# Phase 1: Analysis
|
||||
brainstorm-project: optional
|
||||
research: optional
|
||||
product-brief: recommended
|
||||
|
||||
# Phase 2: Planning
|
||||
prd: required
|
||||
validate-prd: optional
|
||||
create-design: conditional
|
||||
```
|
||||
|
||||
</action>
|
||||
|
||||
<action>Scan for existing workflow output files to auto-detect completion:
|
||||
|
||||
For each workflow in the list, check common output locations:
|
||||
|
||||
- {output_folder}/brainstorm-\*.md for brainstorm-project
|
||||
- {output_folder}/research-\*.md for research
|
||||
- {output_folder}/product-brief.md for product-brief
|
||||
- {output_folder}/prd.md for prd
|
||||
- {output_folder}/ux-design.md for create-design
|
||||
- {output_folder}/architecture.md for create-architecture
|
||||
- {output_folder}/tech-spec.md for tech-spec
|
||||
- {output_folder}/sprint-status.yaml for sprint-planning
|
||||
|
||||
CRITICAL: If file exists, replace status with ONLY the file path - nothing else.
|
||||
Example: product-brief: docs/product-brief.md
|
||||
NOT: product-brief: "completed - docs/product-brief.md" or any other text.
|
||||
</action>
|
||||
|
||||
<template-output>workflow_items</template-output>
|
||||
</step>
|
||||
|
||||
<step n="6" goal="Create workflow status file">
|
||||
<action>Set generated date to current date</action>
|
||||
<template-output>generated</template-output>
|
||||
|
||||
<action>Prepare all template variables for workflow-status-template.yaml:
|
||||
|
||||
- generated: {current_date}
|
||||
- project_name: {project_name}
|
||||
- project_type: {project_type}
|
||||
- project_level: {project_level}
|
||||
- field_type: {field_type}
|
||||
- workflow_path_file: {workflow_path_file}
|
||||
- workflow_items: {workflow_items from step 5}
|
||||
</action>
|
||||
|
||||
<action>Display a preview of what will be created:
|
||||
|
||||
Show the first workflow in each phase and total count:
|
||||
|
||||
"Ready to create workflow status tracking:
|
||||
|
||||
- Phase 1 ({phase_1_workflow_count} workflows): Starting with {first_workflow_phase_1}
|
||||
- Phase 2 ({phase_2_workflow_count} workflows): Starting with {first_workflow_phase_2}
|
||||
- Phase 3 ({phase_3_workflow_count} workflows): Starting with {first_workflow_phase_3}
|
||||
- Phase 4 (Implementation tracked separately in sprint-status.yaml)
|
||||
|
||||
{{#if detected_completed_workflows}}
|
||||
Found existing work:
|
||||
{{#each detected_files}}
|
||||
|
||||
- {{workflow_name}}: {{file_path}}
|
||||
{{/each}}
|
||||
{{/if}}"
|
||||
</action>
|
||||
|
||||
<ask>Ready to create your workflow status file? (y/n)</ask>
|
||||
|
||||
<check if="answer == y">
|
||||
<action>Generate YAML from workflow-status-template.yaml with all variables</action>
|
||||
<action>Save status file to {output_folder}/bmm-workflow-status.yaml</action>
|
||||
|
||||
<action>Identify the first non-completed workflow in the list</action>
|
||||
<action>Look up that workflow's agent and command from the path file</action>
|
||||
|
||||
<output>✅ Workflow status file created at {output_folder}/bmm-workflow-status.yaml
|
||||
|
||||
**Next Steps:**
|
||||
|
||||
{{#if detected_completed_workflows}}
|
||||
You have {{detected_count}} workflow(s) already completed. Great progress!
|
||||
{{/if}}
|
||||
|
||||
**Next Workflow:** {{next_workflow_name}}
|
||||
|
||||
**Agent:** {{next_agent}}
|
||||
|
||||
**Command:** /bmad:bmm:workflows:{{next_workflow_id}}
|
||||
|
||||
{{#if next_agent !== 'pm'}}
|
||||
It is recommended to start a new chat and load the {{next_agent}} agent before running the next workflow.
|
||||
{{/if}}
|
||||
</output>
|
||||
</check>
|
||||
</step>
|
||||
|
||||
</workflow>
|
||||
27
bmad/bmm/workflows/workflow-status/init/workflow.yaml
Normal file
27
bmad/bmm/workflows/workflow-status/init/workflow.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
# Workflow Init - Initial Project Setup
|
||||
name: workflow-init
|
||||
description: "Initialize a new BMM project by determining level, type, and creating workflow path"
|
||||
author: "BMad"
|
||||
|
||||
# Critical variables from config
|
||||
config_source: "{project-root}/bmad/bmm/config.yaml"
|
||||
output_folder: "{config_source}:output_folder"
|
||||
user_name: "{config_source}:user_name"
|
||||
project_name: "{config_source}:project_name"
|
||||
communication_language: "{config_source}:communication_language"
|
||||
document_output_language: "{config_source}:document_output_language"
|
||||
user_skill_level: "{config_source}:user_skill_level"
|
||||
date: system-generated
|
||||
|
||||
# Workflow components
|
||||
installed_path: "{project-root}/bmad/bmm/workflows/workflow-status/init"
|
||||
instructions: "{installed_path}/instructions.md"
|
||||
template: "{project-root}/bmad/bmm/workflows/workflow-status/workflow-status-template.yaml"
|
||||
|
||||
# Path data files
|
||||
path_files: "{project-root}/bmad/bmm/workflows/workflow-status/paths/"
|
||||
|
||||
# Output configuration
|
||||
default_output_file: "{output_folder}/bmm-workflow-status.yaml"
|
||||
|
||||
standalone: true
|
||||
386
bmad/bmm/workflows/workflow-status/instructions.md
Normal file
386
bmad/bmm/workflows/workflow-status/instructions.md
Normal file
@@ -0,0 +1,386 @@
|
||||
# Workflow Status Check - Multi-Mode Service
|
||||
|
||||
<critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical>
|
||||
<critical>You MUST have already loaded and processed: {project-root}/bmad/bmm/workflows/workflow-status/workflow.yaml</critical>
|
||||
<critical>This workflow operates in multiple modes: interactive (default), validate, data, init-check, update</critical>
|
||||
<critical>Other workflows can call this as a service to avoid duplicating status logic</critical>
|
||||
|
||||
<workflow>
|
||||
|
||||
<step n="0" goal="Determine execution mode">
|
||||
<action>Check for {{mode}} parameter passed by calling workflow</action>
|
||||
<action>Default mode = "interactive" if not specified</action>
|
||||
|
||||
<check if="mode == interactive">
|
||||
<action>Continue to Step 1 for normal status check flow</action>
|
||||
</check>
|
||||
|
||||
<check if="mode == validate">
|
||||
<action>Jump to Step 10 for workflow validation service</action>
|
||||
</check>
|
||||
|
||||
<check if="mode == data">
|
||||
<action>Jump to Step 20 for data extraction service</action>
|
||||
</check>
|
||||
|
||||
<check if="mode == init-check">
|
||||
<action>Jump to Step 30 for simple init check</action>
|
||||
</check>
|
||||
|
||||
<check if="mode == update">
|
||||
<action>Jump to Step 40 for status update service</action>
|
||||
</check>
|
||||
</step>
|
||||
|
||||
<step n="1" goal="Check for status file">
|
||||
<action>Search {output_folder}/ for file: bmm-workflow-status.yaml</action>
|
||||
|
||||
<check if="no status file found">
|
||||
<output>No workflow status found. To get started:
|
||||
|
||||
Load analyst agent and run: `workflow-init`
|
||||
|
||||
This will guide you through project setup and create your workflow path.</output>
|
||||
<action>Exit workflow</action>
|
||||
</check>
|
||||
|
||||
<check if="status file found">
|
||||
<action>Continue to step 2</action>
|
||||
</check>
|
||||
</step>
|
||||
|
||||
<step n="2" goal="Read and parse status">
|
||||
<action>Read bmm-workflow-status.yaml</action>
|
||||
<action>Parse YAML file and extract metadata from comments and fields:</action>
|
||||
|
||||
Parse these fields from YAML comments and metadata:
|
||||
|
||||
- project (from YAML field)
|
||||
- project_type (from YAML field)
|
||||
- project_level (from YAML field)
|
||||
- field_type (from YAML field)
|
||||
- workflow_path (from YAML field)
|
||||
|
||||
<action>Parse workflow_status section:</action>
|
||||
|
||||
- Extract all workflow entries with their statuses
|
||||
- Identify completed workflows (status = file path)
|
||||
- Identify pending workflows (status = required/optional/recommended/conditional)
|
||||
- Identify skipped workflows (status = skipped)
|
||||
|
||||
<action>Determine current state:</action>
|
||||
|
||||
- Find first workflow with status != file path and != skipped
|
||||
- This is the NEXT workflow to work on
|
||||
- Look up agent and command from workflow path file
|
||||
</step>
|
||||
|
||||
<step n="3" goal="Display current status and options">
|
||||
<action>Load workflow path file based on workflow_path field</action>
|
||||
<action>Identify current phase from next workflow to be done</action>
|
||||
<action>Build list of completed, pending, and optional workflows</action>
|
||||
|
||||
<output>
|
||||
## 📊 Current Status
|
||||
|
||||
**Project:** {{project}} (Level {{project_level}} {{project_type}})
|
||||
|
||||
**Path:** {{workflow_path}}
|
||||
|
||||
**Progress:**
|
||||
|
||||
{{#each phases}}
|
||||
{{phase_name}}:
|
||||
{{#each workflows_in_phase}}
|
||||
|
||||
- {{workflow_name}}: {{status_display}}
|
||||
{{/each}}
|
||||
{{/each}}
|
||||
|
||||
## 🎯 Next Steps
|
||||
|
||||
**Next Workflow:** {{next_workflow_name}}
|
||||
|
||||
**Agent:** {{next_agent}}
|
||||
|
||||
**Command:** /bmad:bmm:workflows:{{next_workflow_id}}
|
||||
|
||||
{{#if optional_workflows_available}}
|
||||
**Optional Workflows Available:**
|
||||
{{#each optional_workflows}}
|
||||
|
||||
- {{workflow_name}} ({{agent}}) - {{status}}
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
</output>
|
||||
</step>
|
||||
|
||||
<step n="4" goal="Offer actions">
|
||||
<ask>What would you like to do?
|
||||
|
||||
1. **Start next workflow** - {{next_workflow_name}} ({{next_agent}} agent)
|
||||
{{#if optional_workflows_available}}
|
||||
2. **Run optional workflow** - Choose from available options
|
||||
{{/if}}
|
||||
3. **View full status YAML** - See complete status file
|
||||
4. **Update workflow status** - Mark a workflow as completed or skipped
|
||||
5. **Exit** - Return to agent
|
||||
|
||||
Your choice:</ask>
|
||||
|
||||
<action>Handle user selection based on available options</action>
|
||||
|
||||
<check if="choice == 1">
|
||||
<output>Ready to run {{next_workflow_name}}!
|
||||
|
||||
**Command:** /bmad:bmm:workflows:{{next_workflow_id}}
|
||||
|
||||
**Agent:** Load {{next_agent}} agent first
|
||||
|
||||
{{#if next_agent !== current_agent}}
|
||||
Tip: Start a new chat and load the {{next_agent}} agent before running this workflow.
|
||||
{{/if}}
|
||||
</output>
|
||||
</check>
|
||||
|
||||
<check if="choice == 2 AND optional_workflows_available">
|
||||
<ask>Which optional workflow?
|
||||
{{#each optional_workflows numbered}}
|
||||
{{number}}. {{workflow_name}} ({{agent}})
|
||||
{{/each}}
|
||||
|
||||
Your choice:</ask>
|
||||
<action>Display selected workflow command and agent</action>
|
||||
</check>
|
||||
|
||||
<check if="choice == 3">
|
||||
<action>Display complete bmm-workflow-status.yaml file contents</action>
|
||||
</check>
|
||||
|
||||
<check if="choice == 4">
|
||||
<ask>What would you like to update?
|
||||
|
||||
1. Mark a workflow as **completed** (provide file path)
|
||||
2. Mark a workflow as **skipped**
|
||||
|
||||
Your choice:</ask>
|
||||
|
||||
<check if="update_choice == 1">
|
||||
<ask>Which workflow? (Enter workflow ID like 'prd' or 'create-architecture')</ask>
|
||||
<ask>File path created? (e.g., docs/prd.md)</ask>
|
||||
<critical>ONLY write the file path as the status value - no other text, notes, or metadata</critical>
|
||||
<action>Update workflow_status in YAML file: {{workflow_id}}: {{file_path}}</action>
|
||||
<action>Save updated YAML file preserving ALL structure and comments</action>
|
||||
<output>✅ Updated {{workflow_id}} to completed: {{file_path}}</output>
|
||||
</check>
|
||||
|
||||
<check if="update_choice == 2">
|
||||
<ask>Which workflow to skip? (Enter workflow ID)</ask>
|
||||
<action>Update workflow_status in YAML file: {{workflow_id}}: skipped</action>
|
||||
<action>Save updated YAML file</action>
|
||||
<output>✅ Marked {{workflow_id}} as skipped</output>
|
||||
</check>
|
||||
</check>
|
||||
</step>
|
||||
|
||||
<!-- ============================================= -->
|
||||
<!-- SERVICE MODES - Called by other workflows -->
|
||||
<!-- ============================================= -->
|
||||
|
||||
<step n="10" goal="Validate mode - Check if calling workflow should proceed">
|
||||
<action>Read {output_folder}/bmm-workflow-status.yaml if exists</action>
|
||||
|
||||
<check if="status file not found">
|
||||
<template-output>status_exists = false</template-output>
|
||||
<template-output>should_proceed = true</template-output>
|
||||
<template-output>warning = "No status file found. Running without progress tracking."</template-output>
|
||||
<template-output>suggestion = "Consider running workflow-init first for progress tracking"</template-output>
|
||||
<action>Return to calling workflow</action>
|
||||
</check>
|
||||
|
||||
<check if="status file found">
|
||||
<action>Parse YAML file to extract project metadata and workflow_status</action>
|
||||
<action>Load workflow path file from workflow_path field</action>
|
||||
<action>Find first non-completed workflow in workflow_status (next workflow)</action>
|
||||
<action>Check if {{calling_workflow}} matches next workflow or is in the workflow list</action>
|
||||
|
||||
<template-output>status_exists = true</template-output>
|
||||
<template-output>project_level = {{project_level}}</template-output>
|
||||
<template-output>project_type = {{project_type}}</template-output>
|
||||
<template-output>field_type = {{field_type}}</template-output>
|
||||
<template-output>next_workflow = {{next_workflow_id}}</template-output>
|
||||
|
||||
<check if="calling_workflow == next_workflow">
|
||||
<template-output>should_proceed = true</template-output>
|
||||
<template-output>warning = ""</template-output>
|
||||
<template-output>suggestion = "Proceeding with planned next step"</template-output>
|
||||
</check>
|
||||
|
||||
<check if="calling_workflow in workflow_status list">
|
||||
<action>Check the status of calling_workflow in YAML</action>
|
||||
|
||||
<check if="status is file path">
|
||||
<template-output>should_proceed = true</template-output>
|
||||
<template-output>warning = "⚠️ Workflow already completed: {{calling_workflow}}"</template-output>
|
||||
<template-output>suggestion = "This workflow was already completed. Re-running will overwrite: {{status}}"</template-output>
|
||||
</check>
|
||||
|
||||
<check if="status is optional/recommended">
|
||||
<template-output>should_proceed = true</template-output>
|
||||
<template-output>warning = "Running optional workflow {{calling_workflow}}"</template-output>
|
||||
<template-output>suggestion = "This is optional. Expected next: {{next_workflow}}"</template-output>
|
||||
</check>
|
||||
|
||||
<check if="status is required but not next">
|
||||
<template-output>should_proceed = true</template-output>
|
||||
<template-output>warning = "⚠️ Out of sequence: Expected {{next_workflow}}, running {{calling_workflow}}"</template-output>
|
||||
<template-output>suggestion = "Consider running {{next_workflow}} instead, or continue if intentional"</template-output>
|
||||
</check>
|
||||
|
||||
</check>
|
||||
|
||||
<check if="calling_workflow NOT in workflow_status list">
|
||||
<template-output>should_proceed = true</template-output>
|
||||
<template-output>warning = "⚠️ Unknown workflow: {{calling_workflow}} not in workflow path"</template-output>
|
||||
<template-output>suggestion = "This workflow is not part of the defined path for this project"</template-output>
|
||||
</check>
|
||||
|
||||
<template-output>status_file_path = {{path to bmm-workflow-status.yaml}}</template-output>
|
||||
</check>
|
||||
|
||||
<action>Return control to calling workflow with all template outputs</action>
|
||||
</step>
|
||||
|
||||
<step n="20" goal="Data mode - Extract specific information">
|
||||
<action>Read {output_folder}/bmm-workflow-status.yaml if exists</action>
|
||||
|
||||
<check if="status file not found">
|
||||
<template-output>status_exists = false</template-output>
|
||||
<template-output>error = "No status file to extract data from"</template-output>
|
||||
<action>Return to calling workflow</action>
|
||||
</check>
|
||||
|
||||
<check if="status file found">
|
||||
<action>Parse YAML file completely</action>
|
||||
<template-output>status_exists = true</template-output>
|
||||
|
||||
<check if="data_request == project_config">
|
||||
<template-output>project_name = {{project}}</template-output>
|
||||
<template-output>project_type = {{project_type}}</template-output>
|
||||
<template-output>project_level = {{project_level}}</template-output>
|
||||
<template-output>field_type = {{field_type}}</template-output>
|
||||
<template-output>workflow_path = {{workflow_path}}</template-output>
|
||||
</check>
|
||||
|
||||
<check if="data_request == workflow_status">
|
||||
<action>Parse workflow_status section and return all workflow: status pairs</action>
|
||||
<template-output>workflow_status = {{workflow_status_object}}</template-output>
|
||||
<action>Calculate completion stats:</action>
|
||||
<template-output>total_workflows = {{count all workflows}}</template-output>
|
||||
<template-output>completed_workflows = {{count file path statuses}}</template-output>
|
||||
<template-output>pending_workflows = {{count required/optional/etc}}</template-output>
|
||||
<template-output>skipped_workflows = {{count skipped}}</template-output>
|
||||
</check>
|
||||
|
||||
<check if="data_request == all">
|
||||
<action>Return all parsed fields as template outputs</action>
|
||||
<template-output>project = {{project}}</template-output>
|
||||
<template-output>project_type = {{project_type}}</template-output>
|
||||
<template-output>project_level = {{project_level}}</template-output>
|
||||
<template-output>field_type = {{field_type}}</template-output>
|
||||
<template-output>workflow_path = {{workflow_path}}</template-output>
|
||||
<template-output>workflow_status = {{workflow_status_object}}</template-output>
|
||||
<template-output>generated = {{generated}}</template-output>
|
||||
</check>
|
||||
|
||||
<template-output>status_file_path = {{path to bmm-workflow-status.yaml}}</template-output>
|
||||
</check>
|
||||
|
||||
<action>Return control to calling workflow with requested data</action>
|
||||
</step>
|
||||
|
||||
<step n="30" goal="Init-check mode - Simple existence check">
|
||||
<action>Check if {output_folder}/bmm-workflow-status.yaml exists</action>
|
||||
|
||||
<check if="exists">
|
||||
<template-output>status_exists = true</template-output>
|
||||
<template-output>suggestion = "Status file found. Ready to proceed."</template-output>
|
||||
</check>
|
||||
|
||||
<check if="not exists">
|
||||
<template-output>status_exists = false</template-output>
|
||||
<template-output>suggestion = "No status file. Run workflow-init to create one (optional for progress tracking)"</template-output>
|
||||
</check>
|
||||
|
||||
<action>Return immediately to calling workflow</action>
|
||||
</step>
|
||||
|
||||
<step n="40" goal="Update mode - Centralized status file updates">
|
||||
<action>Read {output_folder}/bmm-workflow-status.yaml</action>
|
||||
|
||||
<check if="status file not found">
|
||||
<template-output>success = false</template-output>
|
||||
<template-output>error = "No status file found. Cannot update."</template-output>
|
||||
<action>Return to calling workflow</action>
|
||||
</check>
|
||||
|
||||
<check if="status file found">
|
||||
<action>Parse YAML file completely</action>
|
||||
<action>Load workflow path file from workflow_path field</action>
|
||||
<action>Check {{action}} parameter to determine update type</action>
|
||||
|
||||
<!-- ============================================= -->
|
||||
<!-- ACTION: complete_workflow -->
|
||||
<!-- ============================================= -->
|
||||
<check if="action == complete_workflow">
|
||||
<action>Get {{workflow_id}} parameter (required)</action>
|
||||
<action>Get {{output_file}} parameter (required - path to created file)</action>
|
||||
|
||||
<critical>ONLY write the file path as the status value - no other text, notes, or metadata</critical>
|
||||
<action>Update workflow status in YAML:</action>
|
||||
- In workflow_status section, update: {{workflow_id}}: {{output_file}}
|
||||
|
||||
<action>Find {{workflow_id}} in loaded path YAML</action>
|
||||
<action>Determine next workflow from path sequence</action>
|
||||
<action>Find first workflow in workflow_status with status != file path and != skipped</action>
|
||||
|
||||
<action>Save updated YAML file preserving ALL structure and comments</action>
|
||||
|
||||
<template-output>success = true</template-output>
|
||||
<template-output>next_workflow = {{determined next workflow}}</template-output>
|
||||
<template-output>next_agent = {{determined next agent from path file}}</template-output>
|
||||
<template-output>completed_workflow = {{workflow_id}}</template-output>
|
||||
<template-output>output_file = {{output_file}}</template-output>
|
||||
|
||||
</check>
|
||||
|
||||
<!-- ============================================= -->
|
||||
<!-- ACTION: skip_workflow -->
|
||||
<!-- ============================================= -->
|
||||
<check if="action == skip_workflow">
|
||||
<action>Get {{workflow_id}} parameter (required)</action>
|
||||
|
||||
<action>Update workflow status in YAML:</action>
|
||||
- In workflow_status section, update: {{workflow_id}}: skipped
|
||||
|
||||
<action>Save updated YAML file</action>
|
||||
|
||||
<template-output>success = true</template-output>
|
||||
<template-output>skipped_workflow = {{workflow_id}}</template-output>
|
||||
|
||||
</check>
|
||||
|
||||
<!-- ============================================= -->
|
||||
<!-- Unknown action -->
|
||||
<!-- ============================================= -->
|
||||
<check if="action not recognized">
|
||||
<template-output>success = false</template-output>
|
||||
<template-output>error = "Unknown action: {{action}}. Valid actions: complete_workflow, skip_workflow"</template-output>
|
||||
</check>
|
||||
|
||||
</check>
|
||||
|
||||
<action>Return control to calling workflow with template outputs</action>
|
||||
</step>
|
||||
|
||||
</workflow>
|
||||
@@ -0,0 +1,54 @@
|
||||
# Brownfield Level 0 - Single Atomic Change in Existing Codebase
|
||||
# One change to existing system
|
||||
|
||||
project_type: "software"
|
||||
level: 0
|
||||
field_type: "brownfield"
|
||||
description: "Single atomic change to existing codebase"
|
||||
|
||||
phases:
|
||||
- prerequisite: true
|
||||
name: "Documentation"
|
||||
conditional: "if_undocumented"
|
||||
note: "NOT a phase - prerequisite for brownfield without docs OR post-completion cleanup"
|
||||
workflows:
|
||||
- id: "document-project"
|
||||
required: true
|
||||
agent: "analyst"
|
||||
command: "document-project"
|
||||
output: "Comprehensive project documentation"
|
||||
purpose: "Understand existing codebase before planning OR create superior final docs after Phase 4"
|
||||
|
||||
- phase: 1
|
||||
name: "Analysis"
|
||||
optional: true
|
||||
workflows:
|
||||
- id: "brainstorm-project"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "brainstorm-project"
|
||||
|
||||
- phase: 2
|
||||
name: "Planning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "tech-spec"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "tech-spec"
|
||||
output: "Creates single story file"
|
||||
note: "Must understand existing patterns"
|
||||
|
||||
- phase: 3
|
||||
name: "Solutioning"
|
||||
skip: true
|
||||
|
||||
- phase: 4
|
||||
name: "Implementation"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "sprint-planning"
|
||||
required: true
|
||||
agent: "sm"
|
||||
command: "sprint-planning"
|
||||
note: "Creates sprint plan with all stories - subsequent work tracked in sprint plan output, not workflow-status"
|
||||
@@ -0,0 +1,58 @@
|
||||
# Brownfield Level 1 - Small Feature in Existing Codebase
|
||||
# 1-10 stories adding to existing system
|
||||
|
||||
project_type: "software"
|
||||
level: 1
|
||||
field_type: "brownfield"
|
||||
description: "Small feature addition to existing codebase"
|
||||
|
||||
phases:
|
||||
- prerequisite: true
|
||||
name: "Documentation"
|
||||
conditional: "if_undocumented"
|
||||
note: "NOT a phase - prerequisite for brownfield without docs OR post-completion cleanup"
|
||||
workflows:
|
||||
- id: "document-project"
|
||||
required: true
|
||||
agent: "analyst"
|
||||
command: "document-project"
|
||||
output: "Comprehensive project documentation"
|
||||
purpose: "Understand existing codebase before planning OR create superior final docs after Phase 4"
|
||||
|
||||
- phase: 1
|
||||
name: "Analysis"
|
||||
optional: true
|
||||
workflows:
|
||||
- id: "brainstorm-project"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "brainstorm-project"
|
||||
- id: "research"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "research"
|
||||
|
||||
- phase: 2
|
||||
name: "Planning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "tech-spec"
|
||||
required: true
|
||||
agent: "pm"
|
||||
command: "tech-spec"
|
||||
output: "Creates story files for feature"
|
||||
note: "Must integrate with existing architecture"
|
||||
|
||||
- phase: 3
|
||||
name: "Solutioning"
|
||||
skip: true
|
||||
|
||||
- phase: 4
|
||||
name: "Implementation"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "sprint-planning"
|
||||
required: true
|
||||
agent: "sm"
|
||||
command: "sprint-planning"
|
||||
note: "Creates sprint plan with all stories - subsequent work tracked in sprint plan output, not workflow-status"
|
||||
@@ -0,0 +1,76 @@
|
||||
# Brownfield Level 2 - Medium Project in Existing Codebase
|
||||
# 5-15 stories, multiple features added to existing system
|
||||
|
||||
project_type: "software"
|
||||
level: 2
|
||||
field_type: "brownfield"
|
||||
description: "Medium project adding multiple features to existing codebase"
|
||||
|
||||
phases:
|
||||
- prerequisite: true
|
||||
name: "Documentation"
|
||||
conditional: "if_undocumented"
|
||||
note: "NOT a phase - prerequisite for brownfield without docs OR post-completion cleanup"
|
||||
workflows:
|
||||
- id: "document-project"
|
||||
required: true
|
||||
agent: "analyst"
|
||||
command: "document-project"
|
||||
output: "Comprehensive project documentation"
|
||||
purpose: "Understand existing codebase before planning OR create superior final docs after Phase 4"
|
||||
|
||||
- phase: 1
|
||||
name: "Analysis"
|
||||
optional: true
|
||||
workflows:
|
||||
- id: "brainstorm-project"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "brainstorm-project"
|
||||
- id: "research"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "research"
|
||||
- id: "product-brief"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "product-brief"
|
||||
|
||||
- phase: 2
|
||||
name: "Planning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "prd"
|
||||
recommended: true
|
||||
agent: "pm"
|
||||
command: "prd"
|
||||
output: "Focused PRD for new features"
|
||||
note: "Must consider existing system constraints"
|
||||
- id: "validate-prd"
|
||||
optional: true
|
||||
agent: "pm"
|
||||
command: "validate-prd"
|
||||
- id: "tech-spec"
|
||||
required: true
|
||||
agent: "pm"
|
||||
command: "tech-spec"
|
||||
output: "Creates spec with multiple story files"
|
||||
note: "Integrate with existing patterns"
|
||||
- id: "create-design"
|
||||
conditional: "if_has_ui"
|
||||
agent: "ux-designer"
|
||||
command: "create-design"
|
||||
|
||||
- phase: 3
|
||||
name: "Solutioning"
|
||||
skip: true
|
||||
|
||||
- phase: 4
|
||||
name: "Implementation"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "sprint-planning"
|
||||
required: true
|
||||
agent: "sm"
|
||||
command: "sprint-planning"
|
||||
note: "Creates sprint plan with all stories - subsequent work tracked in sprint plan output, not workflow-status"
|
||||
@@ -0,0 +1,95 @@
|
||||
# Brownfield Level 3 - Complex Integration with Existing System
|
||||
# Major feature addition requiring architectural integration
|
||||
|
||||
project_type: "software"
|
||||
level: 3
|
||||
field_type: "brownfield"
|
||||
description: "Complex integration with existing system architecture"
|
||||
|
||||
phases:
|
||||
- prerequisite: true
|
||||
name: "Documentation"
|
||||
conditional: "if_undocumented"
|
||||
note: "NOT a phase - prerequisite for brownfield without docs OR post-completion cleanup"
|
||||
workflows:
|
||||
- id: "document-project"
|
||||
required: true
|
||||
agent: "analyst"
|
||||
command: "document-project"
|
||||
output: "Comprehensive project documentation"
|
||||
purpose: "Understand existing codebase before planning OR create superior final docs after Phase 4"
|
||||
|
||||
- phase: 1
|
||||
name: "Analysis"
|
||||
recommended: true
|
||||
workflows:
|
||||
- id: "brainstorm-project"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "brainstorm-project"
|
||||
- id: "research"
|
||||
recommended: true
|
||||
agent: "analyst"
|
||||
command: "research"
|
||||
note: "Research existing architecture patterns"
|
||||
- id: "product-brief"
|
||||
recommended: true
|
||||
agent: "analyst"
|
||||
command: "product-brief"
|
||||
|
||||
- phase: 2
|
||||
name: "Planning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "prd"
|
||||
required: true
|
||||
agent: "pm"
|
||||
command: "prd"
|
||||
output: "Requirements with integration points"
|
||||
- id: "validate-prd"
|
||||
optional: true
|
||||
agent: "pm"
|
||||
command: "validate-prd"
|
||||
- id: "create-design"
|
||||
conditional: "if_has_ui"
|
||||
agent: "ux-designer"
|
||||
command: "create-design"
|
||||
note: "Must align with existing UI patterns"
|
||||
|
||||
- phase: 3
|
||||
name: "Solutioning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "architecture-review"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "architecture-review"
|
||||
note: "Review existing architecture first"
|
||||
- id: "integration-planning"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "integration-planning"
|
||||
output: "Integration strategy document"
|
||||
- id: "create-architecture"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "create-architecture"
|
||||
note: "Extension of existing architecture"
|
||||
- id: "validate-architecture"
|
||||
optional: true
|
||||
agent: "architect"
|
||||
command: "validate-architecture"
|
||||
- id: "solutioning-gate-check"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "solutioning-gate-check"
|
||||
|
||||
- phase: 4
|
||||
name: "Implementation"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "sprint-planning"
|
||||
required: true
|
||||
agent: "sm"
|
||||
command: "sprint-planning"
|
||||
note: "Creates sprint plan with all stories - subsequent work tracked in sprint plan output, not workflow-status"
|
||||
@@ -0,0 +1,88 @@
|
||||
# Brownfield Level 4 - Enterprise Scale Changes to Existing System
|
||||
# 40+ stories, major expansion of existing enterprise system
|
||||
|
||||
project_type: "software"
|
||||
level: 4
|
||||
field_type: "brownfield"
|
||||
description: "Enterprise scale expansion of existing system"
|
||||
|
||||
phases:
|
||||
- prerequisite: true
|
||||
name: "Documentation"
|
||||
conditional: "if_undocumented"
|
||||
note: "NOT a phase - prerequisite for brownfield without docs OR post-completion cleanup. Critical for enterprise-scale changes"
|
||||
workflows:
|
||||
- id: "document-project"
|
||||
required: true
|
||||
agent: "analyst"
|
||||
command: "document-project"
|
||||
output: "Comprehensive project documentation"
|
||||
purpose: "Understand existing codebase before planning OR create superior final docs after Phase 4"
|
||||
|
||||
- phase: 1
|
||||
name: "Analysis"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "brainstorm-project"
|
||||
recommended: true
|
||||
agent: "analyst"
|
||||
command: "brainstorm-project"
|
||||
- id: "research"
|
||||
required: true
|
||||
agent: "analyst"
|
||||
command: "research"
|
||||
note: "Research existing system architecture deeply"
|
||||
- id: "product-brief"
|
||||
required: true
|
||||
agent: "analyst"
|
||||
command: "product-brief"
|
||||
note: "Strategic brief for major expansion"
|
||||
|
||||
- phase: 2
|
||||
name: "Planning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "prd"
|
||||
required: true
|
||||
agent: "pm"
|
||||
command: "prd"
|
||||
output: "Comprehensive PRD considering existing system"
|
||||
- id: "validate-prd"
|
||||
optional: true
|
||||
agent: "pm"
|
||||
command: "validate-prd"
|
||||
- id: "create-design"
|
||||
required: true
|
||||
agent: "ux-designer"
|
||||
command: "create-design"
|
||||
note: "Multiple UI/UX specifications"
|
||||
|
||||
- phase: 3
|
||||
name: "Solutioning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "create-architecture"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "create-architecture"
|
||||
output: "Architecture for system expansion"
|
||||
note: "Must maintain backward compatibility"
|
||||
- id: "validate-architecture"
|
||||
optional: true
|
||||
agent: "architect"
|
||||
command: "validate-architecture"
|
||||
- id: "solutioning-gate-check"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "solutioning-gate-check"
|
||||
note: "Critical validation before major changes"
|
||||
|
||||
- phase: 4
|
||||
name: "Implementation"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "sprint-planning"
|
||||
required: true
|
||||
agent: "sm"
|
||||
command: "sprint-planning"
|
||||
note: "Creates sprint plan with all stories - subsequent work tracked in sprint plan output, not workflow-status"
|
||||
75
bmad/bmm/workflows/workflow-status/paths/game-design.yaml
Normal file
75
bmad/bmm/workflows/workflow-status/paths/game-design.yaml
Normal file
@@ -0,0 +1,75 @@
|
||||
# Game Design - All Levels
|
||||
# Game development follows a different path than software
|
||||
|
||||
project_type: "game"
|
||||
level: "all"
|
||||
field_type: "any"
|
||||
description: "Game development workflow - applies to all complexity levels"
|
||||
|
||||
phases:
|
||||
- phase: 1
|
||||
name: "Analysis"
|
||||
optional: true
|
||||
workflows:
|
||||
- id: "brainstorm-game"
|
||||
optional: true
|
||||
agent: "game-designer"
|
||||
command: "brainstorm-game"
|
||||
- id: "research"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "research"
|
||||
note: "Market research, competitive analysis"
|
||||
- id: "game-brief"
|
||||
recommended: true
|
||||
agent: "game-designer"
|
||||
command: "game-brief"
|
||||
output: "Game concept and vision document"
|
||||
|
||||
- phase: 2
|
||||
name: "Planning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "gdd"
|
||||
required: true
|
||||
agent: "pm"
|
||||
command: "gdd"
|
||||
output: "Game Design Document with features and mechanics"
|
||||
- id: "tech-spec"
|
||||
conditional: "if_level_0_1"
|
||||
agent: "architect"
|
||||
command: "tech-spec"
|
||||
note: "For simpler games, jump to implementation"
|
||||
|
||||
- phase: 3
|
||||
name: "Solutioning"
|
||||
conditional: "if_level_3_4"
|
||||
workflows:
|
||||
- id: "create-architecture"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "create-architecture"
|
||||
note: "Engine architecture, networking, systems"
|
||||
- id: "validate-architecture"
|
||||
optional: true
|
||||
agent: "architect"
|
||||
command: "validate-architecture"
|
||||
- id: "solutioning-gate-check"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "solutioning-gate-check"
|
||||
|
||||
- phase: 4
|
||||
name: "Implementation"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "sprint-planning"
|
||||
required: true
|
||||
agent: "sm"
|
||||
command: "sprint-planning"
|
||||
note: "Creates sprint plan with all stories - subsequent work tracked in sprint plan output, not workflow-status"
|
||||
|
||||
special_considerations:
|
||||
- "Iterative playtesting throughout development"
|
||||
- "Art and audio pipelines run parallel to code"
|
||||
- "Balance and tuning as ongoing process"
|
||||
@@ -0,0 +1,45 @@
|
||||
# Greenfield Level 0 - Single Atomic Change
|
||||
# The simplest possible workflow - one change, one story
|
||||
|
||||
project_type: "software"
|
||||
level: 0
|
||||
field_type: "greenfield"
|
||||
description: "Single atomic change - bug fix, tiny feature, one story"
|
||||
|
||||
phases:
|
||||
- phase: 1
|
||||
name: "Analysis"
|
||||
optional: true
|
||||
workflows:
|
||||
- id: "brainstorm-project"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "brainstorm-project"
|
||||
- id: "product-brief"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "product-brief"
|
||||
|
||||
- phase: 2
|
||||
name: "Planning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "tech-spec"
|
||||
required: true
|
||||
agent: "pm"
|
||||
command: "tech-spec"
|
||||
output: "Creates Technical Specification with single story file"
|
||||
|
||||
- phase: 3
|
||||
name: "Solutioning"
|
||||
skip: true
|
||||
|
||||
- phase: 4
|
||||
name: "Implementation"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "sprint-planning"
|
||||
required: true
|
||||
agent: "sm"
|
||||
command: "sprint-planning"
|
||||
note: "Creates sprint plan with all stories - subsequent work tracked in sprint plan output, not workflow-status"
|
||||
@@ -0,0 +1,49 @@
|
||||
# Greenfield Level 1 - Small Feature
|
||||
# Coherent feature with 2-3 stories in a single epic
|
||||
|
||||
project_type: "software"
|
||||
level: 1
|
||||
field_type: "greenfield"
|
||||
description: "Small coherent feature - 2-3 stories, single epic"
|
||||
|
||||
phases:
|
||||
- phase: 1
|
||||
name: "Analysis"
|
||||
optional: true
|
||||
workflows:
|
||||
- id: "brainstorm-project"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "brainstorm-project"
|
||||
- id: "research"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "research"
|
||||
- id: "product-brief"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "product-brief"
|
||||
|
||||
- phase: 2
|
||||
name: "Planning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "tech-spec"
|
||||
required: true
|
||||
agent: "pm"
|
||||
command: "tech-spec"
|
||||
output: "Creates Technical Specification with an epic and 2-3 story files"
|
||||
|
||||
- phase: 3
|
||||
name: "Solutioning"
|
||||
skip: true
|
||||
|
||||
- phase: 4
|
||||
name: "Implementation"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "sprint-planning"
|
||||
required: true
|
||||
agent: "sm"
|
||||
command: "sprint-planning"
|
||||
note: "Creates sprint plan with all stories - subsequent work tracked in sprint plan output, not workflow-status"
|
||||
@@ -0,0 +1,78 @@
|
||||
# Greenfield Level 2 - Medium Project
|
||||
# Multiple epics with 10+ stories total
|
||||
|
||||
project_type: "software"
|
||||
level: 2
|
||||
field_type: "greenfield"
|
||||
description: "Medium project - multiple epics, 10+ stories"
|
||||
|
||||
phases:
|
||||
- phase: 1
|
||||
name: "Analysis"
|
||||
optional: true
|
||||
workflows:
|
||||
- id: "brainstorm-project"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "brainstorm-project"
|
||||
- id: "research"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "research"
|
||||
note: "Can have multiple research docs"
|
||||
- id: "product-brief"
|
||||
recommended: true
|
||||
agent: "analyst"
|
||||
command: "product-brief"
|
||||
|
||||
- phase: 2
|
||||
name: "Planning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "prd"
|
||||
required: true
|
||||
agent: "pm"
|
||||
command: "prd"
|
||||
output: "Creates PRD with epics.md and story list"
|
||||
- id: "validate-prd"
|
||||
optional: true
|
||||
agent: "pm"
|
||||
command: "validate-prd"
|
||||
- id: "create-design"
|
||||
conditional: "if_has_ui"
|
||||
agent: "ux-designer"
|
||||
command: "create-design"
|
||||
- id: "tech-spec"
|
||||
optional: true
|
||||
agent: "pm"
|
||||
command: "tech-spec"
|
||||
note: "Lightweight Technical Specification planning"
|
||||
|
||||
- phase: 3
|
||||
name: "Solutioning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "create-architecture"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "create-architecture"
|
||||
output: "System-wide architecture document"
|
||||
- id: "validate-architecture"
|
||||
optional: true
|
||||
agent: "architect"
|
||||
command: "validate-architecture"
|
||||
- id: "solutioning-gate-check"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "solutioning-gate-check"
|
||||
note: "Validate PRD + UX + architecture cohesion before implementation"
|
||||
|
||||
- phase: 4
|
||||
name: "Implementation"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "sprint-planning"
|
||||
required: true
|
||||
agent: "sm"
|
||||
command: "sprint-planning"
|
||||
note: "Creates sprint plan with all stories - subsequent work tracked in sprint plan output, not workflow-status"
|
||||
@@ -0,0 +1,73 @@
|
||||
# Greenfield Level 3 - Complex System
|
||||
# Subsystems, integrations, architectural decisions required
|
||||
|
||||
project_type: "software"
|
||||
level: 3
|
||||
field_type: "greenfield"
|
||||
description: "Complex system - subsystems, integrations, architectural decisions"
|
||||
|
||||
phases:
|
||||
- phase: 1
|
||||
name: "Analysis"
|
||||
optional: true
|
||||
workflows:
|
||||
- id: "brainstorm-project"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "brainstorm-project"
|
||||
- id: "research"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "research"
|
||||
note: "Multiple research areas likely"
|
||||
- id: "product-brief"
|
||||
recommended: true
|
||||
agent: "analyst"
|
||||
command: "product-brief"
|
||||
|
||||
- phase: 2
|
||||
name: "Planning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "prd"
|
||||
required: true
|
||||
agent: "pm"
|
||||
command: "prd"
|
||||
output: "High-level requirements and epic definitions"
|
||||
- id: "validate-prd"
|
||||
optional: true
|
||||
agent: "pm"
|
||||
command: "validate-prd"
|
||||
- id: "create-design"
|
||||
conditional: "if_has_ui"
|
||||
agent: "ux-designer"
|
||||
command: "create-design"
|
||||
|
||||
- phase: 3
|
||||
name: "Solutioning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "create-architecture"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "create-architecture"
|
||||
output: "System-wide architecture document"
|
||||
- id: "validate-architecture"
|
||||
optional: true
|
||||
agent: "architect"
|
||||
command: "validate-architecture"
|
||||
- id: "solutioning-gate-check"
|
||||
recommended: true
|
||||
agent: "architect"
|
||||
command: "solutioning-gate-check"
|
||||
note: "Validate PRD + UX + architecture cohesion before implementation"
|
||||
|
||||
- phase: 4
|
||||
name: "Implementation"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "sprint-planning"
|
||||
required: true
|
||||
agent: "sm"
|
||||
command: "sprint-planning"
|
||||
note: "Creates sprint plan with all stories - subsequent work tracked in sprint plan output, not workflow-status"
|
||||
@@ -0,0 +1,75 @@
|
||||
# Greenfield Level 4 - Enterprise Scale
|
||||
# Multiple products, enterprise architecture, 40+ stories
|
||||
|
||||
project_type: "software"
|
||||
level: 4
|
||||
field_type: "greenfield"
|
||||
description: "Enterprise scale - multiple products, enterprise architecture"
|
||||
|
||||
phases:
|
||||
- phase: 1
|
||||
name: "Analysis"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "brainstorm-project"
|
||||
recommended: true
|
||||
agent: "analyst"
|
||||
command: "brainstorm-project"
|
||||
- id: "research"
|
||||
required: false
|
||||
agent: "analyst"
|
||||
command: "research"
|
||||
note: "Extensive research across multiple domains"
|
||||
- id: "product-brief"
|
||||
required: true
|
||||
agent: "analyst"
|
||||
command: "product-brief"
|
||||
note: "Strategic brief for enterprise scope"
|
||||
|
||||
- phase: 2
|
||||
name: "Planning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "prd"
|
||||
required: true
|
||||
agent: "pm"
|
||||
command: "prd"
|
||||
output: "Comprehensive product requirements document"
|
||||
- id: "validate-prd"
|
||||
optional: true
|
||||
agent: "pm"
|
||||
command: "validate-prd"
|
||||
- id: "create-design"
|
||||
required: true
|
||||
agent: "ux-designer"
|
||||
command: "create-design"
|
||||
note: "Multiple UI/UX specifications needed"
|
||||
|
||||
- phase: 3
|
||||
name: "Solutioning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "create-architecture"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "create-architecture"
|
||||
output: "Enterprise architecture documentation"
|
||||
- id: "validate-architecture"
|
||||
optional: true
|
||||
agent: "architect"
|
||||
command: "validate-architecture"
|
||||
- id: "solutioning-gate-check"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "solutioning-gate-check"
|
||||
note: "Validate PRD + UX + architecture cohesion before implementation"
|
||||
|
||||
- phase: 4
|
||||
name: "Implementation"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "sprint-planning"
|
||||
required: true
|
||||
agent: "sm"
|
||||
command: "sprint-planning"
|
||||
note: "Creates sprint plan with all stories - subsequent work tracked in sprint plan output, not workflow-status"
|
||||
59
bmad/bmm/workflows/workflow-status/project-levels.yaml
Normal file
59
bmad/bmm/workflows/workflow-status/project-levels.yaml
Normal file
@@ -0,0 +1,59 @@
|
||||
# BMM Project Scale Levels - Source of Truth
|
||||
# Reference: /bmad/bmm/README.md lines 77-85
|
||||
|
||||
levels:
|
||||
0:
|
||||
name: "Level 0"
|
||||
title: "Single Atomic Change"
|
||||
stories: "1 story"
|
||||
description: "Bug fix, tiny feature, one small change"
|
||||
documentation: "Minimal - tech spec only"
|
||||
architecture: false
|
||||
|
||||
1:
|
||||
name: "Level 1"
|
||||
title: "Small Feature"
|
||||
stories: "1-10 stories"
|
||||
description: "Small coherent feature, minimal documentation"
|
||||
documentation: "Tech spec"
|
||||
architecture: false
|
||||
|
||||
2:
|
||||
name: "Level 2"
|
||||
title: "Medium Project"
|
||||
stories: "5-15 stories"
|
||||
description: "Multiple features, focused PRD"
|
||||
documentation: "PRD + optional tech spec"
|
||||
architecture: false
|
||||
|
||||
3:
|
||||
name: "Level 3"
|
||||
title: "Complex System"
|
||||
stories: "12-40 stories"
|
||||
description: "Subsystems, integrations, full architecture"
|
||||
documentation: "PRD + architecture + JIT tech specs"
|
||||
architecture: true
|
||||
|
||||
4:
|
||||
name: "Level 4"
|
||||
title: "Enterprise Scale"
|
||||
stories: "40+ stories"
|
||||
description: "Multiple products, enterprise architecture"
|
||||
documentation: "PRD + architecture + JIT tech specs"
|
||||
architecture: true
|
||||
|
||||
# Quick detection hints for workflow-init
|
||||
detection_hints:
|
||||
keywords:
|
||||
level_0: ["fix", "bug", "typo", "small change", "quick update", "patch"]
|
||||
level_1: ["simple", "basic", "small feature", "add", "minor"]
|
||||
level_2: ["dashboard", "several features", "admin panel", "medium"]
|
||||
level_3: ["platform", "integration", "complex", "system", "architecture"]
|
||||
level_4: ["enterprise", "multi-tenant", "multiple products", "ecosystem", "scale"]
|
||||
|
||||
story_counts:
|
||||
level_0: [1, 1]
|
||||
level_1: [1, 10]
|
||||
level_2: [5, 15]
|
||||
level_3: [12, 40]
|
||||
level_4: [40, 999]
|
||||
@@ -0,0 +1,49 @@
|
||||
# Workflow Status Template
|
||||
# This tracks progress through phases 1-3 of the BMM methodology
|
||||
# Phase 4 (Implementation) is tracked separately in sprint-status.yaml
|
||||
|
||||
# generated: 2025-10-29
|
||||
# project: Enterprise Customer Portal
|
||||
# project_type: software
|
||||
# project_level: 3
|
||||
# field_type: greenfield
|
||||
# workflow_path: greenfield-level-3.yaml
|
||||
|
||||
# STATUS DEFINITIONS:
|
||||
# ==================
|
||||
# Initial Status (before completion):
|
||||
# - required: Must be completed to progress
|
||||
# - optional: Can be completed but not required
|
||||
# - recommended: Strongly suggested but not required
|
||||
# - conditional: Required only if certain conditions met (e.g., if_has_ui)
|
||||
#
|
||||
# Completion Status:
|
||||
# - {file-path}: File created/found (e.g., "docs/product-brief.md")
|
||||
# - skipped: Optional/conditional workflow that was skipped
|
||||
|
||||
generated: 2025-10-29
|
||||
project: Enterprise Customer Portal
|
||||
project_type: software
|
||||
project_level: 3
|
||||
field_type: greenfield
|
||||
workflow_path: greenfield-level-3.yaml
|
||||
|
||||
workflow_status:
|
||||
# Phase 1: Analysis
|
||||
brainstorm-project: docs/brainstorm-session-2025-10-15.md
|
||||
research: docs/research-api-patterns.md
|
||||
product-brief: docs/product-brief.md
|
||||
|
||||
# Phase 2: Planning
|
||||
prd: docs/prd.md
|
||||
validate-prd: skipped
|
||||
create-design: docs/ux-design.md
|
||||
|
||||
# Phase 3: Solutioning
|
||||
create-architecture: required
|
||||
validate-architecture: optional
|
||||
solutioning-gate-check: recommended
|
||||
|
||||
# Phase 4: Implementation
|
||||
sprint-planning: required
|
||||
# Note: Subsequent implementation workflows tracked in sprint-status.yaml
|
||||
@@ -0,0 +1,31 @@
|
||||
# Workflow Status Template
|
||||
# This tracks progress through phases 1-3 of the BMM methodology
|
||||
# Phase 4 (Implementation) is tracked separately in sprint-status.yaml
|
||||
|
||||
# generated: {{generated}}
|
||||
# project: {{project_name}}
|
||||
# project_type: {{project_type}}
|
||||
# project_level: {{project_level}}
|
||||
# field_type: {{field_type}}
|
||||
# workflow_path: {{workflow_path_file}}
|
||||
|
||||
# STATUS DEFINITIONS:
|
||||
# ==================
|
||||
# Initial Status (before completion):
|
||||
# - required: Must be completed to progress
|
||||
# - optional: Can be completed but not required
|
||||
# - recommended: Strongly suggested but not required
|
||||
# - conditional: Required only if certain conditions met (e.g., if_has_ui)
|
||||
#
|
||||
# Completion Status:
|
||||
# - {file-path}: File created/found (e.g., "docs/product-brief.md")
|
||||
# - skipped: Optional/conditional workflow that was skipped
|
||||
|
||||
generated: "{{generated}}"
|
||||
project: "{{project_name}}"
|
||||
project_type: "{{project_type}}"
|
||||
project_level: "{{project_level}}"
|
||||
field_type: "{{field_type}}"
|
||||
workflow_path: "{{workflow_path_file}}"
|
||||
|
||||
workflow_status: "{{workflow_items}}"
|
||||
28
bmad/bmm/workflows/workflow-status/workflow.yaml
Normal file
28
bmad/bmm/workflows/workflow-status/workflow.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
# Workflow Status - Master Router and Status Tracker
|
||||
name: workflow-status
|
||||
description: 'Lightweight status checker - answers "what should I do now?" for any agent. Reads YAML status file for workflow tracking. Use workflow-init for new projects.'
|
||||
author: "BMad"
|
||||
|
||||
# Critical variables from config
|
||||
config_source: "{project-root}/bmad/bmm/config.yaml"
|
||||
output_folder: "{config_source}:output_folder"
|
||||
user_name: "{config_source}:user_name"
|
||||
communication_language: "{config_source}:communication_language"
|
||||
document_output_language: "{config_source}:document_output_language"
|
||||
user_skill_level: "{config_source}:user_skill_level"
|
||||
date: system-generated
|
||||
|
||||
# Workflow components
|
||||
installed_path: "{project-root}/bmad/bmm/workflows/workflow-status"
|
||||
instructions: "{installed_path}/instructions.md"
|
||||
|
||||
# Template for status file creation (used by workflow-init)
|
||||
template: "{installed_path}/workflow-status-template.yaml"
|
||||
|
||||
# Path definitions for project types
|
||||
path_files: "{installed_path}/paths/"
|
||||
|
||||
# Output configuration - reads existing status
|
||||
default_output_file: "{output_folder}/bmm-workflow-status.yaml"
|
||||
|
||||
standalone: true
|
||||
Reference in New Issue
Block a user