diff --git a/src/modules/bmm/workflows/1-analysis/workflow-init/instructions.md b/src/modules/bmm/workflows/1-analysis/workflow-init/instructions.md new file mode 100644 index 00000000..e06508f0 --- /dev/null +++ b/src/modules/bmm/workflows/1-analysis/workflow-init/instructions.md @@ -0,0 +1,173 @@ +# Workflow Init - Project Setup Instructions + +The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml +You MUST have already loaded and processed: workflow-init/workflow.yaml +Communicate in {communication_language} with {user_name} + + + + +Search {output_folder}/ for existing BMM artifacts: +- PRD files (*prd*.md) +- Architecture docs (architecture*.md, solution-architecture*.md, architecture/*) +- Briefs (*brief*.md) +- Brainstorming docs (brainstorm*.md) +- Research docs (*research*.md) +- Tech specs (tech-spec*.md) +- GDD files (gdd*.md) +- Story files (story-*.md) +- Epic files (epic*.md) +- Documentation files (index.md (and referenced files within), other files in docs or provided) + +Check for existing codebase indicators: + +- src/ or lib/ directories +- package.json, requirements.txt, go.mod, Cargo.toml, etc. +- .git directory (check git log for commit history age) +- README.md (check if it describes existing functionality) +- Test directories (tests/, **tests**/, spec/) +- Existing source files (_.js, _.py, _.go, _.rs, etc.) + +Also check config for existing {project_name} variable + + + Analyze documents to infer project details + Guess project type (game vs software) from content + Estimate level based on scope: + - 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) + + Detect if greenfield (only planning) or brownfield (has code) + Go to Step 2 (Confirm inferred settings) + + + + Set fresh_start = true + Go to Step 3 (Gather project info) + + + + +πŸ“Š I found existing work! Here's what I detected: + +**Project Name:** {{inferred_project_name}} +**Type:** {{inferred_type}} +**Complexity:** {{inferred_level_description}} +**Codebase:** {{inferred_field_type}} +**Current Phase:** {{current_phase}} + + +Is this correct? + +1. **Yes** - Use these settings +2. **Start Fresh** - Ignore existing work + Or tell me what's different: + + + Use inferred settings + Go to Step 5 (Generate workflow) + + + + Set fresh_start = true + Go to Step 3 (Gather project info) + + + + Update inferred values based on user input + Go to Step 5 (Generate workflow) + + +project_name +project_type +project_level +field_type + + + +Welcome to BMad Method, {user_name}! + +What's your project called? {{#if project_name}}(Config shows: {{project_name}}){{/if}} +Set project_name +project_name + +Tell me about what you're building. What's the goal? are we adding on to something or starting fresh. + +Analyze description to determine project type, level, and field type +Set project_type (game or software) +Set project_level (0-4 based on complexity) +Set field_type (greenfield or brownfield based on description) + +Based on your description: Level {{project_level}} {{field_type}} {{project_type}} project. + +Is that correct? (y/n or tell me what's different) + + + Update values based on corrections + + +project_type +project_level +field_type + + + +Determine path file based on selections: + + + Load {path_files}/game-design.yaml + Set workflow_path_file = "game-design.yaml" + + + + + Build filename: {field_type}-level-{project_level}.yaml + Load {path_files}/{field_type}-level-{project_level}.yaml + Set workflow_path_file = constructed filename + + +Parse workflow path file to extract phases and workflows +workflow_path_file + + + +Build workflow from loaded path file +Display phases and workflows +Set initial values for status file + +current_phase +current_workflow +current_agent +next_action +next_command +next_agent + + + +Initialize all status values +start_date +last_updated +phase_1_complete +phase_2_complete +phase_3_complete +phase_4_complete +todo_story +todo_title +in_progress_story +in_progress_title +backlog_count +done_count +total_stories + +Ready to create your workflow status file? (y/n) + + + Save status file to {output_folder}/bmm-workflow-status.md + βœ… Status file created! Next up: {{next_agent}} agent, run `{{next_command}}` + + + + diff --git a/src/modules/bmm/workflows/1-analysis/workflow-init/workflow.yaml b/src/modules/bmm/workflows/1-analysis/workflow-init/workflow.yaml new file mode 100644 index 00000000..b6bae27b --- /dev/null +++ b/src/modules/bmm/workflows/1-analysis/workflow-init/workflow.yaml @@ -0,0 +1,23 @@ +# 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" +date: system-generated + +# Workflow components +installed_path: "{project-root}/bmad/bmm/workflows/1-analysis/workflow-init" +instructions: "{installed_path}/instructions.md" +template: "{project-root}/bmad/bmm/workflows/1-analysis/workflow-status/workflow-status-template.md" + +# Path data files +path_files: "{project-root}/src/modules/bmm/workflows/1-analysis/workflow-status/paths/" + +# Output configuration +default_output_file: "{output_folder}/bmm-workflow-status.md" diff --git a/src/modules/bmm/workflows/1-analysis/workflow-status/README.md b/src/modules/bmm/workflows/1-analysis/workflow-status/README.md index 16a979a1..616a1981 100644 --- a/src/modules/bmm/workflows/1-analysis/workflow-status/README.md +++ b/src/modules/bmm/workflows/1-analysis/workflow-status/README.md @@ -1,383 +1,238 @@ -# Workflow Status - Universal Entry Point +# Workflow Status System + +The universal entry point for BMM workflows - answers "what should I do now?" for any agent. ## Overview -The `workflow-status` workflow is the **universal entry point** for all BMad Method (BMM) workflows. It serves as both a status tracker and master router, helping users understand where they are in their project journey and what to do next. +The workflow status system provides: -## Purpose +- **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 -**Primary Functions:** +## Architecture -1. **Status Checking**: Read existing workflow status and display current state -2. **Next Action Recommendation**: Suggest what the user should do next -3. **Comprehensive Workflow Planning**: Map out ENTIRE workflow journey before executing anything -4. **Planned Workflow Documentation**: Create status file with complete phase/step roadmap -5. **Phase Navigation**: Guide users through the 4-phase methodology -6. **Agent Coordination**: Can be invoked by any agent (bmad-master, analyst, pm) - -## When to Use - -### Automatic Invocation - -Agents should automatically check workflow status when loaded: - -- **bmad-master**: Checks status before displaying main menu -- **analyst**: Checks status before displaying analysis options -- **pm**: Checks status before displaying planning options - -### Manual Invocation - -Users can manually run this workflow anytime: - -```bash -bmad analyst workflow-status -# or -bmad pm workflow-status -# or just tell any agent: "check workflow status" -``` - -## Workflow Behavior - -### Scenario 1: No Status File Exists (New Project) - -**The workflow will map out your ENTIRE workflow journey:** - -**Step 1: Project Context** - -- Determine greenfield vs brownfield -- Check if brownfield needs documentation -- Note if `document-project` should be added to plan - -**Step 2: Scope Understanding** - -- Ask if user knows project level/scope -- Options: - - **Yes**: Capture estimated level (0-4) - - **No**: Defer level determination to Phase 2 (plan-project) - - **Want analysis first**: Include Phase 1 in plan - -**Step 3: Choose Starting Point** - -- **Option A**: Full Analysis Phase (brainstorm β†’ research β†’ brief) -- **Option B**: Skip to Planning (direct to PRD/GDD) -- **Option C**: Just Show Menu (I'll decide manually) - -**Step 4: Build Complete Planned Workflow** -The workflow builds a comprehensive plan including: - -- Phase 1 (if needed): document-project, brainstorm, research, brief -- Phase 2 (always required): plan-project -- Phase 3 (if Level 3-4): solution-architecture, tech-specs -- Phase 4 (always): Full implementation workflow (create-story β†’ story-ready β†’ dev-story β†’ story-approved) - -**Step 5: Create Status File** - -- Create `bmm-workflow-status.md` -- Document complete planned workflow in "Planned Workflow Journey" table -- Set current step: "Workflow Definition Phase" -- Set next step: First item from planned workflow -- Provide command to run next step - -**Brownfield Special Handling:** - -- Checks if codebase is documented -- Adds `document-project` to planned workflow if needed -- Does NOT immediately execute it - documents it in the plan first - -**Output:** - -- Complete workflow roadmap with phases, steps, agents, and descriptions -- Status file with planned journey documented -- Clear command to run first step -- User can reference plan anytime via workflow-status - -### Scenario 2: Status File Exists (Project In Progress) - -**The workflow will:** - -1. Find most recent `bmm-workflow-status.md` file -2. Read and parse current state: - - Current phase and progress % - - Project level and type - - Phase completion status - - Implementation progress (if Phase 4) - - Next recommended action -3. Display comprehensive status summary -4. Offer options: - - **Option 1**: Proceed with recommended action - - **Option 2**: View detailed status - - **Option 3**: Change workflow - - **Option 4**: Display agent menu - - **Option 5**: Exit - -**Phase 4 Special Display:** -If in Implementation phase, shows: - -- BACKLOG story count -- TODO story (ready for drafting) -- IN PROGRESS story (being implemented) -- DONE story count and points - -## Status File Detection - -**Search Pattern:** +### Core Components ``` -{output_folder}/bmm-workflow-status.md +workflow-status/ +β”œβ”€β”€ workflow.yaml # Main configuration +β”œβ”€β”€ instructions.md # Status checker (99 lines) +β”œβ”€β”€ workflow-status-template.md # Clean key-value 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 ``` -**Versioning:** - -- Files are named: `bmm-workflow-status.md` -- Workflow finds most recent by date -- Old files can be archived - -## Recommended Next Actions - -The workflow intelligently suggests next steps based on current state: - -**Phase 1 (Analysis):** - -- Continue with analysis workflows -- Or move to `plan-project` - -**Phase 2 (Planning):** - -- If Level 0-1: Move to Phase 4 (`create-story`) -- If Level 3-4: Move to Phase 3 (`solution-architecture`) - -**Phase 3 (Solutioning):** - -- Continue with tech-specs (JIT per epic) -- Or move to Phase 4 (`create-story`) - -**Phase 4 (Implementation):** - -- Shows current TODO/IN PROGRESS story -- Suggests exact next workflow (`story-ready`, `dev-story`, `story-approved`) - -## Integration with Agents - -### bmad-master +### Related Workflow ``` -On load: -1. Run workflow-status check -2. If status found: Display summary + menu -3. If no status: Offer to plan workflow -4. Display master menu with context +workflow-init/ +β”œβ”€β”€ workflow.yaml # Initialization configuration +└── instructions.md # Smart setup (182 lines) ``` -### analyst +## How It Works -``` -On load: -1. Run workflow-status check -2. If in Phase 1: Show analysis workflows -3. If no status: Offer analysis planning -4. Display analyst menu +### 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 + +Simple key-value pairs for instant parsing: + +```markdown +PROJECT_NAME: MyProject +PROJECT_TYPE: software +PROJECT_LEVEL: 2 +FIELD_TYPE: greenfield +CURRENT_PHASE: 2-Planning +CURRENT_WORKFLOW: prd +TODO_STORY: story-1.2.md +IN_PROGRESS_STORY: story-1.1.md +NEXT_ACTION: Continue PRD +NEXT_COMMAND: prd +NEXT_AGENT: pm ``` -### pm +Any agent can instantly grep what they need: + +- SM: `grep 'TODO_STORY:' status.md` +- DEV: `grep 'IN_PROGRESS_STORY:' status.md` +- Any: `grep 'NEXT_ACTION:' status.md` + +## 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 ``` -On load: -1. Run workflow-status check -2. If no status: Offer to run plan-project -3. If status found: Show current phase progress -4. Display PM menu +Agent: workflow-status +Result: "TODO: story-1.2.md, Next: create-story" ``` -## Example Outputs - -### No Status File (New User) - Planning Flow +### New Project Setup ``` -πŸš€ Welcome to BMad Method Workflows! - -No workflow status file found. Let's plan your complete workflow journey. - -Step 1: Project Context - -Is this a new or existing codebase? - a. Greenfield - Starting from scratch - b. Brownfield - Adding to existing codebase - -Your choice (a/b): a - -Step 3: Understanding Your Workflow - -Before we plan your workflow, let's determine the scope and complexity of your project. - -The BMad Method uses 5 project levels (0-4) that determine which phases you'll need: -- Level 0: Single atomic change (1 story) - Phases 2 β†’ 4 -- Level 1: Small feature (2-3 stories, 1 epic) - Phases 2 β†’ 4 -- Level 2: Medium project (multiple epics) - Phases 2 β†’ 4 -- Level 3: Complex system (subsystems, integrations) - Phases 2 β†’ 3 β†’ 4 -- Level 4: Enterprise scale (multiple products) - Phases 2 β†’ 3 β†’ 4 - -Do you already know your project's approximate size/scope? -a. Yes - I can describe the general scope -b. No - Not sure yet, need help determining it -c. Want analysis first - Do brainstorming/research before deciding - -Your choice (a/b/c): a - -Based on the descriptions above, what level best describes your project? -0. Single atomic change -1. Small coherent feature -2. Medium project -3. Complex system -4. Enterprise scale - -Your estimated level (0-4): 1 - -Step 4: Choose Your Starting Point - -Option A: Full Analysis Phase First -Option B: Skip to Planning -Option C: Just Show Menu - -Your choice (A/B/C): B - -πŸ—ΊοΈ Your Planned Workflow - -Based on your responses, here's your complete workflow journey: - -**2-Plan** - plan-project - - Agent: PM - - Description: Create PRD/GDD/Tech-Spec (determines final level) - - Status: Planned - -**3-Solutioning** - TBD - depends on level from Phase 2 - - Agent: Architect - - Description: Required if Level 3-4, skipped if Level 0-2 - - Status: Conditional - -**4-Implementation** - create-story (iterative) - - Agent: SM - - Description: Draft stories from backlog - - Status: Planned - -**4-Implementation** - story-ready - - Agent: SM - - Description: Approve story for dev - - Status: Planned - -**4-Implementation** - story-context - - Agent: SM - - Description: Generate context XML - - Status: Planned - -**4-Implementation** - dev-story (iterative) - - Agent: DEV - - Description: Implement stories - - Status: Planned - -**4-Implementation** - story-approved - - Agent: DEV - - Description: Mark complete, advance queue - - Status: Planned - ---- - -Current Step: Workflow Definition Phase (this workflow) -Next Step: plan-project (PM agent) - -Ready to create your workflow status file? - -This will create: bmm-workflow-status.md - -The status file will document: -- Your complete planned workflow (phases and steps) -- Current phase: "Workflow Definition" -- Next action: plan-project - -Create status file? (y/n): y - -βœ… Status file created! - -File: bmm-workflow-status.md - -To proceed with your first step: - -Load PM: bmad pm plan-project - -You can always check your status with: workflow-status +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" ``` -### Status File Found (In Progress) +### Smart Inference ``` -πŸ“Š Current Workflow Status - -Project: My Web App -Started: 2025-10-10 -Last Updated: 2025-10-12 - -Current Phase: 4-Implementation (65% complete) -Current Workflow: Story implementation in progress - -Phase Completion: -- [x] Phase 1: Analysis -- [x] Phase 2: Planning -- [ ] Phase 3: Solutioning (skipped for Level 1) -- [ ] Phase 4: Implementation - -Planned Workflow Journey: -Current Step: dev-story (DEV agent) -Next Step: story-approved (DEV agent) - -Full planned workflow documented in status file - reference anytime! - -Project Details: -- Level: 1 (Coherent feature, 1-10 stories) -- Type: web -- Context: greenfield - -Implementation Progress: -- BACKLOG: 1 stories -- TODO: (empty) -- IN PROGRESS: auth-feature-2 (Ready) -- DONE: 1 stories (5 points) - ---- - -🎯 Recommended Next Action: - -Implement story auth-feature-2 - -Command: Run 'dev-story' workflow -Agent: DEV - -Would you like to: -1. Proceed with recommended action -2. View detailed status (includes full planned workflow table) -3. Change workflow -4. Display agent menu -5. Exit +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: + +- `create-story` reads TODO_STORY +- `dev-story` reads IN_PROGRESS_STORY +- Any workflow can check CURRENT_PHASE +- All agents can ask "what should I do?" + +The status file is the single source of truth for project state and the hub that keeps all agents synchronized. + ## Benefits -βœ… **Complete Workflow Planning**: Maps out ENTIRE journey before executing anything -βœ… **No More Guessing**: Users always know current step AND what comes next -βœ… **Documented Roadmap**: Status file contains complete planned workflow table -βœ… **Context-Aware**: Recommendations adapt to project state and level -βœ… **Universal Entry Point**: Works with any agent -βœ… **New User Friendly**: Guides comprehensive workflow planning -βœ… **Status Visibility**: Clear progress tracking with current/next step indicators -βœ… **Phase Navigation**: Easy to jump between phases with planned path reference -βœ… **Level-Adaptive**: Plans adjust based on estimated project level (0-4) -βœ… **Brownfield Support**: Includes documentation needs in workflow plan +βœ… **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 -- **Progress Dashboards**: Visual progress indicators -- **Time Tracking**: Estimate time remaining -- **Multi-Project**: Handle multiple projects -- **Team Sync**: Show what teammates are working on +- Visual progress indicators +- Time tracking and estimates +- Multi-project support +- Team synchronization --- -**This workflow is the front door to BMad Method. Every user should start here or have it checked automatically by their agent.** +**This workflow is the front door to BMad Method. Start here to know what to do next.** diff --git a/src/modules/bmm/workflows/1-analysis/workflow-status/bmm-workflow-status-template.md b/src/modules/bmm/workflows/1-analysis/workflow-status/bmm-workflow-status-template.md deleted file mode 100644 index 97490425..00000000 --- a/src/modules/bmm/workflows/1-analysis/workflow-status/bmm-workflow-status-template.md +++ /dev/null @@ -1,338 +0,0 @@ -# Project Workflow Status - -**Project:** {{project_name}} -**Created:** {{start_date}} -**Last Updated:** {{last_updated}} -**Status File:** `bmm-workflow-status.md` - ---- - -## Workflow Status Tracker - -**Current Phase:** {{current_phase}} -**Current Workflow:** {{current_workflow}} -**Current Agent:** {{current_agent}} -**Overall Progress:** {{progress_percentage}}% - -### Phase Completion Status - -- [ ] **1-Analysis** - Research, brainstorm, brief (optional) -- [ ] **2-Plan** - PRD/GDD/Tech-Spec + Stories/Epics -- [ ] **3-Solutioning** - Architecture + Tech Specs (Level 2+ only) -- [ ] **4-Implementation** - Story development and delivery - -### Planned Workflow Journey - -**This section documents your complete workflow plan from start to finish.** - -| Phase | Step | Agent | Description | Status | -| ----- | ---- | ----- | ----------- | ------ | - -{{#planned_workflow}} -| {{phase}} | {{step}} | {{agent}} | {{description}} | {{status}} | -{{/planned_workflow}} - -**Current Step:** {{current_step}} -**Next Step:** {{next_step}} - -**Instructions:** - -- This plan was created during initial workflow-status setup -- Status values: Planned, Optional, Conditional, In Progress, Complete -- Current/Next steps update as you progress through the workflow -- Use this as your roadmap to know what comes after each phase - -### Implementation Progress (Phase 4 Only) - -**Story Tracking:** {{story_tracking_mode}} - -{{#if in_phase_4}} - -#### BACKLOG (Not Yet Drafted) - -**Ordered story sequence - populated at Phase 4 start:** - -| Epic | Story | ID | Title | File | -| ---- | ----- | --- | ----- | ---- | - -{{#backlog_stories}} -| {{epic_num}} | {{story_num}} | {{story_id}} | {{story_title}} | {{story_file}} | -{{/backlog_stories}} - -**Total in backlog:** {{backlog_count}} stories - -**Instructions:** - -- Stories move from BACKLOG β†’ TODO when previous story is complete -- SM agent uses story information from this table to draft new stories -- Story order is sequential (Epic 1 stories first, then Epic 2, etc.) - -#### TODO (Needs Drafting) - -- **Story ID:** {{todo_story_id}} -- **Story Title:** {{todo_story_title}} -- **Story File:** `{{todo_story_file}}` -- **Status:** Not created OR Draft (needs review) -- **Action:** SM should run `create-story` workflow to draft this story - -**Instructions:** - -- Only ONE story in TODO at a time -- Story stays in TODO until user marks it "ready for development" -- SM reads this section to know which story to draft next -- After SM creates/updates story, user reviews and approves via `story-ready` workflow - -#### IN PROGRESS (Approved for Development) - -- **Story ID:** {{current_story_id}} -- **Story Title:** {{current_story_title}} -- **Story File:** `{{current_story_file}}` -- **Story Status:** Ready | In Review -- **Context File:** `{{current_story_context_file}}` -- **Action:** DEV should run `dev-story` workflow to implement this story - -**Instructions:** - -- Only ONE story in IN PROGRESS at a time -- Story stays here until user marks it "approved" (DoD complete) -- DEV reads this section to know which story to implement -- After DEV completes story, user reviews and runs `story-approved` workflow - -#### DONE (Completed Stories) - -| Story ID | File | Completed Date | Points | -| -------- | ---- | -------------- | ------ | - -{{#done_stories}} -| {{story_id}} | {{story_file}} | {{completed_date}} | {{story_points}} | -{{/done_stories}} - -**Total completed:** {{done_count}} stories -**Total points completed:** {{done_points}} points - -**Instructions:** - -- Stories move here when user runs `story-approved` workflow (DEV agent) -- Immutable record of completed work -- Used for velocity tracking and progress reporting - -#### Epic/Story Summary - -**Total Epics:** {{total_epics}} -**Total Stories:** {{total_stories}} -**Stories in Backlog:** {{backlog_count}} -**Stories in TODO:** {{todo_count}} (should always be 0 or 1) -**Stories in IN PROGRESS:** {{in_progress_count}} (should always be 0 or 1) -**Stories DONE:** {{done_count}} - -**Epic Breakdown:** -{{#epics}} - -- Epic {{epic_number}}: {{epic_title}} ({{epic_done_stories}}/{{epic_total_stories}} stories complete) - {{/epics}} - -#### State Transition Logic - -**Story Lifecycle:** - -``` -BACKLOG β†’ TODO β†’ IN PROGRESS β†’ DONE -``` - -**Transition Rules:** - -1. **BACKLOG β†’ TODO**: Automatically when previous story moves TODO β†’ IN PROGRESS -2. **TODO β†’ IN PROGRESS**: User runs SM agent `story-ready` workflow after reviewing drafted story -3. **IN PROGRESS β†’ DONE**: User runs DEV agent `story-approved` workflow after DoD complete - -**Important:** - -- SM agent NEVER searches for "next story" - always reads TODO section -- DEV agent NEVER searches for "current story" - always reads IN PROGRESS section -- Both agents update this status file after their workflows complete - -{{/if}} - -### Artifacts Generated - -| Artifact | Status | Location | Date | -| -------- | ------ | -------- | ---- | - -{{#artifacts}} -| {{name}} | {{status}} | {{path}} | {{date}} | -{{/artifacts}} - -### Next Action Required - -**What to do next:** {{next_action}} - -**Command to run:** {{next_command}} - -**Agent to load:** {{next_agent}} - ---- - -## Assessment Results - -### Project Classification - -- **Project Type:** {{project_type}} ({{project_type_display_name}}) -- **Project Level:** {{project_level}} -- **Instruction Set:** {{instruction_set}} -- **Greenfield/Brownfield:** {{field_type}} - -### Scope Summary - -- **Brief Description:** {{scope_description}} -- **Estimated Stories:** {{story_count}} -- **Estimated Epics:** {{epic_count}} -- **Timeline:** {{timeline}} - -### Context - -- **Existing Documentation:** {{existing_docs}} -- **Team Size:** {{team_size}} -- **Deployment Intent:** {{deployment_intent}} - -## Recommended Workflow Path - -### Primary Outputs - -{{expected_outputs}} - -### Workflow Sequence - -{{workflow_steps}} - -### Next Actions - -{{next_steps}} - -## Special Considerations - -{{special_notes}} - -## Technical Preferences Captured - -{{technical_preferences}} - -## Story Naming Convention - -### Level 0 (Single Atomic Change) - -- **Format:** `story-.md` -- **Example:** `story-icon-migration.md`, `story-login-fix.md` -- **Location:** `{{dev_story_location}}/` -- **Max Stories:** 1 (if more needed, consider Level 1) - -### Level 1 (Coherent Feature) - -- **Format:** `story--<n>.md` -- **Example:** `story-oauth-integration-1.md`, `story-oauth-integration-2.md` -- **Location:** `{{dev_story_location}}/` -- **Max Stories:** 2-3 (prefer longer stories over more stories) - -### Level 2+ (Multiple Epics) - -- **Format:** `story-<epic>.<story>.md` -- **Example:** `story-1.1.md`, `story-1.2.md`, `story-2.1.md` -- **Location:** `{{dev_story_location}}/` -- **Max Stories:** Per epic breakdown in epics.md - -## Decision Log - -### Planning Decisions Made - -{{#decisions}} - -- **{{decision_date}}**: {{decision_description}} - {{/decisions}} - ---- - -## Change History - -{{#changes}} - -### {{change_date}} - {{change_author}} - -- Phase: {{change_phase}} -- Changes: {{change_description}} - {{/changes}} - ---- - -## Agent Usage Guide - -### For SM (Scrum Master) Agent - -**When to use this file:** - -- Running `create-story` workflow β†’ Read "TODO (Needs Drafting)" section for exact story to draft -- Running `story-ready` workflow β†’ Update status file, move story from TODO β†’ IN PROGRESS, move next story from BACKLOG β†’ TODO -- Checking epic/story progress β†’ Read "Epic/Story Summary" section - -**Key fields to read:** - -- `todo_story_id` β†’ The story ID to draft (e.g., "1.1", "auth-feature-1") -- `todo_story_title` β†’ The story title for drafting -- `todo_story_file` β†’ The exact file path to create - -**Key fields to update:** - -- Move completed TODO story β†’ IN PROGRESS section -- Move next BACKLOG story β†’ TODO section -- Update story counts - -**Workflows:** - -1. `create-story` - Drafts the story in TODO section (user reviews it) -2. `story-ready` - After user approval, moves story TODO β†’ IN PROGRESS - -### For DEV (Developer) Agent - -**When to use this file:** - -- Running `dev-story` workflow β†’ Read "IN PROGRESS (Approved for Development)" section for current story -- Running `story-approved` workflow β†’ Update status file, move story from IN PROGRESS β†’ DONE, move TODO story β†’ IN PROGRESS, move BACKLOG story β†’ TODO -- Checking what to work on β†’ Read "IN PROGRESS" section - -**Key fields to read:** - -- `current_story_file` β†’ The story to implement -- `current_story_context_file` β†’ The context XML for this story -- `current_story_status` β†’ Current status (Ready | In Review) - -**Key fields to update:** - -- Move completed IN PROGRESS story β†’ DONE section with completion date -- Move TODO story β†’ IN PROGRESS section -- Move next BACKLOG story β†’ TODO section -- Update story counts and points - -**Workflows:** - -1. `dev-story` - Implements the story in IN PROGRESS section -2. `story-approved` - After user approval (DoD complete), moves story IN PROGRESS β†’ DONE - -### For PM (Product Manager) Agent - -**When to use this file:** - -- Checking overall progress β†’ Read "Phase Completion Status" -- Planning next phase β†’ Read "Overall Progress" percentage -- Course correction β†’ Read "Decision Log" for context - -**Key fields:** - -- `progress_percentage` β†’ Overall project progress -- `current_phase` β†’ What phase are we in -- `artifacts` table β†’ What's been generated - ---- - -_This file serves as the **single source of truth** for project workflow status, epic/story tracking, and next actions. All BMM agents and workflows reference this document for coordination._ - -_Template Location: `bmad/bmm/workflows/_shared/bmm-workflow-status-template.md`_ - -_File Created: {{start_date}}_ diff --git a/src/modules/bmm/workflows/1-analysis/workflow-status/instructions.md b/src/modules/bmm/workflows/1-analysis/workflow-status/instructions.md index bf8f70ce..af09951d 100644 --- a/src/modules/bmm/workflows/1-analysis/workflow-status/instructions.md +++ b/src/modules/bmm/workflows/1-analysis/workflow-status/instructions.md @@ -1,755 +1,105 @@ -# Workflow Status - Master Router and Status Tracker +# Workflow Status Check <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/1-analysis/workflow-status/workflow.yaml</critical> -<critical>Communicate all responses in {communication_language}</critical> +<critical>This is the UNIVERSAL entry point - any agent can ask "what should I do now?"</critical> <workflow> -<critical>This is the UNIVERSAL ENTRY POINT for all BMM workflows</critical> -<critical>Can be invoked by bmad-master, analyst, or pm agents</critical> -<critical>Checks for existing workflow status and suggests next actions</critical> -<critical>If no status exists, helps user plan their workflow approach</critical> +<step n="1" goal="Check for status file"> +<action>Search {output_folder}/ for file: bmm-workflow-status.md</action> -<step n="1" goal="Check for existing workflow status file"> +<check if="no status file found"> + <output>No workflow status found. To get started: -<action>Search {output_folder}/ for files matching pattern: bmm-workflow-status\*.md</action> -<action>Use glob or list_files to find all matching files</action> +Load analyst agent and run: `workflow-init` -<check if="files found"> - <action>Find the most recent file (by date in filename: bmm-workflow-status.md)</action> - <action>Set status_file_found = true</action> - <action>Set status_file_path = most recent file path</action> - <action>Go to Step 2 (Read existing status)</action> +This will guide you through project setup and create your workflow path.</output> +<action>Exit workflow</action> </check> -<check if="no files found"> - <action>Set status_file_found = false</action> - <action>Go to Step 3 (Initial workflow planning)</action> +<check if="status file found"> + <action>Continue to step 2</action> </check> - </step> -<step n="2" goal="Read and analyze existing workflow status" if="status_file_found == true"> +<step n="2" goal="Read and parse status"> +<action>Read bmm-workflow-status.md</action> +<action>Extract key-value pairs from status file:</action> -<action>Read {status_file_path}</action> +Parse these fields: -<action>Extract key information:</action> +- PROJECT_NAME +- PROJECT_TYPE +- PROJECT_LEVEL +- FIELD_TYPE +- CURRENT_PHASE +- CURRENT_WORKFLOW +- TODO_STORY +- IN_PROGRESS_STORY +- NEXT_ACTION +- NEXT_COMMAND +- NEXT_AGENT + </step> -**Project Context:** +<step n="3" goal="Display current status and options"> +<action>Load workflow path file to check for optional steps</action> +<action>Check if current workflow is in progress or complete</action> -- project_name: From "Project:" field -- start_date: From "Created:" field -- last_updated: From "Last Updated:" field +<output> +## πŸ“Š Current Status -**Current State:** +**Project:** {{PROJECT_NAME}} (Level {{PROJECT_LEVEL}} {{PROJECT_TYPE}}) +**Phase:** {{CURRENT_PHASE}} +**Current Workflow:** {{CURRENT_WORKFLOW}} -- current_phase: From "Current Phase:" field (1-Analysis, 2-Plan, 3-Solutioning, 4-Implementation) -- current_workflow: From "Current Workflow:" field -- progress_percentage: From "Overall Progress:" field -- project_level: From "Project Level:" field (0, 1, 2, 3, or 4) -- project_type: From "Project Type:" field -- field_type: From "Greenfield/Brownfield:" field +{{#if CURRENT_PHASE == "4-Implementation"}} +**Development Queue:** -**Phase Completion:** - -- phase_1_complete: Check if "1-Analysis" checkbox is checked -- phase_2_complete: Check if "2-Plan" checkbox is checked -- phase_3_complete: Check if "3-Solutioning" checkbox is checked -- phase_4_complete: Check if "4-Implementation" checkbox is checked - -**Implementation Progress (if Phase 4):** - -- Read "### Implementation Progress (Phase 4 Only)" section -- Extract TODO story (if exists) -- Extract IN PROGRESS story (if exists) -- Extract BACKLOG count -- Extract DONE count - -**Next Action:** - -- next_action: From "What to do next:" field -- next_command: From "Command to run:" field -- next_agent: From "Agent to load:" field - -<action>Analyze the current state to determine recommendation</action> - -</step> - -<step n="2.5" goal="Display current workflow status and suggest next action" if="status_file_found == true"> - -<action>Display comprehensive status summary</action> - -**πŸ“Š Current Workflow Status** - -**Project:** {{project_name}} -**Started:** {{start_date}} -**Last Updated:** {{last_updated}} - -**Current Phase:** {{current_phase}} ({{progress_percentage}}% complete) -**Current Workflow:** {{current_workflow}} - -**Phase Completion:** - -- [{{phase_1_complete ? 'x' : ' '}}] Phase 1: Analysis -- [{{phase_2_complete ? 'x' : ' '}}] Phase 2: Planning -- [{{phase_3_complete ? 'x' : ' '}}] Phase 3: Solutioning ({{project_level < 3 ? 'skipped for Level ' + project_level : 'required'}}) -- [{{phase_4_complete ? 'x' : ' '}}] Phase 4: Implementation - -**Project Details:** - -- **Level:** {{project_level}} ({{get_level_description(project_level)}}) -- **Type:** {{project_type}} -- **Context:** {{field_type}} - -{{#if current_phase == '4-Implementation'}} -**Implementation Progress:** - -- **BACKLOG:** {{backlog_count}} stories -- **TODO:** {{todo_story_id}} ({{todo_story_status}}) -- **IN PROGRESS:** {{current_story_id}} ({{current_story_status}}) -- **DONE:** {{done_count}} stories ({{done_points}} points) +- TODO: {{TODO_STORY}} - {{TODO_TITLE}} +- IN PROGRESS: {{IN_PROGRESS_STORY}} - {{IN_PROGRESS_TITLE}} {{/if}} ---- +## 🎯 Your Options -**🎯 Recommended Next Action:** +{{#if CURRENT_WORKFLOW != "complete"}} +**Continue in progress:** -{{next_action}} +- {{CURRENT_WORKFLOW}} ({{CURRENT_AGENT}} agent) + {{/if}} -**Command:** {{next_command}} -**Agent:** {{next_agent}} +**Next required step:** -<ask>Would you like to: +- Command: `{{NEXT_COMMAND}}` +- Agent: {{NEXT_AGENT}} -1. **Proceed with recommended action** ({{next_command}}) -2. **View detailed status** (show full status file) -3. **Change workflow** (modify current workflow or start new phase) -4. **Display agent menu** (see all available options) -5. **Exit** (return to agent) +{{#if optional_workflows_available}} +**Optional workflows available:** +{{#each optional_workflows}} -Select option (1-5):</ask> +- {{workflow_name}} ({{agent}}) + {{/each}} + {{/if}} + </output> + </step> -<check if='option == "1"'> - <action>Suggest loading the recommended agent and running the command</action> - <output>**To proceed:** +<step n="4" goal="Offer actions"> +<ask>What would you like to do? -Load agent: `{{next_agent}}` -Run command: `{{next_command}}` +{{#if CURRENT_WORKFLOW != "complete"}} -Or tell me: "load {{next_agent}} and {{next_command}}" -</output> -</check> - -<check if='option == "2"'> - <action>Display full status file contents</action> - <action>Return to menu</action> -</check> - -<check if='option == "3"'> - <action>Go to Step 4 (Change workflow)</action> -</check> - -<check if='option == "4"'> - <action>Go to Step 5 (Display agent menu)</action> -</check> - -<check if='option == "5"'> - <action>Exit workflow</action> -</check> - -</step> - -<step n="3" goal="Initial workflow planning - no status file exists" if="status_file_found == false"> - -<action>Display welcome message in {communication_language}</action> - -**πŸš€ Welcome to BMad Method Workflows, {user_name}!** - -No workflow status file found. Let's plan your complete workflow journey. - -<critical>This step will map out your ENTIRE workflow before executing anything</critical> -<critical>Goal: Document planned phases, current step, and next step in status file</critical> - -<ask>**Step 1: Project Context** - -**Is this a new or existing codebase?** -a. **Greenfield** - Starting from scratch -b. **Brownfield** - Adding to existing codebase - -Your choice (a/b):</ask> - -<action>Capture field_type = "greenfield" or "brownfield"</action> - -<check if='field_type == "brownfield"'> - <ask>**Step 2: Brownfield Documentation Status** - -Do you have: - -- Architecture documentation? -- Code structure overview? -- API documentation? -- Clear understanding of existing patterns? - -Options: -a. **Yes** - I have good documentation -b. **No** - Codebase is undocumented or poorly documented -c. **Partial** - Some docs exist but incomplete - -Your choice (a/b/c):</ask> - -<action>Capture brownfield_docs_status</action> - - <check if='brownfield_docs_status == "b" OR brownfield_docs_status == "c"'> - <output>**⚠️ Documentation Needed** - -For accurate planning, brownfield projects benefit from codebase documentation. -We'll add `document-project` to your planned workflow. -</output> -<action>Set needs_documentation = true</action> -</check> - - <check if='brownfield_docs_status == "a"'> - <action>Set needs_documentation = false</action> - </check> -</check> - -<check if='field_type == "greenfield"'> - <action>Set needs_documentation = false</action> -</check> - -<ask>**Step 3: Project Type** - -What type of project are you building? - -1. **Game** - Video games for PC, console, mobile, or web -2. **Web Application** - Websites, web apps, SPAs -3. **Mobile Application** - iOS, Android apps -4. **Desktop Application** - Windows, macOS, Linux apps -5. **Backend/API Service** - Backend services, APIs, microservices -6. **Library/SDK** - Reusable libraries, packages, SDKs -7. **CLI Tool** - Command-line tools and utilities -8. **Embedded System** - IoT, firmware, embedded devices -9. **Data/ML/Analytics** - Data pipelines, ML projects, analytics -10. **Browser Extension** - Chrome, Firefox extensions -11. **Infrastructure/DevOps** - Terraform, K8s operators, CI/CD -12. **Other** - Describe your project type - -Your choice (1-12):</ask> - -<action>Capture project_type_choice</action> - -<action>Map choice to project_type_id using project-types.csv:</action> - -- 1 β†’ game -- 2 β†’ web -- 3 β†’ mobile -- 4 β†’ desktop -- 5 β†’ backend -- 6 β†’ library -- 7 β†’ cli -- 8 β†’ embedded -- 9 β†’ data -- 10 β†’ extension -- 11 β†’ infra -- 12 β†’ custom (capture description) - -<action>Set project_type = mapped project_type_id</action> - -<ask>**Step 4: User Interface Components** - -Does your project involve user-facing UI components? - -a. **Yes** - Project has user interface elements (web pages, mobile screens, desktop UI, game UI) -b. **No** - Backend-only, API, CLI, or no visual interface - -Your choice (a/b):</ask> - -<action>Capture has_ui_components</action> - -<check if='has_ui_components == "a"'> - <action>Set needs_ux_workflow = true</action> - <output>**βœ… UX Workflow Detected** - -Since your project has UI components, we'll include the UX specification workflow in Phase 2. -This ensures proper UX/UI design happens between PRD and architecture/implementation. -</output> -</check> - -<check if='has_ui_components == "b"'> - <action>Set needs_ux_workflow = false</action> -</check> - -<output>**Step 5: Understanding Your Workflow** - -Before we plan your workflow, let's determine the scope and complexity of your project. - -The BMad Method uses 5 project levels (0-4) that determine which phases you'll need: - -- **Level 0:** Single atomic change (1 story) - Phases 2 β†’ 4 -- **Level 1:** Small feature (2-3 stories, 1 epic) - Phases 2 β†’ 4 -- **Level 2:** Medium project (multiple epics) - Phases 2 β†’ 4 -- **Level 3:** Complex system (subsystems, integrations) - Phases 2 β†’ 3 β†’ 4 -- **Level 4:** Enterprise scale (multiple products) - Phases 2 β†’ 3 β†’ 4 - -**Optional Phase 1 (Analysis):** Brainstorming, research, and brief creation can precede any level. -</output> - -<ask>**Step 6: Project Scope Assessment** - -Do you already know your project's approximate size/scope? - -a. **Yes** - I can describe the general scope -b. **No** - Not sure yet, need help determining it -c. **Want analysis first** - Do brainstorming/research before deciding - -Your choice (a/b/c):</ask> - -<action>Capture scope_knowledge</action> - -<check if='scope_knowledge == "a"'> - <ask>**Based on the descriptions above, what level best describes your project?** - -0. Single atomic change (bug fix, tiny feature) -1. Small coherent feature (2-3 stories) -2. Medium project (multiple features/epics) -3. Complex system (subsystems, architectural decisions) -4. Enterprise scale (multiple products/systems) - -Your estimated level (0-4):</ask> - -<action>Capture estimated_level</action> -<action>Set level_known = true</action> -</check> - -<check if='scope_knowledge == "b" OR scope_knowledge == "c"'> - <output>**Level determination deferred** - -{{#if scope_knowledge == "b"}} -No problem! The `plan-project` workflow will help you determine the project level through guided questions. -{{/if}} - -{{#if scope_knowledge == "c"}} -Great! Analysis workflows will help clarify scope before determining the level. -{{/if}} - -We'll determine your project level during Phase 2 (Planning). -</output> -<action>Set level_known = false</action> -<action>Set estimated_level = "TBD"</action> -</check> - -<ask>**Step 7: Choose Your Starting Point** - -Now let's determine where you want to begin: - -**Option A: Full Analysis Phase First** - -- Brainstorming (explore ideas, validate concepts) -- Research (market, technical, competitive analysis) -- Product/Game Brief (strategic foundation) - β†’ Best for: New ideas, uncertain requirements, need validation - -**Option B: Skip to Planning** - -- You know what to build -- Jump to PRD/GDD/Tech-Spec generation - β†’ Best for: Clear requirements, existing ideas - -**Option C: Just Show Menu** - -- Create status file with planned workflow -- I'll manually choose which workflow to run first - β†’ Best for: Experienced users, custom paths - -Your choice (A/B/C):</ask> - -<action>Capture starting_point</action> - -<check if='starting_point == "A"'> - <ask>**Full Analysis - Choose your first workflow:** - -1. **brainstorm-project** (Analyst) - Explore software solution ideas -2. **brainstorm-game** (Game Designer) - Game concept ideation -3. **research** (Analyst) - Market/technical research -4. **product-brief** (Analyst) - Strategic product foundation -5. **game-brief** (Game Designer) - Game design foundation - -Which workflow? (1-5):</ask> - -<action>Capture first_workflow</action> -<action>Set include_analysis = true</action> -</check> - -<check if='starting_point == "B"'> - <action>Set include_analysis = false</action> - <action>Set first_workflow = "plan-project"</action> -</check> - -<check if='starting_point == "C"'> - <action>Set include_analysis = false</action> - <action>Set first_workflow = "user-choice"</action> -</check> - -<action>Now build the complete planned workflow</action> - -<output>**πŸ—ΊοΈ Your Planned Workflow** - -Based on your responses, here's your complete workflow journey: -</output> - -<action>Build planned_workflow array with all phases in order:</action> - -<check if='needs_documentation == true'> - <action>Add to planned_workflow:</action> - - Phase: "1-Analysis" - - Step: "document-project" - - Agent: "Analyst" - - Description: "Generate brownfield codebase documentation" - - Status: "Planned" -</check> - -<check if='include_analysis == true'> - <action>Add analysis workflows to planned_workflow based on first_workflow choice</action> - -{{#if first_workflow == "brainstorm-project"}} - Phase: "1-Analysis", Step: "brainstorm-project", Agent: "Analyst", Status: "Planned" - Phase: "1-Analysis", Step: "research (optional)", Agent: "Analyst", Status: "Optional" - Phase: "1-Analysis", Step: "product-brief", Agent: "Analyst", Status: "Planned" -{{/if}} - -{{#if first_workflow == "brainstorm-game"}} - Phase: "1-Analysis", Step: "brainstorm-game", Agent: "Game Designer", Status: "Planned" - Phase: "1-Analysis", Step: "research (optional)", Agent: "Analyst", Status: "Optional" - Phase: "1-Analysis", Step: "game-brief", Agent: "Game Designer", Status: "Planned" -{{/if}} - -{{#if first_workflow == "research"}} - Phase: "1-Analysis", Step: "research", Agent: "Analyst", Status: "Planned" - Phase: "1-Analysis", Step: "product-brief or game-brief", Agent: "Analyst/Game Designer", Status: "Planned" -{{/if}} - -{{#if first_workflow == "product-brief"}} - Phase: "1-Analysis", Step: "product-brief", Agent: "Analyst", Status: "Planned" -{{/if}} - -{{#if first_workflow == "game-brief"}} - Phase: "1-Analysis", Step: "game-brief", Agent: "Game Designer", Status: "Planned" -{{/if}} -</check> - -<action>Always add Phase 2 (required for all levels) - route based on project type and level</action> - -<check if='project_type == "game"'> - <action>Add game planning workflow</action> - - Phase: "2-Plan" - - Step: "gdd" - - Agent: "PM" - - Description: "Create Game Design Document" - - Status: "Planned" -</check> - -<check if='project_type != "game"'> - <check if='level_known == true AND estimated_level <= 1'> - <action>Add tech-spec workflow (Levels 0-1)</action> - - Phase: "2-Plan" - - Step: "tech-spec" - - Agent: "Architect" - - Description: "Create technical specification and stories" - - Status: "Planned" - </check> - - <check if='level_known == true AND estimated_level >= 2'> - <action>Add PRD workflow (Levels 2-4)</action> - - Phase: "2-Plan" - - Step: "prd" - - Agent: "PM" - - Description: "Create Product Requirements Document and epics" - - Status: "Planned" - </check> - - <check if='level_known == false OR estimated_level == "TBD"'> - <action>Add conditional planning note</action> - - Phase: "2-Plan" - - Step: "TBD - Level 0-1 β†’ tech-spec, Level 2-4 β†’ prd" - - Agent: "PM or Architect" - - Description: "Workflow determined after level assessment" - - Status: "Conditional" - </check> -</check> - -<check if='needs_ux_workflow == true'> - <action>Add UX workflow to Phase 2 planning (runs after PRD, before Phase 3)</action> - - Phase: "2-Plan" - - Step: "ux-spec" - - Agent: "PM" - - Description: "UX/UI specification (user flows, wireframes, components)" - - Status: "Planned" - - Note: "Required for projects with UI components" -</check> - -<check if='level_known == true AND estimated_level >= 3'> - <action>Add Phase 3 (required for Level 3-4)</action> - - Phase: "3-Solutioning" - - Step: "solution-architecture" - - Agent: "Architect" - - Description: "Design overall architecture" - - Status: "Planned" - -- Phase: "3-Solutioning" -- Step: "tech-spec (per epic, JIT)" -- Agent: "Architect" -- Description: "Epic-specific technical specs" -- Status: "Planned" - </check> - -<check if='level_known == false OR estimated_level == "TBD"'> - <action>Add conditional Phase 3 note</action> - - Phase: "3-Solutioning" - - Step: "TBD - depends on level from Phase 2" - - Agent: "Architect" - - Description: "Required if Level 3-4, skipped if Level 0-2" - - Status: "Conditional" -</check> - -<action>Always add Phase 4 (implementation)</action> - -- Phase: "4-Implementation" -- Step: "create-story (iterative)" -- Agent: "SM" -- Description: "Draft stories from backlog" -- Status: "Planned" - -- Phase: "4-Implementation" -- Step: "story-ready" -- Agent: "SM" -- Description: "Approve story for dev" -- Status: "Planned" - -- Phase: "4-Implementation" -- Step: "story-context" -- Agent: "SM" -- Description: "Generate context XML" -- Status: "Planned" - -- Phase: "4-Implementation" -- Step: "dev-story (iterative)" -- Agent: "DEV" -- Description: "Implement stories" -- Status: "Planned" - -- Phase: "4-Implementation" -- Step: "story-approved" -- Agent: "DEV" -- Description: "Mark complete, advance queue" -- Status: "Planned" - -<action>Display the complete planned workflow</action> - -<output>**πŸ“‹ Your Complete Planned Workflow:** - -{{#each planned_workflow}} -**{{phase}}** - {{step}} - -- Agent: {{agent}} -- Description: {{description}} -- Status: {{status}} - -{{/each}} - ---- - -**Current Step:** Workflow Definition Phase (this workflow) -**Next Step:** {{planned_workflow[0].step}} ({{planned_workflow[0].agent}} agent) -</output> - -<ask>**Ready to create your workflow status file?** - -This will create: `bmm-workflow-status.md` - -The status file will document: - -- Your complete planned workflow (phases and steps) -- Current phase: "Workflow Definition" -- Next action: {{planned_workflow[0].step}} - -Create status file? (y/n)</ask> - -<check if='confirm == "y"'> - <action>Create bmm-workflow-status.md file</action> - <action>Set current_phase = "Workflow Definition"</action> - <action>Set next_action = planned_workflow[0].step</action> - <action>Set next_agent = planned_workflow[0].agent</action> - <action>Include complete planned_workflow in status file</action> - -<output>**βœ… Status file created, {user_name}!** - -File: `bmm-workflow-status.md` - -**To proceed with your first step:** - -{{#if needs_documentation == true AND planned_workflow[0].step == "document-project"}} -Load Analyst: `bmad analyst document-project` - -After documentation is complete, return to check status: `bmad analyst workflow-status` -{{/if}} - -{{#if planned_workflow[0].step != "document-project" AND planned_workflow[0].step != "user-choice"}} -{{#if planned_workflow[0].step == "gdd"}} -Load PM: `bmad pm gdd` -{{else if planned_workflow[0].step == "tech-spec"}} -Load Architect: `bmad architect tech-spec` -{{else if planned_workflow[0].step == "prd"}} -Load PM: `bmad pm prd` -{{else}} -Load {{planned_workflow[0].agent}}: `bmad {{lowercase planned_workflow[0].agent}} {{planned_workflow[0].step}}` -{{/if}} -{{/if}} - -{{#if planned_workflow[0].step == "user-choice"}} -Your status file is ready! Run `workflow-status` anytime to see recommendations. - -Choose any workflow from the menu to begin. -{{/if}} - -You can always check your status with: `workflow-status` -</output> -</check> - -<check if='confirm == "n"'> - <action>Go to Step 5 (Display agent menu)</action> -</check> - -</step> - -<step n="4" goal="Change workflow or start new phase" optional="true"> - -<ask>**Change Workflow Options:** - -1. **Start new workflow** (will archive current status, create new dated file) -2. **Jump to different phase** (manual phase override) -3. **Modify current workflow** (change current_workflow field) -4. **View phase options** (see what's available for current level) -5. **Cancel** (return to status display) - -Your choice (1-5):</ask> - -<action>Handle workflow change based on choice</action> - -<check if='choice == "1"'> - <ask>**Start New Workflow** - -This will: - -- Archive current status: `bmm-workflow-status.md` β†’ `archive/` -- Create new status: `bmm-workflow-status.md` -- Start fresh assessment - -Continue? (y/n)</ask> - - <check if="confirm == 'y'"> - <output>**To start new workflow:** - -Run: `bmad analyst workflow-status` - -This will guide you through fresh workflow assessment and create a new status file. -</output> -</check> -</check> - -<check if='choice == "2"'> - <ask>**Jump to Phase:** - -Current phase: {{current_phase}} - -Available phases: - -1. Phase 1: Analysis -2. Phase 2: Planning -3. Phase 3: Solutioning ({{project_level >= 3 ? 'required for your level' : 'skipped for Level ' + project_level}}) -4. Phase 4: Implementation - -Which phase? (1-4)</ask> - -<action>Provide guidance for jumping to selected phase</action> -</check> - -</step> - -<step n="5" goal="Display agent menu"> - -<action>Display comprehensive agent menu based on current context</action> - -**πŸ“‹ BMad Method Agent Menu** - -{{#if status_file_found}} -**Current Phase:** {{current_phase}} -{{/if}} - -**Available Workflows by Phase:** - -**Phase 1: Analysis (Optional)** - -- `brainstorm-project` - Software solution exploration -- `brainstorm-game` - Game concept ideation -- `research` - Market/technical research -- `product-brief` - Strategic product foundation -- `game-brief` - Game design foundation - -**Phase 2: Planning (Required)** - -- `prd` - Product Requirements Document (Level 2-4 software projects) -- `tech-spec` - Technical specification (Level 0-1 software projects) -- `gdd` - Game Design Document (game projects) -- `ux-spec` - UX/UI specification (for projects with UI components) - -**Phase 3: Solutioning (Level 3-4 Only)** - -- `solution-architecture` - Overall architecture design -- `tech-spec` - Epic-specific technical specs (JIT) - -**Phase 4: Implementation (Iterative)** - -- `create-story` - Draft story from TODO -- `story-ready` - Approve story for development -- `story-context` - Generate context XML -- `dev-story` - Implement story -- `story-approved` - Mark story done -- `review-story` - Quality validation -- `correct-course` - Handle issues -- `retrospective` - Epic learnings - -**Utility Workflows:** - -- `workflow-status` - Check status and get recommendations (you are here!) - -{{#if status_file_found}} - -**🎯 Recommended for Your Current Phase ({{current_phase}}):** - -{{#if current_phase == '1-Analysis'}} -Continue analysis or move to Phase 2 Planning (prd/tech-spec/gdd based on your project) -{{/if}} - -{{#if current_phase == '2-Plan'}} -{{#if project_level < 2}} -Ready for Phase 4! Run `create-story` (SM agent) -{{else if project_level == 2}} -Run `tech-spec` workflow for lightweight technical planning, then Phase 4 -{{else}} -Ready for Phase 3! Run `solution-architecture` (Architect agent) -{{/if}} -{{/if}} - -{{#if current_phase == '3-Solutioning'}} -Continue with tech-specs or move to Phase 4 `create-story` -{{/if}} - -{{#if current_phase == '4-Implementation'}} -**Current Story:** {{todo_story_id || current_story_id || 'Check status file'}} -**Next Action:** {{next_command}} -{{/if}} - -{{/if}} - -<ask>Would you like to: - -1. Run a specific workflow (tell me which one) -2. Return to status display -3. Exit +1. **Continue current** - Resume {{CURRENT_WORKFLOW}} + {{/if}} +2. **Next required** - {{NEXT_COMMAND}} + {{#if optional_workflows_available}} +3. **Optional workflow** - Choose from available options + {{/if}} +4. **View full status** - See complete status file +5. **Exit** - Return to agent Your choice:</ask> +<action>Handle user selection based on available options</action> </step> </workflow> diff --git a/src/modules/bmm/workflows/1-analysis/workflow-status/paths/brownfield-level-0.yaml b/src/modules/bmm/workflows/1-analysis/workflow-status/paths/brownfield-level-0.yaml new file mode 100644 index 00000000..00dfb69a --- /dev/null +++ b/src/modules/bmm/workflows/1-analysis/workflow-status/paths/brownfield-level-0.yaml @@ -0,0 +1,69 @@ +# 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: + - phase: 0 + name: "Documentation" + conditional: "if_undocumented" + workflows: + - id: "document-project" + required: true + agent: "analyst" + command: "document-project" + output: "Codebase documentation" + + - 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: "create-story" + required: true + agent: "sm" + command: "create-story" + - id: "story-context" + required: true + agent: "sm" + command: "story-context" + note: "Include existing code context" + - id: "dev-story" + required: true + agent: "dev" + command: "dev-story" + - id: "story-approved" + required: true + agent: "dev" + command: "story-approved" + +story_naming: "story-<short-title>.md" +story_example: "story-fix-auth-bug.md" +max_stories: 1 +brownfield_note: "Ensure changes align with existing patterns" diff --git a/src/modules/bmm/workflows/1-analysis/workflow-status/paths/brownfield-level-3.yaml b/src/modules/bmm/workflows/1-analysis/workflow-status/paths/brownfield-level-3.yaml new file mode 100644 index 00000000..384c64d9 --- /dev/null +++ b/src/modules/bmm/workflows/1-analysis/workflow-status/paths/brownfield-level-3.yaml @@ -0,0 +1,135 @@ +# 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: + - phase: 0 + name: "Documentation" + conditional: "if_undocumented" + workflows: + - id: "document-project" + required: true + agent: "analyst" + command: "document-project" + output: "Comprehensive codebase documentation" + + - 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: "ux-spec" + conditional: "if_has_ui" + agent: "pm" + command: "ux-spec" + 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: "solution-architecture" + required: true + agent: "architect" + command: "solution-architecture" + note: "Extension of existing architecture" + - id: "assess-project-ready" + required: true + agent: "sm" + command: "assess-project-ready" + + - phase: 4 + name: "Implementation" + required: true + epic_loop: "for_each_epic" + epic_workflows: + - id: "tech-spec" + required: true + agent: "architect" + command: "tech-spec" + note: "Must respect existing patterns" + story_loop: "for_each_story_in_epic" + story_workflows: + - id: "create-story" + required: true + agent: "sm" + command: "create-story" + - id: "story-context" + required: true + agent: "sm" + command: "story-context" + note: "Heavy emphasis on existing code context" + - id: "validate-story-context" + required: true + agent: "sm" + command: "validate-story-context" + note: "Ensure no breaking changes" + - id: "story-ready" + recommended: true + agent: "sm" + command: "story-ready" + - id: "dev-story" + required: true + agent: "dev" + command: "dev-story" + - id: "review-story" + required: true + agent: "dev" + command: "review-story" + note: "Check integration points" + - id: "correct-course" + conditional: "if_review_fails" + agent: "dev" + command: "correct-course" + - id: "story-approved" + required: true + agent: "dev" + command: "story-approved" + epic_completion: + - id: "integration-test" + required: true + agent: "dev" + command: "integration-test" + - id: "retrospective" + required: true + agent: "pm" + command: "retrospective" + +story_naming: "story-<epic>.<story>.md" +brownfield_note: "All changes must integrate seamlessly with existing system" diff --git a/src/modules/bmm/workflows/1-analysis/workflow-status/paths/game-design.yaml b/src/modules/bmm/workflows/1-analysis/workflow-status/paths/game-design.yaml new file mode 100644 index 00000000..66d9da6b --- /dev/null +++ b/src/modules/bmm/workflows/1-analysis/workflow-status/paths/game-design.yaml @@ -0,0 +1,125 @@ +# 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: "solution-architecture" + required: true + agent: "architect" + command: "solution-architecture" + note: "Engine architecture, networking, systems" + - id: "assess-project-ready" + required: true + agent: "sm" + command: "assess-project-ready" + + - phase: 4 + name: "Implementation" + required: true + note: "Implementation varies by game complexity" + level_based_implementation: + level_0_1: + story_loop: "for_each_story" + workflows: + - id: "create-story" + required: true + agent: "sm" + - id: "story-context" + required: true + agent: "sm" + - id: "dev-story" + required: true + agent: "dev" + - id: "story-approved" + required: true + agent: "dev" + level_2_4: + feature_loop: "for_each_feature" + feature_workflows: + - id: "tech-spec" + optional: true + agent: "architect" + note: "Per major feature" + story_loop: "for_each_story_in_feature" + story_workflows: + - id: "create-story" + required: true + agent: "sm" + - id: "story-context" + required: true + agent: "sm" + - id: "validate-story-context" + optional: true + agent: "sm" + - id: "dev-story" + required: true + agent: "dev" + - id: "review-story" + recommended: true + agent: "dev" + - id: "story-approved" + required: true + agent: "dev" + feature_completion: + - id: "playtest" + required: true + agent: "game-designer" + command: "playtest" + - id: "retrospective" + optional: true + agent: "pm" + +story_naming: + level_0_1: "story-<feature>.md" + level_2_4: "story-<feature>.<n>.md" +story_examples: + - "story-player-movement.md" + - "story-inventory-1.md" + - "story-combat-system-3.md" + +special_considerations: + - "Iterative playtesting throughout development" + - "Art and audio pipelines run parallel to code" + - "Balance and tuning as ongoing process" diff --git a/src/modules/bmm/workflows/1-analysis/workflow-status/paths/greenfield-level-0.yaml b/src/modules/bmm/workflows/1-analysis/workflow-status/paths/greenfield-level-0.yaml new file mode 100644 index 00000000..fd49ccf6 --- /dev/null +++ b/src/modules/bmm/workflows/1-analysis/workflow-status/paths/greenfield-level-0.yaml @@ -0,0 +1,60 @@ +# 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: "architect" + command: "tech-spec" + output: "Creates single story file" + + - phase: 3 + name: "Solutioning" + skip: true + + - phase: 4 + name: "Implementation" + required: true + workflows: + - id: "create-story" + required: true + agent: "sm" + command: "create-story" + - id: "story-context" + required: true + agent: "sm" + command: "story-context" + - id: "dev-story" + required: true + agent: "dev" + command: "dev-story" + - id: "story-approved" + required: true + agent: "dev" + command: "story-approved" + +story_naming: "story-<short-title>.md" +story_example: "story-fix-login.md" +max_stories: 1 diff --git a/src/modules/bmm/workflows/1-analysis/workflow-status/paths/greenfield-level-1.yaml b/src/modules/bmm/workflows/1-analysis/workflow-status/paths/greenfield-level-1.yaml new file mode 100644 index 00000000..756b2be3 --- /dev/null +++ b/src/modules/bmm/workflows/1-analysis/workflow-status/paths/greenfield-level-1.yaml @@ -0,0 +1,73 @@ +# 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: "architect" + command: "tech-spec" + output: "Creates 2-3 story files" + + - phase: 3 + name: "Solutioning" + skip: true + + - phase: 4 + name: "Implementation" + required: true + loop_type: "for_each_story" + workflows: + - id: "create-story" + required: true + agent: "sm" + command: "create-story" + - id: "story-context" + required: true + agent: "sm" + command: "story-context" + - id: "story-ready" + optional: true + agent: "sm" + command: "story-ready" + - id: "dev-story" + required: true + agent: "dev" + command: "dev-story" + - id: "review-story" + optional: true + agent: "dev" + command: "review-story" + - id: "story-approved" + required: true + agent: "dev" + command: "story-approved" + +story_naming: "story-<title>-<n>.md" +story_example: "story-oauth-integration-1.md" +max_stories: 3 diff --git a/src/modules/bmm/workflows/1-analysis/workflow-status/paths/greenfield-level-2.yaml b/src/modules/bmm/workflows/1-analysis/workflow-status/paths/greenfield-level-2.yaml new file mode 100644 index 00000000..f0923837 --- /dev/null +++ b/src/modules/bmm/workflows/1-analysis/workflow-status/paths/greenfield-level-2.yaml @@ -0,0 +1,93 @@ +# 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 epics.md and story list" + - id: "ux-spec" + conditional: "if_has_ui" + agent: "pm" + command: "ux-spec" + - id: "tech-spec" + optional: true + agent: "architect" + command: "tech-spec" + note: "Lightweight technical planning" + + - phase: 3 + name: "Solutioning" + skip: true + + - phase: 4 + name: "Implementation" + required: true + loop_type: "for_each_story" + workflows: + - id: "create-story" + required: true + agent: "sm" + command: "create-story" + - id: "story-context" + required: true + agent: "sm" + command: "story-context" + - id: "validate-story-context" + optional: true + agent: "sm" + command: "validate-story-context" + - id: "story-ready" + optional: true + agent: "sm" + command: "story-ready" + - id: "dev-story" + required: true + agent: "dev" + command: "dev-story" + - id: "review-story" + optional: true + agent: "dev" + command: "review-story" + - id: "story-approved" + required: true + agent: "dev" + command: "story-approved" + epic_completion: + - id: "retrospective" + optional: true + agent: "pm" + command: "retrospective" + note: "After each epic completes" + +story_naming: "story-<epic>.<story>.md" +story_example: "story-1.1.md, story-2.3.md" +epic_structure: "Numbered epics with numbered stories" diff --git a/src/modules/bmm/workflows/1-analysis/workflow-status/paths/greenfield-level-3.yaml b/src/modules/bmm/workflows/1-analysis/workflow-status/paths/greenfield-level-3.yaml new file mode 100644 index 00000000..0cdc96ed --- /dev/null +++ b/src/modules/bmm/workflows/1-analysis/workflow-status/paths/greenfield-level-3.yaml @@ -0,0 +1,109 @@ +# 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: "ux-spec" + conditional: "if_has_ui" + agent: "pm" + command: "ux-spec" + + - phase: 3 + name: "Solutioning" + required: true + workflows: + - id: "solution-architecture" + required: true + agent: "architect" + command: "solution-architecture" + output: "System-wide architecture document" + - id: "assess-project-ready" + required: true + agent: "sm" + command: "assess-project-ready" + note: "Validate architecture before implementation" + + - phase: 4 + name: "Implementation" + required: true + epic_loop: "for_each_epic" + epic_workflows: + - id: "tech-spec" + required: true + agent: "architect" + command: "tech-spec" + note: "JIT per epic - creates stories for that epic" + story_loop: "for_each_story_in_epic" + story_workflows: + - id: "create-story" + required: true + agent: "sm" + command: "create-story" + - id: "story-context" + required: true + agent: "sm" + command: "story-context" + - id: "validate-story-context" + recommended: true + agent: "sm" + command: "validate-story-context" + - id: "story-ready" + optional: true + agent: "sm" + command: "story-ready" + - id: "dev-story" + required: true + agent: "dev" + command: "dev-story" + - id: "review-story" + recommended: true + agent: "dev" + command: "review-story" + - id: "correct-course" + conditional: "if_review_fails" + agent: "dev" + command: "correct-course" + - id: "story-approved" + required: true + agent: "dev" + command: "story-approved" + epic_completion: + - id: "retrospective" + recommended: true + agent: "pm" + command: "retrospective" + +story_naming: "story-<epic>.<story>.md" +story_example: "story-1.1.md, story-2.3.md" +epic_structure: "JIT tech-specs per epic create stories" diff --git a/src/modules/bmm/workflows/1-analysis/workflow-status/project-levels.yaml b/src/modules/bmm/workflows/1-analysis/workflow-status/project-levels.yaml new file mode 100644 index 00000000..93728635 --- /dev/null +++ b/src/modules/bmm/workflows/1-analysis/workflow-status/project-levels.yaml @@ -0,0 +1,59 @@ +# BMM Project Scale Levels - Source of Truth +# Reference: /src/modules/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 + solution architecture + JIT tech specs" + architecture: true + + 4: + name: "Level 4" + title: "Enterprise Scale" + stories: "40+ stories" + description: "Multiple products, enterprise architecture" + documentation: "Full suite - PRD, architecture, product 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] diff --git a/src/modules/bmm/workflows/1-analysis/workflow-status/workflow-status-template.md b/src/modules/bmm/workflows/1-analysis/workflow-status/workflow-status-template.md new file mode 100644 index 00000000..15bc4c61 --- /dev/null +++ b/src/modules/bmm/workflows/1-analysis/workflow-status/workflow-status-template.md @@ -0,0 +1,55 @@ +# BMM Workflow Status + +## Project Configuration + +PROJECT_NAME: {{project_name}} +PROJECT_TYPE: {{project_type}} +PROJECT_LEVEL: {{project_level}} +FIELD_TYPE: {{field_type}} +START_DATE: {{start_date}} +WORKFLOW_PATH: {{workflow_path_file}} + +## Current State + +CURRENT_PHASE: {{current_phase}} +CURRENT_WORKFLOW: {{current_workflow}} +CURRENT_AGENT: {{current_agent}} +PHASE_1_COMPLETE: {{phase_1_complete}} +PHASE_2_COMPLETE: {{phase_2_complete}} +PHASE_3_COMPLETE: {{phase_3_complete}} +PHASE_4_COMPLETE: {{phase_4_complete}} + +## Development Queue + +TODO_STORY: {{todo_story}} +TODO_TITLE: {{todo_title}} +IN_PROGRESS_STORY: {{in_progress_story}} +IN_PROGRESS_TITLE: {{in_progress_title}} +BACKLOG_COUNT: {{backlog_count}} +DONE_COUNT: {{done_count}} +TOTAL_STORIES: {{total_stories}} + +## Next Action + +NEXT_ACTION: {{next_action}} +NEXT_COMMAND: {{next_command}} +NEXT_AGENT: {{next_agent}} + +## Story Backlog + +{{#backlog_stories}} + +- {{story_id}}: {{story_title}} + {{/backlog_stories}} + +## Completed Stories + +{{#done_stories}} + +- {{story_id}}: {{completed_date}} + {{/done_stories}} + +--- + +_Last Updated: {{last_updated}}_ +_Status Version: 2.0_ diff --git a/src/modules/bmm/workflows/1-analysis/workflow-status/workflow.yaml b/src/modules/bmm/workflows/1-analysis/workflow-status/workflow.yaml index 9e34649a..4b2f9b17 100644 --- a/src/modules/bmm/workflows/1-analysis/workflow-status/workflow.yaml +++ b/src/modules/bmm/workflows/1-analysis/workflow-status/workflow.yaml @@ -1,6 +1,6 @@ # Workflow Status - Master Router and Status Tracker name: workflow-status -description: "Universal entry point for BMM workflows. Checks for existing workflow status, displays current state, suggests next actions, or helps plan new workflow. Can be invoked by any agent (bmad-master, analyst, pm) to understand where the project is and what to do next." +description: "Lightweight status checker - answers 'what should I do now?' for any agent. Reads simple key-value status file for instant parsing. Use workflow-init for new projects." author: "BMad" # Critical variables from config @@ -14,7 +14,14 @@ date: system-generated installed_path: "{project-root}/bmad/bmm/workflows/1-analysis/workflow-status" instructions: "{installed_path}/instructions.md" -# Output configuration - no output file, reads existing status -default_output_file: "" +# Template for status file creation (used by workflow-init) +template: "{installed_path}/workflow-status-template.md" +# Path definitions for project types +path_files: "{installed_path}/paths/" + +# Output configuration - reads existing status +default_output_file: "{output_folder}/bmm-workflow-status.md" + +# This is now a lightweight router workflow web_bundle: false