diff --git a/src/bmm/agents/analyst.agent.yaml b/src/bmm/agents/analyst.agent.yaml index 69aafddf..7b168fdb 100644 --- a/src/bmm/agents/analyst.agent.yaml +++ b/src/bmm/agents/analyst.agent.yaml @@ -19,10 +19,6 @@ agent: - Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md` menu: - - trigger: WS or fuzzy match on workflow-status - workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" - description: "[WS] Workflow Status: Initialize, Get or Update the Project Workflow" - - trigger: BP or fuzzy match on brainstorm-project exec: "{project-root}/_bmad/core/workflows/brainstorming/workflow.md" data: "{project-root}/_bmad/bmm/data/project-context-template.md" diff --git a/src/bmm/agents/architect.agent.yaml b/src/bmm/agents/architect.agent.yaml index afd6008b..a767be98 100644 --- a/src/bmm/agents/architect.agent.yaml +++ b/src/bmm/agents/architect.agent.yaml @@ -20,10 +20,6 @@ agent: - Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md` menu: - - trigger: WS or fuzzy match on workflow-status - workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" - description: "[WS] Workflow Status: Initialize, Get or Update the Project Workflow" - - trigger: CA or fuzzy match on create-architecture exec: "{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md" description: "[CA] Create Architecture: Guided Workflow to document technical decisions to keep implementation on track" diff --git a/src/bmm/agents/pm.agent.yaml b/src/bmm/agents/pm.agent.yaml index 3715d9fb..1d8a0fd1 100644 --- a/src/bmm/agents/pm.agent.yaml +++ b/src/bmm/agents/pm.agent.yaml @@ -22,10 +22,6 @@ agent: - Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md` menu: - - trigger: WS or fuzzy match on workflow-status - workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" - description: "[WS] Workflow Status: Initialize, Get or Update the Project Workflow" - - trigger: CP or fuzzy match on create-prd exec: "{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/workflow.md" description: "[CP] Create PRD: Expert led facilitation to produce your Product Requirements Document" diff --git a/src/bmm/agents/sm.agent.yaml b/src/bmm/agents/sm.agent.yaml index 44b4cf7b..71ce957b 100644 --- a/src/bmm/agents/sm.agent.yaml +++ b/src/bmm/agents/sm.agent.yaml @@ -25,10 +25,6 @@ agent: - "Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md`" menu: - - trigger: WS or fuzzy match on workflow-status - workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" - description: "[WS] Workflow Status: Initialize, Get or Update the Project Workflow" - - trigger: SP or fuzzy match on sprint-planning workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml" description: "[SP] Sprint Planning: Generate or update the record that will sequence the tasks to complete the full project that the dev agent will follow" diff --git a/src/bmm/agents/tea.agent.yaml b/src/bmm/agents/tea.agent.yaml index 27da7e2d..a378dacf 100644 --- a/src/bmm/agents/tea.agent.yaml +++ b/src/bmm/agents/tea.agent.yaml @@ -31,10 +31,6 @@ agent: - "Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md`" menu: - - trigger: WS or fuzzy match on workflow-status - workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" - description: "[WS] Workflow Status: Initialize, Get or Update the Project Workflow" - - trigger: TF or fuzzy match on test-framework workflow: "{project-root}/_bmad/bmm/workflows/testarch/framework/workflow.yaml" description: "[TF] Test Framework: Initialize production-ready test framework architecture" diff --git a/src/bmm/agents/tech-writer/tech-writer.agent.yaml b/src/bmm/agents/tech-writer/tech-writer.agent.yaml index 559b345c..d1bb7e91 100644 --- a/src/bmm/agents/tech-writer/tech-writer.agent.yaml +++ b/src/bmm/agents/tech-writer/tech-writer.agent.yaml @@ -20,10 +20,6 @@ agent: - I will always strive to follow `_bmad/_memory/tech-writer-sidecar/documentation-standards.md` best practices. menu: - - trigger: WS or fuzzy match on workflow-status - workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" - description: "[WS] Workflow Status: Initialize, Get or Update the Project Workflow" - - trigger: DP or fuzzy match on document-project workflow: "{project-root}/_bmad/bmm/workflows/document-project/workflow.yaml" description: "[DP] Document Project: Generate comprehensive project documentation (brownfield analysis, architecture scanning)" diff --git a/src/bmm/agents/ux-designer.agent.yaml b/src/bmm/agents/ux-designer.agent.yaml index c802262f..1ee21845 100644 --- a/src/bmm/agents/ux-designer.agent.yaml +++ b/src/bmm/agents/ux-designer.agent.yaml @@ -21,10 +21,6 @@ agent: - Data-informed but always creative menu: - - trigger: WS or fuzzy match on workflow-status - workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" - description: "[WS] Workflow Status: Initialize, Get or Update the Project Workflow" - - trigger: UX or fuzzy match on ux-design exec: "{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md" description: "[UX] UX: Guidance through realizing the plan for your UX to inform architecture and implementation. PRovides more details that what was discovered in the PRD" diff --git a/src/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml b/src/bmm/data/paths/enterprise-brownfield.yaml similarity index 100% rename from src/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml rename to src/bmm/data/paths/enterprise-brownfield.yaml diff --git a/src/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml b/src/bmm/data/paths/enterprise-greenfield.yaml similarity index 100% rename from src/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml rename to src/bmm/data/paths/enterprise-greenfield.yaml diff --git a/src/bmm/workflows/workflow-status/paths/method-brownfield.yaml b/src/bmm/data/paths/method-brownfield.yaml similarity index 100% rename from src/bmm/workflows/workflow-status/paths/method-brownfield.yaml rename to src/bmm/data/paths/method-brownfield.yaml diff --git a/src/bmm/workflows/workflow-status/paths/method-greenfield.yaml b/src/bmm/data/paths/method-greenfield.yaml similarity index 100% rename from src/bmm/workflows/workflow-status/paths/method-greenfield.yaml rename to src/bmm/data/paths/method-greenfield.yaml diff --git a/src/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md b/src/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md index 0c49da1e..92a9b688 100644 --- a/src/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +++ b/src/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md @@ -73,17 +73,7 @@ I've successfully collaborated with you to create a comprehensive Product Brief This brief serves as the foundation for all subsequent product development activities and strategic decisions." -### 2. Workflow Status Update - -**Status File Management:** -Update the main workflow status file: - -- Check if `{output_folder} or {planning_artifacts}/bmm-workflow-status.yaml` exists -- If so, update workflow_status["product-brief"] = `{outputFile}` -- Add completion timestamp and metadata -- Save file, preserving all comments and structure - -### 3. Document Quality Check +### 2. Document Quality Check **Completeness Validation:** Perform final validation of the product brief: @@ -101,7 +91,7 @@ Perform final validation of the product brief: - Are success criteria traceable to user needs and business goals? - Does MVP scope align with the problem and solution? -### 4. Suggest Next Steps +### 3. Suggest Next Steps **Recommended Next Workflow:** Provide guidance on logical next workflows: @@ -124,7 +114,7 @@ Provide guidance on logical next workflows: - Use brief to validate concept before committing to detailed work - Brief can guide early technical feasibility discussions -### 5. Present MENU OPTIONS +### 4. Present MENU OPTIONS **Completion Confirmation:** "**Your Product Brief for {{project_name}} is now complete and ready for the next phase!** diff --git a/src/bmm/workflows/4-implementation/sprint-status/instructions.md b/src/bmm/workflows/4-implementation/sprint-status/instructions.md index 978b9229..c058644a 100644 --- a/src/bmm/workflows/4-implementation/sprint-status/instructions.md +++ b/src/bmm/workflows/4-implementation/sprint-status/instructions.md @@ -96,7 +96,7 @@ Enter corrections (e.g., "1=in-progress, 2=backlog") or "skip" to continue witho 3. Else if any story status == ready-for-dev → recommend `dev-story` 4. Else if any story status == backlog → recommend `create-story` 5. Else if any retrospective status == optional → recommend `retrospective` - 6. Else → All implementation items done; suggest `workflow-status` to plan next phase + 6. Else → All implementation items done; congratulate the user - you both did amazing work together! Store selected recommendation as: next_story_id, next_workflow_id, next_agent (SM/DEV as appropriate) diff --git a/src/bmm/workflows/workflow-status/project-levels.yaml b/src/bmm/workflows/bmad-quick-flow/quick-dev/data/project-levels.yaml similarity index 100% rename from src/bmm/workflows/workflow-status/project-levels.yaml rename to src/bmm/workflows/bmad-quick-flow/quick-dev/data/project-levels.yaml diff --git a/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md b/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md index cbb32894..b9012da8 100644 --- a/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +++ b/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md @@ -104,12 +104,12 @@ Present choice: This looks like a focused feature with multiple components. **[t] Create tech-spec first** (recommended) -**[w] Seems bigger than quick-dev** - see what BMad Method recommends +**[w] Seems bigger than quick-dev** - Recommend the Full BMad Flow PRD Process **[e] Execute directly** ``` - **[t]:** Direct to `{quick_spec_workflow}`. **EXIT Quick Dev.** -- **[w]:** Direct to `{workflow_init}`. **EXIT Quick Dev.** +- **[w]:** Direct user to run the PRD workflow instead. **EXIT Quick Dev.** - **[e]:** Ask for guidance, then **NEXT:** Load `step-02-context-gathering.md` ### Escalation Triggered - Level 3+ @@ -122,8 +122,8 @@ This sounds like platform/system work. **[e] Execute directly** - feeling lucky ``` -- **[w]:** Direct to `{workflow_init}`. **EXIT Quick Dev.** - **[t]:** Direct to `{quick_spec_workflow}`. **EXIT Quick Dev.** +- **[w]:** Direct user to run the PRD workflow instead. **EXIT Quick Dev.** - **[e]:** Ask for guidance, then **NEXT:** Load `step-02-context-gathering.md` --- diff --git a/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md b/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md index 1c1d3038..5d9769c3 100644 --- a/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +++ b/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md @@ -36,12 +36,10 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve: - `installed_path` = `{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev` - `project_context` = `**/project-context.md` (load if exists) -- `project_levels` = `{project-root}/_bmad/bmm/workflows/workflow-status/project-levels.yaml` ### Related Workflows - `quick_spec_workflow` = `{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md` -- `workflow_init` = `{project-root}/_bmad/bmm/workflows/workflow-status/init/workflow.yaml` - `party_mode_exec` = `{project-root}/_bmad/core/workflows/party-mode/workflow.md` - `advanced_elicitation` = `{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml` diff --git a/src/bmm/workflows/testarch/atdd/atdd-checklist-template.md b/src/bmm/workflows/testarch/atdd/atdd-checklist-template.md index 3a633c75..5de70286 100644 --- a/src/bmm/workflows/testarch/atdd/atdd-checklist-template.md +++ b/src/bmm/workflows/testarch/atdd/atdd-checklist-template.md @@ -257,7 +257,6 @@ test('should do something', async ({ {fixtureName} }) => { - Check off tasks as you complete them - Share progress in daily standup -- Mark story as IN PROGRESS in `bmm-workflow-status.md` --- diff --git a/src/bmm/workflows/testarch/ci/checklist.md b/src/bmm/workflows/testarch/ci/checklist.md index d68918fb..984e3308 100644 --- a/src/bmm/workflows/testarch/ci/checklist.md +++ b/src/bmm/workflows/testarch/ci/checklist.md @@ -143,7 +143,6 @@ Note: CI setup is typically a one-time task per repo and can be run any time aft ### Status File Integration -- [ ] `bmm-workflow-status.md` exists - [ ] CI setup logged in Quality & Testing Progress section - [ ] Status updated with completion timestamp - [ ] Platform and configuration noted diff --git a/src/bmm/workflows/testarch/framework/checklist.md b/src/bmm/workflows/testarch/framework/checklist.md index 8bbdb967..07c6fe8d 100644 --- a/src/bmm/workflows/testarch/framework/checklist.md +++ b/src/bmm/workflows/testarch/framework/checklist.md @@ -201,7 +201,6 @@ Before starting the workflow: ### Status File Integration -- [ ] `bmm-workflow-status.md` exists - [ ] Framework initialization logged in Quality & Testing Progress section - [ ] Status file updated with completion timestamp - [ ] Status file shows framework: Playwright or Cypress diff --git a/src/bmm/workflows/testarch/test-design/checklist.md b/src/bmm/workflows/testarch/test-design/checklist.md index ac16c066..4289359b 100644 --- a/src/bmm/workflows/testarch/test-design/checklist.md +++ b/src/bmm/workflows/testarch/test-design/checklist.md @@ -145,7 +145,6 @@ ### Status File Integration -- [ ] bmm-workflow-status.md exists - [ ] Test design logged in Quality & Testing Progress - [ ] Epic number and scope documented - [ ] Completion timestamp recorded diff --git a/src/bmm/workflows/testarch/test-design/instructions.md b/src/bmm/workflows/testarch/test-design/instructions.md index 86561cfd..6f182df5 100644 --- a/src/bmm/workflows/testarch/test-design/instructions.md +++ b/src/bmm/workflows/testarch/test-design/instructions.md @@ -28,12 +28,7 @@ The workflow auto-detects which mode to use based on project phase. - If `{implementation_artifacts}/sprint-status.yaml` exists → **Epic-Level Mode** (Phase 4) - If NOT exists → Check workflow status -2. **Check workflow-status.yaml** - - Read `{planning_artifacts}/bmm-workflow-status.yaml` - - If `implementation-readiness: required` or `implementation-readiness: recommended` → **System-Level Mode** (Phase 3) - - Otherwise → **Epic-Level Mode** (Phase 4 without sprint status yet) - -3. **Mode-Specific Requirements** +2. **Mode-Specific Requirements** **System-Level Mode (Phase 3 - Testability Review):** - ✅ Architecture document exists (architecture.md or tech-spec) diff --git a/src/bmm/workflows/testarch/trace/checklist.md b/src/bmm/workflows/testarch/trace/checklist.md index ba4e63b8..78f345a1 100644 --- a/src/bmm/workflows/testarch/trace/checklist.md +++ b/src/bmm/workflows/testarch/trace/checklist.md @@ -375,12 +375,6 @@ Knowledge fragments referenced: ### Step 5: Status Updates and Notifications -**Status File Updated:** - -- [ ] Gate decision appended to bmm-workflow-status.md (if append_to_history: true) -- [ ] Format correct: `[DATE] Gate Decision: DECISION - Target {ID} - {rationale}` -- [ ] Status file committed or staged for commit - **Gate YAML Created:** - [ ] Gate YAML snippet generated with decision and criteria @@ -480,13 +474,6 @@ Knowledge fragments referenced: ## Phase 2 Integration Points -### BMad Workflow Status - -- [ ] Gate decision added to `bmm-workflow-status.md` -- [ ] Format matches existing gate history entries -- [ ] Timestamp is accurate -- [ ] Decision summary is concise (<80 chars) - ### CI/CD Pipeline - [ ] Gate YAML is CI/CD-compatible diff --git a/src/bmm/workflows/testarch/trace/instructions.md b/src/bmm/workflows/testarch/trace/instructions.md index bd575849..deafb36c 100644 --- a/src/bmm/workflows/testarch/trace/instructions.md +++ b/src/bmm/workflows/testarch/trace/instructions.md @@ -292,7 +292,6 @@ This phase uses traceability results to make a quality gate decision (PASS/CONCE 4. **Load supporting artifacts**: - `test-design.md` → Risk priorities, DoD checklist - `story-*.md` or `Epics.md` → Requirements context - - `bmm-workflow-status.md` → Workflow completion status (if `check_all_workflows_complete: true`) 5. **Validate evidence freshness** (if `validate_evidence_freshness: true`): - Check timestamps of test-design, traceability, NFR assessments @@ -398,8 +397,8 @@ This phase uses traceability results to make a quality gate decision (PASS/CONCE ## Decision Criteria -| Criterion | Threshold | Actual | Status | -| ----------------- | --------- | -------- | ------- | +| Criterion | Threshold | Actual | Status | +| ----------------- | --------- | -------- | ------ | | P0 Coverage | ≥100% | 100% | ✅ PASS | | P1 Coverage | ≥90% | 88% | ⚠️ FAIL | | Overall Coverage | ≥80% | 92% | ✅ PASS | @@ -506,22 +505,7 @@ This phase uses traceability results to make a quality gate decision (PASS/CONCE **Actions:** -1. **Update workflow status** (if `append_to_history: true`): - - Append gate decision to `bmm-workflow-status.md` under "Gate History" section - - Format: - - ```markdown - ## Gate History - - ### Story 1.3 - User Login (2025-01-15) - - - **Decision**: CONCERNS - - **Reason**: P1 coverage 88% (below 90%) - - **Document**: [gate-decision-story-1.3.md](_bmad/output/gate-decision-story-1.3.md) - - **Action**: Deploy with follow-up story for AC-5 - ``` - -2. **Generate stakeholder notification** (if `notify_stakeholders: true`): +1. **Generate stakeholder notification** (if `notify_stakeholders: true`): - Create concise summary message for team communication - Include: Decision, key metrics, action items - Format for Slack/email/chat: @@ -541,7 +525,7 @@ This phase uses traceability results to make a quality gate decision (PASS/CONCE Full Report: _bmad/output/gate-decision-story-1.3.md ``` -3. **Request sign-off** (if `require_sign_off: true`): +2. **Request sign-off** (if `require_sign_off: true`): - Prompt for named approver (tech lead, QA lead, PM) - Document approver name and timestamp in gate decision - Block until sign-off received (interactive prompt) @@ -836,8 +820,8 @@ Use selective testing principles from `selective-testing.md`: ## Coverage Summary -| Priority | Total Criteria | FULL Coverage | Coverage % | Status | -| --------- | -------------- | ------------- | ---------- | ------- | +| Priority | Total Criteria | FULL Coverage | Coverage % | Status | +| --------- | -------------- | ------------- | ---------- | ------ | | P0 | 3 | 3 | 100% | ✅ PASS | | P1 | 5 | 4 | 80% | ⚠️ WARN | | P2 | 4 | 3 | 75% | ✅ PASS | @@ -968,7 +952,6 @@ Before completing this workflow, verify: - ✅ Decision rules applied consistently (PASS/CONCERNS/FAIL/WAIVED) - ✅ Gate decision document created with evidence - ✅ Waiver documented if decision is WAIVED (approver, justification, mitigation) -- ✅ Workflow status updated (bmm-workflow-status.md) - ✅ Stakeholders notified (if enabled) --- diff --git a/src/bmm/workflows/workflow-status/init/instructions.md b/src/bmm/workflows/workflow-status/init/instructions.md deleted file mode 100644 index eeee90d9..00000000 --- a/src/bmm/workflows/workflow-status/init/instructions.md +++ /dev/null @@ -1,346 +0,0 @@ -# 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} -This workflow handles BOTH new projects AND legacy projects following the BMad Method - - - - -Welcome to BMad Method, {user_name}! - -Perform comprehensive scan for existing work: - -- BMM artifacts: PRD, epics, architecture, UX, brief, research, brainstorm -- Implementation: stories, sprint-status, workflow-status -- Codebase: source directories, package files, git repo -- Check both {planning_artifacts} and {implementation_artifacts} locations - - -Categorize into one of these states: - -- CLEAN: No artifacts or code (or scaffold only) -- PLANNING: Has PRD/spec but no implementation -- ACTIVE: Has stories or sprint status -- LEGACY: Has code but no BMM artifacts -- UNCLEAR: Mixed state needs clarification - - -What's your project called? {{#if project_name}}(Config shows: {{project_name}}){{/if}} -Store project_name -project_name - - - - - Perfect! Fresh start detected. - Continue to step 3 - - - - ✅ You already have workflow tracking at: {{workflow_status_path}} - -To check progress: Load any BMM agent and run /bmad:bmm:workflows:workflow-status - -Happy building! 🚀 -Exit workflow (already initialized) - - - - Found existing work: -{{summary_of_findings}} - -How would you like to proceed? - -1. **Continue** - Work with existing artifacts -2. **Archive & Start Fresh** - Move old work to archive -3. **Express Setup** - I know exactly what I need -4. **Guided Setup** - Walk me through options - -Choice [1-4] - - - Set continuing_existing = true - Store found artifacts - Continue to step 7 (detect track from artifacts) - - - - Archive existing work? (y/n) - Move artifacts to {planning_artifacts}/archive/ - Ready for fresh start! - Continue to step 3 - - - - Jump to step 3 (express path) - - - - Continue to step 4 (guided path) - - - - - Setup approach: - -1. **Express** - I know what I need -2. **Guided** - Show me the options - -Choice [1 or 2]: - - - Continue to step 3 (express) - - - - Continue to step 4 (guided) - - - - - -Is this for: -1. **New project** (greenfield) -2. **Existing codebase** (brownfield) - -Choice [1/2]: -Set field_type based on choice - -Planning approach: - -1. **BMad Method** - Full planning for complex projects -2. **Enterprise Method** - Extended planning with security/DevOps - -Choice [1/2]: -Map to selected_track: method/enterprise - -🚀 **For Quick Flow (minimal planning, straight to code):** -Load the **quick-flow-solo-dev** agent instead - use Quick Flow agent for faster development - -field_type -selected_track -Jump to step 6 (discovery options) - - - -Tell me about what you're working on. What's the goal? -Store user_description - -Analyze for field type indicators: - -- Brownfield: "existing", "current", "enhance", "modify" -- Greenfield: "new", "build", "create", "from scratch" -- If codebase exists, default to brownfield unless user indicates scaffold - - - - I see existing code. Are you: -1. **Modifying** existing codebase (brownfield) -2. **Starting fresh** - code is just scaffold (greenfield) - -Choice [1/2]: -Set field_type based on answer - - -Set based on codebase presence - -Check for game development keywords - -🎮 **GAME DEVELOPMENT DETECTED** - -For game development, install the BMGD module: - -```bash -bmad install bmgd -``` - -Continue with software workflows? (y/n) -Choice: -Exit workflow - - -user_description -field_type -Continue to step 5 - - - -Based on your project, here are your BMad Method planning options: - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -**1. BMad Method** 🎯 {{#if recommended}}(RECOMMENDED){{/if}} - -- Full planning: PRD + UX + Architecture -- Best for: Products, platforms, complex features -- Benefit: AI agents have complete context for better results - -**2. Enterprise Method** 🏢 - -- Extended: Method + Security + DevOps + Testing -- Best for: Enterprise, compliance, mission-critical -- Benefit: Comprehensive planning for complex systems - -**🚀 For Quick Flow (minimal planning, straight to code):** -Load the **quick-flow-solo-dev** agent instead - use Quick Flow agent for faster development - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -{{#if brownfield}} -💡 Architecture creates focused solution design from your codebase, keeping AI agents on track. -{{/if}} - -Which BMad Method approach fits best? - -1. BMad Method {{#if recommended}}(recommended){{/if}} -2. Enterprise Method -3. Help me decide -4. Switch to Quick Flow (use quick-flow-solo-dev agent) - -Choice [1/2/3/4]: - - - 🚀 **Switching to Quick Flow!** - -Load the **quick-flow-solo-dev** agent instead: - -- Start a new chat -- Load the quick-flow-solo-dev agent -- Use Quick Flow for minimal planning and faster development - -Quick Flow is perfect for: - -- Simple features and bug fixes -- Rapid prototyping -- When you want to get straight to code - -Happy coding! 🚀 -Exit workflow - - - - What concerns you about choosing? - Provide tailored guidance based on concerns - Loop back to choice - - -Map choice to selected_track -selected_track - - - -Determine available discovery workflows based on: -- field_type (greenfield gets product-brief option) -- selected_track (method/enterprise options) - - - - Optional discovery workflows can help clarify your vision: - Select any you'd like to include: - -1. 🧠 **Brainstorm** - Creative exploration and ideation -2. 🔍 **Research** - Technical/competitive analysis -3. 📋 **Product Brief** - Strategic product planning (recommended) - -Enter numbers (e.g., "1,3" or "all" or "none"): - - - - Optional discovery workflows: - Include any of these? - -1. 🧠 **Brainstorm** - Creative exploration -2. 🔍 **Research** - Domain analysis - -Enter numbers (e.g., "1,2" or "none"): - - -Parse selections and set: - -- brainstorm_requested -- research_requested -- product_brief_requested (if applicable) - - -brainstorm_requested -research_requested -product_brief_requested - - - 💡 **Note:** For brownfield projects, run document-project workflow first to analyze your codebase. - - - - -Analyze artifacts to detect track: -- Has PRD → BMad Method -- Has Security/DevOps → Enterprise Method -- Has tech-spec only → Suggest switching to quick-flow-solo-dev agent - - -Detected: **{{detected_track}}** based on {{found_artifacts}} -Correct? (y/n) - -Which BMad Method track instead? - -1. BMad Method -2. Enterprise Method -3. Switch to Quick Flow (use quick-flow-solo-dev agent) - -Choice: - -Set selected_track -selected_track - - - -Load path file: {path_files}/{{selected_track}}-{{field_type}}.yaml -Build workflow_items from path file -Scan for existing completed work and update statuses -Set generated date - -generated -workflow_path_file -workflow_items - - - -Your BMad workflow path: - -**Track:** {{selected_track}} -**Type:** {{field_type}} -**Project:** {{project_name}} - -{{#if brownfield}}Prerequisites: document-project{{/if}} -{{#if has_discovery}}Discovery: {{list_selected_discovery}}{{/if}} - -{{workflow_path_summary}} - - -Create workflow tracking file? (y/n) - - - Generate YAML from template with all variables - Save to {planning_artifacts}/bmm-workflow-status.yaml - Identify next workflow and agent - -✅ **Created:** {planning_artifacts}/bmm-workflow-status.yaml - -**Next:** {{next_workflow_name}} -**Agent:** {{next_agent}} -**Command:** /bmad:bmm:workflows:{{next_workflow_id}} - -{{#if next_agent not in [analyst, pm]}} -💡 Start new chat with **{{next_agent}}** agent first. -{{/if}} - -To check progress: /bmad:bmm:workflows:workflow-status - -Happy building! 🚀 - - - - - diff --git a/src/bmm/workflows/workflow-status/init/workflow.yaml b/src/bmm/workflows/workflow-status/init/workflow.yaml deleted file mode 100644 index 5e1c7618..00000000 --- a/src/bmm/workflows/workflow-status/init/workflow.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# 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" -implementation_artifacts: "{config_source}:implementation_artifacts" -planning_artifacts: "{config_source}:planning_artifacts" -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: "{planning_artifacts}/bmm-workflow-status.yaml" - -standalone: true -web_bundle: false diff --git a/src/bmm/workflows/workflow-status/instructions.md b/src/bmm/workflows/workflow-status/instructions.md deleted file mode 100644 index 785b5e54..00000000 --- a/src/bmm/workflows/workflow-status/instructions.md +++ /dev/null @@ -1,397 +0,0 @@ -# Workflow Status Check - Multi-Mode Service - -The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.xml -You MUST have already loaded and processed: {project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml -This workflow operates in multiple modes: interactive (default), validate, data, init-check, update -Other workflows can call this as a service to avoid duplicating status logic -⚠️ ABSOLUTELY NO TIME ESTIMATES - NEVER mention hours, days, weeks, months, or ANY time-based predictions. AI has fundamentally changed development speed - what once took teams weeks/months can now be done by one person in hours. DO NOT give ANY time estimates whatsoever. - - - - - Check for {{mode}} parameter passed by calling workflow - Default mode = "interactive" if not specified - - - Continue to Step 1 for normal status check flow - - - - Jump to Step 10 for workflow validation service - - - - Jump to Step 20 for data extraction service - - - - Jump to Step 30 for simple init check - - - - Jump to Step 40 for status update service - - - - -Search {planning_artifacts}/ for file: bmm-workflow-status.yaml - - - No workflow status found. - Would you like to run Workflow Init now? (y/n) - - - Launching workflow-init to set up your project tracking... - - Exit workflow and let workflow-init take over - - - - No workflow status file. Run workflow-init when ready to enable progress tracking. - Exit workflow - - - - - Continue to step 2 - - - - -Read bmm-workflow-status.yaml -Parse YAML file and extract metadata from comments and fields: - -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) - -Parse workflow_status section: - -- 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) - -Determine current state: - -- 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 - - - -Load workflow path file based on workflow_path field -Identify current phase from next workflow to be done -Build list of completed, pending, and optional workflows -For each workflow, look up its agent from the path file - - -## 📊 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}} - -**Tip:** For guardrail tests, run TEA `*automate` after `dev-story`. If you lose context, TEA workflows resume from artifacts in `{{output_folder}}`. - - - - -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: - -Handle user selection based on available options - - - 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}} - - - - - Which optional workflow? -{{#each optional_workflows numbered}} -{{number}}. {{workflow_name}} ({{agent}}) -{{/each}} - -Your choice: -Display selected workflow command and agent - - - - Display complete bmm-workflow-status.yaml file contents - - - - What would you like to update? - -1. Mark a workflow as **completed** (provide file path) -2. Mark a workflow as **skipped** - -Your choice: - - - Which workflow? (Enter workflow ID like 'prd' or 'create-architecture') - File path created? (e.g., docs/prd.md) - ONLY write the file path as the status value - no other text, notes, or metadata - Update workflow_status in YAML file: {{workflow_id}}: {{file_path}} - Save updated YAML file preserving ALL structure and comments - ✅ Updated {{workflow_id}} to completed: {{file_path}} - - - - Which workflow to skip? (Enter workflow ID) - Update workflow_status in YAML file: {{workflow_id}}: skipped - Save updated YAML file - ✅ Marked {{workflow_id}} as skipped - - - - - - - - - -Read {planning_artifacts}/bmm-workflow-status.yaml if exists - - - status_exists = false - should_proceed = true - warning = "No status file found. Running without progress tracking." - suggestion = "Consider running workflow-init first for progress tracking" - Return to calling workflow - - - - Parse YAML file to extract project metadata and workflow_status - Load workflow path file from workflow_path field - Find first non-completed workflow in workflow_status (next workflow) - Check if {{calling_workflow}} matches next workflow or is in the workflow list - -status_exists = true -project_level = {{project_level}} -project_type = {{project_type}} -field_type = {{field_type}} -next_workflow = {{next_workflow_id}} - - - should_proceed = true - warning = "" - suggestion = "Proceeding with planned next step" - - - - Check the status of calling_workflow in YAML - - - should_proceed = true - warning = "⚠️ Workflow already completed: {{calling_workflow}}" - suggestion = "This workflow was already completed. Re-running will overwrite: {{status}}" - - - - should_proceed = true - warning = "Running optional workflow {{calling_workflow}}" - suggestion = "This is optional. Expected next: {{next_workflow}}" - - - - should_proceed = true - warning = "⚠️ Out of sequence: Expected {{next_workflow}}, running {{calling_workflow}}" - suggestion = "Consider running {{next_workflow}} instead, or continue if intentional" - - - - - - should_proceed = true - warning = "⚠️ Unknown workflow: {{calling_workflow}} not in workflow path" - suggestion = "This workflow is not part of the defined path for this project" - - -status_file_path = {{path to bmm-workflow-status.yaml}} - - -Return control to calling workflow with all template outputs - - - -Read {planning_artifacts}/bmm-workflow-status.yaml if exists - - - status_exists = false - error = "No status file to extract data from" - Return to calling workflow - - - - Parse YAML file completely - status_exists = true - - - project_name = {{project}} - project_type = {{project_type}} - project_level = {{project_level}} - field_type = {{field_type}} - workflow_path = {{workflow_path}} - - - - Parse workflow_status section and return all workflow: status pairs - workflow_status = {{workflow_status_object}} - Calculate completion stats: - total_workflows = {{count all workflows}} - completed_workflows = {{count file path statuses}} - pending_workflows = {{count required/optional/etc}} - skipped_workflows = {{count skipped}} - - - - Return all parsed fields as template outputs - project = {{project}} - project_type = {{project_type}} - project_level = {{project_level}} - field_type = {{field_type}} - workflow_path = {{workflow_path}} - workflow_status = {{workflow_status_object}} - generated = {{generated}} - - -status_file_path = {{path to bmm-workflow-status.yaml}} - - -Return control to calling workflow with requested data - - - -Check if {planning_artifacts}/bmm-workflow-status.yaml exists - - - status_exists = true - suggestion = "Status file found. Ready to proceed." - - - - status_exists = false - suggestion = "No status file. Run workflow-init to create one (optional for progress tracking)" - - -Return immediately to calling workflow - - - -Read {planning_artifacts}/bmm-workflow-status.yaml - - - success = false - error = "No status file found. Cannot update." - Return to calling workflow - - - - Parse YAML file completely - Load workflow path file from workflow_path field - Check {{action}} parameter to determine update type - - - - - - Get {{workflow_id}} parameter (required) - Get {{default_output_file}} parameter (required - path to created file) - - ONLY write the file path as the status value - no other text, notes, or metadata - Update workflow status in YAML: - - In workflow_status section, update: {{workflow_id}}: {{default_output_file}} - - Find {{workflow_id}} in loaded path YAML - Determine next workflow from path sequence - Find first workflow in workflow_status with status != file path and != skipped - - Save updated YAML file preserving ALL structure and comments - - success = true - next_workflow = {{determined next workflow}} - next_agent = {{determined next agent from path file}} - completed_workflow = {{workflow_id}} - default_output_file = {{default_output_file}} - - - - - - - - Get {{workflow_id}} parameter (required) - - Update workflow status in YAML: - - In workflow_status section, update: {{workflow_id}}: skipped - - Save updated YAML file - - success = true - skipped_workflow = {{workflow_id}} - - - - - - - - success = false - error = "Unknown action: {{action}}. Valid actions: complete_workflow, skip_workflow" - - - - -Return control to calling workflow with template outputs - - - diff --git a/src/bmm/workflows/workflow-status/workflow-status-template.yaml b/src/bmm/workflows/workflow-status/workflow-status-template.yaml deleted file mode 100644 index 3ae5a484..00000000 --- a/src/bmm/workflows/workflow-status/workflow-status-template.yaml +++ /dev/null @@ -1,24 +0,0 @@ -# Workflow Status Template - -# This tracks progress through BMM methodology Analysis, Planning, and Solutioning phases. -# Implementation phase is tracked separately in sprint-status.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: "{{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}}" diff --git a/src/bmm/workflows/workflow-status/workflow.yaml b/src/bmm/workflows/workflow-status/workflow.yaml deleted file mode 100644 index b17fd9fa..00000000 --- a/src/bmm/workflows/workflow-status/workflow.yaml +++ /dev/null @@ -1,32 +0,0 @@ -# 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" -planning_artifacts: "{config_source}:planning_artifacts" -implementation_artifacts: "{config_source}:implementation_artifacts" -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: "{planning_artifacts}/bmm-workflow-status.yaml" - -standalone: true - -web_bundle: false diff --git a/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml b/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml index f43d9e1b..7a9fdec0 100644 --- a/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +++ b/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml @@ -23,9 +23,9 @@ agent: - trigger: DS or fuzzy match on dev-story description: "[DS] Another two-word compound trigger" action: dev_story - - trigger: WI or fuzzy match on workflow-init-process + - trigger: WI or fuzzy match on three-name-thing description: "[WI] Three-word compound trigger (uses first 2 words for shortcut)" - action: workflow_init + action: three_name_thing - trigger: H or fuzzy match on help description: "[H] Single-word compound trigger (1-letter shortcut)" action: help