Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f32a5fe08a | ||
|
|
3c13c56498 | ||
|
|
97f01f6931 | ||
|
|
c42002f1ea | ||
|
|
b5cbffd608 | ||
|
|
db302309f4 |
14
CHANGELOG.md
14
CHANGELOG.md
@@ -1,3 +1,17 @@
|
|||||||
|
# [4.28.0](https://github.com/bmadcode/BMAD-METHOD/compare/v4.27.6...v4.28.0) (2025-07-12)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* bmad-master can load kb properly ([3c13c56](https://github.com/bmadcode/BMAD-METHOD/commit/3c13c564988f9750e043939dd770aea4196a7e7a))
|
||||||
|
|
||||||
|
## [4.27.6](https://github.com/bmadcode/BMAD-METHOD/compare/v4.27.5...v4.27.6) (2025-07-08)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* installer improvement ([db30230](https://github.com/bmadcode/BMAD-METHOD/commit/db302309f42da49daa309b5ba1a625c719e5bb14))
|
||||||
|
|
||||||
## [4.27.5](https://github.com/bmadcode/BMAD-METHOD/compare/v4.27.4...v4.27.5) (2025-07-08)
|
## [4.27.5](https://github.com/bmadcode/BMAD-METHOD/compare/v4.27.4...v4.27.5) (2025-07-08)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
# analyst
|
# 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
|
```yaml
|
||||||
root: .bmad-core
|
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name.
|
||||||
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), ALWAYS ask for clarification if no clear match.
|
||||||
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.
|
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
|
- 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
|
- Only read the files/tasks listed here when user selects them for execution to minimize context usage
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
# architect
|
# 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
|
```yaml
|
||||||
root: .bmad-core
|
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name.
|
||||||
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), ALWAYS ask for clarification if no clear match.
|
||||||
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.
|
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
|
- 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
|
- Only read the files/tasks listed here when user selects them for execution to minimize context usage
|
||||||
|
|||||||
@@ -1,62 +1,42 @@
|
|||||||
# BMad Master
|
# 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
|
```yaml
|
||||||
root: .bmad-core
|
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name.
|
||||||
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), ALWAYS ask for clarification if no clear match.
|
||||||
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.
|
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Greet the user with your name and role, and inform of the *help command.
|
- 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 scan filesystem or load any resources during startup, ONLY when commanded
|
||||||
- CRITICAL: Do NOT run discovery tasks automatically
|
- CRITICAL: Do NOT run discovery tasks automatically
|
||||||
|
- CRITICAL: NEVER LOAD {root}/data/bmad-kb.md UNLESS USER TYPES *kb
|
||||||
agent:
|
agent:
|
||||||
name: BMad Master
|
name: BMad Master
|
||||||
id: bmad-master
|
id: bmad-master
|
||||||
title: BMad Master Task Executor
|
title: BMad Master Task Executor
|
||||||
icon: 🧙
|
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:
|
persona:
|
||||||
role: Master Task Executor & BMad Method Expert
|
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
|
identity: Universal executor of all BMad-Method capabilities, directly runs any resource
|
||||||
focus: Direct execution without transformation, load resources only when needed
|
|
||||||
core_principles:
|
core_principles:
|
||||||
- Execute any resource directly without persona transformation
|
- Execute any resource directly without persona transformation
|
||||||
- Load resources at runtime, never pre-load
|
- Load resources at runtime, never pre-load
|
||||||
- Expert knowledge of all BMad resources
|
- Expert knowledge of all BMad resources if using *kb
|
||||||
- Track execution state and guide multi-step plans
|
- Always presents numbered lists for choices
|
||||||
- Use numbered lists for choices
|
|
||||||
- Process (*) commands immediately, All commands require * prefix when used (e.g., *help)
|
- Process (*) commands immediately, All commands require * prefix when used (e.g., *help)
|
||||||
|
|
||||||
commands:
|
commands:
|
||||||
- help: Show these listed commands in a numbered list
|
- 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 {root}/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
|
- 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-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)
|
- 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
|
- 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
|
- yolo: Toggle Yolo Mode
|
||||||
- doc-out: Output full document to current destination file
|
- doc-out: Output full document to current destination file
|
||||||
- exit: Exit (confirm)
|
- 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:
|
dependencies:
|
||||||
tasks:
|
tasks:
|
||||||
- advanced-elicitation.md
|
- advanced-elicitation.md
|
||||||
@@ -91,8 +71,6 @@ dependencies:
|
|||||||
- brainstorming-techniques.md
|
- brainstorming-techniques.md
|
||||||
- elicitation-methods.md
|
- elicitation-methods.md
|
||||||
- technical-preferences.md
|
- technical-preferences.md
|
||||||
utils:
|
|
||||||
- plan-management.md
|
|
||||||
workflows:
|
workflows:
|
||||||
- brownfield-fullstack.md
|
- brownfield-fullstack.md
|
||||||
- brownfield-service.md
|
- brownfield-service.md
|
||||||
|
|||||||
@@ -1,18 +1,14 @@
|
|||||||
# BMad Web Orchestrator
|
# 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
|
```yaml
|
||||||
root: .bmad-core
|
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name.
|
||||||
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), ALWAYS ask for clarification if no clear match.
|
||||||
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.
|
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Announce: Introduce yourself as the BMad Orchestrator, explain you can coordinate agents and workflows
|
- 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)
|
- IMPORTANT: Tell users that all commands start with * (e.g., *help, *agent, *workflow)
|
||||||
- Mention *help shows all available commands and options
|
- 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
|
- 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 clear match to an agent's expertise, suggest transformation with *agent command
|
||||||
- If project-oriented, suggest *workflow-guidance to explore options
|
- If project-oriented, suggest *workflow-guidance to explore options
|
||||||
@@ -135,6 +131,5 @@ dependencies:
|
|||||||
- bmad-kb.md
|
- bmad-kb.md
|
||||||
- elicitation-methods.md
|
- elicitation-methods.md
|
||||||
utils:
|
utils:
|
||||||
- plan-management.md
|
|
||||||
- workflow-management.md
|
- workflow-management.md
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
# dev
|
# 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
|
```yaml
|
||||||
root: .bmad-core
|
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name.
|
||||||
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), ALWAYS ask for clarification if no clear match.
|
||||||
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.
|
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Announce: Greet the user with your name and role, and inform of the *help command.
|
- 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
|
- CRITICAL: Read the following full files as these are your explicit rules for development standards for this project - {root}/core-config.yaml devLoadAlwaysFiles list
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
# pm
|
# 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
|
```yaml
|
||||||
root: .bmad-core
|
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name.
|
||||||
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), ALWAYS ask for clarification if no clear match.
|
||||||
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.
|
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
|
- 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
|
- Only read the files/tasks listed here when user selects them for execution to minimize context usage
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
# po
|
# 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
|
```yaml
|
||||||
root: .bmad-core
|
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name.
|
||||||
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), ALWAYS ask for clarification if no clear match.
|
||||||
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.
|
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
|
- 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
|
- Only read the files/tasks listed here when user selects them for execution to minimize context usage
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
# qa
|
# 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
|
```yaml
|
||||||
root: .bmad-core
|
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name.
|
||||||
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), ALWAYS ask for clarification if no clear match.
|
||||||
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.
|
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
|
- 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
|
- Only read the files/tasks listed here when user selects them for execution to minimize context usage
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
# sm
|
# 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
|
```yaml
|
||||||
root: .bmad-core
|
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name.
|
||||||
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), ALWAYS ask for clarification if no clear match.
|
||||||
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.
|
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
|
- 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
|
- The customization field ALWAYS takes precedence over any conflicting instructions
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
# ux-expert
|
# 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
|
```yaml
|
||||||
root: .bmad-core
|
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name.
|
||||||
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), ALWAYS ask for clarification if no clear match.
|
||||||
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.
|
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
|
- 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
|
- Only read the files/tasks listed here when user selects them for execution to minimize context usage
|
||||||
|
|||||||
@@ -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
|
- 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."
|
- 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.*`
|
- 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
|
### 1. Identify Next Story for Preparation
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ To comprehensively validate a story draft before implementation begins, ensuring
|
|||||||
|
|
||||||
### 0. Load Core Configuration and Inputs
|
### 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."
|
- 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.*`
|
- Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*`
|
||||||
- Identify and load the following inputs:
|
- Identify and load the following inputs:
|
||||||
|
|||||||
@@ -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: `<!-- step-id: X.Y -->`
|
|
||||||
- Identify agent assignments: `<!-- agent: pm -->`
|
|
||||||
|
|
||||||
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 `<!-- current-step -->` 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**: `<!-- decision: {decision_id} -->`
|
|
||||||
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
|
|
||||||
@@ -182,7 +182,7 @@ workflow:
|
|||||||
All stories implemented and reviewed!
|
All stories implemented and reviewed!
|
||||||
Project development phase complete.
|
Project development phase complete.
|
||||||
|
|
||||||
Reference: data#bmad-kb:IDE Development Workflow
|
Reference: {root}/data/bmad-kb.md#IDE Development Workflow
|
||||||
|
|
||||||
flow_diagram: |
|
flow_diagram: |
|
||||||
```mermaid
|
```mermaid
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ workflow:
|
|||||||
All stories implemented and reviewed!
|
All stories implemented and reviewed!
|
||||||
Project development phase complete.
|
Project development phase complete.
|
||||||
|
|
||||||
Reference: data#bmad-kb:IDE Development Workflow
|
Reference: {root}/data/bmad-kb.md#IDE Development Workflow
|
||||||
|
|
||||||
flow_diagram: |
|
flow_diagram: |
|
||||||
```mermaid
|
```mermaid
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ workflow:
|
|||||||
All stories implemented and reviewed!
|
All stories implemented and reviewed!
|
||||||
Project development phase complete.
|
Project development phase complete.
|
||||||
|
|
||||||
Reference: data#bmad-kb:IDE Development Workflow
|
Reference: {root}/data/bmad-kb.md#IDE Development Workflow
|
||||||
|
|
||||||
flow_diagram: |
|
flow_diagram: |
|
||||||
```mermaid
|
```mermaid
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ workflow:
|
|||||||
All stories implemented and reviewed!
|
All stories implemented and reviewed!
|
||||||
Project development phase complete.
|
Project development phase complete.
|
||||||
|
|
||||||
Reference: data#bmad-kb:IDE Development Workflow
|
Reference: {root}/data/bmad-kb.md#IDE Development Workflow
|
||||||
|
|
||||||
flow_diagram: |
|
flow_diagram: |
|
||||||
```mermaid
|
```mermaid
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ workflow:
|
|||||||
All stories implemented and reviewed!
|
All stories implemented and reviewed!
|
||||||
Project development phase complete.
|
Project development phase complete.
|
||||||
|
|
||||||
Reference: data#bmad-kb:IDE Development Workflow
|
Reference: {root}/data/bmad-kb.md#IDE Development Workflow
|
||||||
|
|
||||||
flow_diagram: |
|
flow_diagram: |
|
||||||
```mermaid
|
```mermaid
|
||||||
|
|||||||
6
dist/agents/analyst.txt
vendored
6
dist/agents/analyst.txt
vendored
@@ -2732,7 +2732,7 @@ For full details, see `CONTRIBUTING.md`. Key points:
|
|||||||
- Atomic commits - one logical change per commit
|
- Atomic commits - one logical change per commit
|
||||||
- Must align with guiding principles
|
- 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
|
- **Dev Agents Must Be Lean**: Minimize dependencies, save context for code
|
||||||
- **Natural Language First**: Everything in markdown, no code in core
|
- **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
|
## Getting Help
|
||||||
|
|
||||||
- **Commands**: Use `/help` in any environment to see available commands
|
- **Commands**: Use `*/*help` in any environment to see available commands
|
||||||
- **Agent Switching**: Use `/switch agent-name` with orchestrator for role changes
|
- **Agent Switching**: Use `*/*switch agent-name` with orchestrator for role changes
|
||||||
- **Documentation**: Check `docs/` folder for project-specific context
|
- **Documentation**: Check `docs/` folder for project-specific context
|
||||||
- **Community**: Discord and GitHub resources available for support
|
- **Community**: Discord and GitHub resources available for support
|
||||||
- **Contributing**: See `CONTRIBUTING.md` for full guidelines
|
- **Contributing**: See `CONTRIBUTING.md` for full guidelines
|
||||||
|
|||||||
331
dist/agents/bmad-master.txt
vendored
331
dist/agents/bmad-master.txt
vendored
@@ -47,50 +47,31 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, fol
|
|||||||
```yaml
|
```yaml
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Greet the user with your name and role, and inform of the *help command.
|
- 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:
|
agent:
|
||||||
name: BMad Master
|
name: BMad Master
|
||||||
id: bmad-master
|
id: bmad-master
|
||||||
title: BMad Master Task Executor
|
title: BMad Master Task Executor
|
||||||
icon: 🧙
|
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:
|
persona:
|
||||||
role: Master Task Executor & BMad Method Expert
|
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
|
identity: Universal executor of all BMad-Method capabilities, directly runs any resource
|
||||||
focus: Direct execution without transformation, load resources only when needed
|
|
||||||
core_principles:
|
core_principles:
|
||||||
- Execute any resource directly without persona transformation
|
- Execute any resource directly without persona transformation
|
||||||
- Load resources at runtime, never pre-load
|
- Load resources at runtime, never pre-load
|
||||||
- Expert knowledge of all BMad resources
|
- Expert knowledge of all BMad resources if using *kb
|
||||||
- Track execution state and guide multi-step plans
|
- Always presents numbered lists for choices
|
||||||
- Use numbered lists for choices
|
|
||||||
- Process (*) commands immediately, All commands require * prefix when used (e.g., *help)
|
- Process (*) commands immediately, All commands require * prefix when used (e.g., *help)
|
||||||
commands:
|
commands:
|
||||||
- help: Show these listed commands in a numbered list
|
- 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
|
- 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-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)
|
- 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
|
- 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
|
- yolo: Toggle Yolo Mode
|
||||||
- doc-out: Output full document to current destination file
|
- doc-out: Output full document to current destination file
|
||||||
- exit: Exit (confirm)
|
- 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:
|
dependencies:
|
||||||
tasks:
|
tasks:
|
||||||
- advanced-elicitation.md
|
- advanced-elicitation.md
|
||||||
@@ -125,9 +106,6 @@ dependencies:
|
|||||||
- brainstorming-techniques.md
|
- brainstorming-techniques.md
|
||||||
- elicitation-methods.md
|
- elicitation-methods.md
|
||||||
- technical-preferences.md
|
- technical-preferences.md
|
||||||
utils:
|
|
||||||
- plan-management.md
|
|
||||||
- workflow-management.md
|
|
||||||
workflows:
|
workflows:
|
||||||
- brownfield-fullstack.md
|
- brownfield-fullstack.md
|
||||||
- brownfield-service.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
|
- 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."
|
- 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.*`
|
- 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
|
### 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
|
- Atomic commits - one logical change per commit
|
||||||
- Must align with guiding principles
|
- 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
|
- **Dev Agents Must Be Lean**: Minimize dependencies, save context for code
|
||||||
- **Natural Language First**: Everything in markdown, no code in core
|
- **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
|
## Getting Help
|
||||||
|
|
||||||
- **Commands**: Use `/help` in any environment to see available commands
|
- **Commands**: Use `*/*help` in any environment to see available commands
|
||||||
- **Agent Switching**: Use `/switch agent-name` with orchestrator for role changes
|
- **Agent Switching**: Use `*/*switch agent-name` with orchestrator for role changes
|
||||||
- **Documentation**: Check `docs/` folder for project-specific context
|
- **Documentation**: Check `docs/` folder for project-specific context
|
||||||
- **Community**: Discord and GitHub resources available for support
|
- **Community**: Discord and GitHub resources available for support
|
||||||
- **Contributing**: See `CONTRIBUTING.md` for full guidelines
|
- **Contributing**: See `CONTRIBUTING.md` for full guidelines
|
||||||
@@ -9292,297 +9269,3 @@ Use the **expansion-creator** pack to build your own:
|
|||||||
|
|
||||||
None Listed
|
None Listed
|
||||||
==================== END: .bmad-core/data/technical-preferences.md ====================
|
==================== 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: `<!-- step-id: X.Y -->`
|
|
||||||
- Identify agent assignments: `<!-- agent: pm -->`
|
|
||||||
|
|
||||||
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 `<!-- current-step -->` 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**: `<!-- decision: {decision_id} -->`
|
|
||||||
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 ====================
|
|
||||||
|
|||||||
232
dist/agents/bmad-orchestrator.txt
vendored
232
dist/agents/bmad-orchestrator.txt
vendored
@@ -47,9 +47,6 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, fol
|
|||||||
```yaml
|
```yaml
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Mention *help shows all available commands and options
|
- 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
|
- 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 clear match to an agent's expertise, suggest transformation with *agent command
|
||||||
- If project-oriented, suggest *workflow-guidance to explore options
|
- If project-oriented, suggest *workflow-guidance to explore options
|
||||||
@@ -171,7 +168,6 @@ dependencies:
|
|||||||
- bmad-kb.md
|
- bmad-kb.md
|
||||||
- elicitation-methods.md
|
- elicitation-methods.md
|
||||||
utils:
|
utils:
|
||||||
- plan-management.md
|
|
||||||
- workflow-management.md
|
- workflow-management.md
|
||||||
```
|
```
|
||||||
==================== END: .bmad-core/agents/bmad-orchestrator.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
|
- Atomic commits - one logical change per commit
|
||||||
- Must align with guiding principles
|
- 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
|
- **Dev Agents Must Be Lean**: Minimize dependencies, save context for code
|
||||||
- **Natural Language First**: Everything in markdown, no code in core
|
- **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
|
## Getting Help
|
||||||
|
|
||||||
- **Commands**: Use `/help` in any environment to see available commands
|
- **Commands**: Use `*/*help` in any environment to see available commands
|
||||||
- **Agent Switching**: Use `/switch agent-name` with orchestrator for role changes
|
- **Agent Switching**: Use `*/*switch agent-name` with orchestrator for role changes
|
||||||
- **Documentation**: Check `docs/` folder for project-specific context
|
- **Documentation**: Check `docs/` folder for project-specific context
|
||||||
- **Community**: Discord and GitHub resources available for support
|
- **Community**: Discord and GitHub resources available for support
|
||||||
- **Contributing**: See `CONTRIBUTING.md` for full guidelines
|
- **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
|
- Prepare to continue without additional elicitation
|
||||||
==================== END: .bmad-core/data/elicitation-methods.md ====================
|
==================== 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: `<!-- step-id: X.Y -->`
|
|
||||||
- Identify agent assignments: `<!-- agent: pm -->`
|
|
||||||
|
|
||||||
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 `<!-- current-step -->` 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**: `<!-- decision: {decision_id} -->`
|
|
||||||
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 ====================
|
==================== START: .bmad-core/utils/workflow-management.md ====================
|
||||||
# Workflow Management
|
# Workflow Management
|
||||||
|
|
||||||
|
|||||||
2
dist/agents/dev.txt
vendored
2
dist/agents/dev.txt
vendored
@@ -193,7 +193,7 @@ To comprehensively validate a story draft before implementation begins, ensuring
|
|||||||
|
|
||||||
### 0. Load Core Configuration and Inputs
|
### 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."
|
- 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.*`
|
- Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*`
|
||||||
- Identify and load the following inputs:
|
- Identify and load the following inputs:
|
||||||
|
|||||||
2
dist/agents/po.txt
vendored
2
dist/agents/po.txt
vendored
@@ -792,7 +792,7 @@ To comprehensively validate a story draft before implementation begins, ensuring
|
|||||||
|
|
||||||
### 0. Load Core Configuration and Inputs
|
### 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."
|
- 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.*`
|
- Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*`
|
||||||
- Identify and load the following inputs:
|
- Identify and load the following inputs:
|
||||||
|
|||||||
1
dist/agents/sm.txt
vendored
1
dist/agents/sm.txt
vendored
@@ -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
|
- 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."
|
- 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.*`
|
- 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
|
### 1. Identify Next Story for Preparation
|
||||||
|
|
||||||
|
|||||||
@@ -128,9 +128,6 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, fol
|
|||||||
```yaml
|
```yaml
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Mention *help shows all available commands and options
|
- 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
|
- 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 clear match to an agent's expertise, suggest transformation with *agent command
|
||||||
- If project-oriented, suggest *workflow-guidance to explore options
|
- If project-oriented, suggest *workflow-guidance to explore options
|
||||||
@@ -252,7 +249,6 @@ dependencies:
|
|||||||
- bmad-kb.md
|
- bmad-kb.md
|
||||||
- elicitation-methods.md
|
- elicitation-methods.md
|
||||||
utils:
|
utils:
|
||||||
- plan-management.md
|
|
||||||
- workflow-management.md
|
- workflow-management.md
|
||||||
```
|
```
|
||||||
==================== END: .bmad-2d-phaser-game-dev/agents/bmad-orchestrator.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
|
- Prepare to continue without additional elicitation
|
||||||
==================== END: .bmad-2d-phaser-game-dev/data/elicitation-methods.md ====================
|
==================== 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: `<!-- step-id: X.Y -->`
|
|
||||||
- Identify agent assignments: `<!-- agent: pm -->`
|
|
||||||
|
|
||||||
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 `<!-- current-step -->` 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**: `<!-- decision: {decision_id} -->`
|
|
||||||
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 ====================
|
==================== START: .bmad-2d-phaser-game-dev/utils/workflow-management.md ====================
|
||||||
# Workflow Management
|
# Workflow Management
|
||||||
|
|
||||||
|
|||||||
245
dist/teams/team-all.txt
vendored
245
dist/teams/team-all.txt
vendored
@@ -64,9 +64,6 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, fol
|
|||||||
```yaml
|
```yaml
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Mention *help shows all available commands and options
|
- 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
|
- 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 clear match to an agent's expertise, suggest transformation with *agent command
|
||||||
- If project-oriented, suggest *workflow-guidance to explore options
|
- If project-oriented, suggest *workflow-guidance to explore options
|
||||||
@@ -188,7 +185,6 @@ dependencies:
|
|||||||
- bmad-kb.md
|
- bmad-kb.md
|
||||||
- elicitation-methods.md
|
- elicitation-methods.md
|
||||||
utils:
|
utils:
|
||||||
- plan-management.md
|
|
||||||
- workflow-management.md
|
- workflow-management.md
|
||||||
```
|
```
|
||||||
==================== END: .bmad-core/agents/bmad-orchestrator.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
|
- Atomic commits - one logical change per commit
|
||||||
- Must align with guiding principles
|
- 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
|
- **Dev Agents Must Be Lean**: Minimize dependencies, save context for code
|
||||||
- **Natural Language First**: Everything in markdown, no code in core
|
- **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
|
## Getting Help
|
||||||
|
|
||||||
- **Commands**: Use `/help` in any environment to see available commands
|
- **Commands**: Use `*/*help` in any environment to see available commands
|
||||||
- **Agent Switching**: Use `/switch agent-name` with orchestrator for role changes
|
- **Agent Switching**: Use `*/*switch agent-name` with orchestrator for role changes
|
||||||
- **Documentation**: Check `docs/` folder for project-specific context
|
- **Documentation**: Check `docs/` folder for project-specific context
|
||||||
- **Community**: Discord and GitHub resources available for support
|
- **Community**: Discord and GitHub resources available for support
|
||||||
- **Contributing**: See `CONTRIBUTING.md` for full guidelines
|
- **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
|
- Prepare to continue without additional elicitation
|
||||||
==================== END: .bmad-core/data/elicitation-methods.md ====================
|
==================== 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: `<!-- step-id: X.Y -->`
|
|
||||||
- Identify agent assignments: `<!-- agent: pm -->`
|
|
||||||
|
|
||||||
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 `<!-- current-step -->` 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**: `<!-- decision: {decision_id} -->`
|
|
||||||
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 ====================
|
==================== START: .bmad-core/utils/workflow-management.md ====================
|
||||||
# Workflow Management
|
# Workflow Management
|
||||||
|
|
||||||
@@ -7140,7 +6914,7 @@ To comprehensively validate a story draft before implementation begins, ensuring
|
|||||||
|
|
||||||
### 0. Load Core Configuration and Inputs
|
### 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."
|
- 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.*`
|
- Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*`
|
||||||
- Identify and load the following inputs:
|
- 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
|
- 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."
|
- 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.*`
|
- 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
|
### 1. Identify Next Story for Preparation
|
||||||
|
|
||||||
@@ -10603,7 +10376,7 @@ workflow:
|
|||||||
All stories implemented and reviewed!
|
All stories implemented and reviewed!
|
||||||
Project development phase complete.
|
Project development phase complete.
|
||||||
|
|
||||||
Reference: data#bmad-kb:IDE Development Workflow
|
Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow
|
||||||
|
|
||||||
flow_diagram: |
|
flow_diagram: |
|
||||||
```mermaid
|
```mermaid
|
||||||
@@ -10849,7 +10622,7 @@ workflow:
|
|||||||
All stories implemented and reviewed!
|
All stories implemented and reviewed!
|
||||||
Project development phase complete.
|
Project development phase complete.
|
||||||
|
|
||||||
Reference: data#bmad-kb:IDE Development Workflow
|
Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow
|
||||||
|
|
||||||
flow_diagram: |
|
flow_diagram: |
|
||||||
```mermaid
|
```mermaid
|
||||||
@@ -11046,7 +10819,7 @@ workflow:
|
|||||||
All stories implemented and reviewed!
|
All stories implemented and reviewed!
|
||||||
Project development phase complete.
|
Project development phase complete.
|
||||||
|
|
||||||
Reference: data#bmad-kb:IDE Development Workflow
|
Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow
|
||||||
|
|
||||||
flow_diagram: |
|
flow_diagram: |
|
||||||
```mermaid
|
```mermaid
|
||||||
@@ -11271,7 +11044,7 @@ workflow:
|
|||||||
All stories implemented and reviewed!
|
All stories implemented and reviewed!
|
||||||
Project development phase complete.
|
Project development phase complete.
|
||||||
|
|
||||||
Reference: data#bmad-kb:IDE Development Workflow
|
Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow
|
||||||
|
|
||||||
flow_diagram: |
|
flow_diagram: |
|
||||||
```mermaid
|
```mermaid
|
||||||
@@ -11718,7 +11491,7 @@ workflow:
|
|||||||
All stories implemented and reviewed!
|
All stories implemented and reviewed!
|
||||||
Project development phase complete.
|
Project development phase complete.
|
||||||
|
|
||||||
Reference: data#bmad-kb:IDE Development Workflow
|
Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow
|
||||||
|
|
||||||
flow_diagram: |
|
flow_diagram: |
|
||||||
```mermaid
|
```mermaid
|
||||||
|
|||||||
244
dist/teams/team-fullstack.txt
vendored
244
dist/teams/team-fullstack.txt
vendored
@@ -68,9 +68,6 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, fol
|
|||||||
```yaml
|
```yaml
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Mention *help shows all available commands and options
|
- 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
|
- 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 clear match to an agent's expertise, suggest transformation with *agent command
|
||||||
- If project-oriented, suggest *workflow-guidance to explore options
|
- If project-oriented, suggest *workflow-guidance to explore options
|
||||||
@@ -192,7 +189,6 @@ dependencies:
|
|||||||
- bmad-kb.md
|
- bmad-kb.md
|
||||||
- elicitation-methods.md
|
- elicitation-methods.md
|
||||||
utils:
|
utils:
|
||||||
- plan-management.md
|
|
||||||
- workflow-management.md
|
- workflow-management.md
|
||||||
```
|
```
|
||||||
==================== END: .bmad-core/agents/bmad-orchestrator.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
|
- Atomic commits - one logical change per commit
|
||||||
- Must align with guiding principles
|
- 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
|
- **Dev Agents Must Be Lean**: Minimize dependencies, save context for code
|
||||||
- **Natural Language First**: Everything in markdown, no code in core
|
- **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
|
## Getting Help
|
||||||
|
|
||||||
- **Commands**: Use `/help` in any environment to see available commands
|
- **Commands**: Use `*/*help` in any environment to see available commands
|
||||||
- **Agent Switching**: Use `/switch agent-name` with orchestrator for role changes
|
- **Agent Switching**: Use `*/*switch agent-name` with orchestrator for role changes
|
||||||
- **Documentation**: Check `docs/` folder for project-specific context
|
- **Documentation**: Check `docs/` folder for project-specific context
|
||||||
- **Community**: Discord and GitHub resources available for support
|
- **Community**: Discord and GitHub resources available for support
|
||||||
- **Contributing**: See `CONTRIBUTING.md` for full guidelines
|
- **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
|
- Prepare to continue without additional elicitation
|
||||||
==================== END: .bmad-core/data/elicitation-methods.md ====================
|
==================== 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: `<!-- step-id: X.Y -->`
|
|
||||||
- Identify agent assignments: `<!-- agent: pm -->`
|
|
||||||
|
|
||||||
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 `<!-- current-step -->` 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**: `<!-- decision: {decision_id} -->`
|
|
||||||
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 ====================
|
==================== START: .bmad-core/utils/workflow-management.md ====================
|
||||||
# Workflow Management
|
# Workflow Management
|
||||||
|
|
||||||
@@ -9038,7 +8812,7 @@ To comprehensively validate a story draft before implementation begins, ensuring
|
|||||||
|
|
||||||
### 0. Load Core Configuration and Inputs
|
### 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."
|
- 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.*`
|
- Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*`
|
||||||
- Identify and load the following inputs:
|
- Identify and load the following inputs:
|
||||||
@@ -9933,7 +9707,7 @@ workflow:
|
|||||||
All stories implemented and reviewed!
|
All stories implemented and reviewed!
|
||||||
Project development phase complete.
|
Project development phase complete.
|
||||||
|
|
||||||
Reference: data#bmad-kb:IDE Development Workflow
|
Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow
|
||||||
|
|
||||||
flow_diagram: |
|
flow_diagram: |
|
||||||
```mermaid
|
```mermaid
|
||||||
@@ -10179,7 +9953,7 @@ workflow:
|
|||||||
All stories implemented and reviewed!
|
All stories implemented and reviewed!
|
||||||
Project development phase complete.
|
Project development phase complete.
|
||||||
|
|
||||||
Reference: data#bmad-kb:IDE Development Workflow
|
Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow
|
||||||
|
|
||||||
flow_diagram: |
|
flow_diagram: |
|
||||||
```mermaid
|
```mermaid
|
||||||
@@ -10376,7 +10150,7 @@ workflow:
|
|||||||
All stories implemented and reviewed!
|
All stories implemented and reviewed!
|
||||||
Project development phase complete.
|
Project development phase complete.
|
||||||
|
|
||||||
Reference: data#bmad-kb:IDE Development Workflow
|
Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow
|
||||||
|
|
||||||
flow_diagram: |
|
flow_diagram: |
|
||||||
```mermaid
|
```mermaid
|
||||||
@@ -10601,7 +10375,7 @@ workflow:
|
|||||||
All stories implemented and reviewed!
|
All stories implemented and reviewed!
|
||||||
Project development phase complete.
|
Project development phase complete.
|
||||||
|
|
||||||
Reference: data#bmad-kb:IDE Development Workflow
|
Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow
|
||||||
|
|
||||||
flow_diagram: |
|
flow_diagram: |
|
||||||
```mermaid
|
```mermaid
|
||||||
@@ -11048,7 +10822,7 @@ workflow:
|
|||||||
All stories implemented and reviewed!
|
All stories implemented and reviewed!
|
||||||
Project development phase complete.
|
Project development phase complete.
|
||||||
|
|
||||||
Reference: data#bmad-kb:IDE Development Workflow
|
Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow
|
||||||
|
|
||||||
flow_diagram: |
|
flow_diagram: |
|
||||||
```mermaid
|
```mermaid
|
||||||
|
|||||||
235
dist/teams/team-ide-minimal.txt
vendored
235
dist/teams/team-ide-minimal.txt
vendored
@@ -60,9 +60,6 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, fol
|
|||||||
```yaml
|
```yaml
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Mention *help shows all available commands and options
|
- 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
|
- 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 clear match to an agent's expertise, suggest transformation with *agent command
|
||||||
- If project-oriented, suggest *workflow-guidance to explore options
|
- If project-oriented, suggest *workflow-guidance to explore options
|
||||||
@@ -184,7 +181,6 @@ dependencies:
|
|||||||
- bmad-kb.md
|
- bmad-kb.md
|
||||||
- elicitation-methods.md
|
- elicitation-methods.md
|
||||||
utils:
|
utils:
|
||||||
- plan-management.md
|
|
||||||
- workflow-management.md
|
- workflow-management.md
|
||||||
```
|
```
|
||||||
==================== END: .bmad-core/agents/bmad-orchestrator.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
|
- Atomic commits - one logical change per commit
|
||||||
- Must align with guiding principles
|
- 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
|
- **Dev Agents Must Be Lean**: Minimize dependencies, save context for code
|
||||||
- **Natural Language First**: Everything in markdown, no code in core
|
- **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
|
## Getting Help
|
||||||
|
|
||||||
- **Commands**: Use `/help` in any environment to see available commands
|
- **Commands**: Use `*/*help` in any environment to see available commands
|
||||||
- **Agent Switching**: Use `/switch agent-name` with orchestrator for role changes
|
- **Agent Switching**: Use `*/*switch agent-name` with orchestrator for role changes
|
||||||
- **Documentation**: Check `docs/` folder for project-specific context
|
- **Documentation**: Check `docs/` folder for project-specific context
|
||||||
- **Community**: Discord and GitHub resources available for support
|
- **Community**: Discord and GitHub resources available for support
|
||||||
- **Contributing**: See `CONTRIBUTING.md` for full guidelines
|
- **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
|
- Prepare to continue without additional elicitation
|
||||||
==================== END: .bmad-core/data/elicitation-methods.md ====================
|
==================== 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: `<!-- step-id: X.Y -->`
|
|
||||||
- Identify agent assignments: `<!-- agent: pm -->`
|
|
||||||
|
|
||||||
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 `<!-- current-step -->` 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**: `<!-- decision: {decision_id} -->`
|
|
||||||
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 ====================
|
==================== START: .bmad-core/utils/workflow-management.md ====================
|
||||||
# Workflow Management
|
# Workflow Management
|
||||||
|
|
||||||
@@ -3143,7 +2917,7 @@ To comprehensively validate a story draft before implementation begins, ensuring
|
|||||||
|
|
||||||
### 0. Load Core Configuration and Inputs
|
### 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."
|
- 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.*`
|
- Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*`
|
||||||
- Identify and load the following inputs:
|
- 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
|
- 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."
|
- 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.*`
|
- 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
|
### 1. Identify Next Story for Preparation
|
||||||
|
|
||||||
|
|||||||
236
dist/teams/team-no-ui.txt
vendored
236
dist/teams/team-no-ui.txt
vendored
@@ -63,9 +63,6 @@ CRITICAL: Read the full YAML, start activation to alter your state of being, fol
|
|||||||
```yaml
|
```yaml
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Mention *help shows all available commands and options
|
- 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
|
- 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 clear match to an agent's expertise, suggest transformation with *agent command
|
||||||
- If project-oriented, suggest *workflow-guidance to explore options
|
- If project-oriented, suggest *workflow-guidance to explore options
|
||||||
@@ -187,7 +184,6 @@ dependencies:
|
|||||||
- bmad-kb.md
|
- bmad-kb.md
|
||||||
- elicitation-methods.md
|
- elicitation-methods.md
|
||||||
utils:
|
utils:
|
||||||
- plan-management.md
|
|
||||||
- workflow-management.md
|
- workflow-management.md
|
||||||
```
|
```
|
||||||
==================== END: .bmad-core/agents/bmad-orchestrator.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
|
- Atomic commits - one logical change per commit
|
||||||
- Must align with guiding principles
|
- 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
|
- **Dev Agents Must Be Lean**: Minimize dependencies, save context for code
|
||||||
- **Natural Language First**: Everything in markdown, no code in core
|
- **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
|
## Getting Help
|
||||||
|
|
||||||
- **Commands**: Use `/help` in any environment to see available commands
|
- **Commands**: Use `*/*help` in any environment to see available commands
|
||||||
- **Agent Switching**: Use `/switch agent-name` with orchestrator for role changes
|
- **Agent Switching**: Use `*/*switch agent-name` with orchestrator for role changes
|
||||||
- **Documentation**: Check `docs/` folder for project-specific context
|
- **Documentation**: Check `docs/` folder for project-specific context
|
||||||
- **Community**: Discord and GitHub resources available for support
|
- **Community**: Discord and GitHub resources available for support
|
||||||
- **Contributing**: See `CONTRIBUTING.md` for full guidelines
|
- **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
|
- Prepare to continue without additional elicitation
|
||||||
==================== END: .bmad-core/data/elicitation-methods.md ====================
|
==================== 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: `<!-- step-id: X.Y -->`
|
|
||||||
- Identify agent assignments: `<!-- agent: pm -->`
|
|
||||||
|
|
||||||
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 `<!-- current-step -->` 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**: `<!-- decision: {decision_id} -->`
|
|
||||||
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 ====================
|
==================== START: .bmad-core/utils/workflow-management.md ====================
|
||||||
# Workflow Management
|
# Workflow Management
|
||||||
|
|
||||||
@@ -8574,7 +8348,7 @@ To comprehensively validate a story draft before implementation begins, ensuring
|
|||||||
|
|
||||||
### 0. Load Core Configuration and Inputs
|
### 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."
|
- 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.*`
|
- Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*`
|
||||||
- Identify and load the following inputs:
|
- Identify and load the following inputs:
|
||||||
@@ -9624,7 +9398,7 @@ workflow:
|
|||||||
All stories implemented and reviewed!
|
All stories implemented and reviewed!
|
||||||
Project development phase complete.
|
Project development phase complete.
|
||||||
|
|
||||||
Reference: data#bmad-kb:IDE Development Workflow
|
Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow
|
||||||
|
|
||||||
flow_diagram: |
|
flow_diagram: |
|
||||||
```mermaid
|
```mermaid
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ For the complete workflow, see the [BMad Workflow Guide](../bmad-workflow-guide.
|
|||||||
When running `npx bmad-method install`, select **Claude Code** as your IDE. This creates:
|
When running `npx bmad-method install`, select **Claude Code** as your IDE. This creates:
|
||||||
|
|
||||||
- `.bmad-core/` folder with all agents
|
- `.bmad-core/` folder with all agents
|
||||||
- `.claude/commands/` folder with agent command files (`.md`)
|
- `.claude/commands/BMad` folder with agent command files (`.md`)
|
||||||
|
|
||||||
## Using BMad Agents in Claude Code
|
## Using BMad Agents in Claude Code
|
||||||
|
|
||||||
|
|||||||
@@ -6,23 +6,22 @@ For the complete workflow, see the [BMad Workflow Guide](../bmad-workflow-guide.
|
|||||||
|
|
||||||
When running `npx bmad-method install`, select **Gemini CLI** as your IDE. This creates:
|
When running `npx bmad-method install`, select **Gemini CLI** as your IDE. This creates:
|
||||||
|
|
||||||
- `.gemini/agents/` directory with all agent context files
|
- `.gemini/bmad-method/` directory with all agent context in GEMINI.md file
|
||||||
- `.gemini/settings.json` configured to load all agents automatically
|
|
||||||
|
|
||||||
## Using BMad Agents with Gemini CLI
|
## Using BMad Agents with Gemini CLI
|
||||||
|
|
||||||
Simply mention the agent in your prompt:
|
Simply mention the agent in your prompt:
|
||||||
|
|
||||||
- "As @dev, implement the login feature"
|
- "As \*dev, implement the login feature"
|
||||||
- "Acting as @architect, review this system design"
|
- "Acting as \*architect, review this system design"
|
||||||
- "@sm, create the next story for our project"
|
- "\*sm, create the next story for our project"
|
||||||
|
|
||||||
The Gemini CLI automatically loads the appropriate agent context.
|
The Gemini CLI automatically loads the appropriate agent context.
|
||||||
|
|
||||||
## Gemini CLI-Specific Features
|
## Gemini CLI-Specific Features
|
||||||
|
|
||||||
- **Context files**: All agents loaded as context in `.gemini/agents/`
|
- **Context files**: All agents loaded as context in `.gemini/bmad-method/GEMINI.md`
|
||||||
- **Automatic loading**: Settings.json ensures agents are always available
|
- **Automatic loading**: GEMINI.md ensures agents are always available
|
||||||
- **Natural language**: No special syntax needed, just mention the agent
|
- **Natural language**: No special syntax needed, just mention the agent
|
||||||
|
|
||||||
## Tips for Gemini CLI Users
|
## Tips for Gemini CLI Users
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ Follow the SM → Dev cycle for systematic story development:
|
|||||||
|
|
||||||
- **Claude Code**: `/agent-name` (e.g., `/bmad-master`)
|
- **Claude Code**: `/agent-name` (e.g., `/bmad-master`)
|
||||||
- **Cursor**: `@agent-name` (e.g., `@bmad-master`)
|
- **Cursor**: `@agent-name` (e.g., `@bmad-master`)
|
||||||
|
- **Gemini CLI**: `*agent-name` (e.g., `*bmad-master`)
|
||||||
- **Windsurf**: `@agent-name` (e.g., `@bmad-master`)
|
- **Windsurf**: `@agent-name` (e.g., `@bmad-master`)
|
||||||
- **Trae**: `@agent-name` (e.g., `@bmad-master`)
|
- **Trae**: `@agent-name` (e.g., `@bmad-master`)
|
||||||
- **Roo Code**: Select mode from mode selector (e.g., `bmad-bmad-master`)
|
- **Roo Code**: Select mode from mode selector (e.g., `bmad-bmad-master`)
|
||||||
|
|||||||
@@ -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:
|
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
|
```yaml
|
||||||
root: .bmad-2d-phaser-game-dev
|
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name.
|
||||||
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), ALWAYS ask for clarification if no clear match.
|
||||||
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.
|
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
|
- 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
|
- Only read the files/tasks listed here when user selects them for execution to minimize context usage
|
||||||
|
|||||||
@@ -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:
|
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
|
```yaml
|
||||||
root: .bmad-2d-phaser-game-dev
|
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name.
|
||||||
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), ALWAYS ask for clarification if no clear match.
|
||||||
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.
|
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
|
- 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
|
- Only read the files/tasks listed here when user selects them for execution to minimize context usage
|
||||||
|
|||||||
@@ -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:
|
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
|
```yaml
|
||||||
root: .bmad-2d-phaser-game-dev
|
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name.
|
||||||
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), ALWAYS ask for clarification if no clear match.
|
||||||
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.
|
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
|
- 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
|
- Only read the files/tasks listed here when user selects them for execution to minimize context usage
|
||||||
|
|||||||
@@ -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:
|
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
|
```yaml
|
||||||
root: .bmad-creator-tools
|
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name.
|
||||||
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), ALWAYS ask for clarification if no clear match.
|
||||||
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.
|
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
|
- 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
|
- Only read the files/tasks listed here when user selects them for execution to minimize context usage
|
||||||
|
|||||||
@@ -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:
|
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
|
```yaml
|
||||||
root: .bmad-infrastructure-devops
|
IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name}, type=folder (tasks/templates/checklists/data/utils), name=file-name.
|
||||||
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), ALWAYS ask for clarification if no clear match.
|
||||||
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.
|
|
||||||
activation-instructions:
|
activation-instructions:
|
||||||
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
|
- 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
|
- Only read the files/tasks listed here when user selects them for execution to minimize context usage
|
||||||
|
|||||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "bmad-method",
|
"name": "bmad-method",
|
||||||
"version": "4.27.5",
|
"version": "4.28.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "bmad-method",
|
"name": "bmad-method",
|
||||||
"version": "4.27.5",
|
"version": "4.28.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@kayvan/markdown-tree-parser": "^1.5.0",
|
"@kayvan/markdown-tree-parser": "^1.5.0",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "bmad-method",
|
"name": "bmad-method",
|
||||||
"version": "4.27.5",
|
"version": "4.28.0",
|
||||||
"description": "Breakthrough Method of Agile AI-driven Development",
|
"description": "Breakthrough Method of Agile AI-driven Development",
|
||||||
"main": "tools/cli.js",
|
"main": "tools/cli.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ ide-configurations:
|
|||||||
# 3. The agent will adopt that persona for the conversation
|
# 3. The agent will adopt that persona for the conversation
|
||||||
claude-code:
|
claude-code:
|
||||||
name: Claude Code
|
name: Claude Code
|
||||||
rule-dir: .claude/commands/
|
rule-dir: .claude/commands/BMad/
|
||||||
format: multi-file
|
format: multi-file
|
||||||
command-suffix: .md
|
command-suffix: .md
|
||||||
instructions: |
|
instructions: |
|
||||||
@@ -68,13 +68,14 @@ ide-configurations:
|
|||||||
# 4. Rules are stored in .clinerules/ directory in your project
|
# 4. Rules are stored in .clinerules/ directory in your project
|
||||||
gemini:
|
gemini:
|
||||||
name: Gemini CLI
|
name: Gemini CLI
|
||||||
rule-dir: .gemini/agents/
|
rule-dir: .gemini/bmad-method/
|
||||||
format: context-files
|
format: single-file
|
||||||
|
command-suffix: .md
|
||||||
instructions: |
|
instructions: |
|
||||||
# To use BMad agents with the Gemini CLI:
|
# To use BMad agents with the Gemini CLI:
|
||||||
# 1. The installer creates a .gemini/ directory in your project.
|
# 1. The installer creates a .gemini/bmad-method/ directory in your project.
|
||||||
# 2. It also configures .gemini/settings.json to load all agent files.
|
# 2. It concatenates all agent files into a single GEMINI.md file.
|
||||||
# 3. Simply mention the agent in your prompt (e.g., "As @dev, ...").
|
# 3. Simply mention the agent in your prompt (e.g., "As *dev, ...").
|
||||||
# 4. The Gemini CLI will automatically have the context for that agent.
|
# 4. The Gemini CLI will automatically have the context for that agent.
|
||||||
github-copilot:
|
github-copilot:
|
||||||
name: Github Copilot
|
name: Github Copilot
|
||||||
|
|||||||
@@ -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 files = glob.sync(pattern, { cwd: sourceDir });
|
||||||
const copied = [];
|
const copied = [];
|
||||||
|
|
||||||
@@ -55,7 +55,17 @@ class FileManager {
|
|||||||
const sourcePath = path.join(sourceDir, file);
|
const sourcePath = path.join(sourceDir, file);
|
||||||
const destPath = path.join(destDir, 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);
|
copied.push(file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -299,6 +309,71 @@ class FileManager {
|
|||||||
return false;
|
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();
|
module.exports = new FileManager();
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ class IdeSetup {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async setupClaudeCode(installDir, selectedAgent) {
|
async setupClaudeCode(installDir, selectedAgent) {
|
||||||
const commandsDir = path.join(installDir, ".claude", "commands");
|
const commandsDir = path.join(installDir, ".claude", "commands", "BMad");
|
||||||
const agents = selectedAgent ? [selectedAgent] : await this.getAllAgentIds(installDir);
|
const agents = selectedAgent ? [selectedAgent] : await this.getAllAgentIds(installDir);
|
||||||
|
|
||||||
await fileManager.ensureDirectory(commandsDir);
|
await fileManager.ensureDirectory(commandsDir);
|
||||||
@@ -512,12 +512,53 @@ class IdeSetup {
|
|||||||
async setupGeminiCli(installDir, selectedAgent) {
|
async setupGeminiCli(installDir, selectedAgent) {
|
||||||
await initializeModules();
|
await initializeModules();
|
||||||
const geminiDir = path.join(installDir, ".gemini");
|
const geminiDir = path.join(installDir, ".gemini");
|
||||||
const agentsContextDir = path.join(geminiDir, "agents");
|
const bmadMethodDir = path.join(geminiDir, "bmad-method");
|
||||||
await fileManager.ensureDirectory(agentsContextDir);
|
await fileManager.ensureDirectory(bmadMethodDir);
|
||||||
|
|
||||||
|
// Update logic for existing settings.json
|
||||||
|
const settingsPath = path.join(geminiDir, "settings.json");
|
||||||
|
if (await fileManager.pathExists(settingsPath)) {
|
||||||
|
try {
|
||||||
|
const settingsContent = await fileManager.readFile(settingsPath);
|
||||||
|
const settings = JSON.parse(settingsContent);
|
||||||
|
let updated = false;
|
||||||
|
|
||||||
|
// Handle contextFileName property
|
||||||
|
if (settings.contextFileName && Array.isArray(settings.contextFileName)) {
|
||||||
|
const originalLength = settings.contextFileName.length;
|
||||||
|
settings.contextFileName = settings.contextFileName.filter(
|
||||||
|
(fileName) => !fileName.startsWith("agents/")
|
||||||
|
);
|
||||||
|
if (settings.contextFileName.length !== originalLength) {
|
||||||
|
updated = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (updated) {
|
||||||
|
await fileManager.writeFile(
|
||||||
|
settingsPath,
|
||||||
|
JSON.stringify(settings, null, 2)
|
||||||
|
);
|
||||||
|
console.log(chalk.green("✓ Updated .gemini/settings.json - removed agent file references"));
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.warn(
|
||||||
|
chalk.yellow("Could not update .gemini/settings.json"),
|
||||||
|
error
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove old agents directory
|
||||||
|
const agentsDir = path.join(geminiDir, "agents");
|
||||||
|
if (await fileManager.pathExists(agentsDir)) {
|
||||||
|
await fileManager.removeDirectory(agentsDir);
|
||||||
|
console.log(chalk.green("✓ Removed old .gemini/agents directory"));
|
||||||
|
}
|
||||||
|
|
||||||
// Get all available agents
|
// Get all available agents
|
||||||
const agents = await this.getAllAgentIds(installDir);
|
const agents = await this.getAllAgentIds(installDir);
|
||||||
const agentContextFiles = [];
|
let concatenatedContent = "";
|
||||||
|
|
||||||
for (const agentId of agents) {
|
for (const agentId of agents) {
|
||||||
// Find the source agent file
|
// Find the source agent file
|
||||||
@@ -525,43 +566,46 @@ class IdeSetup {
|
|||||||
|
|
||||||
if (agentPath) {
|
if (agentPath) {
|
||||||
const agentContent = await fileManager.readFile(agentPath);
|
const agentContent = await fileManager.readFile(agentPath);
|
||||||
const contextFilePath = path.join(agentsContextDir, `${agentId}.md`);
|
|
||||||
|
|
||||||
// Copy the agent content directly into its own context file
|
// Create properly formatted agent rule content (similar to trae)
|
||||||
await fileManager.writeFile(contextFilePath, agentContent);
|
let agentRuleContent = `# ${agentId.toUpperCase()} Agent Rule\n\n`;
|
||||||
|
agentRuleContent += `This rule is triggered when the user types \`*${agentId}\` and activates the ${await this.getAgentTitle(
|
||||||
|
agentId,
|
||||||
|
installDir
|
||||||
|
)} agent persona.\n\n`;
|
||||||
|
agentRuleContent += "## Agent Activation\n\n";
|
||||||
|
agentRuleContent +=
|
||||||
|
"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:\n\n";
|
||||||
|
agentRuleContent += "```yaml\n";
|
||||||
|
// Extract just the YAML content from the agent file
|
||||||
|
const yamlContent = extractYamlFromAgent(agentContent);
|
||||||
|
if (yamlContent) {
|
||||||
|
agentRuleContent += yamlContent;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// If no YAML found, include the whole content minus the header
|
||||||
|
agentRuleContent += agentContent.replace(/^#.*$/m, "").trim();
|
||||||
|
}
|
||||||
|
agentRuleContent += "\n```\n\n";
|
||||||
|
agentRuleContent += "## File Reference\n\n";
|
||||||
|
const relativePath = path.relative(installDir, agentPath).replace(/\\/g, '/');
|
||||||
|
agentRuleContent += `The complete agent definition is available in [${relativePath}](${relativePath}).\n\n`;
|
||||||
|
agentRuleContent += "## Usage\n\n";
|
||||||
|
agentRuleContent += `When the user types \`*${agentId}\`, activate this ${await this.getAgentTitle(
|
||||||
|
agentId,
|
||||||
|
installDir
|
||||||
|
)} persona and follow all instructions defined in the YAML configuration above.\n`;
|
||||||
|
|
||||||
// Store the relative path for settings.json
|
// Add to concatenated content with separator
|
||||||
const relativePath = path.relative(geminiDir, contextFilePath);
|
concatenatedContent += agentRuleContent + "\n\n---\n\n";
|
||||||
agentContextFiles.push(relativePath.replace(/\\/g, '/')); // Ensure forward slashes for consistency
|
console.log(chalk.green(`✓ Added context for @${agentId}`));
|
||||||
console.log(chalk.green(`✓ Created context file for @${agentId}`));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(chalk.green(`\n✓ Created individual agent context files in ${agentsContextDir}`));
|
// Write the concatenated content to GEMINI.md
|
||||||
|
const geminiMdPath = path.join(bmadMethodDir, "GEMINI.md");
|
||||||
// Add GEMINI.md to the context files array
|
await fileManager.writeFile(geminiMdPath, concatenatedContent);
|
||||||
agentContextFiles.push("GEMINI.md");
|
console.log(chalk.green(`\n✓ Created GEMINI.md in ${bmadMethodDir}`));
|
||||||
|
|
||||||
// Create or update settings.json
|
|
||||||
const settingsPath = path.join(geminiDir, "settings.json");
|
|
||||||
let settings = {};
|
|
||||||
|
|
||||||
if (await fileManager.pathExists(settingsPath)) {
|
|
||||||
try {
|
|
||||||
const existingSettings = await fileManager.readFile(settingsPath);
|
|
||||||
settings = JSON.parse(existingSettings);
|
|
||||||
console.log(chalk.yellow("Found existing .gemini/settings.json. Merging settings..."));
|
|
||||||
} catch (e) {
|
|
||||||
console.error(chalk.red("Error parsing existing settings.json. It will be overwritten."), e);
|
|
||||||
settings = {};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set contextFileName to our new array of files
|
|
||||||
settings.contextFileName = agentContextFiles;
|
|
||||||
|
|
||||||
await fileManager.writeFile(settingsPath, JSON.stringify(settings, null, 2));
|
|
||||||
console.log(chalk.green(`✓ Configured .gemini/settings.json to load all agent context files.`));
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -244,7 +244,7 @@ class Installer {
|
|||||||
spinner.text = "Copying complete .bmad-core folder...";
|
spinner.text = "Copying complete .bmad-core folder...";
|
||||||
const sourceDir = configLoader.getBmadCorePath();
|
const sourceDir = configLoader.getBmadCorePath();
|
||||||
const bmadCoreDestDir = path.join(installDir, ".bmad-core");
|
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
|
// Copy common/ items to .bmad-core
|
||||||
spinner.text = "Copying common utilities...";
|
spinner.text = "Copying common utilities...";
|
||||||
@@ -263,7 +263,7 @@ class Installer {
|
|||||||
// Single agent installation
|
// Single agent installation
|
||||||
spinner.text = `Installing ${config.agent} agent...`;
|
spinner.text = `Installing ${config.agent} agent...`;
|
||||||
|
|
||||||
// Copy agent file
|
// Copy agent file with {root} replacement
|
||||||
const agentPath = configLoader.getAgentPath(config.agent);
|
const agentPath = configLoader.getAgentPath(config.agent);
|
||||||
const destAgentPath = path.join(
|
const destAgentPath = path.join(
|
||||||
installDir,
|
installDir,
|
||||||
@@ -271,7 +271,7 @@ class Installer {
|
|||||||
"agents",
|
"agents",
|
||||||
`${config.agent}.md`
|
`${config.agent}.md`
|
||||||
);
|
);
|
||||||
await fileManager.copyFile(agentPath, destAgentPath);
|
await fileManager.copyFileWithRootReplacement(agentPath, destAgentPath, ".bmad-core");
|
||||||
files.push(`.bmad-core/agents/${config.agent}.md`);
|
files.push(`.bmad-core/agents/${config.agent}.md`);
|
||||||
|
|
||||||
// Copy dependencies
|
// Copy dependencies
|
||||||
@@ -284,15 +284,16 @@ class Installer {
|
|||||||
spinner.text = `Copying dependency: ${dep}`;
|
spinner.text = `Copying dependency: ${dep}`;
|
||||||
|
|
||||||
if (dep.includes("*")) {
|
if (dep.includes("*")) {
|
||||||
// Handle glob patterns
|
// Handle glob patterns with {root} replacement
|
||||||
const copiedFiles = await fileManager.copyGlobPattern(
|
const copiedFiles = await fileManager.copyGlobPattern(
|
||||||
dep.replace(".bmad-core/", ""),
|
dep.replace(".bmad-core/", ""),
|
||||||
sourceBase,
|
sourceBase,
|
||||||
path.join(installDir, ".bmad-core")
|
path.join(installDir, ".bmad-core"),
|
||||||
|
".bmad-core"
|
||||||
);
|
);
|
||||||
files.push(...copiedFiles.map(f => `.bmad-core/${f}`));
|
files.push(...copiedFiles.map(f => `.bmad-core/${f}`));
|
||||||
} else {
|
} else {
|
||||||
// Handle single files
|
// Handle single files with {root} replacement if needed
|
||||||
const sourcePath = path.join(
|
const sourcePath = path.join(
|
||||||
sourceBase,
|
sourceBase,
|
||||||
dep.replace(".bmad-core/", "")
|
dep.replace(".bmad-core/", "")
|
||||||
@@ -302,7 +303,16 @@ class Installer {
|
|||||||
dep
|
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);
|
files.push(dep);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -325,19 +335,29 @@ class Installer {
|
|||||||
spinner.text = `Copying team dependency: ${dep}`;
|
spinner.text = `Copying team dependency: ${dep}`;
|
||||||
|
|
||||||
if (dep.includes("*")) {
|
if (dep.includes("*")) {
|
||||||
// Handle glob patterns
|
// Handle glob patterns with {root} replacement
|
||||||
const copiedFiles = await fileManager.copyGlobPattern(
|
const copiedFiles = await fileManager.copyGlobPattern(
|
||||||
dep.replace(".bmad-core/", ""),
|
dep.replace(".bmad-core/", ""),
|
||||||
sourceBase,
|
sourceBase,
|
||||||
path.join(installDir, ".bmad-core")
|
path.join(installDir, ".bmad-core"),
|
||||||
|
".bmad-core"
|
||||||
);
|
);
|
||||||
files.push(...copiedFiles.map(f => `.bmad-core/${f}`));
|
files.push(...copiedFiles.map(f => `.bmad-core/${f}`));
|
||||||
} else {
|
} else {
|
||||||
// Handle single files
|
// Handle single files with {root} replacement if needed
|
||||||
const sourcePath = path.join(sourceBase, dep.replace(".bmad-core/", ""));
|
const sourcePath = path.join(sourceBase, dep.replace(".bmad-core/", ""));
|
||||||
const destPath = path.join(installDir, dep);
|
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);
|
files.push(dep);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1172,32 +1192,41 @@ class Installer {
|
|||||||
nodir: true
|
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) {
|
for (const file of files) {
|
||||||
const sourcePath = path.join(sourceFolder, file);
|
const sourcePath = path.join(sourceFolder, file);
|
||||||
const destPath = path.join(expansionDotFolder, folder, 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));
|
installedFiles.push(path.join(`.${packId}`, folder, file));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Copy config.yaml
|
// Copy config.yaml with {root} replacement
|
||||||
const configPath = path.join(expansionPackDir, 'config.yaml');
|
const configPath = path.join(expansionPackDir, 'config.yaml');
|
||||||
if (await fileManager.pathExists(configPath)) {
|
if (await fileManager.pathExists(configPath)) {
|
||||||
const configDestPath = path.join(expansionDotFolder, 'config.yaml');
|
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'));
|
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');
|
const readmePath = path.join(expansionPackDir, 'README.md');
|
||||||
if (await fileManager.pathExists(readmePath)) {
|
if (await fileManager.pathExists(readmePath)) {
|
||||||
const readmeDestPath = path.join(expansionDotFolder, 'README.md');
|
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'));
|
installedFiles.push(path.join(`.${packId}`, 'README.md'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1258,7 +1287,7 @@ class Installer {
|
|||||||
const yamlContent = extractYamlFromAgent(agentContent);
|
const yamlContent = extractYamlFromAgent(agentContent);
|
||||||
if (yamlContent) {
|
if (yamlContent) {
|
||||||
try {
|
try {
|
||||||
const agentConfig = yaml.parse(yamlContent);
|
const agentConfig = yaml.load(yamlContent);
|
||||||
const dependencies = agentConfig.dependencies || {};
|
const dependencies = agentConfig.dependencies || {};
|
||||||
|
|
||||||
// Check for core dependencies (those that don't exist in the expansion pack)
|
// Check for core dependencies (those that don't exist in the expansion pack)
|
||||||
@@ -1277,9 +1306,9 @@ class Installer {
|
|||||||
if (await fileManager.pathExists(coreDepPath)) {
|
if (await fileManager.pathExists(coreDepPath)) {
|
||||||
spinner.text = `Copying core dependency ${dep} for ${packId}...`;
|
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);
|
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}`));
|
console.log(chalk.dim(` Added core dependency: ${depType}/${depFileName}`));
|
||||||
} else {
|
} else {
|
||||||
@@ -1321,7 +1350,7 @@ class Installer {
|
|||||||
const teamContent = await fs.readFile(teamPath, 'utf8');
|
const teamContent = await fs.readFile(teamPath, 'utf8');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const teamConfig = yaml.parse(teamContent);
|
const teamConfig = yaml.load(teamContent);
|
||||||
const agents = teamConfig.agents || [];
|
const agents = teamConfig.agents || [];
|
||||||
|
|
||||||
// Add bmad-orchestrator if not present (required for all teams)
|
// Add bmad-orchestrator if not present (required for all teams)
|
||||||
@@ -1338,9 +1367,9 @@ class Installer {
|
|||||||
if (await fileManager.pathExists(coreAgentPath)) {
|
if (await fileManager.pathExists(coreAgentPath)) {
|
||||||
spinner.text = `Copying core agent ${agentId} for ${packId}...`;
|
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`);
|
const destPath = path.join(expansionDotFolder, 'agents', `${agentId}.md`);
|
||||||
await fileManager.copyFile(coreAgentPath, destPath);
|
await fileManager.copyFileWithRootReplacement(coreAgentPath, destPath, `.${packId}`);
|
||||||
existingAgents.add(agentId);
|
existingAgents.add(agentId);
|
||||||
|
|
||||||
console.log(chalk.dim(` Added core agent: ${agentId}`));
|
console.log(chalk.dim(` Added core agent: ${agentId}`));
|
||||||
@@ -1352,7 +1381,7 @@ class Installer {
|
|||||||
if (yamlContent) {
|
if (yamlContent) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
const agentConfig = yaml.parse(yamlContent);
|
const agentConfig = yaml.load(yamlContent);
|
||||||
const dependencies = agentConfig.dependencies || {};
|
const dependencies = agentConfig.dependencies || {};
|
||||||
|
|
||||||
// Copy all dependencies for this agent
|
// Copy all dependencies for this agent
|
||||||
@@ -1370,7 +1399,7 @@ class Installer {
|
|||||||
|
|
||||||
if (await fileManager.pathExists(coreDepPath)) {
|
if (await fileManager.pathExists(coreDepPath)) {
|
||||||
const destDepPath = path.join(expansionDotFolder, depType, depFileName);
|
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}`));
|
console.log(chalk.dim(` Added agent dependency: ${depType}/${depFileName}`));
|
||||||
} else {
|
} else {
|
||||||
// Try common folder
|
// Try common folder
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "bmad-method",
|
"name": "bmad-method",
|
||||||
"version": "4.27.5",
|
"version": "4.28.0",
|
||||||
"description": "BMad Method installer - AI-powered Agile development framework",
|
"description": "BMad Method installer - AI-powered Agile development framework",
|
||||||
"main": "lib/installer.js",
|
"main": "lib/installer.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|||||||
@@ -558,7 +558,7 @@ class V3ToV4Upgrader {
|
|||||||
try {
|
try {
|
||||||
const ideMessages = {
|
const ideMessages = {
|
||||||
cursor: "Rules created in .cursor/rules/",
|
cursor: "Rules created in .cursor/rules/",
|
||||||
"claude-code": "Commands created in .claude/commands/",
|
"claude-code": "Commands created in .claude/commands/BMad/",
|
||||||
windsurf: "Rules created in .windsurf/rules/",
|
windsurf: "Rules created in .windsurf/rules/",
|
||||||
trae: "Rules created in.trae/rules/",
|
trae: "Rules created in.trae/rules/",
|
||||||
roo: "Custom modes created in .roomodes",
|
roo: "Custom modes created in .roomodes",
|
||||||
|
|||||||
Reference in New Issue
Block a user