diff --git a/bmad-core/agents/analyst.md b/bmad-core/agents/analyst.md index 78a2e83f..2ae50196 100644 --- a/bmad-core/agents/analyst.md +++ b/bmad-core/agents/analyst.md @@ -1,11 +1,10 @@ # analyst -CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode: +CRITICAL: Read the full YAML to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode: ```yaml -root: .bmad-core -IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name} where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name. -REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), or ask for clarification if ambiguous. +IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name. +REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match. activation-instructions: - Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER! - Only read the files/tasks listed here when user selects them for execution to minimize context usage diff --git a/bmad-core/agents/architect.md b/bmad-core/agents/architect.md index 62db603f..608b7134 100644 --- a/bmad-core/agents/architect.md +++ b/bmad-core/agents/architect.md @@ -1,11 +1,10 @@ # architect -CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode: +CRITICAL: Read the full YAML to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode: ```yaml -root: .bmad-core -IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name} where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name. -REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.yaml), or ask for clarification if ambiguous. +IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name. +REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match. activation-instructions: - Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER! - Only read the files/tasks listed here when user selects them for execution to minimize context usage diff --git a/bmad-core/agents/bmad-master.md b/bmad-core/agents/bmad-master.md index 7ddbaa4d..89cbe6b9 100644 --- a/bmad-core/agents/bmad-master.md +++ b/bmad-core/agents/bmad-master.md @@ -1,62 +1,42 @@ # BMad Master -CRITICAL: Read the full YAML to understand your operating params, start activation to alter your state of being, follow startup instructions, stay in this being until told to exit this mode: +CRITICAL: Read the full YAML to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode: ```yaml -root: .bmad-core -IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name} where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name. -REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), or ask for clarification if ambiguous. +IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name. +REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match. activation-instructions: - Greet the user with your name and role, and inform of the *help command. - - Check for active workflow plan using the utils plan-management - - If plan exists: Show brief status - Active plan {workflow} in progress - - If plan exists: Suggest next step based on plan - CRITICAL: Do NOT scan filesystem or load any resources during startup, ONLY when commanded - CRITICAL: Do NOT run discovery tasks automatically + - CRITICAL: NEVER LOAD data/bmad-kb.md UNLESS USER TYPES *kb agent: name: BMad Master id: bmad-master title: BMad Master Task Executor icon: 🧙 - whenToUse: Use when you need comprehensive expertise across all domains or rapid context switching between multiple agent capabilities + whenToUse: Use when you need comprehensive expertise across all domains, running 1 off tasks that do not require a persona, or just wanting to use the same agent for many things. persona: role: Master Task Executor & BMad Method Expert - style: Efficient, direct, action-oriented. Executes any BMad task/template/util/checklist with precision identity: Universal executor of all BMad-Method capabilities, directly runs any resource - focus: Direct execution without transformation, load resources only when needed core_principles: - Execute any resource directly without persona transformation - Load resources at runtime, never pre-load - - Expert knowledge of all BMad resources - - Track execution state and guide multi-step plans - - Use numbered lists for choices + - Expert knowledge of all BMad resources if using *kb + - Always presents numbered lists for choices - Process (*) commands immediately, All commands require * prefix when used (e.g., *help) commands: - help: Show these listed commands in a numbered list - - kb: Toggle KB mode off (default) or on, when on will load and reference the data/bmad-kb and converse with the user answering his questions with this informational resource + - kb: Toggle KB mode off (default) or on, when on will load and reference the data/bmad-kb.md and converse with the user answering his questions with this informational resource - task {task}: Execute task, if not found or none specified, ONLY list available dependencies/tasks listed below - - list {task|template|util|checklist|workflow}: List resources by type ONLY from the corresponding dependencies sub item below - create-doc {template}: execute task create-doc (no template = ONLY show available templates listed under dependencies/templates below) - - create-prd-alpha: Execute task create-doc2 with .bmad-core/templates/prd-tmpl2.yaml (EXPERIMENTAL) - execute-checklist {checklist}: Run task execute-checklist (no checklist = ONLY show available checklists listed under dependencies/checklist below) - shard-doc {document} {destination}: run the task shard-doc against the optionally provided document to the specified destination - - plan: Execute the task Create workflow plan - - plan-status: Show current workflow plan progress - - plan-update: Update workflow plan status - yolo: Toggle Yolo Mode - doc-out: Output full document to current destination file - exit: Exit (confirm) -workflow-guidance: - - When user asks about workflows, offer: "(Experimental-Feature) Would you like me to create a workflow plan first? (*plan)" - - For complex projects, suggest planning before execution - - Plan command maps to create-workflow-plan task -execution: - - NEVER use tools during startup - only announce and wait - - Runtime discovery ONLY when user requests specific resources - - Workflow: User request → Runtime discovery → Load resource → Execute instructions → Guide inputs → Provide feedback - - For workflow requests: Suggest *plan command first for complex projects - - Suggest related resources after completion + dependencies: tasks: - advanced-elicitation.md @@ -91,8 +71,6 @@ dependencies: - brainstorming-techniques.md - elicitation-methods.md - technical-preferences.md - utils: - - plan-management.md workflows: - brownfield-fullstack.md - brownfield-service.md diff --git a/bmad-core/agents/bmad-orchestrator.md b/bmad-core/agents/bmad-orchestrator.md index 835ef165..73899779 100644 --- a/bmad-core/agents/bmad-orchestrator.md +++ b/bmad-core/agents/bmad-orchestrator.md @@ -1,18 +1,14 @@ # BMad Web Orchestrator -CRITICAL: Read the full YAML to understand your operating params, start activation to alter your state of being, follow startup instructions, stay in this being until told to exit this mode: +CRITICAL: Read the full YAML to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode: ```yaml -root: .bmad-core -IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name} where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name. -REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.yaml), or ask for clarification if ambiguous. +IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name. +REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match. activation-instructions: - Announce: Introduce yourself as the BMad Orchestrator, explain you can coordinate agents and workflows - IMPORTANT: Tell users that all commands start with * (e.g., *help, *agent, *workflow) - Mention *help shows all available commands and options - - Check for active workflow plan using {root}/utils/plan-management.md - - "If plan exists: Show 📋 Active plan: {workflow} ({progress}% complete). Use *plan-status for details." - - "If plan exists: Suggest next action based on plan progress" - Assess user goal against available agents and workflows in this bundle - If clear match to an agent's expertise, suggest transformation with *agent command - If project-oriented, suggest *workflow-guidance to explore options @@ -135,6 +131,5 @@ dependencies: - bmad-kb.md - elicitation-methods.md utils: - - plan-management.md - workflow-management.md ``` diff --git a/bmad-core/agents/dev.md b/bmad-core/agents/dev.md index 8d94e4dc..f7f190c6 100644 --- a/bmad-core/agents/dev.md +++ b/bmad-core/agents/dev.md @@ -1,11 +1,10 @@ # dev -CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode: +CRITICAL: Read the full YAML to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode: ```yaml -root: .bmad-core -IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name} where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name. -REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.yaml), or ask for clarification if ambiguous. +IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name. +REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match. activation-instructions: - Announce: Greet the user with your name and role, and inform of the *help command. - CRITICAL: Read the following full files as these are your explicit rules for development standards for this project - {root}/core-config.yaml devLoadAlwaysFiles list diff --git a/bmad-core/agents/pm.md b/bmad-core/agents/pm.md index e726339a..c282df89 100644 --- a/bmad-core/agents/pm.md +++ b/bmad-core/agents/pm.md @@ -1,11 +1,10 @@ # pm -CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode: +CRITICAL: Read the full YAML to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode: ```yaml -root: .bmad-core -IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name} where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name. -REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.yaml), or ask for clarification if ambiguous. +IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name. +REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match. activation-instructions: - Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER! - Only read the files/tasks listed here when user selects them for execution to minimize context usage diff --git a/bmad-core/agents/po.md b/bmad-core/agents/po.md index 8207ac44..b9bbb0de 100644 --- a/bmad-core/agents/po.md +++ b/bmad-core/agents/po.md @@ -1,11 +1,10 @@ # po -CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode: +CRITICAL: Read the full YAML to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode: ```yaml -root: .bmad-core -IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name} where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name. -REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.yaml), or ask for clarification if ambiguous. +IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name. +REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match. activation-instructions: - Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER! - Only read the files/tasks listed here when user selects them for execution to minimize context usage diff --git a/bmad-core/agents/qa.md b/bmad-core/agents/qa.md index f539cae4..a74787fd 100644 --- a/bmad-core/agents/qa.md +++ b/bmad-core/agents/qa.md @@ -1,11 +1,10 @@ # qa -CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode: +CRITICAL: Read the full YAML to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode: ```yaml -root: .bmad-core -IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name} where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name. -REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.yaml), or ask for clarification if ambiguous. +IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name. +REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match. activation-instructions: - Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER! - Only read the files/tasks listed here when user selects them for execution to minimize context usage diff --git a/bmad-core/agents/sm.md b/bmad-core/agents/sm.md index abf5f94d..3785f087 100644 --- a/bmad-core/agents/sm.md +++ b/bmad-core/agents/sm.md @@ -1,11 +1,10 @@ # sm -CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode: +CRITICAL: Read the full YAML to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode: ```yaml -root: .bmad-core -IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name} where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name. -REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.yaml), or ask for clarification if ambiguous. +IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name. +REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match. activation-instructions: - Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER! - The customization field ALWAYS takes precedence over any conflicting instructions diff --git a/bmad-core/agents/ux-expert.md b/bmad-core/agents/ux-expert.md index 207ed38c..84def70c 100644 --- a/bmad-core/agents/ux-expert.md +++ b/bmad-core/agents/ux-expert.md @@ -1,11 +1,10 @@ # ux-expert -CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode: +CRITICAL: Read the full YAML to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode: ```yaml -root: .bmad-core -IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}.md where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name. -REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), or ask for clarification if ambiguous. +IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name. +REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match. activation-instructions: - Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER! - Only read the files/tasks listed here when user selects them for execution to minimize context usage diff --git a/bmad-core/tasks/create-next-story.md b/bmad-core/tasks/create-next-story.md index 45bd62ca..60a653d4 100644 --- a/bmad-core/tasks/create-next-story.md +++ b/bmad-core/tasks/create-next-story.md @@ -11,7 +11,6 @@ To identify the next logical story based on project progress and epic definition - Load `.bmad-core/core-config.yaml` from the project root - If the file does not exist, HALT and inform the user: "core-config.yaml not found. This file is required for story creation. You can either: 1) Copy it from GITHUB bmad-core/core-config.yaml and configure it for your project OR 2) Run the BMad installer against your project to upgrade and add the file automatically. Please add and configure core-config.yaml before proceeding." - Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*`, `workflow.*` -- If `workflow.trackProgress: true`, use `utils/plan-management.md` to check plan sequence and warn if out of order ### 1. Identify Next Story for Preparation diff --git a/bmad-core/tasks/validate-next-story.md b/bmad-core/tasks/validate-next-story.md index 847b4e51..6ac49a1c 100644 --- a/bmad-core/tasks/validate-next-story.md +++ b/bmad-core/tasks/validate-next-story.md @@ -8,7 +8,7 @@ To comprehensively validate a story draft before implementation begins, ensuring ### 0. Load Core Configuration and Inputs -- Load `.bmad-core/core-config.yaml` from the project root +- Load `.bmad-core/core-config.yaml` - If the file does not exist, HALT and inform the user: "core-config.yaml not found. This file is required for story validation." - Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*` - Identify and load the following inputs: diff --git a/bmad-core/utils/plan-management.md b/bmad-core/utils/plan-management.md deleted file mode 100644 index 081a4218..00000000 --- a/bmad-core/utils/plan-management.md +++ /dev/null @@ -1,219 +0,0 @@ -# Plan Management Utility - -## Purpose - -Provides utilities for agents and tasks to interact with workflow plans, check progress, update status, and ensure workflow steps are executed in the appropriate sequence. - -## Core Functions - -### 1. Check Plan Existence - -Check for workflow plan: - -1. Look for docs/workflow-plan.md (default location) -2. Return plan status to user (exists/not exists) - if not exists then HALT. - -### 2. Parse Plan Status - -[[LLM: Extract current progress from the plan document]] - -**Plan Parsing Logic:** - -1. **Identify Step Structure**: - - Look for checkbox lines: `- [ ]` or `- [x]` - - Extract step IDs from comments: `` - - Identify agent assignments: `` - -2. **Determine Current State**: - - Last completed step (highest numbered `[x]`) - - Next expected step (first `[ ]` after completed steps) - - Overall progress percentage - -3. **Extract Metadata**: - - Workflow type from plan header - - Decision points and their status - - Any deviation notes - -### 3. Sequence Validation - -[[LLM: Check if requested action aligns with plan sequence]] - -**Validation Rules:** - -1. **Strict Mode** (enforceSequence: true): - - Must complete steps in exact order - - Warn and block if out of sequence - - Require explicit override justification - -2. **Flexible Mode** (enforceSequence: false): - - Warn about sequence deviation - - Allow with confirmation - - Log deviation reason - -**Warning Templates:** - -```text -SEQUENCE WARNING: -The workflow plan shows you should complete "{expected_step}" next. -You're attempting to: "{requested_action}" - -In strict mode: Block and require plan update -In flexible mode: Allow with confirmation -``` - -### 4. Plan Update Operations - -[[LLM: Provide consistent way to update plan progress]] - -**Update Actions:** - -1. **Mark Step Complete**: - - Change `- [ ]` to `- [x]` - - Add completion timestamp comment - - Update any status metadata - -2. **Add Deviation Note**: - - Insert note explaining why sequence changed - - Reference the deviation in plan - -3. **Update Current Step Pointer**: - - Add/move `` marker - - Update last-modified timestamp - -### 5. Integration Instructions - -[[LLM: How agents and tasks should use this utility]] - -**For Agents (startup sequence)**: - -```text -1. Check if plan exists using this utility -2. If exists: - - Parse current status - - Show user: "Active workflow plan detected. Current step: {X}" - - Suggest: "Next recommended action: {next_step}" -3. Continue with normal startup -``` - -**For Tasks (pre-execution)**: - -```text -1. Check if plan exists -2. If exists: - - Verify this task aligns with plan - - If not aligned: - - In strict mode: Show warning and stop - - In flexible mode: Show warning and ask for confirmation -3. After task completion: - - Update plan if task was a planned step - - Add note if task was unplanned -``` - -### 6. Plan Status Report Format - -[[LLM: Standard format for showing plan status]] - -```text -📋 Workflow Plan Status -━━━━━━━━━━━━━━━━━━━━ -Workflow: {workflow_name} -Progress: {X}% complete ({completed}/{total} steps) - -✅ Completed: -- {completed_step_1} -- {completed_step_2} - -🔄 Current Step: -- {current_step_description} - -📌 Upcoming: -- {next_step_1} -- {next_step_2} - -⚠️ Notes: -- {any_deviations_or_notes} -``` - -### 7. Decision Point Handling - -[[LLM: Special handling for workflow decision points]] - -When encountering a decision point in the plan: - -1. **Identify Decision Marker**: `` -2. **Check Decision Status**: Made/Pending -3. **If Pending**: - - Block progress until decision made - - Show options to user - - Record decision when made -4. **If Made**: - - Verify current path aligns with decision - - Warn if attempting alternate path - -### 8. Plan Abandonment - -[[LLM: Graceful handling when user wants to stop following plan]] - -If user wants to abandon plan: - -1. Confirm abandonment intent -2. Add abandonment note to plan -3. Mark plan as "Abandoned" in header -4. Stop plan checking for remainder of session -5. Suggest creating new plan if needed - -## Usage Examples - -### Example 1: Agent Startup Check - -```text -BMad Master starting... - -[Check for plan] -Found active workflow plan: brownfield-fullstack -Progress: 40% complete (4/10 steps) -Current step: Create PRD (pm agent) - -Suggestion: Based on your plan, you should work with the PM agent next. -Use *agent pm to switch, or *plan-status to see full progress. -``` - -### Example 2: Task Sequence Warning - -```text -User: *task create-next-story - -[Plan check triggered] -⚠️ SEQUENCE WARNING: -Your workflow plan indicates the PRD hasn't been created yet. -Creating stories before the PRD may lead to incomplete requirements. - -Would you like to: -1. Continue anyway (will note deviation in plan) -2. Switch to creating PRD first (*agent pm) -3. View plan status (*plan-status) -``` - -### Example 3: Automatic Plan Update - -```text -[After completing create-doc task for PRD] - -✅ Plan Updated: Marked "Create PRD" as complete -📍 Next step: Create Architecture Document (architect agent) -``` - -## Implementation Notes - -- This utility should be lightweight and fast -- Plan parsing should be resilient to format variations -- Always preserve user agency - warnings not blocks (unless strict mode) -- Plan updates should be atomic to prevent corruption -- Consider plan versioning for rollback capability - -## Error Handling - -- Missing plan: Return null, don't error -- Malformed plan: Warn but continue, treat as no plan -- Update failures: Log but don't block task completion -- Parse errors: Fallback to basic text search \ No newline at end of file diff --git a/bmad-core/workflows/brownfield-fullstack.yaml b/bmad-core/workflows/brownfield-fullstack.yaml index 44859040..e933884c 100644 --- a/bmad-core/workflows/brownfield-fullstack.yaml +++ b/bmad-core/workflows/brownfield-fullstack.yaml @@ -182,7 +182,7 @@ workflow: All stories implemented and reviewed! Project development phase complete. - Reference: data#bmad-kb:IDE Development Workflow + Reference: {root}/data/bmad-kb.md#IDE Development Workflow flow_diagram: | ```mermaid diff --git a/bmad-core/workflows/brownfield-service.yaml b/bmad-core/workflows/brownfield-service.yaml index e3e7ef0f..8bce3485 100644 --- a/bmad-core/workflows/brownfield-service.yaml +++ b/bmad-core/workflows/brownfield-service.yaml @@ -128,7 +128,7 @@ workflow: All stories implemented and reviewed! Project development phase complete. - Reference: data#bmad-kb:IDE Development Workflow + Reference: {root}/data/bmad-kb.md#IDE Development Workflow flow_diagram: | ```mermaid diff --git a/bmad-core/workflows/brownfield-ui.yaml b/bmad-core/workflows/brownfield-ui.yaml index c824e668..4de69530 100644 --- a/bmad-core/workflows/brownfield-ui.yaml +++ b/bmad-core/workflows/brownfield-ui.yaml @@ -135,7 +135,7 @@ workflow: All stories implemented and reviewed! Project development phase complete. - Reference: data#bmad-kb:IDE Development Workflow + Reference: {root}/data/bmad-kb.md#IDE Development Workflow flow_diagram: | ```mermaid diff --git a/bmad-core/workflows/greenfield-fullstack.yaml b/bmad-core/workflows/greenfield-fullstack.yaml index 7c10e540..4e722030 100644 --- a/bmad-core/workflows/greenfield-fullstack.yaml +++ b/bmad-core/workflows/greenfield-fullstack.yaml @@ -160,7 +160,7 @@ workflow: All stories implemented and reviewed! Project development phase complete. - Reference: data#bmad-kb:IDE Development Workflow + Reference: {root}/data/bmad-kb.md#IDE Development Workflow flow_diagram: | ```mermaid diff --git a/bmad-core/workflows/greenfield-ui.yaml b/bmad-core/workflows/greenfield-ui.yaml index ba9a8850..bd68fc19 100644 --- a/bmad-core/workflows/greenfield-ui.yaml +++ b/bmad-core/workflows/greenfield-ui.yaml @@ -155,7 +155,7 @@ workflow: All stories implemented and reviewed! Project development phase complete. - Reference: data#bmad-kb:IDE Development Workflow + Reference: {root}/data/bmad-kb.md#IDE Development Workflow flow_diagram: | ```mermaid diff --git a/dist/agents/analyst.txt b/dist/agents/analyst.txt index 24f187e8..d2c5abfc 100644 --- a/dist/agents/analyst.txt +++ b/dist/agents/analyst.txt @@ -2732,7 +2732,7 @@ For full details, see `CONTRIBUTING.md`. Key points: - Atomic commits - one logical change per commit - Must align with guiding principles -**Core Principles** (from GUIDING-PRINCIPLES.md): +**Core Principles** (from docs/GUIDING-PRINCIPLES.md): - **Dev Agents Must Be Lean**: Minimize dependencies, save context for code - **Natural Language First**: Everything in markdown, no code in core @@ -2802,8 +2802,8 @@ Use the **expansion-creator** pack to build your own: ## Getting Help -- **Commands**: Use `/help` in any environment to see available commands -- **Agent Switching**: Use `/switch agent-name` with orchestrator for role changes +- **Commands**: Use `*/*help` in any environment to see available commands +- **Agent Switching**: Use `*/*switch agent-name` with orchestrator for role changes - **Documentation**: Check `docs/` folder for project-specific context - **Community**: Discord and GitHub resources available for support - **Contributing**: See `CONTRIBUTING.md` for full guidelines diff --git a/dist/agents/bmad-master.txt b/dist/agents/bmad-master.txt index 94285183..b1d6e8e4 100644 --- a/dist/agents/bmad-master.txt +++ b/dist/agents/bmad-master.txt @@ -47,50 +47,31 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, fol ```yaml activation-instructions: - Greet the user with your name and role, and inform of the *help command. - - Check for active workflow plan using the utils plan-management agent: name: BMad Master id: bmad-master title: BMad Master Task Executor icon: 🧙 - whenToUse: Use when you need comprehensive expertise across all domains or rapid context switching between multiple agent capabilities + whenToUse: Use when you need comprehensive expertise across all domains, running 1 off tasks that do not require a persona, or just wanting to use the same agent for many things. persona: role: Master Task Executor & BMad Method Expert - style: Efficient, direct, action-oriented. Executes any BMad task/template/util/checklist with precision identity: Universal executor of all BMad-Method capabilities, directly runs any resource - focus: Direct execution without transformation, load resources only when needed core_principles: - Execute any resource directly without persona transformation - Load resources at runtime, never pre-load - - Expert knowledge of all BMad resources - - Track execution state and guide multi-step plans - - Use numbered lists for choices + - Expert knowledge of all BMad resources if using *kb + - Always presents numbered lists for choices - Process (*) commands immediately, All commands require * prefix when used (e.g., *help) commands: - help: Show these listed commands in a numbered list - - kb: Toggle KB mode off (default) or on, when on will load and reference the data/bmad-kb and converse with the user answering his questions with this informational resource + - kb: Toggle KB mode off (default) or on, when on will load and reference the data/bmad-kb.md and converse with the user answering his questions with this informational resource - task {task}: Execute task, if not found or none specified, ONLY list available dependencies/tasks listed below - - list {task|template|util|checklist|workflow}: List resources by type ONLY from the corresponding dependencies sub item below - create-doc {template}: execute task create-doc (no template = ONLY show available templates listed under dependencies/templates below) - - create-prd-alpha: Execute task create-doc2 with .bmad-core/templates/prd-tmpl2.yaml (EXPERIMENTAL) - execute-checklist {checklist}: Run task execute-checklist (no checklist = ONLY show available checklists listed under dependencies/checklist below) - shard-doc {document} {destination}: run the task shard-doc against the optionally provided document to the specified destination - - plan: Execute the task Create workflow plan - - plan-status: Show current workflow plan progress - - plan-update: Update workflow plan status - yolo: Toggle Yolo Mode - doc-out: Output full document to current destination file - exit: Exit (confirm) -workflow-guidance: - - When user asks about workflows, offer: (Experimental-Feature) Would you like me to create a workflow plan first? (*plan) - - For complex projects, suggest planning before execution - - Plan command maps to create-workflow-plan task -execution: - - NEVER use tools during startup - only announce and wait - - Runtime discovery ONLY when user requests specific resources - - Workflow: User request → Runtime discovery → Load resource → Execute instructions → Guide inputs → Provide feedback - - For workflow requests: Suggest *plan command first for complex projects - - Suggest related resources after completion dependencies: tasks: - advanced-elicitation.md @@ -125,9 +106,6 @@ dependencies: - brainstorming-techniques.md - elicitation-methods.md - technical-preferences.md - utils: - - plan-management.md - - workflow-management.md workflows: - brownfield-fullstack.md - brownfield-service.md @@ -1805,7 +1783,6 @@ To identify the next logical story based on project progress and epic definition - Load `.bmad-core/core-config.yaml` from the project root - If the file does not exist, HALT and inform the user: "core-config.yaml not found. This file is required for story creation. You can either: 1) Copy it from GITHUB bmad-core/core-config.yaml and configure it for your project OR 2) Run the BMad installer against your project to upgrade and add the file automatically. Please add and configure core-config.yaml before proceeding." - Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*`, `workflow.*` -- If `workflow.trackProgress: true`, use `utils/plan-management.md` to check plan sequence and warn if out of order ### 1. Identify Next Story for Preparation @@ -9034,7 +9011,7 @@ For full details, see `CONTRIBUTING.md`. Key points: - Atomic commits - one logical change per commit - Must align with guiding principles -**Core Principles** (from GUIDING-PRINCIPLES.md): +**Core Principles** (from docs/GUIDING-PRINCIPLES.md): - **Dev Agents Must Be Lean**: Minimize dependencies, save context for code - **Natural Language First**: Everything in markdown, no code in core @@ -9104,8 +9081,8 @@ Use the **expansion-creator** pack to build your own: ## Getting Help -- **Commands**: Use `/help` in any environment to see available commands -- **Agent Switching**: Use `/switch agent-name` with orchestrator for role changes +- **Commands**: Use `*/*help` in any environment to see available commands +- **Agent Switching**: Use `*/*switch agent-name` with orchestrator for role changes - **Documentation**: Check `docs/` folder for project-specific context - **Community**: Discord and GitHub resources available for support - **Contributing**: See `CONTRIBUTING.md` for full guidelines @@ -9292,297 +9269,3 @@ Use the **expansion-creator** pack to build your own: None Listed ==================== END: .bmad-core/data/technical-preferences.md ==================== - -==================== START: .bmad-core/utils/plan-management.md ==================== -# Plan Management Utility - -## Purpose - -Provides utilities for agents and tasks to interact with workflow plans, check progress, update status, and ensure workflow steps are executed in the appropriate sequence. - -## Core Functions - -### 1. Check Plan Existence - -Check for workflow plan: - -1. Look for docs/workflow-plan.md (default location) -2. Return plan status to user (exists/not exists) - if not exists then HALT. - -### 2. Parse Plan Status - -[[LLM: Extract current progress from the plan document]] - -**Plan Parsing Logic:** - -1. **Identify Step Structure**: - - Look for checkbox lines: `- [ ]` or `- [x]` - - Extract step IDs from comments: `` - - Identify agent assignments: `` - -2. **Determine Current State**: - - Last completed step (highest numbered `[x]`) - - Next expected step (first `[ ]` after completed steps) - - Overall progress percentage - -3. **Extract Metadata**: - - Workflow type from plan header - - Decision points and their status - - Any deviation notes - -### 3. Sequence Validation - -[[LLM: Check if requested action aligns with plan sequence]] - -**Validation Rules:** - -1. **Strict Mode** (enforceSequence: true): - - Must complete steps in exact order - - Warn and block if out of sequence - - Require explicit override justification - -2. **Flexible Mode** (enforceSequence: false): - - Warn about sequence deviation - - Allow with confirmation - - Log deviation reason - -**Warning Templates:** - -```text -SEQUENCE WARNING: -The workflow plan shows you should complete "{expected_step}" next. -You're attempting to: "{requested_action}" - -In strict mode: Block and require plan update -In flexible mode: Allow with confirmation -``` - -### 4. Plan Update Operations - -[[LLM: Provide consistent way to update plan progress]] - -**Update Actions:** - -1. **Mark Step Complete**: - - Change `- [ ]` to `- [x]` - - Add completion timestamp comment - - Update any status metadata - -2. **Add Deviation Note**: - - Insert note explaining why sequence changed - - Reference the deviation in plan - -3. **Update Current Step Pointer**: - - Add/move `` marker - - Update last-modified timestamp - -### 5. Integration Instructions - -[[LLM: How agents and tasks should use this utility]] - -**For Agents (startup sequence)**: - -```text -1. Check if plan exists using this utility -2. If exists: - - Parse current status - - Show user: "Active workflow plan detected. Current step: {X}" - - Suggest: "Next recommended action: {next_step}" -3. Continue with normal startup -``` - -**For Tasks (pre-execution)**: - -```text -1. Check if plan exists -2. If exists: - - Verify this task aligns with plan - - If not aligned: - - In strict mode: Show warning and stop - - In flexible mode: Show warning and ask for confirmation -3. After task completion: - - Update plan if task was a planned step - - Add note if task was unplanned -``` - -### 6. Plan Status Report Format - -[[LLM: Standard format for showing plan status]] - -```text -📋 Workflow Plan Status -━━━━━━━━━━━━━━━━━━━━ -Workflow: {workflow_name} -Progress: {X}% complete ({completed}/{total} steps) - -✅ Completed: -- {completed_step_1} -- {completed_step_2} - -🔄 Current Step: -- {current_step_description} - -📌 Upcoming: -- {next_step_1} -- {next_step_2} - -⚠️ Notes: -- {any_deviations_or_notes} -``` - -### 7. Decision Point Handling - -[[LLM: Special handling for workflow decision points]] - -When encountering a decision point in the plan: - -1. **Identify Decision Marker**: `` -2. **Check Decision Status**: Made/Pending -3. **If Pending**: - - Block progress until decision made - - Show options to user - - Record decision when made -4. **If Made**: - - Verify current path aligns with decision - - Warn if attempting alternate path - -### 8. Plan Abandonment - -[[LLM: Graceful handling when user wants to stop following plan]] - -If user wants to abandon plan: - -1. Confirm abandonment intent -2. Add abandonment note to plan -3. Mark plan as "Abandoned" in header -4. Stop plan checking for remainder of session -5. Suggest creating new plan if needed - -## Usage Examples - -### Example 1: Agent Startup Check - -```text -BMad Master starting... - -[Check for plan] -Found active workflow plan: brownfield-fullstack -Progress: 40% complete (4/10 steps) -Current step: Create PRD (pm agent) - -Suggestion: Based on your plan, you should work with the PM agent next. -Use *agent pm to switch, or *plan-status to see full progress. -``` - -### Example 2: Task Sequence Warning - -```text -User: *task create-next-story - -[Plan check triggered] -⚠️ SEQUENCE WARNING: -Your workflow plan indicates the PRD hasn't been created yet. -Creating stories before the PRD may lead to incomplete requirements. - -Would you like to: -1. Continue anyway (will note deviation in plan) -2. Switch to creating PRD first (*agent pm) -3. View plan status (*plan-status) -``` - -### Example 3: Automatic Plan Update - -```text -[After completing create-doc task for PRD] - -✅ Plan Updated: Marked "Create PRD" as complete -📍 Next step: Create Architecture Document (architect agent) -``` - -## Implementation Notes - -- This utility should be lightweight and fast -- Plan parsing should be resilient to format variations -- Always preserve user agency - warnings not blocks (unless strict mode) -- Plan updates should be atomic to prevent corruption -- Consider plan versioning for rollback capability - -## Error Handling - -- Missing plan: Return null, don't error -- Malformed plan: Warn but continue, treat as no plan -- Update failures: Log but don't block task completion -- Parse errors: Fallback to basic text search -==================== END: .bmad-core/utils/plan-management.md ==================== - -==================== START: .bmad-core/utils/workflow-management.md ==================== -# Workflow Management - -Enables BMad orchestrator to manage and execute team workflows. - -## Dynamic Workflow Loading - -Read available workflows from current team configuration's `workflows` field. Each team bundle defines its own supported workflows. - -**Key Commands**: - -- `/workflows` - List workflows in current bundle or workflows folder -- `/agent-list` - Show agents in current bundle - -## Workflow Commands - -### /workflows - -Lists available workflows with titles and descriptions. - -### /workflow-start {workflow-id} - -Starts workflow and transitions to first agent. - -### /workflow-status - -Shows current progress, completed artifacts, and next steps. - -### /workflow-resume - -Resumes workflow from last position. User can provide completed artifacts. - -### /workflow-next - -Shows next recommended agent and action. - -## Execution Flow - -1. **Starting**: Load definition → Identify first stage → Transition to agent → Guide artifact creation - -2. **Stage Transitions**: Mark complete → Check conditions → Load next agent → Pass artifacts - -3. **Artifact Tracking**: Track status, creator, timestamps in workflow_state - -4. **Interruption Handling**: Analyze provided artifacts → Determine position → Suggest next step - -## Context Passing - -When transitioning, pass: - -- Previous artifacts -- Current workflow stage -- Expected outputs -- Decisions/constraints - -## Multi-Path Workflows - -Handle conditional paths by asking clarifying questions when needed. - -## Best Practices - -1. Show progress -2. Explain transitions -3. Preserve context -4. Allow flexibility -5. Track state - -## Agent Integration - -Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs. -==================== END: .bmad-core/utils/workflow-management.md ==================== diff --git a/dist/agents/bmad-orchestrator.txt b/dist/agents/bmad-orchestrator.txt index 19357c46..84d12802 100644 --- a/dist/agents/bmad-orchestrator.txt +++ b/dist/agents/bmad-orchestrator.txt @@ -47,9 +47,6 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, fol ```yaml activation-instructions: - Mention *help shows all available commands and options - - Check for active workflow plan using .bmad-core/utils/plan-management.md - - 'If plan exists: Show 📋 Active plan: {workflow} ({progress}% complete). Use *plan-status for details.' - - 'If plan exists: Suggest next action based on plan progress' - Assess user goal against available agents and workflows in this bundle - If clear match to an agent's expertise, suggest transformation with *agent command - If project-oriented, suggest *workflow-guidance to explore options @@ -171,7 +168,6 @@ dependencies: - bmad-kb.md - elicitation-methods.md utils: - - plan-management.md - workflow-management.md ``` ==================== END: .bmad-core/agents/bmad-orchestrator.md ==================== @@ -1723,7 +1719,7 @@ For full details, see `CONTRIBUTING.md`. Key points: - Atomic commits - one logical change per commit - Must align with guiding principles -**Core Principles** (from GUIDING-PRINCIPLES.md): +**Core Principles** (from docs/GUIDING-PRINCIPLES.md): - **Dev Agents Must Be Lean**: Minimize dependencies, save context for code - **Natural Language First**: Everything in markdown, no code in core @@ -1793,8 +1789,8 @@ Use the **expansion-creator** pack to build your own: ## Getting Help -- **Commands**: Use `/help` in any environment to see available commands -- **Agent Switching**: Use `/switch agent-name` with orchestrator for role changes +- **Commands**: Use `*/*help` in any environment to see available commands +- **Agent Switching**: Use `*/*switch agent-name` with orchestrator for role changes - **Documentation**: Check `docs/` folder for project-specific context - **Community**: Discord and GitHub resources available for support - **Contributing**: See `CONTRIBUTING.md` for full guidelines @@ -1937,228 +1933,6 @@ Use the **expansion-creator** pack to build your own: - Prepare to continue without additional elicitation ==================== END: .bmad-core/data/elicitation-methods.md ==================== -==================== START: .bmad-core/utils/plan-management.md ==================== -# Plan Management Utility - -## Purpose - -Provides utilities for agents and tasks to interact with workflow plans, check progress, update status, and ensure workflow steps are executed in the appropriate sequence. - -## Core Functions - -### 1. Check Plan Existence - -Check for workflow plan: - -1. Look for docs/workflow-plan.md (default location) -2. Return plan status to user (exists/not exists) - if not exists then HALT. - -### 2. Parse Plan Status - -[[LLM: Extract current progress from the plan document]] - -**Plan Parsing Logic:** - -1. **Identify Step Structure**: - - Look for checkbox lines: `- [ ]` or `- [x]` - - Extract step IDs from comments: `` - - Identify agent assignments: `` - -2. **Determine Current State**: - - Last completed step (highest numbered `[x]`) - - Next expected step (first `[ ]` after completed steps) - - Overall progress percentage - -3. **Extract Metadata**: - - Workflow type from plan header - - Decision points and their status - - Any deviation notes - -### 3. Sequence Validation - -[[LLM: Check if requested action aligns with plan sequence]] - -**Validation Rules:** - -1. **Strict Mode** (enforceSequence: true): - - Must complete steps in exact order - - Warn and block if out of sequence - - Require explicit override justification - -2. **Flexible Mode** (enforceSequence: false): - - Warn about sequence deviation - - Allow with confirmation - - Log deviation reason - -**Warning Templates:** - -```text -SEQUENCE WARNING: -The workflow plan shows you should complete "{expected_step}" next. -You're attempting to: "{requested_action}" - -In strict mode: Block and require plan update -In flexible mode: Allow with confirmation -``` - -### 4. Plan Update Operations - -[[LLM: Provide consistent way to update plan progress]] - -**Update Actions:** - -1. **Mark Step Complete**: - - Change `- [ ]` to `- [x]` - - Add completion timestamp comment - - Update any status metadata - -2. **Add Deviation Note**: - - Insert note explaining why sequence changed - - Reference the deviation in plan - -3. **Update Current Step Pointer**: - - Add/move `` marker - - Update last-modified timestamp - -### 5. Integration Instructions - -[[LLM: How agents and tasks should use this utility]] - -**For Agents (startup sequence)**: - -```text -1. Check if plan exists using this utility -2. If exists: - - Parse current status - - Show user: "Active workflow plan detected. Current step: {X}" - - Suggest: "Next recommended action: {next_step}" -3. Continue with normal startup -``` - -**For Tasks (pre-execution)**: - -```text -1. Check if plan exists -2. If exists: - - Verify this task aligns with plan - - If not aligned: - - In strict mode: Show warning and stop - - In flexible mode: Show warning and ask for confirmation -3. After task completion: - - Update plan if task was a planned step - - Add note if task was unplanned -``` - -### 6. Plan Status Report Format - -[[LLM: Standard format for showing plan status]] - -```text -📋 Workflow Plan Status -━━━━━━━━━━━━━━━━━━━━ -Workflow: {workflow_name} -Progress: {X}% complete ({completed}/{total} steps) - -✅ Completed: -- {completed_step_1} -- {completed_step_2} - -🔄 Current Step: -- {current_step_description} - -📌 Upcoming: -- {next_step_1} -- {next_step_2} - -⚠️ Notes: -- {any_deviations_or_notes} -``` - -### 7. Decision Point Handling - -[[LLM: Special handling for workflow decision points]] - -When encountering a decision point in the plan: - -1. **Identify Decision Marker**: `` -2. **Check Decision Status**: Made/Pending -3. **If Pending**: - - Block progress until decision made - - Show options to user - - Record decision when made -4. **If Made**: - - Verify current path aligns with decision - - Warn if attempting alternate path - -### 8. Plan Abandonment - -[[LLM: Graceful handling when user wants to stop following plan]] - -If user wants to abandon plan: - -1. Confirm abandonment intent -2. Add abandonment note to plan -3. Mark plan as "Abandoned" in header -4. Stop plan checking for remainder of session -5. Suggest creating new plan if needed - -## Usage Examples - -### Example 1: Agent Startup Check - -```text -BMad Master starting... - -[Check for plan] -Found active workflow plan: brownfield-fullstack -Progress: 40% complete (4/10 steps) -Current step: Create PRD (pm agent) - -Suggestion: Based on your plan, you should work with the PM agent next. -Use *agent pm to switch, or *plan-status to see full progress. -``` - -### Example 2: Task Sequence Warning - -```text -User: *task create-next-story - -[Plan check triggered] -⚠️ SEQUENCE WARNING: -Your workflow plan indicates the PRD hasn't been created yet. -Creating stories before the PRD may lead to incomplete requirements. - -Would you like to: -1. Continue anyway (will note deviation in plan) -2. Switch to creating PRD first (*agent pm) -3. View plan status (*plan-status) -``` - -### Example 3: Automatic Plan Update - -```text -[After completing create-doc task for PRD] - -✅ Plan Updated: Marked "Create PRD" as complete -📍 Next step: Create Architecture Document (architect agent) -``` - -## Implementation Notes - -- This utility should be lightweight and fast -- Plan parsing should be resilient to format variations -- Always preserve user agency - warnings not blocks (unless strict mode) -- Plan updates should be atomic to prevent corruption -- Consider plan versioning for rollback capability - -## Error Handling - -- Missing plan: Return null, don't error -- Malformed plan: Warn but continue, treat as no plan -- Update failures: Log but don't block task completion -- Parse errors: Fallback to basic text search -==================== END: .bmad-core/utils/plan-management.md ==================== - ==================== START: .bmad-core/utils/workflow-management.md ==================== # Workflow Management diff --git a/dist/agents/dev.txt b/dist/agents/dev.txt index 21eeac8b..b3644707 100644 --- a/dist/agents/dev.txt +++ b/dist/agents/dev.txt @@ -193,7 +193,7 @@ To comprehensively validate a story draft before implementation begins, ensuring ### 0. Load Core Configuration and Inputs -- Load `.bmad-core/core-config.yaml` from the project root +- Load `.bmad-core/core-config.yaml` - If the file does not exist, HALT and inform the user: "core-config.yaml not found. This file is required for story validation." - Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*` - Identify and load the following inputs: diff --git a/dist/agents/po.txt b/dist/agents/po.txt index 4daf7ee1..298c256c 100644 --- a/dist/agents/po.txt +++ b/dist/agents/po.txt @@ -792,7 +792,7 @@ To comprehensively validate a story draft before implementation begins, ensuring ### 0. Load Core Configuration and Inputs -- Load `.bmad-core/core-config.yaml` from the project root +- Load `.bmad-core/core-config.yaml` - If the file does not exist, HALT and inform the user: "core-config.yaml not found. This file is required for story validation." - Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*` - Identify and load the following inputs: diff --git a/dist/agents/sm.txt b/dist/agents/sm.txt index c5de7a02..fb10cc52 100644 --- a/dist/agents/sm.txt +++ b/dist/agents/sm.txt @@ -98,7 +98,6 @@ To identify the next logical story based on project progress and epic definition - Load `.bmad-core/core-config.yaml` from the project root - If the file does not exist, HALT and inform the user: "core-config.yaml not found. This file is required for story creation. You can either: 1) Copy it from GITHUB bmad-core/core-config.yaml and configure it for your project OR 2) Run the BMad installer against your project to upgrade and add the file automatically. Please add and configure core-config.yaml before proceeding." - Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*`, `workflow.*` -- If `workflow.trackProgress: true`, use `utils/plan-management.md` to check plan sequence and warn if out of order ### 1. Identify Next Story for Preparation diff --git a/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt b/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt index ebc5fbb7..f0a2af52 100644 --- a/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +++ b/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt @@ -128,9 +128,6 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, fol ```yaml activation-instructions: - Mention *help shows all available commands and options - - Check for active workflow plan using .bmad-2d-phaser-game-dev/utils/plan-management.md - - 'If plan exists: Show 📋 Active plan: {workflow} ({progress}% complete). Use *plan-status for details.' - - 'If plan exists: Suggest next action based on plan progress' - Assess user goal against available agents and workflows in this bundle - If clear match to an agent's expertise, suggest transformation with *agent command - If project-oriented, suggest *workflow-guidance to explore options @@ -252,7 +249,6 @@ dependencies: - bmad-kb.md - elicitation-methods.md utils: - - plan-management.md - workflow-management.md ``` ==================== END: .bmad-2d-phaser-game-dev/agents/bmad-orchestrator.md ==================== @@ -3374,228 +3370,6 @@ The update is successful when: - Prepare to continue without additional elicitation ==================== END: .bmad-2d-phaser-game-dev/data/elicitation-methods.md ==================== -==================== START: .bmad-2d-phaser-game-dev/utils/plan-management.md ==================== -# Plan Management Utility - -## Purpose - -Provides utilities for agents and tasks to interact with workflow plans, check progress, update status, and ensure workflow steps are executed in the appropriate sequence. - -## Core Functions - -### 1. Check Plan Existence - -Check for workflow plan: - -1. Look for docs/workflow-plan.md (default location) -2. Return plan status to user (exists/not exists) - if not exists then HALT. - -### 2. Parse Plan Status - -[[LLM: Extract current progress from the plan document]] - -**Plan Parsing Logic:** - -1. **Identify Step Structure**: - - Look for checkbox lines: `- [ ]` or `- [x]` - - Extract step IDs from comments: `` - - Identify agent assignments: `` - -2. **Determine Current State**: - - Last completed step (highest numbered `[x]`) - - Next expected step (first `[ ]` after completed steps) - - Overall progress percentage - -3. **Extract Metadata**: - - Workflow type from plan header - - Decision points and their status - - Any deviation notes - -### 3. Sequence Validation - -[[LLM: Check if requested action aligns with plan sequence]] - -**Validation Rules:** - -1. **Strict Mode** (enforceSequence: true): - - Must complete steps in exact order - - Warn and block if out of sequence - - Require explicit override justification - -2. **Flexible Mode** (enforceSequence: false): - - Warn about sequence deviation - - Allow with confirmation - - Log deviation reason - -**Warning Templates:** - -```text -SEQUENCE WARNING: -The workflow plan shows you should complete "{expected_step}" next. -You're attempting to: "{requested_action}" - -In strict mode: Block and require plan update -In flexible mode: Allow with confirmation -``` - -### 4. Plan Update Operations - -[[LLM: Provide consistent way to update plan progress]] - -**Update Actions:** - -1. **Mark Step Complete**: - - Change `- [ ]` to `- [x]` - - Add completion timestamp comment - - Update any status metadata - -2. **Add Deviation Note**: - - Insert note explaining why sequence changed - - Reference the deviation in plan - -3. **Update Current Step Pointer**: - - Add/move `` marker - - Update last-modified timestamp - -### 5. Integration Instructions - -[[LLM: How agents and tasks should use this utility]] - -**For Agents (startup sequence)**: - -```text -1. Check if plan exists using this utility -2. If exists: - - Parse current status - - Show user: "Active workflow plan detected. Current step: {X}" - - Suggest: "Next recommended action: {next_step}" -3. Continue with normal startup -``` - -**For Tasks (pre-execution)**: - -```text -1. Check if plan exists -2. If exists: - - Verify this task aligns with plan - - If not aligned: - - In strict mode: Show warning and stop - - In flexible mode: Show warning and ask for confirmation -3. After task completion: - - Update plan if task was a planned step - - Add note if task was unplanned -``` - -### 6. Plan Status Report Format - -[[LLM: Standard format for showing plan status]] - -```text -📋 Workflow Plan Status -━━━━━━━━━━━━━━━━━━━━ -Workflow: {workflow_name} -Progress: {X}% complete ({completed}/{total} steps) - -✅ Completed: -- {completed_step_1} -- {completed_step_2} - -🔄 Current Step: -- {current_step_description} - -📌 Upcoming: -- {next_step_1} -- {next_step_2} - -⚠️ Notes: -- {any_deviations_or_notes} -``` - -### 7. Decision Point Handling - -[[LLM: Special handling for workflow decision points]] - -When encountering a decision point in the plan: - -1. **Identify Decision Marker**: `` -2. **Check Decision Status**: Made/Pending -3. **If Pending**: - - Block progress until decision made - - Show options to user - - Record decision when made -4. **If Made**: - - Verify current path aligns with decision - - Warn if attempting alternate path - -### 8. Plan Abandonment - -[[LLM: Graceful handling when user wants to stop following plan]] - -If user wants to abandon plan: - -1. Confirm abandonment intent -2. Add abandonment note to plan -3. Mark plan as "Abandoned" in header -4. Stop plan checking for remainder of session -5. Suggest creating new plan if needed - -## Usage Examples - -### Example 1: Agent Startup Check - -```text -BMad Master starting... - -[Check for plan] -Found active workflow plan: brownfield-fullstack -Progress: 40% complete (4/10 steps) -Current step: Create PRD (pm agent) - -Suggestion: Based on your plan, you should work with the PM agent next. -Use *agent pm to switch, or *plan-status to see full progress. -``` - -### Example 2: Task Sequence Warning - -```text -User: *task create-next-story - -[Plan check triggered] -⚠️ SEQUENCE WARNING: -Your workflow plan indicates the PRD hasn't been created yet. -Creating stories before the PRD may lead to incomplete requirements. - -Would you like to: -1. Continue anyway (will note deviation in plan) -2. Switch to creating PRD first (*agent pm) -3. View plan status (*plan-status) -``` - -### Example 3: Automatic Plan Update - -```text -[After completing create-doc task for PRD] - -✅ Plan Updated: Marked "Create PRD" as complete -📍 Next step: Create Architecture Document (architect agent) -``` - -## Implementation Notes - -- This utility should be lightweight and fast -- Plan parsing should be resilient to format variations -- Always preserve user agency - warnings not blocks (unless strict mode) -- Plan updates should be atomic to prevent corruption -- Consider plan versioning for rollback capability - -## Error Handling - -- Missing plan: Return null, don't error -- Malformed plan: Warn but continue, treat as no plan -- Update failures: Log but don't block task completion -- Parse errors: Fallback to basic text search -==================== END: .bmad-2d-phaser-game-dev/utils/plan-management.md ==================== - ==================== START: .bmad-2d-phaser-game-dev/utils/workflow-management.md ==================== # Workflow Management diff --git a/dist/teams/team-all.txt b/dist/teams/team-all.txt index 836c88e5..b3125d8c 100644 --- a/dist/teams/team-all.txt +++ b/dist/teams/team-all.txt @@ -64,9 +64,6 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, fol ```yaml activation-instructions: - Mention *help shows all available commands and options - - Check for active workflow plan using .bmad-core/utils/plan-management.md - - 'If plan exists: Show 📋 Active plan: {workflow} ({progress}% complete). Use *plan-status for details.' - - 'If plan exists: Suggest next action based on plan progress' - Assess user goal against available agents and workflows in this bundle - If clear match to an agent's expertise, suggest transformation with *agent command - If project-oriented, suggest *workflow-guidance to explore options @@ -188,7 +185,6 @@ dependencies: - bmad-kb.md - elicitation-methods.md utils: - - plan-management.md - workflow-management.md ``` ==================== END: .bmad-core/agents/bmad-orchestrator.md ==================== @@ -2188,7 +2184,7 @@ For full details, see `CONTRIBUTING.md`. Key points: - Atomic commits - one logical change per commit - Must align with guiding principles -**Core Principles** (from GUIDING-PRINCIPLES.md): +**Core Principles** (from docs/GUIDING-PRINCIPLES.md): - **Dev Agents Must Be Lean**: Minimize dependencies, save context for code - **Natural Language First**: Everything in markdown, no code in core @@ -2258,8 +2254,8 @@ Use the **expansion-creator** pack to build your own: ## Getting Help -- **Commands**: Use `/help` in any environment to see available commands -- **Agent Switching**: Use `/switch agent-name` with orchestrator for role changes +- **Commands**: Use `*/*help` in any environment to see available commands +- **Agent Switching**: Use `*/*switch agent-name` with orchestrator for role changes - **Documentation**: Check `docs/` folder for project-specific context - **Community**: Discord and GitHub resources available for support - **Contributing**: See `CONTRIBUTING.md` for full guidelines @@ -2402,228 +2398,6 @@ Use the **expansion-creator** pack to build your own: - Prepare to continue without additional elicitation ==================== END: .bmad-core/data/elicitation-methods.md ==================== -==================== START: .bmad-core/utils/plan-management.md ==================== -# Plan Management Utility - -## Purpose - -Provides utilities for agents and tasks to interact with workflow plans, check progress, update status, and ensure workflow steps are executed in the appropriate sequence. - -## Core Functions - -### 1. Check Plan Existence - -Check for workflow plan: - -1. Look for docs/workflow-plan.md (default location) -2. Return plan status to user (exists/not exists) - if not exists then HALT. - -### 2. Parse Plan Status - -[[LLM: Extract current progress from the plan document]] - -**Plan Parsing Logic:** - -1. **Identify Step Structure**: - - Look for checkbox lines: `- [ ]` or `- [x]` - - Extract step IDs from comments: `` - - Identify agent assignments: `` - -2. **Determine Current State**: - - Last completed step (highest numbered `[x]`) - - Next expected step (first `[ ]` after completed steps) - - Overall progress percentage - -3. **Extract Metadata**: - - Workflow type from plan header - - Decision points and their status - - Any deviation notes - -### 3. Sequence Validation - -[[LLM: Check if requested action aligns with plan sequence]] - -**Validation Rules:** - -1. **Strict Mode** (enforceSequence: true): - - Must complete steps in exact order - - Warn and block if out of sequence - - Require explicit override justification - -2. **Flexible Mode** (enforceSequence: false): - - Warn about sequence deviation - - Allow with confirmation - - Log deviation reason - -**Warning Templates:** - -```text -SEQUENCE WARNING: -The workflow plan shows you should complete "{expected_step}" next. -You're attempting to: "{requested_action}" - -In strict mode: Block and require plan update -In flexible mode: Allow with confirmation -``` - -### 4. Plan Update Operations - -[[LLM: Provide consistent way to update plan progress]] - -**Update Actions:** - -1. **Mark Step Complete**: - - Change `- [ ]` to `- [x]` - - Add completion timestamp comment - - Update any status metadata - -2. **Add Deviation Note**: - - Insert note explaining why sequence changed - - Reference the deviation in plan - -3. **Update Current Step Pointer**: - - Add/move `` marker - - Update last-modified timestamp - -### 5. Integration Instructions - -[[LLM: How agents and tasks should use this utility]] - -**For Agents (startup sequence)**: - -```text -1. Check if plan exists using this utility -2. If exists: - - Parse current status - - Show user: "Active workflow plan detected. Current step: {X}" - - Suggest: "Next recommended action: {next_step}" -3. Continue with normal startup -``` - -**For Tasks (pre-execution)**: - -```text -1. Check if plan exists -2. If exists: - - Verify this task aligns with plan - - If not aligned: - - In strict mode: Show warning and stop - - In flexible mode: Show warning and ask for confirmation -3. After task completion: - - Update plan if task was a planned step - - Add note if task was unplanned -``` - -### 6. Plan Status Report Format - -[[LLM: Standard format for showing plan status]] - -```text -📋 Workflow Plan Status -━━━━━━━━━━━━━━━━━━━━ -Workflow: {workflow_name} -Progress: {X}% complete ({completed}/{total} steps) - -✅ Completed: -- {completed_step_1} -- {completed_step_2} - -🔄 Current Step: -- {current_step_description} - -📌 Upcoming: -- {next_step_1} -- {next_step_2} - -⚠️ Notes: -- {any_deviations_or_notes} -``` - -### 7. Decision Point Handling - -[[LLM: Special handling for workflow decision points]] - -When encountering a decision point in the plan: - -1. **Identify Decision Marker**: `` -2. **Check Decision Status**: Made/Pending -3. **If Pending**: - - Block progress until decision made - - Show options to user - - Record decision when made -4. **If Made**: - - Verify current path aligns with decision - - Warn if attempting alternate path - -### 8. Plan Abandonment - -[[LLM: Graceful handling when user wants to stop following plan]] - -If user wants to abandon plan: - -1. Confirm abandonment intent -2. Add abandonment note to plan -3. Mark plan as "Abandoned" in header -4. Stop plan checking for remainder of session -5. Suggest creating new plan if needed - -## Usage Examples - -### Example 1: Agent Startup Check - -```text -BMad Master starting... - -[Check for plan] -Found active workflow plan: brownfield-fullstack -Progress: 40% complete (4/10 steps) -Current step: Create PRD (pm agent) - -Suggestion: Based on your plan, you should work with the PM agent next. -Use *agent pm to switch, or *plan-status to see full progress. -``` - -### Example 2: Task Sequence Warning - -```text -User: *task create-next-story - -[Plan check triggered] -⚠️ SEQUENCE WARNING: -Your workflow plan indicates the PRD hasn't been created yet. -Creating stories before the PRD may lead to incomplete requirements. - -Would you like to: -1. Continue anyway (will note deviation in plan) -2. Switch to creating PRD first (*agent pm) -3. View plan status (*plan-status) -``` - -### Example 3: Automatic Plan Update - -```text -[After completing create-doc task for PRD] - -✅ Plan Updated: Marked "Create PRD" as complete -📍 Next step: Create Architecture Document (architect agent) -``` - -## Implementation Notes - -- This utility should be lightweight and fast -- Plan parsing should be resilient to format variations -- Always preserve user agency - warnings not blocks (unless strict mode) -- Plan updates should be atomic to prevent corruption -- Consider plan versioning for rollback capability - -## Error Handling - -- Missing plan: Return null, don't error -- Malformed plan: Warn but continue, treat as no plan -- Update failures: Log but don't block task completion -- Parse errors: Fallback to basic text search -==================== END: .bmad-core/utils/plan-management.md ==================== - ==================== START: .bmad-core/utils/workflow-management.md ==================== # Workflow Management @@ -7140,7 +6914,7 @@ To comprehensively validate a story draft before implementation begins, ensuring ### 0. Load Core Configuration and Inputs -- Load `.bmad-core/core-config.yaml` from the project root +- Load `.bmad-core/core-config.yaml` - If the file does not exist, HALT and inform the user: "core-config.yaml not found. This file is required for story validation." - Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*` - Identify and load the following inputs: @@ -9750,7 +9524,6 @@ To identify the next logical story based on project progress and epic definition - Load `.bmad-core/core-config.yaml` from the project root - If the file does not exist, HALT and inform the user: "core-config.yaml not found. This file is required for story creation. You can either: 1) Copy it from GITHUB bmad-core/core-config.yaml and configure it for your project OR 2) Run the BMad installer against your project to upgrade and add the file automatically. Please add and configure core-config.yaml before proceeding." - Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*`, `workflow.*` -- If `workflow.trackProgress: true`, use `utils/plan-management.md` to check plan sequence and warn if out of order ### 1. Identify Next Story for Preparation @@ -10603,7 +10376,7 @@ workflow: All stories implemented and reviewed! Project development phase complete. - Reference: data#bmad-kb:IDE Development Workflow + Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow flow_diagram: | ```mermaid @@ -10849,7 +10622,7 @@ workflow: All stories implemented and reviewed! Project development phase complete. - Reference: data#bmad-kb:IDE Development Workflow + Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow flow_diagram: | ```mermaid @@ -11046,7 +10819,7 @@ workflow: All stories implemented and reviewed! Project development phase complete. - Reference: data#bmad-kb:IDE Development Workflow + Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow flow_diagram: | ```mermaid @@ -11271,7 +11044,7 @@ workflow: All stories implemented and reviewed! Project development phase complete. - Reference: data#bmad-kb:IDE Development Workflow + Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow flow_diagram: | ```mermaid @@ -11718,7 +11491,7 @@ workflow: All stories implemented and reviewed! Project development phase complete. - Reference: data#bmad-kb:IDE Development Workflow + Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow flow_diagram: | ```mermaid diff --git a/dist/teams/team-fullstack.txt b/dist/teams/team-fullstack.txt index b80bd31e..3fbd844b 100644 --- a/dist/teams/team-fullstack.txt +++ b/dist/teams/team-fullstack.txt @@ -68,9 +68,6 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, fol ```yaml activation-instructions: - Mention *help shows all available commands and options - - Check for active workflow plan using .bmad-core/utils/plan-management.md - - 'If plan exists: Show 📋 Active plan: {workflow} ({progress}% complete). Use *plan-status for details.' - - 'If plan exists: Suggest next action based on plan progress' - Assess user goal against available agents and workflows in this bundle - If clear match to an agent's expertise, suggest transformation with *agent command - If project-oriented, suggest *workflow-guidance to explore options @@ -192,7 +189,6 @@ dependencies: - bmad-kb.md - elicitation-methods.md utils: - - plan-management.md - workflow-management.md ``` ==================== END: .bmad-core/agents/bmad-orchestrator.md ==================== @@ -2046,7 +2042,7 @@ For full details, see `CONTRIBUTING.md`. Key points: - Atomic commits - one logical change per commit - Must align with guiding principles -**Core Principles** (from GUIDING-PRINCIPLES.md): +**Core Principles** (from docs/GUIDING-PRINCIPLES.md): - **Dev Agents Must Be Lean**: Minimize dependencies, save context for code - **Natural Language First**: Everything in markdown, no code in core @@ -2116,8 +2112,8 @@ Use the **expansion-creator** pack to build your own: ## Getting Help -- **Commands**: Use `/help` in any environment to see available commands -- **Agent Switching**: Use `/switch agent-name` with orchestrator for role changes +- **Commands**: Use `*/*help` in any environment to see available commands +- **Agent Switching**: Use `*/*switch agent-name` with orchestrator for role changes - **Documentation**: Check `docs/` folder for project-specific context - **Community**: Discord and GitHub resources available for support - **Contributing**: See `CONTRIBUTING.md` for full guidelines @@ -2260,228 +2256,6 @@ Use the **expansion-creator** pack to build your own: - Prepare to continue without additional elicitation ==================== END: .bmad-core/data/elicitation-methods.md ==================== -==================== START: .bmad-core/utils/plan-management.md ==================== -# Plan Management Utility - -## Purpose - -Provides utilities for agents and tasks to interact with workflow plans, check progress, update status, and ensure workflow steps are executed in the appropriate sequence. - -## Core Functions - -### 1. Check Plan Existence - -Check for workflow plan: - -1. Look for docs/workflow-plan.md (default location) -2. Return plan status to user (exists/not exists) - if not exists then HALT. - -### 2. Parse Plan Status - -[[LLM: Extract current progress from the plan document]] - -**Plan Parsing Logic:** - -1. **Identify Step Structure**: - - Look for checkbox lines: `- [ ]` or `- [x]` - - Extract step IDs from comments: `` - - Identify agent assignments: `` - -2. **Determine Current State**: - - Last completed step (highest numbered `[x]`) - - Next expected step (first `[ ]` after completed steps) - - Overall progress percentage - -3. **Extract Metadata**: - - Workflow type from plan header - - Decision points and their status - - Any deviation notes - -### 3. Sequence Validation - -[[LLM: Check if requested action aligns with plan sequence]] - -**Validation Rules:** - -1. **Strict Mode** (enforceSequence: true): - - Must complete steps in exact order - - Warn and block if out of sequence - - Require explicit override justification - -2. **Flexible Mode** (enforceSequence: false): - - Warn about sequence deviation - - Allow with confirmation - - Log deviation reason - -**Warning Templates:** - -```text -SEQUENCE WARNING: -The workflow plan shows you should complete "{expected_step}" next. -You're attempting to: "{requested_action}" - -In strict mode: Block and require plan update -In flexible mode: Allow with confirmation -``` - -### 4. Plan Update Operations - -[[LLM: Provide consistent way to update plan progress]] - -**Update Actions:** - -1. **Mark Step Complete**: - - Change `- [ ]` to `- [x]` - - Add completion timestamp comment - - Update any status metadata - -2. **Add Deviation Note**: - - Insert note explaining why sequence changed - - Reference the deviation in plan - -3. **Update Current Step Pointer**: - - Add/move `` marker - - Update last-modified timestamp - -### 5. Integration Instructions - -[[LLM: How agents and tasks should use this utility]] - -**For Agents (startup sequence)**: - -```text -1. Check if plan exists using this utility -2. If exists: - - Parse current status - - Show user: "Active workflow plan detected. Current step: {X}" - - Suggest: "Next recommended action: {next_step}" -3. Continue with normal startup -``` - -**For Tasks (pre-execution)**: - -```text -1. Check if plan exists -2. If exists: - - Verify this task aligns with plan - - If not aligned: - - In strict mode: Show warning and stop - - In flexible mode: Show warning and ask for confirmation -3. After task completion: - - Update plan if task was a planned step - - Add note if task was unplanned -``` - -### 6. Plan Status Report Format - -[[LLM: Standard format for showing plan status]] - -```text -📋 Workflow Plan Status -━━━━━━━━━━━━━━━━━━━━ -Workflow: {workflow_name} -Progress: {X}% complete ({completed}/{total} steps) - -✅ Completed: -- {completed_step_1} -- {completed_step_2} - -🔄 Current Step: -- {current_step_description} - -📌 Upcoming: -- {next_step_1} -- {next_step_2} - -⚠️ Notes: -- {any_deviations_or_notes} -``` - -### 7. Decision Point Handling - -[[LLM: Special handling for workflow decision points]] - -When encountering a decision point in the plan: - -1. **Identify Decision Marker**: `` -2. **Check Decision Status**: Made/Pending -3. **If Pending**: - - Block progress until decision made - - Show options to user - - Record decision when made -4. **If Made**: - - Verify current path aligns with decision - - Warn if attempting alternate path - -### 8. Plan Abandonment - -[[LLM: Graceful handling when user wants to stop following plan]] - -If user wants to abandon plan: - -1. Confirm abandonment intent -2. Add abandonment note to plan -3. Mark plan as "Abandoned" in header -4. Stop plan checking for remainder of session -5. Suggest creating new plan if needed - -## Usage Examples - -### Example 1: Agent Startup Check - -```text -BMad Master starting... - -[Check for plan] -Found active workflow plan: brownfield-fullstack -Progress: 40% complete (4/10 steps) -Current step: Create PRD (pm agent) - -Suggestion: Based on your plan, you should work with the PM agent next. -Use *agent pm to switch, or *plan-status to see full progress. -``` - -### Example 2: Task Sequence Warning - -```text -User: *task create-next-story - -[Plan check triggered] -⚠️ SEQUENCE WARNING: -Your workflow plan indicates the PRD hasn't been created yet. -Creating stories before the PRD may lead to incomplete requirements. - -Would you like to: -1. Continue anyway (will note deviation in plan) -2. Switch to creating PRD first (*agent pm) -3. View plan status (*plan-status) -``` - -### Example 3: Automatic Plan Update - -```text -[After completing create-doc task for PRD] - -✅ Plan Updated: Marked "Create PRD" as complete -📍 Next step: Create Architecture Document (architect agent) -``` - -## Implementation Notes - -- This utility should be lightweight and fast -- Plan parsing should be resilient to format variations -- Always preserve user agency - warnings not blocks (unless strict mode) -- Plan updates should be atomic to prevent corruption -- Consider plan versioning for rollback capability - -## Error Handling - -- Missing plan: Return null, don't error -- Malformed plan: Warn but continue, treat as no plan -- Update failures: Log but don't block task completion -- Parse errors: Fallback to basic text search -==================== END: .bmad-core/utils/plan-management.md ==================== - ==================== START: .bmad-core/utils/workflow-management.md ==================== # Workflow Management @@ -9038,7 +8812,7 @@ To comprehensively validate a story draft before implementation begins, ensuring ### 0. Load Core Configuration and Inputs -- Load `.bmad-core/core-config.yaml` from the project root +- Load `.bmad-core/core-config.yaml` - If the file does not exist, HALT and inform the user: "core-config.yaml not found. This file is required for story validation." - Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*` - Identify and load the following inputs: @@ -9933,7 +9707,7 @@ workflow: All stories implemented and reviewed! Project development phase complete. - Reference: data#bmad-kb:IDE Development Workflow + Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow flow_diagram: | ```mermaid @@ -10179,7 +9953,7 @@ workflow: All stories implemented and reviewed! Project development phase complete. - Reference: data#bmad-kb:IDE Development Workflow + Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow flow_diagram: | ```mermaid @@ -10376,7 +10150,7 @@ workflow: All stories implemented and reviewed! Project development phase complete. - Reference: data#bmad-kb:IDE Development Workflow + Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow flow_diagram: | ```mermaid @@ -10601,7 +10375,7 @@ workflow: All stories implemented and reviewed! Project development phase complete. - Reference: data#bmad-kb:IDE Development Workflow + Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow flow_diagram: | ```mermaid @@ -11048,7 +10822,7 @@ workflow: All stories implemented and reviewed! Project development phase complete. - Reference: data#bmad-kb:IDE Development Workflow + Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow flow_diagram: | ```mermaid diff --git a/dist/teams/team-ide-minimal.txt b/dist/teams/team-ide-minimal.txt index e1687f4f..fe172eb5 100644 --- a/dist/teams/team-ide-minimal.txt +++ b/dist/teams/team-ide-minimal.txt @@ -60,9 +60,6 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, fol ```yaml activation-instructions: - Mention *help shows all available commands and options - - Check for active workflow plan using .bmad-core/utils/plan-management.md - - 'If plan exists: Show 📋 Active plan: {workflow} ({progress}% complete). Use *plan-status for details.' - - 'If plan exists: Suggest next action based on plan progress' - Assess user goal against available agents and workflows in this bundle - If clear match to an agent's expertise, suggest transformation with *agent command - If project-oriented, suggest *workflow-guidance to explore options @@ -184,7 +181,6 @@ dependencies: - bmad-kb.md - elicitation-methods.md utils: - - plan-management.md - workflow-management.md ``` ==================== END: .bmad-core/agents/bmad-orchestrator.md ==================== @@ -1945,7 +1941,7 @@ For full details, see `CONTRIBUTING.md`. Key points: - Atomic commits - one logical change per commit - Must align with guiding principles -**Core Principles** (from GUIDING-PRINCIPLES.md): +**Core Principles** (from docs/GUIDING-PRINCIPLES.md): - **Dev Agents Must Be Lean**: Minimize dependencies, save context for code - **Natural Language First**: Everything in markdown, no code in core @@ -2015,8 +2011,8 @@ Use the **expansion-creator** pack to build your own: ## Getting Help -- **Commands**: Use `/help` in any environment to see available commands -- **Agent Switching**: Use `/switch agent-name` with orchestrator for role changes +- **Commands**: Use `*/*help` in any environment to see available commands +- **Agent Switching**: Use `*/*switch agent-name` with orchestrator for role changes - **Documentation**: Check `docs/` folder for project-specific context - **Community**: Discord and GitHub resources available for support - **Contributing**: See `CONTRIBUTING.md` for full guidelines @@ -2159,228 +2155,6 @@ Use the **expansion-creator** pack to build your own: - Prepare to continue without additional elicitation ==================== END: .bmad-core/data/elicitation-methods.md ==================== -==================== START: .bmad-core/utils/plan-management.md ==================== -# Plan Management Utility - -## Purpose - -Provides utilities for agents and tasks to interact with workflow plans, check progress, update status, and ensure workflow steps are executed in the appropriate sequence. - -## Core Functions - -### 1. Check Plan Existence - -Check for workflow plan: - -1. Look for docs/workflow-plan.md (default location) -2. Return plan status to user (exists/not exists) - if not exists then HALT. - -### 2. Parse Plan Status - -[[LLM: Extract current progress from the plan document]] - -**Plan Parsing Logic:** - -1. **Identify Step Structure**: - - Look for checkbox lines: `- [ ]` or `- [x]` - - Extract step IDs from comments: `` - - Identify agent assignments: `` - -2. **Determine Current State**: - - Last completed step (highest numbered `[x]`) - - Next expected step (first `[ ]` after completed steps) - - Overall progress percentage - -3. **Extract Metadata**: - - Workflow type from plan header - - Decision points and their status - - Any deviation notes - -### 3. Sequence Validation - -[[LLM: Check if requested action aligns with plan sequence]] - -**Validation Rules:** - -1. **Strict Mode** (enforceSequence: true): - - Must complete steps in exact order - - Warn and block if out of sequence - - Require explicit override justification - -2. **Flexible Mode** (enforceSequence: false): - - Warn about sequence deviation - - Allow with confirmation - - Log deviation reason - -**Warning Templates:** - -```text -SEQUENCE WARNING: -The workflow plan shows you should complete "{expected_step}" next. -You're attempting to: "{requested_action}" - -In strict mode: Block and require plan update -In flexible mode: Allow with confirmation -``` - -### 4. Plan Update Operations - -[[LLM: Provide consistent way to update plan progress]] - -**Update Actions:** - -1. **Mark Step Complete**: - - Change `- [ ]` to `- [x]` - - Add completion timestamp comment - - Update any status metadata - -2. **Add Deviation Note**: - - Insert note explaining why sequence changed - - Reference the deviation in plan - -3. **Update Current Step Pointer**: - - Add/move `` marker - - Update last-modified timestamp - -### 5. Integration Instructions - -[[LLM: How agents and tasks should use this utility]] - -**For Agents (startup sequence)**: - -```text -1. Check if plan exists using this utility -2. If exists: - - Parse current status - - Show user: "Active workflow plan detected. Current step: {X}" - - Suggest: "Next recommended action: {next_step}" -3. Continue with normal startup -``` - -**For Tasks (pre-execution)**: - -```text -1. Check if plan exists -2. If exists: - - Verify this task aligns with plan - - If not aligned: - - In strict mode: Show warning and stop - - In flexible mode: Show warning and ask for confirmation -3. After task completion: - - Update plan if task was a planned step - - Add note if task was unplanned -``` - -### 6. Plan Status Report Format - -[[LLM: Standard format for showing plan status]] - -```text -📋 Workflow Plan Status -━━━━━━━━━━━━━━━━━━━━ -Workflow: {workflow_name} -Progress: {X}% complete ({completed}/{total} steps) - -✅ Completed: -- {completed_step_1} -- {completed_step_2} - -🔄 Current Step: -- {current_step_description} - -📌 Upcoming: -- {next_step_1} -- {next_step_2} - -⚠️ Notes: -- {any_deviations_or_notes} -``` - -### 7. Decision Point Handling - -[[LLM: Special handling for workflow decision points]] - -When encountering a decision point in the plan: - -1. **Identify Decision Marker**: `` -2. **Check Decision Status**: Made/Pending -3. **If Pending**: - - Block progress until decision made - - Show options to user - - Record decision when made -4. **If Made**: - - Verify current path aligns with decision - - Warn if attempting alternate path - -### 8. Plan Abandonment - -[[LLM: Graceful handling when user wants to stop following plan]] - -If user wants to abandon plan: - -1. Confirm abandonment intent -2. Add abandonment note to plan -3. Mark plan as "Abandoned" in header -4. Stop plan checking for remainder of session -5. Suggest creating new plan if needed - -## Usage Examples - -### Example 1: Agent Startup Check - -```text -BMad Master starting... - -[Check for plan] -Found active workflow plan: brownfield-fullstack -Progress: 40% complete (4/10 steps) -Current step: Create PRD (pm agent) - -Suggestion: Based on your plan, you should work with the PM agent next. -Use *agent pm to switch, or *plan-status to see full progress. -``` - -### Example 2: Task Sequence Warning - -```text -User: *task create-next-story - -[Plan check triggered] -⚠️ SEQUENCE WARNING: -Your workflow plan indicates the PRD hasn't been created yet. -Creating stories before the PRD may lead to incomplete requirements. - -Would you like to: -1. Continue anyway (will note deviation in plan) -2. Switch to creating PRD first (*agent pm) -3. View plan status (*plan-status) -``` - -### Example 3: Automatic Plan Update - -```text -[After completing create-doc task for PRD] - -✅ Plan Updated: Marked "Create PRD" as complete -📍 Next step: Create Architecture Document (architect agent) -``` - -## Implementation Notes - -- This utility should be lightweight and fast -- Plan parsing should be resilient to format variations -- Always preserve user agency - warnings not blocks (unless strict mode) -- Plan updates should be atomic to prevent corruption -- Consider plan versioning for rollback capability - -## Error Handling - -- Missing plan: Return null, don't error -- Malformed plan: Warn but continue, treat as no plan -- Update failures: Log but don't block task completion -- Parse errors: Fallback to basic text search -==================== END: .bmad-core/utils/plan-management.md ==================== - ==================== START: .bmad-core/utils/workflow-management.md ==================== # Workflow Management @@ -3143,7 +2917,7 @@ To comprehensively validate a story draft before implementation begins, ensuring ### 0. Load Core Configuration and Inputs -- Load `.bmad-core/core-config.yaml` from the project root +- Load `.bmad-core/core-config.yaml` - If the file does not exist, HALT and inform the user: "core-config.yaml not found. This file is required for story validation." - Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*` - Identify and load the following inputs: @@ -4052,7 +3826,6 @@ To identify the next logical story based on project progress and epic definition - Load `.bmad-core/core-config.yaml` from the project root - If the file does not exist, HALT and inform the user: "core-config.yaml not found. This file is required for story creation. You can either: 1) Copy it from GITHUB bmad-core/core-config.yaml and configure it for your project OR 2) Run the BMad installer against your project to upgrade and add the file automatically. Please add and configure core-config.yaml before proceeding." - Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*`, `workflow.*` -- If `workflow.trackProgress: true`, use `utils/plan-management.md` to check plan sequence and warn if out of order ### 1. Identify Next Story for Preparation diff --git a/dist/teams/team-no-ui.txt b/dist/teams/team-no-ui.txt index 003b0be6..17ec9acc 100644 --- a/dist/teams/team-no-ui.txt +++ b/dist/teams/team-no-ui.txt @@ -63,9 +63,6 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, fol ```yaml activation-instructions: - Mention *help shows all available commands and options - - Check for active workflow plan using .bmad-core/utils/plan-management.md - - 'If plan exists: Show 📋 Active plan: {workflow} ({progress}% complete). Use *plan-status for details.' - - 'If plan exists: Suggest next action based on plan progress' - Assess user goal against available agents and workflows in this bundle - If clear match to an agent's expertise, suggest transformation with *agent command - If project-oriented, suggest *workflow-guidance to explore options @@ -187,7 +184,6 @@ dependencies: - bmad-kb.md - elicitation-methods.md utils: - - plan-management.md - workflow-management.md ``` ==================== END: .bmad-core/agents/bmad-orchestrator.md ==================== @@ -1988,7 +1984,7 @@ For full details, see `CONTRIBUTING.md`. Key points: - Atomic commits - one logical change per commit - Must align with guiding principles -**Core Principles** (from GUIDING-PRINCIPLES.md): +**Core Principles** (from docs/GUIDING-PRINCIPLES.md): - **Dev Agents Must Be Lean**: Minimize dependencies, save context for code - **Natural Language First**: Everything in markdown, no code in core @@ -2058,8 +2054,8 @@ Use the **expansion-creator** pack to build your own: ## Getting Help -- **Commands**: Use `/help` in any environment to see available commands -- **Agent Switching**: Use `/switch agent-name` with orchestrator for role changes +- **Commands**: Use `*/*help` in any environment to see available commands +- **Agent Switching**: Use `*/*switch agent-name` with orchestrator for role changes - **Documentation**: Check `docs/` folder for project-specific context - **Community**: Discord and GitHub resources available for support - **Contributing**: See `CONTRIBUTING.md` for full guidelines @@ -2202,228 +2198,6 @@ Use the **expansion-creator** pack to build your own: - Prepare to continue without additional elicitation ==================== END: .bmad-core/data/elicitation-methods.md ==================== -==================== START: .bmad-core/utils/plan-management.md ==================== -# Plan Management Utility - -## Purpose - -Provides utilities for agents and tasks to interact with workflow plans, check progress, update status, and ensure workflow steps are executed in the appropriate sequence. - -## Core Functions - -### 1. Check Plan Existence - -Check for workflow plan: - -1. Look for docs/workflow-plan.md (default location) -2. Return plan status to user (exists/not exists) - if not exists then HALT. - -### 2. Parse Plan Status - -[[LLM: Extract current progress from the plan document]] - -**Plan Parsing Logic:** - -1. **Identify Step Structure**: - - Look for checkbox lines: `- [ ]` or `- [x]` - - Extract step IDs from comments: `` - - Identify agent assignments: `` - -2. **Determine Current State**: - - Last completed step (highest numbered `[x]`) - - Next expected step (first `[ ]` after completed steps) - - Overall progress percentage - -3. **Extract Metadata**: - - Workflow type from plan header - - Decision points and their status - - Any deviation notes - -### 3. Sequence Validation - -[[LLM: Check if requested action aligns with plan sequence]] - -**Validation Rules:** - -1. **Strict Mode** (enforceSequence: true): - - Must complete steps in exact order - - Warn and block if out of sequence - - Require explicit override justification - -2. **Flexible Mode** (enforceSequence: false): - - Warn about sequence deviation - - Allow with confirmation - - Log deviation reason - -**Warning Templates:** - -```text -SEQUENCE WARNING: -The workflow plan shows you should complete "{expected_step}" next. -You're attempting to: "{requested_action}" - -In strict mode: Block and require plan update -In flexible mode: Allow with confirmation -``` - -### 4. Plan Update Operations - -[[LLM: Provide consistent way to update plan progress]] - -**Update Actions:** - -1. **Mark Step Complete**: - - Change `- [ ]` to `- [x]` - - Add completion timestamp comment - - Update any status metadata - -2. **Add Deviation Note**: - - Insert note explaining why sequence changed - - Reference the deviation in plan - -3. **Update Current Step Pointer**: - - Add/move `` marker - - Update last-modified timestamp - -### 5. Integration Instructions - -[[LLM: How agents and tasks should use this utility]] - -**For Agents (startup sequence)**: - -```text -1. Check if plan exists using this utility -2. If exists: - - Parse current status - - Show user: "Active workflow plan detected. Current step: {X}" - - Suggest: "Next recommended action: {next_step}" -3. Continue with normal startup -``` - -**For Tasks (pre-execution)**: - -```text -1. Check if plan exists -2. If exists: - - Verify this task aligns with plan - - If not aligned: - - In strict mode: Show warning and stop - - In flexible mode: Show warning and ask for confirmation -3. After task completion: - - Update plan if task was a planned step - - Add note if task was unplanned -``` - -### 6. Plan Status Report Format - -[[LLM: Standard format for showing plan status]] - -```text -📋 Workflow Plan Status -━━━━━━━━━━━━━━━━━━━━ -Workflow: {workflow_name} -Progress: {X}% complete ({completed}/{total} steps) - -✅ Completed: -- {completed_step_1} -- {completed_step_2} - -🔄 Current Step: -- {current_step_description} - -📌 Upcoming: -- {next_step_1} -- {next_step_2} - -⚠️ Notes: -- {any_deviations_or_notes} -``` - -### 7. Decision Point Handling - -[[LLM: Special handling for workflow decision points]] - -When encountering a decision point in the plan: - -1. **Identify Decision Marker**: `` -2. **Check Decision Status**: Made/Pending -3. **If Pending**: - - Block progress until decision made - - Show options to user - - Record decision when made -4. **If Made**: - - Verify current path aligns with decision - - Warn if attempting alternate path - -### 8. Plan Abandonment - -[[LLM: Graceful handling when user wants to stop following plan]] - -If user wants to abandon plan: - -1. Confirm abandonment intent -2. Add abandonment note to plan -3. Mark plan as "Abandoned" in header -4. Stop plan checking for remainder of session -5. Suggest creating new plan if needed - -## Usage Examples - -### Example 1: Agent Startup Check - -```text -BMad Master starting... - -[Check for plan] -Found active workflow plan: brownfield-fullstack -Progress: 40% complete (4/10 steps) -Current step: Create PRD (pm agent) - -Suggestion: Based on your plan, you should work with the PM agent next. -Use *agent pm to switch, or *plan-status to see full progress. -``` - -### Example 2: Task Sequence Warning - -```text -User: *task create-next-story - -[Plan check triggered] -⚠️ SEQUENCE WARNING: -Your workflow plan indicates the PRD hasn't been created yet. -Creating stories before the PRD may lead to incomplete requirements. - -Would you like to: -1. Continue anyway (will note deviation in plan) -2. Switch to creating PRD first (*agent pm) -3. View plan status (*plan-status) -``` - -### Example 3: Automatic Plan Update - -```text -[After completing create-doc task for PRD] - -✅ Plan Updated: Marked "Create PRD" as complete -📍 Next step: Create Architecture Document (architect agent) -``` - -## Implementation Notes - -- This utility should be lightweight and fast -- Plan parsing should be resilient to format variations -- Always preserve user agency - warnings not blocks (unless strict mode) -- Plan updates should be atomic to prevent corruption -- Consider plan versioning for rollback capability - -## Error Handling - -- Missing plan: Return null, don't error -- Malformed plan: Warn but continue, treat as no plan -- Update failures: Log but don't block task completion -- Parse errors: Fallback to basic text search -==================== END: .bmad-core/utils/plan-management.md ==================== - ==================== START: .bmad-core/utils/workflow-management.md ==================== # Workflow Management @@ -8574,7 +8348,7 @@ To comprehensively validate a story draft before implementation begins, ensuring ### 0. Load Core Configuration and Inputs -- Load `.bmad-core/core-config.yaml` from the project root +- Load `.bmad-core/core-config.yaml` - If the file does not exist, HALT and inform the user: "core-config.yaml not found. This file is required for story validation." - Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*` - Identify and load the following inputs: @@ -9624,7 +9398,7 @@ workflow: All stories implemented and reviewed! Project development phase complete. - Reference: data#bmad-kb:IDE Development Workflow + Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow flow_diagram: | ```mermaid diff --git a/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md b/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md index 55e1c97a..727be90b 100644 --- a/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +++ b/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md @@ -3,9 +3,8 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode: ```yaml -root: .bmad-2d-phaser-game-dev -IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name} where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name. -REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), or ask for clarification if ambiguous. +IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name. +REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match. activation-instructions: - Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER! - Only read the files/tasks listed here when user selects them for execution to minimize context usage diff --git a/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md b/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md index 2c94246d..e1cc02ca 100644 --- a/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +++ b/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md @@ -3,9 +3,8 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode: ```yaml -root: .bmad-2d-phaser-game-dev -IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name} where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name. -REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), or ask for clarification if ambiguous. +IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name. +REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match. activation-instructions: - Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER! - Only read the files/tasks listed here when user selects them for execution to minimize context usage diff --git a/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md b/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md index d7022c97..2f387695 100644 --- a/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +++ b/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md @@ -3,9 +3,8 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode: ```yaml -root: .bmad-2d-phaser-game-dev -IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name} where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name. -REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), or ask for clarification if ambiguous. +IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name. +REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match. activation-instructions: - Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER! - Only read the files/tasks listed here when user selects them for execution to minimize context usage diff --git a/expansion-packs/bmad-creator-tools/agents/bmad-the-creator.md b/expansion-packs/bmad-creator-tools/agents/bmad-the-creator.md index ecb7b922..ba687dad 100644 --- a/expansion-packs/bmad-creator-tools/agents/bmad-the-creator.md +++ b/expansion-packs/bmad-creator-tools/agents/bmad-the-creator.md @@ -3,9 +3,8 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode: ```yaml -root: .bmad-creator-tools -IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name} where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name. -REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), or ask for clarification if ambiguous. +IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name. +REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match. activation-instructions: - Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER! - Only read the files/tasks listed here when user selects them for execution to minimize context usage diff --git a/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md b/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md index e06638e0..880815ab 100644 --- a/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md +++ b/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md @@ -3,9 +3,8 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode: ```yaml -root: .bmad-infrastructure-devops -IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name} where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name. -REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), or ask for clarification if ambiguous. +IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name. +REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match. activation-instructions: - Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER! - Only read the files/tasks listed here when user selects them for execution to minimize context usage diff --git a/tools/installer/lib/file-manager.js b/tools/installer/lib/file-manager.js index cb3669f6..86c37acc 100644 --- a/tools/installer/lib/file-manager.js +++ b/tools/installer/lib/file-manager.js @@ -47,7 +47,7 @@ class FileManager { } } - async copyGlobPattern(pattern, sourceDir, destDir) { + async copyGlobPattern(pattern, sourceDir, destDir, rootValue = null) { const files = glob.sync(pattern, { cwd: sourceDir }); const copied = []; @@ -55,7 +55,17 @@ class FileManager { const sourcePath = path.join(sourceDir, file); const destPath = path.join(destDir, file); - if (await this.copyFile(sourcePath, destPath)) { + // Use root replacement if rootValue is provided and file needs it + const needsRootReplacement = rootValue && (file.endsWith('.md') || file.endsWith('.yaml') || file.endsWith('.yml')); + + let success = false; + if (needsRootReplacement) { + success = await this.copyFileWithRootReplacement(sourcePath, destPath, rootValue); + } else { + success = await this.copyFile(sourcePath, destPath); + } + + if (success) { copied.push(file); } } @@ -299,6 +309,71 @@ class FileManager { return false; } } + + async copyFileWithRootReplacement(source, destination, rootValue) { + try { + // Read the source file content + const fs = require('fs').promises; + const content = await fs.readFile(source, 'utf8'); + + // Replace {root} with the specified root value + const updatedContent = content.replace(/\{root\}/g, rootValue); + + // Ensure directory exists + await this.ensureDirectory(path.dirname(destination)); + + // Write the updated content + await fs.writeFile(destination, updatedContent, 'utf8'); + + return true; + } catch (error) { + await initializeModules(); + console.error(chalk.red(`Failed to copy ${source} with root replacement:`), error.message); + return false; + } + } + + async copyDirectoryWithRootReplacement(source, destination, rootValue, fileExtensions = ['.md', '.yaml', '.yml']) { + try { + await initializeModules(); // Ensure chalk is initialized + await this.ensureDirectory(destination); + + // Get all files in source directory + const files = glob.sync('**/*', { + cwd: source, + nodir: true + }); + + let replacedCount = 0; + + for (const file of files) { + const sourcePath = path.join(source, file); + const destPath = path.join(destination, file); + + // Check if this file type should have {root} replacement + const shouldReplace = fileExtensions.some(ext => file.endsWith(ext)); + + if (shouldReplace) { + if (await this.copyFileWithRootReplacement(sourcePath, destPath, rootValue)) { + replacedCount++; + } + } else { + // Regular copy for files that don't need replacement + await this.copyFile(sourcePath, destPath); + } + } + + if (replacedCount > 0) { + console.log(chalk.dim(` Processed ${replacedCount} files with {root} replacement`)); + } + + return true; + } catch (error) { + await initializeModules(); + console.error(chalk.red(`Failed to copy directory ${source} with root replacement:`), error.message); + return false; + } + } } module.exports = new FileManager(); diff --git a/tools/installer/lib/installer.js b/tools/installer/lib/installer.js index 9888a362..6e9bee92 100644 --- a/tools/installer/lib/installer.js +++ b/tools/installer/lib/installer.js @@ -244,7 +244,7 @@ class Installer { spinner.text = "Copying complete .bmad-core folder..."; const sourceDir = configLoader.getBmadCorePath(); const bmadCoreDestDir = path.join(installDir, ".bmad-core"); - await fileManager.copyDirectory(sourceDir, bmadCoreDestDir); + await fileManager.copyDirectoryWithRootReplacement(sourceDir, bmadCoreDestDir, ".bmad-core"); // Copy common/ items to .bmad-core spinner.text = "Copying common utilities..."; @@ -263,7 +263,7 @@ class Installer { // Single agent installation spinner.text = `Installing ${config.agent} agent...`; - // Copy agent file + // Copy agent file with {root} replacement const agentPath = configLoader.getAgentPath(config.agent); const destAgentPath = path.join( installDir, @@ -271,7 +271,7 @@ class Installer { "agents", `${config.agent}.md` ); - await fileManager.copyFile(agentPath, destAgentPath); + await fileManager.copyFileWithRootReplacement(agentPath, destAgentPath, ".bmad-core"); files.push(`.bmad-core/agents/${config.agent}.md`); // Copy dependencies @@ -284,15 +284,16 @@ class Installer { spinner.text = `Copying dependency: ${dep}`; if (dep.includes("*")) { - // Handle glob patterns + // Handle glob patterns with {root} replacement const copiedFiles = await fileManager.copyGlobPattern( dep.replace(".bmad-core/", ""), sourceBase, - path.join(installDir, ".bmad-core") + path.join(installDir, ".bmad-core"), + ".bmad-core" ); files.push(...copiedFiles.map(f => `.bmad-core/${f}`)); } else { - // Handle single files + // Handle single files with {root} replacement if needed const sourcePath = path.join( sourceBase, dep.replace(".bmad-core/", "") @@ -302,7 +303,16 @@ class Installer { dep ); - if (await fileManager.copyFile(sourcePath, destPath)) { + const needsRootReplacement = dep.endsWith('.md') || dep.endsWith('.yaml') || dep.endsWith('.yml'); + let success = false; + + if (needsRootReplacement) { + success = await fileManager.copyFileWithRootReplacement(sourcePath, destPath, ".bmad-core"); + } else { + success = await fileManager.copyFile(sourcePath, destPath); + } + + if (success) { files.push(dep); } } @@ -325,19 +335,29 @@ class Installer { spinner.text = `Copying team dependency: ${dep}`; if (dep.includes("*")) { - // Handle glob patterns + // Handle glob patterns with {root} replacement const copiedFiles = await fileManager.copyGlobPattern( dep.replace(".bmad-core/", ""), sourceBase, - path.join(installDir, ".bmad-core") + path.join(installDir, ".bmad-core"), + ".bmad-core" ); files.push(...copiedFiles.map(f => `.bmad-core/${f}`)); } else { - // Handle single files + // Handle single files with {root} replacement if needed const sourcePath = path.join(sourceBase, dep.replace(".bmad-core/", "")); const destPath = path.join(installDir, dep); - if (await fileManager.copyFile(sourcePath, destPath)) { + const needsRootReplacement = dep.endsWith('.md') || dep.endsWith('.yaml') || dep.endsWith('.yml'); + let success = false; + + if (needsRootReplacement) { + success = await fileManager.copyFileWithRootReplacement(sourcePath, destPath, ".bmad-core"); + } else { + success = await fileManager.copyFile(sourcePath, destPath); + } + + if (success) { files.push(dep); } } @@ -1172,32 +1192,41 @@ class Installer { nodir: true }); - // Copy each file to the expansion pack's dot folder + // Copy each file to the expansion pack's dot folder with {root} replacement for (const file of files) { const sourcePath = path.join(sourceFolder, file); const destPath = path.join(expansionDotFolder, folder, file); - if (await fileManager.copyFile(sourcePath, destPath)) { + const needsRootReplacement = file.endsWith('.md') || file.endsWith('.yaml') || file.endsWith('.yml'); + let success = false; + + if (needsRootReplacement) { + success = await fileManager.copyFileWithRootReplacement(sourcePath, destPath, `.${packId}`); + } else { + success = await fileManager.copyFile(sourcePath, destPath); + } + + if (success) { installedFiles.push(path.join(`.${packId}`, folder, file)); } } } } - // Copy config.yaml + // Copy config.yaml with {root} replacement const configPath = path.join(expansionPackDir, 'config.yaml'); if (await fileManager.pathExists(configPath)) { const configDestPath = path.join(expansionDotFolder, 'config.yaml'); - if (await fileManager.copyFile(configPath, configDestPath)) { + if (await fileManager.copyFileWithRootReplacement(configPath, configDestPath, `.${packId}`)) { installedFiles.push(path.join(`.${packId}`, 'config.yaml')); } } - // Copy README if it exists + // Copy README if it exists with {root} replacement const readmePath = path.join(expansionPackDir, 'README.md'); if (await fileManager.pathExists(readmePath)) { const readmeDestPath = path.join(expansionDotFolder, 'README.md'); - if (await fileManager.copyFile(readmePath, readmeDestPath)) { + if (await fileManager.copyFileWithRootReplacement(readmePath, readmeDestPath, `.${packId}`)) { installedFiles.push(path.join(`.${packId}`, 'README.md')); } } @@ -1258,7 +1287,7 @@ class Installer { const yamlContent = extractYamlFromAgent(agentContent); if (yamlContent) { try { - const agentConfig = yaml.parse(yamlContent); + const agentConfig = yaml.load(yamlContent); const dependencies = agentConfig.dependencies || {}; // Check for core dependencies (those that don't exist in the expansion pack) @@ -1277,9 +1306,9 @@ class Installer { if (await fileManager.pathExists(coreDepPath)) { spinner.text = `Copying core dependency ${dep} for ${packId}...`; - // Copy from core to expansion pack dot folder + // Copy from core to expansion pack dot folder with {root} replacement const destPath = path.join(expansionDotFolder, depType, depFileName); - await fileManager.copyFile(coreDepPath, destPath); + await fileManager.copyFileWithRootReplacement(coreDepPath, destPath, `.${packId}`); console.log(chalk.dim(` Added core dependency: ${depType}/${depFileName}`)); } else { @@ -1321,7 +1350,7 @@ class Installer { const teamContent = await fs.readFile(teamPath, 'utf8'); try { - const teamConfig = yaml.parse(teamContent); + const teamConfig = yaml.load(teamContent); const agents = teamConfig.agents || []; // Add bmad-orchestrator if not present (required for all teams) @@ -1338,9 +1367,9 @@ class Installer { if (await fileManager.pathExists(coreAgentPath)) { spinner.text = `Copying core agent ${agentId} for ${packId}...`; - // Copy agent file + // Copy agent file with {root} replacement const destPath = path.join(expansionDotFolder, 'agents', `${agentId}.md`); - await fileManager.copyFile(coreAgentPath, destPath); + await fileManager.copyFileWithRootReplacement(coreAgentPath, destPath, `.${packId}`); existingAgents.add(agentId); console.log(chalk.dim(` Added core agent: ${agentId}`)); @@ -1352,7 +1381,7 @@ class Installer { if (yamlContent) { try { - const agentConfig = yaml.parse(yamlContent); + const agentConfig = yaml.load(yamlContent); const dependencies = agentConfig.dependencies || {}; // Copy all dependencies for this agent @@ -1370,7 +1399,7 @@ class Installer { if (await fileManager.pathExists(coreDepPath)) { const destDepPath = path.join(expansionDotFolder, depType, depFileName); - await fileManager.copyFile(coreDepPath, destDepPath); + await fileManager.copyFileWithRootReplacement(coreDepPath, destDepPath, `.${packId}`); console.log(chalk.dim(` Added agent dependency: ${depType}/${depFileName}`)); } else { // Try common folder