mirror of
https://github.com/bmadcode/BMAD-METHOD.git
synced 2025-12-29 16:14:59 +00:00
Major Enhancements:
- Installation path is now fully configurable, allowing users to specify custom installation directories during setup
- Default installation location changed to .bmad (hidden directory) for cleaner project root organization
Web Bundle Improvements:
- All web bundles (single agent and team) now include party mode support for multi-agent collaboration!
- Advanced elicitation capabilities integrated into standalone agents
- All bundles enhanced with party mode agent manifests
- Added default-party.csv files to bmm, bmgd, and cis module teams
- The default party file is what will be used with single agent bundles. teams can customize for different party configurations before web bundling through a setting in the team yaml file
- New web bundle outputs for all agents (analyst, architect, dev, pm, sm, tea, tech-writer, ux-designer, game-*, creative-squad)
Phase 4 Workflow Updates (In Progress):
- Initiated shift to separate phase 4 implementation artifacts from documentation
- Phase 4 implementation artifacts (stories, code review, sprint plan, context files) will move to dedicated location outside docs folder
- Installer questions and configuration added for artifact path selection
- Updated workflow.yaml files for code-review, sprint-planning, story-context, epic-tech-context, and retrospective workflows to support this, but still might require some udpates
Additional Changes:
- New agent and action command header models for standardization
- Enhanced web-bundle-activation-steps fragment
- Updated web-bundler.js to support new structure
- VS Code settings updated for new .bmad directory
- Party mode instructions and workflow enhanced for better orchestration
IDE Installer Updates:
- Show version number of installer in cli
- improved Installer UX
- Gemini TOML Improved to have clear loading instructions with @ commands
- All tools agent launcher mds improved to use a central file template critical indication isntead of hardcoding in 2 different locations.
This commit is contained in:
822
.bmad/bmm/workflows/workflow-status/init/instructions.md
Normal file
822
.bmad/bmm/workflows/workflow-status/init/instructions.md
Normal file
@@ -0,0 +1,822 @@
|
||||
# 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>
|
||||
<critical>This workflow handles BOTH new projects AND legacy projects being migrated to BMad Method</critical>
|
||||
|
||||
<workflow>
|
||||
|
||||
<step n="1" goal="Comprehensive scan for existing work and project state">
|
||||
<output>Welcome to BMad Method, {user_name}!</output>
|
||||
|
||||
<action>Perform comprehensive scan for ALL existing work (not just quick scan):
|
||||
|
||||
**Check for BMM planning artifacts:**
|
||||
|
||||
- PRD files: {output*folder}/\_prd*.md or {output*folder}/\_prd*/index.md
|
||||
- Tech-spec files: {output*folder}/\_tech-spec*.md or {output*folder}/\_spec*.md
|
||||
- Epic files: {output*folder}/\_epic*.md or {output*folder}/\_epic*/index.md
|
||||
- Architecture: {output*folder}/\_architecture*.md or {output*folder}/\_arch*.md
|
||||
- UX Design: {output*folder}/\_ux*.md or {output*folder}/\_design*.md
|
||||
- Product Brief: {output*folder}/\_brief*.md
|
||||
- Research docs: {output*folder}/\_research*.md
|
||||
- Brainstorm docs: {output*folder}/\_brainstorm*.md
|
||||
|
||||
**Check for implementation artifacts:**
|
||||
|
||||
- Story files: {output_folder}/stories/\*.md
|
||||
- Sprint status: {output*folder}/\_sprint*.yaml or {output_folder}/sprint-status.yaml
|
||||
- Existing workflow status: {output_folder}/bmm-workflow-status.yaml
|
||||
|
||||
**Check for codebase:**
|
||||
|
||||
- Source code directories: src/, lib/, app/, components/, etc.
|
||||
- Package files: package.json, requirements.txt, Cargo.toml, go.mod, pom.xml, etc.
|
||||
- Git repository: .git/
|
||||
- Framework indicators: next.config.js, vite.config.js, etc.
|
||||
</action>
|
||||
|
||||
<action>Analyze findings and categorize project state:
|
||||
|
||||
- **STATE 1:** Clean slate (no artifacts, no code or scaffold only)
|
||||
- **STATE 2:** Planning in progress (has PRD or tech-spec, no stories/implementation yet)
|
||||
- **STATE 3:** Implementation in progress (has stories or sprint status)
|
||||
- **STATE 4:** Legacy codebase (has code but no BMM artifacts)
|
||||
- **STATE 5:** Partial/unclear (some artifacts, state unclear)
|
||||
</action>
|
||||
|
||||
<ask>What's your project called? {{#if project_name}}(Config shows: {{project_name}}){{/if}}</ask>
|
||||
<action>Store project_name</action>
|
||||
<template-output>project_name</template-output>
|
||||
</step>
|
||||
|
||||
<step n="2" goal="Validate project state with user">
|
||||
|
||||
<check if="STATE 1: Clean slate">
|
||||
<output>Perfect! This looks like a fresh start.</output>
|
||||
<action>Set new_project = true</action>
|
||||
<action>Continue to Step 3 (ask about their work)</action>
|
||||
</check>
|
||||
|
||||
<check if="STATE 2: Planning artifacts found">
|
||||
<output>I found existing planning documents:
|
||||
|
||||
{{#if found_prd}}
|
||||
📋 **PRD:** {{prd_path}}
|
||||
{{#if epic_count}}- {{epic_count}} epics, {{story_count}} stories{{/if}}
|
||||
|
||||
- Last modified: {{prd_modified}}
|
||||
{{/if}}
|
||||
|
||||
{{#if found_tech_spec}}
|
||||
📋 **Tech-Spec:** {{spec_path}}
|
||||
{{#if story_count}}- {{story_count}} stories{{/if}}
|
||||
|
||||
- Last modified: {{spec_modified}}
|
||||
{{/if}}
|
||||
|
||||
{{#if found_architecture}}
|
||||
🏗️ **Architecture:** {{arch_path}}
|
||||
|
||||
- Last modified: {{arch_modified}}
|
||||
{{/if}}
|
||||
|
||||
{{#if found_ux}}
|
||||
🎨 **UX Design:** {{ux_path}}
|
||||
|
||||
- Last modified: {{ux_modified}}
|
||||
{{/if}}
|
||||
|
||||
{{#if found_brief}}
|
||||
📄 **Product Brief:** {{brief_path}}
|
||||
|
||||
- Last modified: {{brief_modified}}
|
||||
{{/if}}
|
||||
|
||||
{{#if found_research}}
|
||||
🔍 **Research:** {{research_paths}}
|
||||
{{/if}}
|
||||
|
||||
{{#if found_brainstorm}}
|
||||
🧠 **Brainstorm:** {{brainstorm_paths}}
|
||||
{{/if}}
|
||||
</output>
|
||||
|
||||
<ask>What's your situation with these documents?
|
||||
|
||||
a) **Continue this work** - These docs describe what I'm building now
|
||||
b) **Override/replace** - These are old, I'm starting something NEW
|
||||
c) **Already done** - This work is complete, I'm starting a NEW project
|
||||
d) **Not sure** - Let me explain my situation
|
||||
|
||||
Your choice [a/b/c/d]:</ask>
|
||||
|
||||
<check if="choice == a (Continue)">
|
||||
<output>Got it! I'll create workflow tracking for your existing planning.</output>
|
||||
<action>Set continuing_existing_planning = true</action>
|
||||
<action>Store found artifacts for auto-completion in workflow status</action>
|
||||
<action>Continue to Step 5 (detect track from artifacts)</action>
|
||||
</check>
|
||||
|
||||
<check if="choice == b (Override)">
|
||||
<ask>Should I archive these old documents before we start fresh?
|
||||
|
||||
I can move them to {output_folder}/archive/ so they're not in the way.
|
||||
|
||||
Archive old docs? (y/n)</ask>
|
||||
|
||||
<action if="answer == y">Create archive folder if needed</action>
|
||||
<action if="answer == y">Move all found planning artifacts to {output_folder}/archive/</action>
|
||||
<output>{{#if archived}}✅ Old documents archived to {output_folder}/archive/{{else}}Starting fresh - old docs will be ignored{{/if}}</output>
|
||||
<action>Set new_project = true</action>
|
||||
<action>Continue to Step 3 (ask about their work)</action>
|
||||
|
||||
</check>
|
||||
|
||||
<check if="choice == c (Already done)">
|
||||
<ask>Should I archive the completed work before starting your new project? (y/n)</ask>
|
||||
<action if="answer == y">Archive old planning docs</action>
|
||||
<output>{{#if archived}}✅ Completed work archived{{else}}Ready for your new project!{{/if}}</output>
|
||||
<action>Set new_project = true</action>
|
||||
<action>Continue to Step 3 (ask about their work)</action>
|
||||
</check>
|
||||
|
||||
<check if="choice == d (Not sure)">
|
||||
<ask>Tell me what you're trying to accomplish:</ask>
|
||||
<action>Analyze response and guide to appropriate choice (a, b, or c)</action>
|
||||
<action>Loop back to present choices again with guidance</action>
|
||||
</check>
|
||||
</check>
|
||||
|
||||
<check if="STATE 3: Implementation in progress">
|
||||
<output>🚨 **I found active implementation work:**
|
||||
|
||||
{{#if found_stories}}
|
||||
📝 **Story files:** {{story_count}} stories in {output_folder}/stories/
|
||||
{{#if story_examples}}- Examples: {{story_examples}}{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{#if found_sprint_status}}
|
||||
📊 **Sprint tracking:** {{sprint_status_path}}
|
||||
|
||||
- {{completed_stories}} completed
|
||||
- {{in_progress_stories}} in progress
|
||||
- {{pending_stories}} pending
|
||||
{{/if}}
|
||||
|
||||
{{#if found_workflow_status}}
|
||||
📋 **Workflow status:** {{workflow_status_path}}
|
||||
|
||||
- Generated: {{workflow_status_date}}
|
||||
{{/if}}
|
||||
|
||||
{{#if found_planning_docs}}
|
||||
📚 **Planning docs:** {{found_planning_summary}}
|
||||
{{/if}}
|
||||
</output>
|
||||
|
||||
<ask>What's happening here?
|
||||
|
||||
a) **Continue implementation** - I'm still working on these stories
|
||||
b) **Completed** - This work is done, starting something NEW
|
||||
c) **Abandoned** - Stopping this, starting over
|
||||
d) **Not sure** - Let me explain
|
||||
|
||||
Your choice [a/b/c/d]:</ask>
|
||||
|
||||
<check if="choice == a (Continue)">
|
||||
<action>Check if bmm-workflow-status.yaml exists</action>
|
||||
|
||||
<check if="workflow_status_exists">
|
||||
<output>✅ **You already have workflow tracking set up!**
|
||||
|
||||
Your current status file: {{workflow_status_path}}
|
||||
|
||||
You don't need workflow-init - you're already using the workflow system.
|
||||
|
||||
**To check your progress:**
|
||||
|
||||
- Load your current agent (PM, SM, Architect, etc.)
|
||||
- Run: **/bmad:bmm:workflows:workflow-status**
|
||||
|
||||
This will show you what to do next.
|
||||
|
||||
Happy building! 🚀</output>
|
||||
<action>Exit workflow gracefully (workflow already initialized)</action>
|
||||
</check>
|
||||
|
||||
<check if="no_workflow_status">
|
||||
<output>You have work in progress but no workflow tracking.
|
||||
|
||||
I'll create workflow tracking that recognizes your existing work.</output>
|
||||
<action>Set migrating_legacy_project = true</action>
|
||||
<action>Store found artifacts for workflow status generation</action>
|
||||
<action>Continue to Step 5 (detect track from artifacts)</action>
|
||||
</check>
|
||||
</check>
|
||||
|
||||
<check if="choice in [b (Completed), c (Abandoned)]">
|
||||
<ask>Archive the old work before starting fresh? (y/n)</ask>
|
||||
<action if="answer == y">Create archive folder</action>
|
||||
<action if="answer == y">Move stories, sprint status, and planning docs to archive</action>
|
||||
<output>{{#if archived}}✅ Old work archived{{else}}Clean slate! Ready for your new project.{{/if}}</output>
|
||||
<action>Set new_project = true</action>
|
||||
<action>Continue to Step 3 (ask about their work)</action>
|
||||
</check>
|
||||
|
||||
<check if="choice == d (Not sure)">
|
||||
<ask>Tell me more about your situation:</ask>
|
||||
<action>Analyze and guide to appropriate choice</action>
|
||||
</check>
|
||||
</check>
|
||||
|
||||
<check if="STATE 4: Legacy codebase (no BMM artifacts)">
|
||||
<output>I see you have an existing codebase:
|
||||
|
||||
{{codebase_summary}}
|
||||
|
||||
No BMM artifacts found - this project hasn't used BMad Method yet.</output>
|
||||
|
||||
<action>Set field_type = "brownfield"</action>
|
||||
<action>Set new_project = true</action>
|
||||
<action>Note: Will need document-project before planning</action>
|
||||
<output>
|
||||
|
||||
💡 **Note for brownfield projects:**
|
||||
You'll need to run **document-project** workflow before planning.
|
||||
This analyzes your codebase and creates documentation that AI agents can use.
|
||||
|
||||
I'll include this as a prerequisite in your workflow path.</output>
|
||||
<action>Continue to Step 3 (ask about their work)</action>
|
||||
</check>
|
||||
|
||||
<check if="STATE 5: Partial/unclear">
|
||||
<output>I found some artifacts but the project state is unclear:
|
||||
|
||||
{{list_found_artifacts}}
|
||||
|
||||
Let me understand your situation.</output>
|
||||
|
||||
<ask>What are you trying to do?
|
||||
|
||||
a) Continue working on an existing project
|
||||
b) Start something completely NEW
|
||||
c) Fix/enhance the existing code
|
||||
d) Let me explain my situation
|
||||
|
||||
Your choice:</ask>
|
||||
|
||||
<action>Analyze response carefully</action>
|
||||
<action>Guide to appropriate state (Continue existing = Step 5, New = Step 3)</action>
|
||||
</check>
|
||||
|
||||
</step>
|
||||
|
||||
<step n="3" goal="Ask user about their work (new projects only)">
|
||||
<ask>Tell me about what you're working on. What's the goal?</ask>
|
||||
|
||||
<action>Store user_description</action>
|
||||
|
||||
<action>Analyze description for field type:
|
||||
|
||||
- Brownfield indicators: "existing", "current", "add to", "modify", "enhance", "refactor"
|
||||
- Greenfield indicators: "new", "build", "create", "from scratch", "start"
|
||||
- Codebase presence overrides: If found codebase = brownfield unless user says "scaffold"
|
||||
</action>
|
||||
|
||||
<check if="found codebase AND 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 if="field_type not yet set">Set field_type based on codebase presence (codebase = brownfield, none = greenfield)</action>
|
||||
|
||||
<action>Detect project_type (game vs software):
|
||||
|
||||
- Game keywords: "game", "player", "level", "gameplay", "rpg", "fps", "puzzle game"
|
||||
- Default to "software" if not clearly a game
|
||||
</action>
|
||||
|
||||
<check if="project_type == game">
|
||||
<output>
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
🎮 **GAME DEVELOPMENT DETECTED**
|
||||
|
||||
Game development workflows are now part of the **BMad Game Development (BMGD)** module.
|
||||
|
||||
The BMM module is designed for software development. For game development, you'll need
|
||||
the BMGD module which provides specialized game development workflows and agents.
|
||||
|
||||
**Would you like to:**
|
||||
a) Install BMGD module now (recommended for game projects)
|
||||
b) Continue with BMM workflows (for software projects only)
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
</output>
|
||||
|
||||
<ask>Your choice [a/b]:</ask>
|
||||
|
||||
<check if="choice == a">
|
||||
<output>
|
||||
Please run the following command to install the BMGD module:
|
||||
|
||||
```bash
|
||||
bmad install bmgd
|
||||
```
|
||||
|
||||
After installation, you can start your game development workflow with the Game Designer agent.
|
||||
|
||||
This workflow-init will now exit. Re-run it after installing BMGD.
|
||||
</output>
|
||||
<action>Exit workflow with success status</action>
|
||||
|
||||
</check>
|
||||
|
||||
<check if="choice == b">
|
||||
<output>
|
||||
⚠️ **Warning:** BMM workflows are optimized for software development, not game development.
|
||||
|
||||
You may encounter mismatched terminology and workflows. Consider installing BMGD for
|
||||
a better game development experience.
|
||||
|
||||
Continuing with software development workflows...
|
||||
</output>
|
||||
<action>Set project_type = "software" (override game detection)</action>
|
||||
|
||||
</check>
|
||||
</check>
|
||||
|
||||
<template-output>user_description</template-output>
|
||||
<template-output>field_type</template-output>
|
||||
<template-output>project_type</template-output>
|
||||
</step>
|
||||
|
||||
<step n="4" goal="Offer optional discovery workflows">
|
||||
<output>Before we determine your planning approach, I want to offer some optional
|
||||
workflows that can help you think through your project more deeply:</output>
|
||||
|
||||
<ask>Would you like to:
|
||||
|
||||
- 🧠 **Brainstorm** your project? (Creative exploration and idea generation)
|
||||
- 🔍 **Research** your domain? (Technical research, competitive analysis, deep-dives)
|
||||
|
||||
These are completely OPTIONAL but can help clarify your vision before planning.
|
||||
|
||||
Your choice:
|
||||
a) Yes, brainstorm first
|
||||
b) Yes, research first
|
||||
c) Yes, both
|
||||
d) No, I'm ready to plan
|
||||
|
||||
Your choice [a/b/c/d]:</ask>
|
||||
|
||||
<check if="choice == a">
|
||||
<action>Set brainstorm_requested = true</action>
|
||||
<action>Set research_requested = false</action>
|
||||
</check>
|
||||
|
||||
<check if="choice == b">
|
||||
<action>Set brainstorm_requested = false</action>
|
||||
<action>Set research_requested = true</action>
|
||||
</check>
|
||||
|
||||
<check if="choice == c">
|
||||
<action>Set brainstorm_requested = true</action>
|
||||
<action>Set research_requested = true</action>
|
||||
</check>
|
||||
|
||||
<check if="choice == d">
|
||||
<action>Set brainstorm_requested = false</action>
|
||||
<action>Set research_requested = false</action>
|
||||
</check>
|
||||
|
||||
<template-output>brainstorm_requested</template-output>
|
||||
<template-output>research_requested</template-output>
|
||||
</step>
|
||||
|
||||
<step n="5" goal="Track selection with education (or detect from artifacts)">
|
||||
|
||||
<check if="continuing_existing_planning OR migrating_legacy_project">
|
||||
<action>Detect track from existing artifacts:
|
||||
|
||||
**Track Detection Logic:**
|
||||
|
||||
- Has PRD + Architecture → BMad Method
|
||||
- Has PRD only → BMad Method (architecture was optional/skipped)
|
||||
- Has tech-spec only → BMad Quick Flow
|
||||
- Has Security/DevOps docs → BMad Enterprise Method
|
||||
</action>
|
||||
|
||||
<output>Based on your existing planning documents, I've detected you're using:
|
||||
|
||||
**{{detected_track_name}}**
|
||||
|
||||
{{#if found_artifacts_list}}
|
||||
Found completed workflows:
|
||||
{{#each found_artifacts_list}}
|
||||
|
||||
- {{workflow_name}}: {{file_path}}
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
|
||||
I'll create workflow tracking that matches your existing approach and
|
||||
automatically marks these completed workflows as done.
|
||||
|
||||
Does this look right? (y/n)</output>
|
||||
|
||||
<ask if="answer == n">Which track should I use instead?
|
||||
|
||||
1. BMad Quick Flow
|
||||
2. BMad Method
|
||||
3. BMad Enterprise Method
|
||||
|
||||
Your choice:</ask>
|
||||
|
||||
<action if="user_corrects">Update selected_track based on choice</action>
|
||||
<action>Store selected_track</action>
|
||||
<template-output>selected_track</template-output>
|
||||
|
||||
<action>Continue to Step 6 (product brief question if applicable)</action>
|
||||
</check>
|
||||
|
||||
<check if="new_project">
|
||||
<output>Now, let me explain your planning options.
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
🚀 **BMad Quick Flow** - Fast Implementation Path
|
||||
|
||||
⏱️ **Time:** Hours to 1 day of planning
|
||||
📝 **Approach:** Tech-spec focused - just enough detail to start coding
|
||||
✅ **Best for:** Simple features, bug fixes, scope is crystal clear
|
||||
⚠️ **Trade-off:** Less upfront planning = higher risk of rework if complexity emerges
|
||||
🤖 **Agent Support:** Basic - AI will have minimal context
|
||||
|
||||
**Example:** "Fix login bug" or "Add export button"
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
🎯 **BMad Method** - Full Product Planning (RECOMMENDED)
|
||||
|
||||
⏱️ **Time:** 1-3 days of planning
|
||||
📝 **Approach:** PRD + UX + Architecture - complete product and system design
|
||||
✅ **Best for:**
|
||||
|
||||
- **GREENFIELD:** Products, platforms, multi-feature initiatives
|
||||
- **BROWNFIELD:** Complex additions (new UIs + APIs, major refactors, new modules)
|
||||
|
||||
✅ **Benefits:**
|
||||
|
||||
- AI agents have COMPLETE context for better code generation
|
||||
- Architecture distills massive codebases into focused solution design
|
||||
- Prevents architectural drift and ensures consistency
|
||||
- Fewer surprises and less rework during implementation
|
||||
- Faster overall delivery (planning investment pays off!)
|
||||
- Better code quality and maintainability
|
||||
|
||||
🤖 **Agent Support:** Exceptional - AI becomes a true coding partner with full context
|
||||
|
||||
{{#if brownfield}}
|
||||
💡 **Why Architecture for Brownfield?**
|
||||
Your brownfield documentation might be huge (thousands of lines). The Architecture
|
||||
workflow takes all that context and creates a SUCCINCT solution design specific to
|
||||
YOUR project. This keeps AI agents focused on YOUR changes without getting lost
|
||||
in the existing codebase details.
|
||||
{{/if}}
|
||||
|
||||
**Example:** "User dashboard with analytics" or "Payment integration system"
|
||||
or "Add real-time collaboration to existing editor"
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
🏢 **BMad Enterprise Method** - Extended Enterprise Planning
|
||||
|
||||
⏱️ **Time:** 3-7 days of planning
|
||||
📝 **Approach:** BMad Method + Security Architecture + DevOps + Test Strategy
|
||||
✅ **Best for:** Enterprise requirements, compliance, multi-tenant, mission-critical
|
||||
✅ **Benefits:** All of BMad Method PLUS specialized planning for:
|
||||
|
||||
- Security architecture and threat modeling
|
||||
- DevOps pipeline and infrastructure planning
|
||||
- Comprehensive test strategy
|
||||
- Compliance and audit requirements
|
||||
|
||||
🤖 **Agent Support:** Elite - comprehensive planning for complex enterprise systems
|
||||
|
||||
**Example:** "Multi-tenant SaaS platform" or "HIPAA-compliant patient portal"
|
||||
or "Add SOC2-compliant audit logging to enterprise app"
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</output>
|
||||
|
||||
<action>Generate recommendation based on user_description and field_type:
|
||||
|
||||
**Recommendation Logic:**
|
||||
|
||||
- Complexity keywords (dashboard, platform, system, integration, multiple features) → Recommend BMad Method
|
||||
- Simple keywords (fix, bug, add button, simple) → Mention Quick Flow as option
|
||||
- Enterprise keywords (multi-tenant, compliance, security, audit) → Recommend Enterprise
|
||||
- Brownfield + complex → Strongly recommend Method (explain architecture benefit)
|
||||
- Greenfield + complex → Recommend Method
|
||||
</action>
|
||||
|
||||
<output>
|
||||
|
||||
💡 **My Honest Recommendation:**
|
||||
|
||||
{{recommendation_with_reasoning}}
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</output>
|
||||
|
||||
<ask>Which approach fits your situation?
|
||||
|
||||
1. **BMad Quick Flow** - Fast, minimal planning (I accept rework risk)
|
||||
2. **BMad Method** - Full planning for better AI results (RECOMMENDED)
|
||||
3. **BMad Enterprise Method** - Extended planning for enterprise needs
|
||||
4. **I'm not sure** - Help me decide
|
||||
|
||||
Your choice [1/2/3/4]:</ask>
|
||||
|
||||
<check if="choice == 4 (Not sure)">
|
||||
<ask>Tell me more about your concerns or uncertainties:</ask>
|
||||
<action>Provide tailored guidance based on their specific concerns</action>
|
||||
<action>Present choices again with more specific recommendation</action>
|
||||
</check>
|
||||
|
||||
<action>Map choice to track name:
|
||||
|
||||
- 1 → "quick-flow"
|
||||
- 2 → "method"
|
||||
- 3 → "enterprise"
|
||||
</action>
|
||||
|
||||
<action>Store selected_track</action>
|
||||
<template-output>selected_track</template-output>
|
||||
</check>
|
||||
|
||||
</step>
|
||||
|
||||
<step n="6" goal="Product brief question (greenfield Method/Enterprise only)">
|
||||
|
||||
<check if="field_type == brownfield OR selected_track == quick-flow">
|
||||
<action>Skip this step - product brief not applicable for brownfield or quick flow</action>
|
||||
<action>Set product_brief_requested = false</action>
|
||||
<action>Continue to Step 7 (generate workflow path)</action>
|
||||
</check>
|
||||
|
||||
<check if="field_type == greenfield AND selected_track in [method, enterprise]">
|
||||
<output>One more optional workflow for greenfield projects:
|
||||
|
||||
📋 **Product Brief** - Strategic product planning document
|
||||
|
||||
This is OPTIONAL but recommended for greenfield BMad Method projects.
|
||||
It helps you articulate:
|
||||
|
||||
- Product vision and unique value proposition
|
||||
- Target users and their needs
|
||||
- Success criteria and goals
|
||||
- Market positioning and strategy
|
||||
|
||||
This comes BEFORE your PRD and helps inform it with strategic thinking.
|
||||
|
||||
Would you like to include Product Brief in your workflow?</output>
|
||||
|
||||
<ask>a) Yes, include Product Brief
|
||||
b) No, skip to PRD
|
||||
|
||||
Your choice [a/b]:</ask>
|
||||
|
||||
<check if="choice == a">
|
||||
<action>Set product_brief_requested = true</action>
|
||||
</check>
|
||||
|
||||
<check if="choice == b">
|
||||
<action>Set product_brief_requested = false</action>
|
||||
</check>
|
||||
|
||||
<template-output>product_brief_requested</template-output>
|
||||
</check>
|
||||
|
||||
</step>
|
||||
|
||||
<step n="7" goal="Load workflow path and build status structure">
|
||||
|
||||
<action>Determine path file based on selected track and field type:
|
||||
|
||||
**Path File Mapping:**
|
||||
|
||||
- quick-flow + greenfield → "quick-flow-greenfield.yaml"
|
||||
- quick-flow + brownfield → "quick-flow-brownfield.yaml"
|
||||
- method + greenfield → "method-greenfield.yaml"
|
||||
- method + brownfield → "method-brownfield.yaml"
|
||||
- enterprise + greenfield → "enterprise-greenfield.yaml"
|
||||
- enterprise + brownfield → "enterprise-brownfield.yaml"
|
||||
- game → "game-design.yaml"
|
||||
</action>
|
||||
|
||||
<action>Load {path_files}/{determined_path_file}</action>
|
||||
<action>Parse workflow path file to extract phases and workflows</action>
|
||||
|
||||
<action>Build workflow_items list:
|
||||
|
||||
For each phase in path file:
|
||||
|
||||
1. Check if phase should be included based on:
|
||||
- User choices (brainstorm_requested, research_requested, product_brief_requested)
|
||||
- Phase conditions (prerequisite phases, optional phases)
|
||||
2. Add comment header: ` # Phase {n}: {Phase Name}`
|
||||
3. For each workflow in phase:
|
||||
- Check if workflow should be included based on user choices
|
||||
- Add entry: ` {workflow-id}: {default_status} # agent: {agent}`
|
||||
- Default status from path file (required/optional/recommended/conditional)
|
||||
- Agent from path file (pm/architect/ux-designer/sm/analyst/etc.)
|
||||
4. Add blank line between phases
|
||||
</action>
|
||||
|
||||
<action>Scan for existing completed workflows and update workflow_items:
|
||||
|
||||
**Scan locations:**
|
||||
|
||||
- Brainstorm: {output_folder}/brainstorm\*.md
|
||||
- Research: {output_folder}/research\*.md
|
||||
- Product Brief: {output*folder}/\_brief*.md
|
||||
- PRD: {output*folder}/\_prd*.md or {output*folder}/\_prd*/index.md
|
||||
- Tech-spec: {output*folder}/\_tech-spec*.md or {output*folder}/\_spec*.md
|
||||
- Epics: {output*folder}/\_epic*.md or {output*folder}/\_epic*/index.md
|
||||
- UX Design: {output*folder}/\_ux*.md or {output*folder}/\_design*.md
|
||||
- Architecture: {output*folder}/\_architecture*.md or {output*folder}/\_arch*.md
|
||||
- Sprint Planning: {output*folder}/\_sprint*.yaml
|
||||
|
||||
**CRITICAL:** If file exists, replace workflow status with ONLY the file path, preserving agent comment.
|
||||
Example: `prd: docs/prd.md # agent: pm` (NOT "completed - docs/prd.md")
|
||||
</action>
|
||||
|
||||
<template-output>workflow_path_file</template-output>
|
||||
<template-output>workflow_items</template-output>
|
||||
|
||||
</step>
|
||||
|
||||
<step n="8" goal="Present workflow path and create status file">
|
||||
|
||||
<action>Set generated date to current date</action>
|
||||
<template-output>generated</template-output>
|
||||
|
||||
<output>Perfect! Here's your personalized BMad workflow path:
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
**Track:** {{selected_track_display_name}}
|
||||
**Field Type:** {{field_type}}
|
||||
**Project:** {{project_name}}
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
{{#if brownfield AND needs_documentation}}
|
||||
🔧 **Prerequisites:**
|
||||
✅ document-project - Create comprehensive codebase documentation (analyst agent)
|
||||
(Required before planning workflows)
|
||||
{{/if}}
|
||||
|
||||
{{#if has_discovery_phase}}
|
||||
🧠 **Phase 0: Discovery** (Optional - based on your choices)
|
||||
{{#if brainstorm_requested}}
|
||||
✅ Brainstorm - Creative exploration session (analyst agent)
|
||||
{{/if}}
|
||||
{{#if research_requested}}
|
||||
✅ Research - Domain and technical research (analyst agent)
|
||||
{{/if}}
|
||||
{{#if product_brief_requested}}
|
||||
✅ Product Brief - Strategic product planning (analyst agent)
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{#if selected_track == quick-flow}}
|
||||
📝 **Phase 1: Planning**
|
||||
✅ Tech-Spec - Implementation-focused specification (pm agent)
|
||||
(Auto-detects epic structure if 2+ stories)
|
||||
|
||||
🚀 **Phase 2: Implementation**
|
||||
✅ Sprint Planning - Create sprint tracking (sm agent)
|
||||
✅ Story Development - Implement story-by-story (sm agent)
|
||||
{{/if}}
|
||||
|
||||
{{#if selected_track in [method, enterprise]}}
|
||||
📋 **Phase 1: Planning**
|
||||
✅ PRD - Product Requirements Document (pm agent)
|
||||
✅ Validate PRD (optional quality check) (pm agent)
|
||||
✅ UX Design (if UI components - determined after PRD) (ux-designer agent)
|
||||
|
||||
🏗️ **Phase 2: Solutioning**
|
||||
{{#if brownfield}}
|
||||
✅ Architecture - Integration design (RECOMMENDED for brownfield) (architect agent)
|
||||
Creates focused solution design from your existing codebase context
|
||||
{{else}}
|
||||
✅ Architecture - System design document (architect agent)
|
||||
{{/if}}
|
||||
✅ Validate Architecture (optional quality check) (architect agent)
|
||||
✅ Solutioning Gate Check - Validate all planning aligns before coding (architect agent)
|
||||
|
||||
🚀 **Phase 3: Implementation**
|
||||
✅ Sprint Planning - Create sprint tracking (sm agent)
|
||||
✅ Story Development - Implement story-by-story with epic-tech-specs (sm agent)
|
||||
{{/if}}
|
||||
|
||||
{{#if selected_track == enterprise}}
|
||||
|
||||
🏢 **Additional Enterprise Planning:**
|
||||
✅ Security Architecture - Threat modeling and security design (architect agent)
|
||||
✅ DevOps Strategy - Pipeline and infrastructure planning (architect agent)
|
||||
✅ Test Strategy - Comprehensive testing approach (tea agent)
|
||||
{{/if}}
|
||||
|
||||
{{#if found_existing_artifacts}}
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
📁 **Existing Work Detected:**
|
||||
|
||||
I found these completed workflows and will mark them as done:
|
||||
{{#each completed_workflows}}
|
||||
✅ {{workflow_name}}: {{file_path}}
|
||||
{{/each}}
|
||||
|
||||
Your workflow tracking will start from where you left off!
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
{{/if}}</output>
|
||||
|
||||
<ask>Ready to create your workflow tracking file? (y/n)</ask>
|
||||
|
||||
<check if="answer == y">
|
||||
<action>Prepare all template variables for workflow-status-template.yaml:
|
||||
- generated: {current_date}
|
||||
- project_name: {project_name}
|
||||
- project_type: {project_type}
|
||||
- selected_track: {selected_track}
|
||||
- field_type: {field_type}
|
||||
- workflow_path_file: {workflow_path_file}
|
||||
- workflow_items: {workflow_items from step 7}
|
||||
</action>
|
||||
|
||||
<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 workflow_items</action>
|
||||
<action>Look up that workflow's agent and command from the loaded path file</action>
|
||||
|
||||
<output>✅ **Workflow tracking created:** {output_folder}/bmm-workflow-status.yaml
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
{{#if completed_workflows_found}}
|
||||
🎉 Great news! I found {{completed_count}} workflow(s) already completed.
|
||||
{{/if}}
|
||||
|
||||
**Next Workflow:** {{next_workflow_name}}
|
||||
**Agent:** {{next_agent}}
|
||||
**Command:** /bmad:bmm:workflows:{{next_workflow_id}}
|
||||
|
||||
{{#if next_agent != 'analyst' AND next_agent != 'pm'}}
|
||||
💡 **Tip:** Start a new chat and load the **{{next_agent}}** agent before running this workflow.
|
||||
{{/if}}
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
Happy building with BMad Method! 🚀
|
||||
|
||||
**To check your progress anytime:**
|
||||
|
||||
- Load any BMM agent
|
||||
- Run: /bmad:bmm:workflows:workflow-status
|
||||
</output>
|
||||
</check>
|
||||
|
||||
<check if="answer == n">
|
||||
<output>No problem! You can run workflow-init again anytime you're ready.
|
||||
|
||||
To get started later, just load the Analyst agent and run:
|
||||
**/bmad:bmm:workflows:workflow-init**</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
|
||||
387
.bmad/bmm/workflows/workflow-status/instructions.md
Normal file
387
.bmad/bmm/workflows/workflow-status/instructions.md
Normal file
@@ -0,0 +1,387 @@
|
||||
# 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>
|
||||
<action>For each workflow, look up its agent from the path file</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}} ({{agent}}): {{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}})
|
||||
{{#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,127 @@
|
||||
# BMad Enterprise Method - Brownfield
|
||||
# Extended enterprise planning for complex brownfield with security/devops/test (30+ stories typically)
|
||||
|
||||
method_name: "BMad Enterprise Method"
|
||||
track: "enterprise"
|
||||
field_type: "brownfield"
|
||||
description: "Enterprise-grade planning for complex brownfield additions with extended requirements"
|
||||
|
||||
phases:
|
||||
- prerequisite: true
|
||||
name: "Documentation"
|
||||
conditional: "if_undocumented"
|
||||
note: "NOT a phase - prerequisite for brownfield without docs (nearly mandatory for enterprise)"
|
||||
workflows:
|
||||
- id: "document-project"
|
||||
required: true
|
||||
agent: "analyst"
|
||||
command: "document-project"
|
||||
output: "Comprehensive project documentation"
|
||||
purpose: "Understand existing codebase - critical for enterprise brownfield"
|
||||
|
||||
- phase: 0
|
||||
name: "Discovery (Required)"
|
||||
required: true
|
||||
note: "Analysis phase required for enterprise projects"
|
||||
workflows:
|
||||
- id: "brainstorm-project"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "brainstorm-project"
|
||||
included_by: "user_choice"
|
||||
|
||||
- id: "research"
|
||||
recommended: true
|
||||
agent: "analyst"
|
||||
command: "research"
|
||||
included_by: "user_choice"
|
||||
note: "Highly recommended - compliance, integration, risk research"
|
||||
|
||||
- id: "product-brief"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "product-brief"
|
||||
included_by: "user_choice"
|
||||
note: "Optional for brownfield enterprise"
|
||||
|
||||
- phase: 1
|
||||
name: "Planning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "prd"
|
||||
required: true
|
||||
agent: "pm"
|
||||
command: "prd"
|
||||
output: "Enterprise PRD with compliance requirements"
|
||||
note: "Must address existing system constraints and migration strategy"
|
||||
|
||||
- id: "validate-prd"
|
||||
recommended: true
|
||||
agent: "pm"
|
||||
command: "validate-prd"
|
||||
|
||||
- id: "create-design"
|
||||
recommended: true
|
||||
agent: "ux-designer"
|
||||
command: "create-design"
|
||||
note: "Recommended - must integrate with existing UX patterns"
|
||||
|
||||
- id: "framework"
|
||||
optional: true
|
||||
agent: "tea"
|
||||
command: "framework"
|
||||
output: "Test framework scaffold (Playwright/Cypress)"
|
||||
note: "Initialize or modernize test framework - critical if brownfield lacks proper test infrastructure"
|
||||
|
||||
- id: "ci"
|
||||
optional: true
|
||||
agent: "tea"
|
||||
command: "ci"
|
||||
output: "CI/CD test pipeline configuration"
|
||||
note: "Establish or enhance CI pipeline with regression testing strategy"
|
||||
|
||||
- phase: 2
|
||||
name: "Solutioning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "create-architecture"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "create-architecture"
|
||||
output: "Integration architecture with enterprise considerations"
|
||||
note: "Distills brownfield context + adds security/scalability/compliance design"
|
||||
|
||||
- id: "create-security-architecture"
|
||||
optional: true
|
||||
agent: "architect"
|
||||
command: "create-security-architecture"
|
||||
output: "Security architecture for brownfield integration"
|
||||
note: "Future workflow - optional extended enterprise workflow for threat model, auth integration, audit requirements"
|
||||
|
||||
- id: "create-devops-strategy"
|
||||
optional: true
|
||||
agent: "architect"
|
||||
command: "create-devops-strategy"
|
||||
output: "DevOps strategy for brownfield deployment"
|
||||
note: "Future workflow - optional extended enterprise workflow for CI/CD integration, deployment strategy, monitoring"
|
||||
|
||||
- id: "validate-architecture"
|
||||
optional: true
|
||||
agent: "architect"
|
||||
command: "validate-architecture"
|
||||
|
||||
- id: "solutioning-gate-check"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "solutioning-gate-check"
|
||||
note: "Critical gate - validates all planning before touching production system"
|
||||
|
||||
- phase: 3
|
||||
name: "Implementation"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "sprint-planning"
|
||||
required: true
|
||||
agent: "sm"
|
||||
command: "sprint-planning"
|
||||
note: "Enterprise brownfield requires careful phasing and feature flags"
|
||||
@@ -0,0 +1,115 @@
|
||||
# BMad Enterprise Method - Greenfield
|
||||
# Extended enterprise planning with security/devops/test for greenfield (30+ stories typically)
|
||||
|
||||
method_name: "BMad Enterprise Method"
|
||||
track: "enterprise"
|
||||
field_type: "greenfield"
|
||||
description: "Complete enterprise-grade planning with security, devops, and test strategy"
|
||||
|
||||
phases:
|
||||
- phase: 0
|
||||
name: "Discovery (Required)"
|
||||
required: true
|
||||
note: "Analysis phase required for enterprise projects"
|
||||
workflows:
|
||||
- id: "brainstorm-project"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "brainstorm-project"
|
||||
included_by: "user_choice"
|
||||
|
||||
- id: "research"
|
||||
recommended: true
|
||||
agent: "analyst"
|
||||
command: "research"
|
||||
included_by: "user_choice"
|
||||
note: "Highly recommended for enterprise - domain and compliance research"
|
||||
|
||||
- id: "product-brief"
|
||||
recommended: true
|
||||
agent: "analyst"
|
||||
command: "product-brief"
|
||||
included_by: "user_choice"
|
||||
note: "Recommended for strategic alignment"
|
||||
|
||||
- phase: 1
|
||||
name: "Planning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "prd"
|
||||
required: true
|
||||
agent: "pm"
|
||||
command: "prd"
|
||||
output: "Comprehensive Product Requirements Document"
|
||||
note: "Enterprise-level requirements with compliance considerations"
|
||||
|
||||
- id: "validate-prd"
|
||||
recommended: true
|
||||
agent: "pm"
|
||||
command: "validate-prd"
|
||||
|
||||
- id: "create-design"
|
||||
recommended: true
|
||||
agent: "ux-designer"
|
||||
command: "create-design"
|
||||
note: "Highly recommended for enterprise - design system and patterns"
|
||||
|
||||
- id: "framework"
|
||||
optional: true
|
||||
agent: "tea"
|
||||
command: "framework"
|
||||
output: "Test framework scaffold (Playwright/Cypress)"
|
||||
note: "Initialize production-ready test framework - run once per project"
|
||||
|
||||
- id: "ci"
|
||||
optional: true
|
||||
agent: "tea"
|
||||
command: "ci"
|
||||
output: "CI/CD test pipeline configuration"
|
||||
note: "Scaffold CI workflow with selective testing, burn-in, caching"
|
||||
|
||||
- phase: 2
|
||||
name: "Solutioning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "create-architecture"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "create-architecture"
|
||||
output: "Enterprise-grade system architecture"
|
||||
note: "Includes scalability, multi-tenancy, integration architecture"
|
||||
|
||||
- id: "create-security-architecture"
|
||||
optional: true
|
||||
agent: "architect"
|
||||
command: "create-security-architecture"
|
||||
output: "Security architecture and threat model"
|
||||
note: "Future workflow - optional extended enterprise workflow for security design, auth, compliance"
|
||||
|
||||
- id: "create-devops-strategy"
|
||||
optional: true
|
||||
agent: "architect"
|
||||
command: "create-devops-strategy"
|
||||
output: "DevOps pipeline and infrastructure plan"
|
||||
note: "Future workflow - optional extended enterprise workflow for CI/CD, deployment, monitoring"
|
||||
|
||||
- id: "validate-architecture"
|
||||
optional: true
|
||||
agent: "architect"
|
||||
command: "validate-architecture"
|
||||
|
||||
- id: "solutioning-gate-check"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "solutioning-gate-check"
|
||||
note: "Validates all planning artifacts align before implementation"
|
||||
|
||||
- phase: 3
|
||||
name: "Implementation"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "sprint-planning"
|
||||
required: true
|
||||
agent: "sm"
|
||||
command: "sprint-planning"
|
||||
note: "Creates sprint plan - enterprise projects may require phased rollout"
|
||||
52
.bmad/bmm/workflows/workflow-status/paths/game-design.yaml
Normal file
52
.bmad/bmm/workflows/workflow-status/paths/game-design.yaml
Normal file
@@ -0,0 +1,52 @@
|
||||
# Game Development - Use BMGD Module
|
||||
# Game development workflows have been moved to the BMad Game Development module
|
||||
|
||||
project_type: "game"
|
||||
level: "all"
|
||||
field_type: "any"
|
||||
description: "⚠️ Game development requires the BMGD module"
|
||||
|
||||
error_message: |
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
🎮 **GAME DEVELOPMENT DETECTED**
|
||||
|
||||
Game development workflows are now part of the **BMad Game Development (BMGD)** module,
|
||||
which provides specialized workflows and agents for game creation.
|
||||
|
||||
**To proceed with game development:**
|
||||
|
||||
1. Install the BMGD module:
|
||||
```bash
|
||||
bmad install bmgd
|
||||
```
|
||||
|
||||
2. The BMGD module includes:
|
||||
- Game Designer, Game Developer, Game Architect agents
|
||||
- Game Dev Scrum Master for sprint coordination
|
||||
- Industry-standard game dev workflows:
|
||||
• Phase 1 (Preproduction): brainstorm-game, game-brief
|
||||
• Phase 2 (Design): GDD, narrative design
|
||||
• Phase 3 (Technical): game architecture
|
||||
• Phase 4 (Production): sprint planning, story management
|
||||
|
||||
3. After installation, load the Game Designer or Game Dev Scrum Master agent
|
||||
to begin your game development workflow
|
||||
|
||||
**Why a separate module?**
|
||||
- Game development follows different phases than software development
|
||||
- Specialized agents understand game-specific terminology and patterns
|
||||
- Workflows configured for game development needs (playtesting, balancing, etc.)
|
||||
- Can be used standalone or alongside BMM for complete coverage
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
# Placeholder phases - this file should not be used for actual workflow tracking
|
||||
# Users should install BMGD module instead
|
||||
phases:
|
||||
- phase: 1
|
||||
name: "ERROR - Install BMGD Module"
|
||||
workflows:
|
||||
- id: "install-bmgd"
|
||||
required: true
|
||||
note: "Run: bmad install bmgd"
|
||||
@@ -0,0 +1,97 @@
|
||||
# BMad Method - Brownfield
|
||||
# Full product + architecture planning for complex brownfield additions (10-50+ stories typically)
|
||||
|
||||
method_name: "BMad Method"
|
||||
track: "method"
|
||||
field_type: "brownfield"
|
||||
description: "Complete product and system design for complex brownfield work"
|
||||
|
||||
phases:
|
||||
- prerequisite: true
|
||||
name: "Documentation"
|
||||
conditional: "if_undocumented"
|
||||
note: "NOT a phase - prerequisite for brownfield without docs"
|
||||
workflows:
|
||||
- id: "document-project"
|
||||
required: true
|
||||
agent: "analyst"
|
||||
command: "document-project"
|
||||
output: "Comprehensive project documentation"
|
||||
purpose: "Understand existing codebase before planning"
|
||||
|
||||
- phase: 0
|
||||
name: "Discovery (Optional)"
|
||||
optional: true
|
||||
note: "User-selected during workflow-init"
|
||||
workflows:
|
||||
- id: "brainstorm-project"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "brainstorm-project"
|
||||
included_by: "user_choice"
|
||||
|
||||
- id: "research"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "research"
|
||||
included_by: "user_choice"
|
||||
|
||||
- id: "product-brief"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "product-brief"
|
||||
included_by: "user_choice"
|
||||
note: "Optional for brownfield, less common than greenfield"
|
||||
|
||||
- phase: 1
|
||||
name: "Planning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "prd"
|
||||
required: true
|
||||
agent: "pm"
|
||||
command: "prd"
|
||||
output: "PRD focused on new features/changes"
|
||||
note: "Must consider existing system constraints"
|
||||
|
||||
- id: "validate-prd"
|
||||
optional: true
|
||||
agent: "pm"
|
||||
command: "validate-prd"
|
||||
|
||||
- id: "create-design"
|
||||
conditional: "if_has_ui"
|
||||
agent: "ux-designer"
|
||||
command: "create-design"
|
||||
|
||||
- phase: 2
|
||||
name: "Solutioning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "create-architecture"
|
||||
recommended: true
|
||||
agent: "architect"
|
||||
command: "create-architecture"
|
||||
output: "Integration architecture - solution design for THIS project"
|
||||
note: "HIGHLY RECOMMENDED: Distills massive brownfield context into focused solution design. Prevents agent confusion."
|
||||
|
||||
- id: "validate-architecture"
|
||||
optional: true
|
||||
agent: "architect"
|
||||
command: "validate-architecture"
|
||||
|
||||
- id: "solutioning-gate-check"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "solutioning-gate-check"
|
||||
note: "Validates PRD + UX + Architecture (if created) cohesion"
|
||||
|
||||
- phase: 3
|
||||
name: "Implementation"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "sprint-planning"
|
||||
required: true
|
||||
agent: "sm"
|
||||
command: "sprint-planning"
|
||||
note: "Creates sprint plan with stories"
|
||||
@@ -0,0 +1,88 @@
|
||||
# BMad Method - Greenfield
|
||||
# Full product + architecture planning for greenfield projects (10-50+ stories typically)
|
||||
|
||||
method_name: "BMad Method"
|
||||
track: "method"
|
||||
field_type: "greenfield"
|
||||
description: "Complete product and system design methodology for greenfield projects"
|
||||
|
||||
phases:
|
||||
- phase: 0
|
||||
name: "Discovery (Optional)"
|
||||
optional: true
|
||||
note: "User-selected during workflow-init"
|
||||
workflows:
|
||||
- id: "brainstorm-project"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "brainstorm-project"
|
||||
included_by: "user_choice"
|
||||
|
||||
- id: "research"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "research"
|
||||
included_by: "user_choice"
|
||||
note: "Can have multiple research workflows"
|
||||
|
||||
- id: "product-brief"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "product-brief"
|
||||
included_by: "user_choice"
|
||||
note: "Recommended for greenfield Method projects"
|
||||
|
||||
- phase: 1
|
||||
name: "Planning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "prd"
|
||||
required: true
|
||||
agent: "pm"
|
||||
command: "prd"
|
||||
output: "Product Requirements Document with epics and stories"
|
||||
|
||||
- id: "validate-prd"
|
||||
optional: true
|
||||
agent: "pm"
|
||||
command: "validate-prd"
|
||||
note: "Quality check for PRD completeness"
|
||||
|
||||
- id: "create-design"
|
||||
conditional: "if_has_ui"
|
||||
agent: "ux-designer"
|
||||
command: "create-design"
|
||||
note: "Determined after PRD - user/agent decides if needed"
|
||||
|
||||
- phase: 2
|
||||
name: "Solutioning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "create-architecture"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "create-architecture"
|
||||
output: "System architecture document"
|
||||
note: "Complete system design for greenfield projects"
|
||||
|
||||
- id: "validate-architecture"
|
||||
optional: true
|
||||
agent: "architect"
|
||||
command: "validate-architecture"
|
||||
note: "Quality check for architecture completeness"
|
||||
|
||||
- id: "solutioning-gate-check"
|
||||
required: true
|
||||
agent: "architect"
|
||||
command: "solutioning-gate-check"
|
||||
note: "Validates PRD + UX + Architecture cohesion before implementation"
|
||||
|
||||
- phase: 3
|
||||
name: "Implementation"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "sprint-planning"
|
||||
required: true
|
||||
agent: "sm"
|
||||
command: "sprint-planning"
|
||||
note: "Creates sprint plan - subsequent work tracked there"
|
||||
@@ -0,0 +1,58 @@
|
||||
# BMad Quick Flow - Brownfield
|
||||
# Fast implementation path for existing codebases (1-15 stories typically)
|
||||
|
||||
method_name: "BMad Quick Flow"
|
||||
track: "quick-flow"
|
||||
field_type: "brownfield"
|
||||
description: "Fast tech-spec based implementation for brownfield projects"
|
||||
|
||||
phases:
|
||||
- prerequisite: true
|
||||
name: "Documentation"
|
||||
conditional: "if_undocumented"
|
||||
note: "NOT a phase - prerequisite for brownfield without docs"
|
||||
workflows:
|
||||
- id: "document-project"
|
||||
required: true
|
||||
agent: "analyst"
|
||||
command: "document-project"
|
||||
output: "Comprehensive project documentation"
|
||||
purpose: "Understand existing codebase before planning"
|
||||
|
||||
- phase: 0
|
||||
name: "Discovery (Optional)"
|
||||
optional: true
|
||||
note: "User-selected during workflow-init"
|
||||
workflows:
|
||||
- id: "brainstorm-project"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "brainstorm-project"
|
||||
included_by: "user_choice"
|
||||
|
||||
- id: "research"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "research"
|
||||
included_by: "user_choice"
|
||||
|
||||
- phase: 1
|
||||
name: "Planning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "tech-spec"
|
||||
required: true
|
||||
agent: "pm"
|
||||
command: "tech-spec"
|
||||
output: "Technical Specification with stories (auto-detects epic if 2+ stories)"
|
||||
note: "Integrates with existing codebase patterns from document-project"
|
||||
|
||||
- phase: 2
|
||||
name: "Implementation"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "sprint-planning"
|
||||
required: true
|
||||
agent: "sm"
|
||||
command: "sprint-planning"
|
||||
note: "Creates sprint plan with all stories"
|
||||
@@ -0,0 +1,47 @@
|
||||
# BMad Quick Flow - Greenfield
|
||||
# Fast implementation path with tech-spec planning (1-15 stories typically)
|
||||
|
||||
method_name: "BMad Quick Flow"
|
||||
track: "quick-flow"
|
||||
field_type: "greenfield"
|
||||
description: "Fast tech-spec based implementation for greenfield projects"
|
||||
|
||||
phases:
|
||||
- phase: 0
|
||||
name: "Discovery (Optional)"
|
||||
optional: true
|
||||
note: "User-selected during workflow-init"
|
||||
workflows:
|
||||
- id: "brainstorm-project"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "brainstorm-project"
|
||||
included_by: "user_choice"
|
||||
|
||||
- id: "research"
|
||||
optional: true
|
||||
agent: "analyst"
|
||||
command: "research"
|
||||
included_by: "user_choice"
|
||||
note: "Can have multiple research workflows"
|
||||
|
||||
- phase: 1
|
||||
name: "Planning"
|
||||
required: true
|
||||
workflows:
|
||||
- id: "tech-spec"
|
||||
required: true
|
||||
agent: "pm"
|
||||
command: "tech-spec"
|
||||
output: "Technical Specification with stories (auto-detects epic if 2+ stories)"
|
||||
note: "Quick Spec Flow - implementation-focused planning"
|
||||
|
||||
- phase: 2
|
||||
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 BMM methodology phases
|
||||
# Phase 3/4 (Implementation) is tracked separately in sprint-status.yaml
|
||||
|
||||
# generated: {{generated}}
|
||||
# project: {{project_name}}
|
||||
# project_type: {{project_type}}
|
||||
# selected_track: {{selected_track}}
|
||||
# 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}}"
|
||||
selected_track: "{{selected_track}}"
|
||||
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