Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f32a5fe08a | ||
|
|
3c13c56498 | ||
|
|
97f01f6931 | ||
|
|
c42002f1ea | ||
|
|
b5cbffd608 | ||
|
|
db302309f4 | ||
|
|
c97d76c797 | ||
|
|
cadf8b6750 | ||
|
|
ba9e3f3272 | ||
|
|
412f152547 | ||
|
|
1b86cd4db3 |
28
CHANGELOG.md
28
CHANGELOG.md
@@ -1,3 +1,31 @@
|
|||||||
|
# [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)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* installer for github copilot asks follow up questions right away now so it does not seem to hang, and some minor doc improvements ([cadf8b6](https://github.com/bmadcode/BMAD-METHOD/commit/cadf8b6750afd5daa32eb887608c614584156a69))
|
||||||
|
|
||||||
|
## [4.27.4](https://github.com/bmadcode/BMAD-METHOD/compare/v4.27.3...v4.27.4) (2025-07-07)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* doc updates ([1b86cd4](https://github.com/bmadcode/BMAD-METHOD/commit/1b86cd4db3644ca2b2b4a94821cc8b5690d78e0a))
|
||||||
|
|
||||||
## [4.27.3](https://github.com/bmadcode/BMAD-METHOD/compare/v4.27.2...v4.27.3) (2025-07-07)
|
## [4.27.3](https://github.com/bmadcode/BMAD-METHOD/compare/v4.27.2...v4.27.3) (2025-07-07)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Thank you for considering contributing to this project! This document outlines t
|
|||||||
|
|
||||||
🆕 **New to GitHub or pull requests?** Check out our [beginner-friendly Pull Request Guide](docs/how-to-contribute-with-pull-requests.md) first!
|
🆕 **New to GitHub or pull requests?** Check out our [beginner-friendly Pull Request Guide](docs/how-to-contribute-with-pull-requests.md) first!
|
||||||
|
|
||||||
📋 **Before contributing**, please read our [Guiding Principles](GUIDING-PRINCIPLES.md) to understand the BMad Method's core philosophy and architectural decisions.
|
📋 **Before contributing**, please read our [Guiding Principles](docs/GUIDING-PRINCIPLES.md) to understand the BMad Method's core philosophy and architectural decisions.
|
||||||
|
|
||||||
Also note, we use the discussions feature in GitHub to have a community to discuss potential ideas, uses, additions and enhancements.
|
Also note, we use the discussions feature in GitHub to have a community to discuss potential ideas, uses, additions and enhancements.
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ By participating in this project, you agree to abide by our Code of Conduct. Ple
|
|||||||
|
|
||||||
Please only propose small granular commits! If its large or significant, please discuss in the discussions tab and open up an issue first. I do not want you to waste your time on a potentially very large PR to have it rejected because it is not aligned or deviates from other planned changes. Communicate and lets work together to build and improve this great community project!
|
Please only propose small granular commits! If its large or significant, please discuss in the discussions tab and open up an issue first. I do not want you to waste your time on a potentially very large PR to have it rejected because it is not aligned or deviates from other planned changes. Communicate and lets work together to build and improve this great community project!
|
||||||
|
|
||||||
**Important**: All contributions must align with our [Guiding Principles](GUIDING-PRINCIPLES.md). Key points:
|
**Important**: All contributions must align with our [Guiding Principles](docs/GUIDING-PRINCIPLES.md). Key points:
|
||||||
|
|
||||||
- Keep dev agents lean - they need context for coding, not documentation
|
- Keep dev agents lean - they need context for coding, not documentation
|
||||||
- Web/planning agents can be larger with more complex tasks
|
- Web/planning agents can be larger with more complex tasks
|
||||||
|
|||||||
@@ -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,10 +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
|
|
||||||
- template-format.md
|
|
||||||
- workflow-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,7 +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
|
||||||
- template-format.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
|
||||||
|
|||||||
@@ -403,17 +403,10 @@ The BMad-Method is built around a modular architecture centered on the `bmad-cor
|
|||||||
|
|
||||||
BMad employs a sophisticated template system with three key components:
|
BMad employs a sophisticated template system with three key components:
|
||||||
|
|
||||||
1. **Template Format** (`utils/template-format.md`): Defines markup language for variable substitution and AI processing directives
|
1. **Template Format** (`utils/bmad-doc-template.md`): Defines markup language for variable substitution and AI processing directives from yaml templates
|
||||||
2. **Document Creation** (`tasks/create-doc.md`): Orchestrates template selection and user interaction
|
2. **Document Creation** (`tasks/create-doc.md`): Orchestrates template selection and user interaction to transform yaml spec to final markdown output
|
||||||
3. **Advanced Elicitation** (`tasks/advanced-elicitation.md`): Provides interactive refinement through structured brainstorming
|
3. **Advanced Elicitation** (`tasks/advanced-elicitation.md`): Provides interactive refinement through structured brainstorming
|
||||||
|
|
||||||
**Template Features**:
|
|
||||||
|
|
||||||
- **Self-contained**: Templates embed both output structure and processing instructions
|
|
||||||
- **Variable Substitution**: `{{placeholders}}` for dynamic content
|
|
||||||
- **AI Processing Directives**: `[[LLM: instructions]]` for AI-only processing
|
|
||||||
- **Interactive Refinement**: Built-in elicitation processes for quality improvement
|
|
||||||
|
|
||||||
### Technical Preferences Integration
|
### Technical Preferences Integration
|
||||||
|
|
||||||
The `technical-preferences.md` file serves as a persistent technical profile that:
|
The `technical-preferences.md` file serves as a persistent technical profile that:
|
||||||
@@ -733,7 +726,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
|
||||||
@@ -803,8 +796,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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
# Template Format Conventions
|
|
||||||
|
|
||||||
Templates in the BMad method use standardized markup for AI processing. These conventions ensure consistent document generation.
|
|
||||||
|
|
||||||
## Template Markup Elements
|
|
||||||
|
|
||||||
- **{{placeholders}}**: Variables to be replaced with actual content
|
|
||||||
- **[[LLM: instructions]]**: Internal processing instructions for AI agents (never shown to users)
|
|
||||||
- **REPEAT** sections: Content blocks that may be repeated as needed
|
|
||||||
- **^^CONDITION^^** blocks: Conditional content included only if criteria are met
|
|
||||||
- **@{examples}**: Example content for guidance (never output to users)
|
|
||||||
|
|
||||||
## Processing Rules
|
|
||||||
|
|
||||||
- Replace all {{placeholders}} with project-specific content
|
|
||||||
- Execute all [[LLM: instructions]] internally without showing users
|
|
||||||
- Process conditional and repeat blocks as specified
|
|
||||||
- Use examples for guidance but never include them in final output
|
|
||||||
- Present only clean, formatted content to users
|
|
||||||
|
|
||||||
## Critical Guidelines
|
|
||||||
|
|
||||||
- **NEVER display template markup, LLM instructions, or examples to users**
|
|
||||||
- Template elements are for AI processing only
|
|
||||||
- Focus on faithful template execution and clean output
|
|
||||||
- All template-specific instructions are embedded within templates
|
|
||||||
17
dist/agents/analyst.txt
vendored
17
dist/agents/analyst.txt
vendored
@@ -2409,17 +2409,10 @@ The BMad-Method is built around a modular architecture centered on the `bmad-cor
|
|||||||
|
|
||||||
BMad employs a sophisticated template system with three key components:
|
BMad employs a sophisticated template system with three key components:
|
||||||
|
|
||||||
1. **Template Format** (`utils/template-format.md`): Defines markup language for variable substitution and AI processing directives
|
1. **Template Format** (`utils/bmad-doc-template.md`): Defines markup language for variable substitution and AI processing directives from yaml templates
|
||||||
2. **Document Creation** (`tasks/create-doc.md`): Orchestrates template selection and user interaction
|
2. **Document Creation** (`tasks/create-doc.md`): Orchestrates template selection and user interaction to transform yaml spec to final markdown output
|
||||||
3. **Advanced Elicitation** (`tasks/advanced-elicitation.md`): Provides interactive refinement through structured brainstorming
|
3. **Advanced Elicitation** (`tasks/advanced-elicitation.md`): Provides interactive refinement through structured brainstorming
|
||||||
|
|
||||||
**Template Features**:
|
|
||||||
|
|
||||||
- **Self-contained**: Templates embed both output structure and processing instructions
|
|
||||||
- **Variable Substitution**: `{{placeholders}}` for dynamic content
|
|
||||||
- **AI Processing Directives**: `[[LLM: instructions]]` for AI-only processing
|
|
||||||
- **Interactive Refinement**: Built-in elicitation processes for quality improvement
|
|
||||||
|
|
||||||
### Technical Preferences Integration
|
### Technical Preferences Integration
|
||||||
|
|
||||||
The `technical-preferences.md` file serves as a persistent technical profile that:
|
The `technical-preferences.md` file serves as a persistent technical profile that:
|
||||||
@@ -2739,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
|
||||||
@@ -2809,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
|
||||||
|
|||||||
14
dist/agents/architect.txt
vendored
14
dist/agents/architect.txt
vendored
@@ -1535,7 +1535,6 @@ sections:
|
|||||||
After completing the architecture:
|
After completing the architecture:
|
||||||
|
|
||||||
1. If project has UI components:
|
1. If project has UI components:
|
||||||
- Recommend engaging Design Architect agent
|
|
||||||
- Use "Frontend Architecture Mode"
|
- Use "Frontend Architecture Mode"
|
||||||
- Provide this document as input
|
- Provide this document as input
|
||||||
|
|
||||||
@@ -1546,22 +1545,15 @@ sections:
|
|||||||
|
|
||||||
3. Include specific prompts for next agents if needed
|
3. Include specific prompts for next agents if needed
|
||||||
sections:
|
sections:
|
||||||
- id: design-architect-prompt
|
- id: architect-prompt
|
||||||
title: Design Architect Prompt
|
title: Architect Prompt
|
||||||
condition: Project has UI components
|
condition: Project has UI components
|
||||||
instruction: |
|
instruction: |
|
||||||
Create a brief prompt to hand off to Design Architect for Frontend Architecture creation. Include:
|
Create a brief prompt to hand off to Architect for Frontend Architecture creation. Include:
|
||||||
- Reference to this architecture document
|
- Reference to this architecture document
|
||||||
- Key UI requirements from PRD
|
- Key UI requirements from PRD
|
||||||
- Any frontend-specific decisions made here
|
- Any frontend-specific decisions made here
|
||||||
- Request for detailed frontend architecture
|
- Request for detailed frontend architecture
|
||||||
- id: developer-handoff
|
|
||||||
title: Developer Handoff
|
|
||||||
instruction: |
|
|
||||||
Create a brief prompt for developers starting implementation. Include:
|
|
||||||
- Reference to this architecture and coding standards
|
|
||||||
- First epic/story to implement
|
|
||||||
- Key technical decisions to follow
|
|
||||||
==================== END: .bmad-core/templates/architecture-tmpl.yaml ====================
|
==================== END: .bmad-core/templates/architecture-tmpl.yaml ====================
|
||||||
|
|
||||||
==================== START: .bmad-core/templates/front-end-architecture-tmpl.yaml ====================
|
==================== START: .bmad-core/templates/front-end-architecture-tmpl.yaml ====================
|
||||||
|
|||||||
392
dist/agents/bmad-master.txt
vendored
392
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,10 +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
|
|
||||||
- template-format.md
|
|
||||||
- workflow-management.md
|
|
||||||
workflows:
|
workflows:
|
||||||
- brownfield-fullstack.md
|
- brownfield-fullstack.md
|
||||||
- brownfield-service.md
|
- brownfield-service.md
|
||||||
@@ -1806,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
|
||||||
|
|
||||||
@@ -3318,7 +3294,6 @@ sections:
|
|||||||
After completing the architecture:
|
After completing the architecture:
|
||||||
|
|
||||||
1. If project has UI components:
|
1. If project has UI components:
|
||||||
- Recommend engaging Design Architect agent
|
|
||||||
- Use "Frontend Architecture Mode"
|
- Use "Frontend Architecture Mode"
|
||||||
- Provide this document as input
|
- Provide this document as input
|
||||||
|
|
||||||
@@ -3329,22 +3304,15 @@ sections:
|
|||||||
|
|
||||||
3. Include specific prompts for next agents if needed
|
3. Include specific prompts for next agents if needed
|
||||||
sections:
|
sections:
|
||||||
- id: design-architect-prompt
|
- id: architect-prompt
|
||||||
title: Design Architect Prompt
|
title: Architect Prompt
|
||||||
condition: Project has UI components
|
condition: Project has UI components
|
||||||
instruction: |
|
instruction: |
|
||||||
Create a brief prompt to hand off to Design Architect for Frontend Architecture creation. Include:
|
Create a brief prompt to hand off to Architect for Frontend Architecture creation. Include:
|
||||||
- Reference to this architecture document
|
- Reference to this architecture document
|
||||||
- Key UI requirements from PRD
|
- Key UI requirements from PRD
|
||||||
- Any frontend-specific decisions made here
|
- Any frontend-specific decisions made here
|
||||||
- Request for detailed frontend architecture
|
- Request for detailed frontend architecture
|
||||||
- id: developer-handoff
|
|
||||||
title: Developer Handoff
|
|
||||||
instruction: |
|
|
||||||
Create a brief prompt for developers starting implementation. Include:
|
|
||||||
- Reference to this architecture and coding standards
|
|
||||||
- First epic/story to implement
|
|
||||||
- Key technical decisions to follow
|
|
||||||
==================== END: .bmad-core/templates/architecture-tmpl.yaml ====================
|
==================== END: .bmad-core/templates/architecture-tmpl.yaml ====================
|
||||||
|
|
||||||
==================== START: .bmad-core/templates/brownfield-architecture-tmpl.yaml ====================
|
==================== START: .bmad-core/templates/brownfield-architecture-tmpl.yaml ====================
|
||||||
@@ -6226,9 +6194,9 @@ sections:
|
|||||||
- id: next-steps
|
- id: next-steps
|
||||||
title: Next Steps
|
title: Next Steps
|
||||||
sections:
|
sections:
|
||||||
- id: design-architect-prompt
|
- id: ux-expert-prompt
|
||||||
title: Design Architect Prompt
|
title: UX Expert Prompt
|
||||||
instruction: This section will contain the prompt for the Design Architect, keep it short and to the point to initiate create architecture mode using this document as input.
|
instruction: This section will contain the prompt for the UX Expert, keep it short and to the point to initiate create architecture mode using this document as input.
|
||||||
- id: architect-prompt
|
- id: architect-prompt
|
||||||
title: Architect Prompt
|
title: Architect Prompt
|
||||||
instruction: This section will contain the prompt for the Architect, keep it short and to the point to initiate create architecture mode using this document as input.
|
instruction: This section will contain the prompt for the Architect, keep it short and to the point to initiate create architecture mode using this document as input.
|
||||||
@@ -8720,17 +8688,10 @@ The BMad-Method is built around a modular architecture centered on the `bmad-cor
|
|||||||
|
|
||||||
BMad employs a sophisticated template system with three key components:
|
BMad employs a sophisticated template system with three key components:
|
||||||
|
|
||||||
1. **Template Format** (`utils/template-format.md`): Defines markup language for variable substitution and AI processing directives
|
1. **Template Format** (`utils/bmad-doc-template.md`): Defines markup language for variable substitution and AI processing directives from yaml templates
|
||||||
2. **Document Creation** (`tasks/create-doc.md`): Orchestrates template selection and user interaction
|
2. **Document Creation** (`tasks/create-doc.md`): Orchestrates template selection and user interaction to transform yaml spec to final markdown output
|
||||||
3. **Advanced Elicitation** (`tasks/advanced-elicitation.md`): Provides interactive refinement through structured brainstorming
|
3. **Advanced Elicitation** (`tasks/advanced-elicitation.md`): Provides interactive refinement through structured brainstorming
|
||||||
|
|
||||||
**Template Features**:
|
|
||||||
|
|
||||||
- **Self-contained**: Templates embed both output structure and processing instructions
|
|
||||||
- **Variable Substitution**: `{{placeholders}}` for dynamic content
|
|
||||||
- **AI Processing Directives**: `[[LLM: instructions]]` for AI-only processing
|
|
||||||
- **Interactive Refinement**: Built-in elicitation processes for quality improvement
|
|
||||||
|
|
||||||
### Technical Preferences Integration
|
### Technical Preferences Integration
|
||||||
|
|
||||||
The `technical-preferences.md` file serves as a persistent technical profile that:
|
The `technical-preferences.md` file serves as a persistent technical profile that:
|
||||||
@@ -9050,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
|
||||||
@@ -9120,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
|
||||||
@@ -9308,326 +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/template-format.md ====================
|
|
||||||
# Template Format Conventions
|
|
||||||
|
|
||||||
Templates in the BMad method use standardized markup for AI processing. These conventions ensure consistent document generation.
|
|
||||||
|
|
||||||
## Template Markup Elements
|
|
||||||
|
|
||||||
- **{{placeholders}}**: Variables to be replaced with actual content
|
|
||||||
- **[[LLM: instructions]]**: Internal processing instructions for AI agents (never shown to users)
|
|
||||||
- **REPEAT** sections: Content blocks that may be repeated as needed
|
|
||||||
- **^^CONDITION^^** blocks: Conditional content included only if criteria are met
|
|
||||||
- **@{examples}**: Example content for guidance (never output to users)
|
|
||||||
|
|
||||||
## Processing Rules
|
|
||||||
|
|
||||||
- Replace all {{placeholders}} with project-specific content
|
|
||||||
- Execute all [[LLM: instructions]] internally without showing users
|
|
||||||
- Process conditional and repeat blocks as specified
|
|
||||||
- Use examples for guidance but never include them in final output
|
|
||||||
- Present only clean, formatted content to users
|
|
||||||
|
|
||||||
## Critical Guidelines
|
|
||||||
|
|
||||||
- **NEVER display template markup, LLM instructions, or examples to users**
|
|
||||||
- Template elements are for AI processing only
|
|
||||||
- Focus on faithful template execution and clean output
|
|
||||||
- All template-specific instructions are embedded within templates
|
|
||||||
==================== END: .bmad-core/utils/template-format.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 ====================
|
|
||||||
|
|||||||
273
dist/agents/bmad-orchestrator.txt
vendored
273
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,9 +168,7 @@ dependencies:
|
|||||||
- bmad-kb.md
|
- bmad-kb.md
|
||||||
- elicitation-methods.md
|
- elicitation-methods.md
|
||||||
utils:
|
utils:
|
||||||
- plan-management.md
|
|
||||||
- workflow-management.md
|
- workflow-management.md
|
||||||
- template-format.md
|
|
||||||
```
|
```
|
||||||
==================== END: .bmad-core/agents/bmad-orchestrator.md ====================
|
==================== END: .bmad-core/agents/bmad-orchestrator.md ====================
|
||||||
|
|
||||||
@@ -1401,17 +1396,10 @@ The BMad-Method is built around a modular architecture centered on the `bmad-cor
|
|||||||
|
|
||||||
BMad employs a sophisticated template system with three key components:
|
BMad employs a sophisticated template system with three key components:
|
||||||
|
|
||||||
1. **Template Format** (`utils/template-format.md`): Defines markup language for variable substitution and AI processing directives
|
1. **Template Format** (`utils/bmad-doc-template.md`): Defines markup language for variable substitution and AI processing directives from yaml templates
|
||||||
2. **Document Creation** (`tasks/create-doc.md`): Orchestrates template selection and user interaction
|
2. **Document Creation** (`tasks/create-doc.md`): Orchestrates template selection and user interaction to transform yaml spec to final markdown output
|
||||||
3. **Advanced Elicitation** (`tasks/advanced-elicitation.md`): Provides interactive refinement through structured brainstorming
|
3. **Advanced Elicitation** (`tasks/advanced-elicitation.md`): Provides interactive refinement through structured brainstorming
|
||||||
|
|
||||||
**Template Features**:
|
|
||||||
|
|
||||||
- **Self-contained**: Templates embed both output structure and processing instructions
|
|
||||||
- **Variable Substitution**: `{{placeholders}}` for dynamic content
|
|
||||||
- **AI Processing Directives**: `[[LLM: instructions]]` for AI-only processing
|
|
||||||
- **Interactive Refinement**: Built-in elicitation processes for quality improvement
|
|
||||||
|
|
||||||
### Technical Preferences Integration
|
### Technical Preferences Integration
|
||||||
|
|
||||||
The `technical-preferences.md` file serves as a persistent technical profile that:
|
The `technical-preferences.md` file serves as a persistent technical profile that:
|
||||||
@@ -1731,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
|
||||||
@@ -1801,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
|
||||||
@@ -1945,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
|
||||||
|
|
||||||
@@ -2238,32 +2004,3 @@ Handle conditional paths by asking clarifying questions when needed.
|
|||||||
|
|
||||||
Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs.
|
Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs.
|
||||||
==================== END: .bmad-core/utils/workflow-management.md ====================
|
==================== END: .bmad-core/utils/workflow-management.md ====================
|
||||||
|
|
||||||
==================== START: .bmad-core/utils/template-format.md ====================
|
|
||||||
# Template Format Conventions
|
|
||||||
|
|
||||||
Templates in the BMad method use standardized markup for AI processing. These conventions ensure consistent document generation.
|
|
||||||
|
|
||||||
## Template Markup Elements
|
|
||||||
|
|
||||||
- **{{placeholders}}**: Variables to be replaced with actual content
|
|
||||||
- **[[LLM: instructions]]**: Internal processing instructions for AI agents (never shown to users)
|
|
||||||
- **REPEAT** sections: Content blocks that may be repeated as needed
|
|
||||||
- **^^CONDITION^^** blocks: Conditional content included only if criteria are met
|
|
||||||
- **@{examples}**: Example content for guidance (never output to users)
|
|
||||||
|
|
||||||
## Processing Rules
|
|
||||||
|
|
||||||
- Replace all {{placeholders}} with project-specific content
|
|
||||||
- Execute all [[LLM: instructions]] internally without showing users
|
|
||||||
- Process conditional and repeat blocks as specified
|
|
||||||
- Use examples for guidance but never include them in final output
|
|
||||||
- Present only clean, formatted content to users
|
|
||||||
|
|
||||||
## Critical Guidelines
|
|
||||||
|
|
||||||
- **NEVER display template markup, LLM instructions, or examples to users**
|
|
||||||
- Template elements are for AI processing only
|
|
||||||
- Focus on faithful template execution and clean output
|
|
||||||
- All template-specific instructions are embedded within templates
|
|
||||||
==================== END: .bmad-core/utils/template-format.md ====================
|
|
||||||
|
|||||||
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:
|
||||||
|
|||||||
6
dist/agents/pm.txt
vendored
6
dist/agents/pm.txt
vendored
@@ -1360,9 +1360,9 @@ sections:
|
|||||||
- id: next-steps
|
- id: next-steps
|
||||||
title: Next Steps
|
title: Next Steps
|
||||||
sections:
|
sections:
|
||||||
- id: design-architect-prompt
|
- id: ux-expert-prompt
|
||||||
title: Design Architect Prompt
|
title: UX Expert Prompt
|
||||||
instruction: This section will contain the prompt for the Design Architect, keep it short and to the point to initiate create architecture mode using this document as input.
|
instruction: This section will contain the prompt for the UX Expert, keep it short and to the point to initiate create architecture mode using this document as input.
|
||||||
- id: architect-prompt
|
- id: architect-prompt
|
||||||
title: Architect Prompt
|
title: Architect Prompt
|
||||||
instruction: This section will contain the prompt for the Architect, keep it short and to the point to initiate create architecture mode using this document as input.
|
instruction: This section will contain the prompt for the Architect, keep it short and to the point to initiate create architecture mode using this document as input.
|
||||||
|
|||||||
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,9 +249,7 @@ dependencies:
|
|||||||
- bmad-kb.md
|
- bmad-kb.md
|
||||||
- elicitation-methods.md
|
- elicitation-methods.md
|
||||||
utils:
|
utils:
|
||||||
- plan-management.md
|
|
||||||
- workflow-management.md
|
- workflow-management.md
|
||||||
- template-format.md
|
|
||||||
```
|
```
|
||||||
==================== END: .bmad-2d-phaser-game-dev/agents/bmad-orchestrator.md ====================
|
==================== END: .bmad-2d-phaser-game-dev/agents/bmad-orchestrator.md ====================
|
||||||
|
|
||||||
@@ -3375,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
|
||||||
|
|
||||||
@@ -3669,35 +3442,6 @@ Handle conditional paths by asking clarifying questions when needed.
|
|||||||
Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs.
|
Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs.
|
||||||
==================== END: .bmad-2d-phaser-game-dev/utils/workflow-management.md ====================
|
==================== END: .bmad-2d-phaser-game-dev/utils/workflow-management.md ====================
|
||||||
|
|
||||||
==================== START: .bmad-2d-phaser-game-dev/utils/template-format.md ====================
|
|
||||||
# Template Format Conventions
|
|
||||||
|
|
||||||
Templates in the BMad method use standardized markup for AI processing. These conventions ensure consistent document generation.
|
|
||||||
|
|
||||||
## Template Markup Elements
|
|
||||||
|
|
||||||
- **{{placeholders}}**: Variables to be replaced with actual content
|
|
||||||
- **[[LLM: instructions]]**: Internal processing instructions for AI agents (never shown to users)
|
|
||||||
- **REPEAT** sections: Content blocks that may be repeated as needed
|
|
||||||
- **^^CONDITION^^** blocks: Conditional content included only if criteria are met
|
|
||||||
- **@{examples}**: Example content for guidance (never output to users)
|
|
||||||
|
|
||||||
## Processing Rules
|
|
||||||
|
|
||||||
- Replace all {{placeholders}} with project-specific content
|
|
||||||
- Execute all [[LLM: instructions]] internally without showing users
|
|
||||||
- Process conditional and repeat blocks as specified
|
|
||||||
- Use examples for guidance but never include them in final output
|
|
||||||
- Present only clean, formatted content to users
|
|
||||||
|
|
||||||
## Critical Guidelines
|
|
||||||
|
|
||||||
- **NEVER display template markup, LLM instructions, or examples to users**
|
|
||||||
- Template elements are for AI processing only
|
|
||||||
- Focus on faithful template execution and clean output
|
|
||||||
- All template-specific instructions are embedded within templates
|
|
||||||
==================== END: .bmad-2d-phaser-game-dev/utils/template-format.md ====================
|
|
||||||
|
|
||||||
==================== START: .bmad-2d-phaser-game-dev/tasks/execute-checklist.md ====================
|
==================== START: .bmad-2d-phaser-game-dev/tasks/execute-checklist.md ====================
|
||||||
# Checklist Validation Task
|
# Checklist Validation Task
|
||||||
|
|
||||||
|
|||||||
306
dist/teams/team-all.txt
vendored
306
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,9 +185,7 @@ dependencies:
|
|||||||
- bmad-kb.md
|
- bmad-kb.md
|
||||||
- elicitation-methods.md
|
- elicitation-methods.md
|
||||||
utils:
|
utils:
|
||||||
- plan-management.md
|
|
||||||
- workflow-management.md
|
- workflow-management.md
|
||||||
- template-format.md
|
|
||||||
```
|
```
|
||||||
==================== END: .bmad-core/agents/bmad-orchestrator.md ====================
|
==================== END: .bmad-core/agents/bmad-orchestrator.md ====================
|
||||||
|
|
||||||
@@ -1866,17 +1861,10 @@ The BMad-Method is built around a modular architecture centered on the `bmad-cor
|
|||||||
|
|
||||||
BMad employs a sophisticated template system with three key components:
|
BMad employs a sophisticated template system with three key components:
|
||||||
|
|
||||||
1. **Template Format** (`utils/template-format.md`): Defines markup language for variable substitution and AI processing directives
|
1. **Template Format** (`utils/bmad-doc-template.md`): Defines markup language for variable substitution and AI processing directives from yaml templates
|
||||||
2. **Document Creation** (`tasks/create-doc.md`): Orchestrates template selection and user interaction
|
2. **Document Creation** (`tasks/create-doc.md`): Orchestrates template selection and user interaction to transform yaml spec to final markdown output
|
||||||
3. **Advanced Elicitation** (`tasks/advanced-elicitation.md`): Provides interactive refinement through structured brainstorming
|
3. **Advanced Elicitation** (`tasks/advanced-elicitation.md`): Provides interactive refinement through structured brainstorming
|
||||||
|
|
||||||
**Template Features**:
|
|
||||||
|
|
||||||
- **Self-contained**: Templates embed both output structure and processing instructions
|
|
||||||
- **Variable Substitution**: `{{placeholders}}` for dynamic content
|
|
||||||
- **AI Processing Directives**: `[[LLM: instructions]]` for AI-only processing
|
|
||||||
- **Interactive Refinement**: Built-in elicitation processes for quality improvement
|
|
||||||
|
|
||||||
### Technical Preferences Integration
|
### Technical Preferences Integration
|
||||||
|
|
||||||
The `technical-preferences.md` file serves as a persistent technical profile that:
|
The `technical-preferences.md` file serves as a persistent technical profile that:
|
||||||
@@ -2196,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
|
||||||
@@ -2266,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
|
||||||
@@ -2410,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
|
||||||
|
|
||||||
@@ -2704,35 +2470,6 @@ Handle conditional paths by asking clarifying questions when needed.
|
|||||||
Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs.
|
Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs.
|
||||||
==================== END: .bmad-core/utils/workflow-management.md ====================
|
==================== END: .bmad-core/utils/workflow-management.md ====================
|
||||||
|
|
||||||
==================== START: .bmad-core/utils/template-format.md ====================
|
|
||||||
# Template Format Conventions
|
|
||||||
|
|
||||||
Templates in the BMad method use standardized markup for AI processing. These conventions ensure consistent document generation.
|
|
||||||
|
|
||||||
## Template Markup Elements
|
|
||||||
|
|
||||||
- **{{placeholders}}**: Variables to be replaced with actual content
|
|
||||||
- **[[LLM: instructions]]**: Internal processing instructions for AI agents (never shown to users)
|
|
||||||
- **REPEAT** sections: Content blocks that may be repeated as needed
|
|
||||||
- **^^CONDITION^^** blocks: Conditional content included only if criteria are met
|
|
||||||
- **@{examples}**: Example content for guidance (never output to users)
|
|
||||||
|
|
||||||
## Processing Rules
|
|
||||||
|
|
||||||
- Replace all {{placeholders}} with project-specific content
|
|
||||||
- Execute all [[LLM: instructions]] internally without showing users
|
|
||||||
- Process conditional and repeat blocks as specified
|
|
||||||
- Use examples for guidance but never include them in final output
|
|
||||||
- Present only clean, formatted content to users
|
|
||||||
|
|
||||||
## Critical Guidelines
|
|
||||||
|
|
||||||
- **NEVER display template markup, LLM instructions, or examples to users**
|
|
||||||
- Template elements are for AI processing only
|
|
||||||
- Focus on faithful template execution and clean output
|
|
||||||
- All template-specific instructions are embedded within templates
|
|
||||||
==================== END: .bmad-core/utils/template-format.md ====================
|
|
||||||
|
|
||||||
==================== START: .bmad-core/tasks/facilitate-brainstorming-session.md ====================
|
==================== START: .bmad-core/tasks/facilitate-brainstorming-session.md ====================
|
||||||
---
|
---
|
||||||
docOutputLocation: docs/brainstorming-session-results.md
|
docOutputLocation: docs/brainstorming-session-results.md
|
||||||
@@ -5197,7 +4934,6 @@ sections:
|
|||||||
After completing the architecture:
|
After completing the architecture:
|
||||||
|
|
||||||
1. If project has UI components:
|
1. If project has UI components:
|
||||||
- Recommend engaging Design Architect agent
|
|
||||||
- Use "Frontend Architecture Mode"
|
- Use "Frontend Architecture Mode"
|
||||||
- Provide this document as input
|
- Provide this document as input
|
||||||
|
|
||||||
@@ -5208,22 +4944,15 @@ sections:
|
|||||||
|
|
||||||
3. Include specific prompts for next agents if needed
|
3. Include specific prompts for next agents if needed
|
||||||
sections:
|
sections:
|
||||||
- id: design-architect-prompt
|
- id: architect-prompt
|
||||||
title: Design Architect Prompt
|
title: Architect Prompt
|
||||||
condition: Project has UI components
|
condition: Project has UI components
|
||||||
instruction: |
|
instruction: |
|
||||||
Create a brief prompt to hand off to Design Architect for Frontend Architecture creation. Include:
|
Create a brief prompt to hand off to Architect for Frontend Architecture creation. Include:
|
||||||
- Reference to this architecture document
|
- Reference to this architecture document
|
||||||
- Key UI requirements from PRD
|
- Key UI requirements from PRD
|
||||||
- Any frontend-specific decisions made here
|
- Any frontend-specific decisions made here
|
||||||
- Request for detailed frontend architecture
|
- Request for detailed frontend architecture
|
||||||
- id: developer-handoff
|
|
||||||
title: Developer Handoff
|
|
||||||
instruction: |
|
|
||||||
Create a brief prompt for developers starting implementation. Include:
|
|
||||||
- Reference to this architecture and coding standards
|
|
||||||
- First epic/story to implement
|
|
||||||
- Key technical decisions to follow
|
|
||||||
==================== END: .bmad-core/templates/architecture-tmpl.yaml ====================
|
==================== END: .bmad-core/templates/architecture-tmpl.yaml ====================
|
||||||
|
|
||||||
==================== START: .bmad-core/templates/front-end-architecture-tmpl.yaml ====================
|
==================== START: .bmad-core/templates/front-end-architecture-tmpl.yaml ====================
|
||||||
@@ -7185,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:
|
||||||
@@ -8195,9 +7924,9 @@ sections:
|
|||||||
- id: next-steps
|
- id: next-steps
|
||||||
title: Next Steps
|
title: Next Steps
|
||||||
sections:
|
sections:
|
||||||
- id: design-architect-prompt
|
- id: ux-expert-prompt
|
||||||
title: Design Architect Prompt
|
title: UX Expert Prompt
|
||||||
instruction: This section will contain the prompt for the Design Architect, keep it short and to the point to initiate create architecture mode using this document as input.
|
instruction: This section will contain the prompt for the UX Expert, keep it short and to the point to initiate create architecture mode using this document as input.
|
||||||
- id: architect-prompt
|
- id: architect-prompt
|
||||||
title: Architect Prompt
|
title: Architect Prompt
|
||||||
instruction: This section will contain the prompt for the Architect, keep it short and to the point to initiate create architecture mode using this document as input.
|
instruction: This section will contain the prompt for the Architect, keep it short and to the point to initiate create architecture mode using this document as input.
|
||||||
@@ -9795,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
|
||||||
|
|
||||||
@@ -10648,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
|
||||||
@@ -10894,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
|
||||||
@@ -11091,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
|
||||||
@@ -11316,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
|
||||||
@@ -11763,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
|
||||||
|
|||||||
305
dist/teams/team-fullstack.txt
vendored
305
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,9 +189,7 @@ dependencies:
|
|||||||
- bmad-kb.md
|
- bmad-kb.md
|
||||||
- elicitation-methods.md
|
- elicitation-methods.md
|
||||||
utils:
|
utils:
|
||||||
- plan-management.md
|
|
||||||
- workflow-management.md
|
- workflow-management.md
|
||||||
- template-format.md
|
|
||||||
```
|
```
|
||||||
==================== END: .bmad-core/agents/bmad-orchestrator.md ====================
|
==================== END: .bmad-core/agents/bmad-orchestrator.md ====================
|
||||||
|
|
||||||
@@ -1724,17 +1719,10 @@ The BMad-Method is built around a modular architecture centered on the `bmad-cor
|
|||||||
|
|
||||||
BMad employs a sophisticated template system with three key components:
|
BMad employs a sophisticated template system with three key components:
|
||||||
|
|
||||||
1. **Template Format** (`utils/template-format.md`): Defines markup language for variable substitution and AI processing directives
|
1. **Template Format** (`utils/bmad-doc-template.md`): Defines markup language for variable substitution and AI processing directives from yaml templates
|
||||||
2. **Document Creation** (`tasks/create-doc.md`): Orchestrates template selection and user interaction
|
2. **Document Creation** (`tasks/create-doc.md`): Orchestrates template selection and user interaction to transform yaml spec to final markdown output
|
||||||
3. **Advanced Elicitation** (`tasks/advanced-elicitation.md`): Provides interactive refinement through structured brainstorming
|
3. **Advanced Elicitation** (`tasks/advanced-elicitation.md`): Provides interactive refinement through structured brainstorming
|
||||||
|
|
||||||
**Template Features**:
|
|
||||||
|
|
||||||
- **Self-contained**: Templates embed both output structure and processing instructions
|
|
||||||
- **Variable Substitution**: `{{placeholders}}` for dynamic content
|
|
||||||
- **AI Processing Directives**: `[[LLM: instructions]]` for AI-only processing
|
|
||||||
- **Interactive Refinement**: Built-in elicitation processes for quality improvement
|
|
||||||
|
|
||||||
### Technical Preferences Integration
|
### Technical Preferences Integration
|
||||||
|
|
||||||
The `technical-preferences.md` file serves as a persistent technical profile that:
|
The `technical-preferences.md` file serves as a persistent technical profile that:
|
||||||
@@ -2054,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
|
||||||
@@ -2124,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
|
||||||
@@ -2268,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
|
||||||
|
|
||||||
@@ -2562,35 +2328,6 @@ Handle conditional paths by asking clarifying questions when needed.
|
|||||||
Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs.
|
Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs.
|
||||||
==================== END: .bmad-core/utils/workflow-management.md ====================
|
==================== END: .bmad-core/utils/workflow-management.md ====================
|
||||||
|
|
||||||
==================== START: .bmad-core/utils/template-format.md ====================
|
|
||||||
# Template Format Conventions
|
|
||||||
|
|
||||||
Templates in the BMad method use standardized markup for AI processing. These conventions ensure consistent document generation.
|
|
||||||
|
|
||||||
## Template Markup Elements
|
|
||||||
|
|
||||||
- **{{placeholders}}**: Variables to be replaced with actual content
|
|
||||||
- **[[LLM: instructions]]**: Internal processing instructions for AI agents (never shown to users)
|
|
||||||
- **REPEAT** sections: Content blocks that may be repeated as needed
|
|
||||||
- **^^CONDITION^^** blocks: Conditional content included only if criteria are met
|
|
||||||
- **@{examples}**: Example content for guidance (never output to users)
|
|
||||||
|
|
||||||
## Processing Rules
|
|
||||||
|
|
||||||
- Replace all {{placeholders}} with project-specific content
|
|
||||||
- Execute all [[LLM: instructions]] internally without showing users
|
|
||||||
- Process conditional and repeat blocks as specified
|
|
||||||
- Use examples for guidance but never include them in final output
|
|
||||||
- Present only clean, formatted content to users
|
|
||||||
|
|
||||||
## Critical Guidelines
|
|
||||||
|
|
||||||
- **NEVER display template markup, LLM instructions, or examples to users**
|
|
||||||
- Template elements are for AI processing only
|
|
||||||
- Focus on faithful template execution and clean output
|
|
||||||
- All template-specific instructions are embedded within templates
|
|
||||||
==================== END: .bmad-core/utils/template-format.md ====================
|
|
||||||
|
|
||||||
==================== START: .bmad-core/tasks/facilitate-brainstorming-session.md ====================
|
==================== START: .bmad-core/tasks/facilitate-brainstorming-session.md ====================
|
||||||
---
|
---
|
||||||
docOutputLocation: docs/brainstorming-session-results.md
|
docOutputLocation: docs/brainstorming-session-results.md
|
||||||
@@ -5203,9 +4940,9 @@ sections:
|
|||||||
- id: next-steps
|
- id: next-steps
|
||||||
title: Next Steps
|
title: Next Steps
|
||||||
sections:
|
sections:
|
||||||
- id: design-architect-prompt
|
- id: ux-expert-prompt
|
||||||
title: Design Architect Prompt
|
title: UX Expert Prompt
|
||||||
instruction: This section will contain the prompt for the Design Architect, keep it short and to the point to initiate create architecture mode using this document as input.
|
instruction: This section will contain the prompt for the UX Expert, keep it short and to the point to initiate create architecture mode using this document as input.
|
||||||
- id: architect-prompt
|
- id: architect-prompt
|
||||||
title: Architect Prompt
|
title: Architect Prompt
|
||||||
instruction: This section will contain the prompt for the Architect, keep it short and to the point to initiate create architecture mode using this document as input.
|
instruction: This section will contain the prompt for the Architect, keep it short and to the point to initiate create architecture mode using this document as input.
|
||||||
@@ -7101,7 +6838,6 @@ sections:
|
|||||||
After completing the architecture:
|
After completing the architecture:
|
||||||
|
|
||||||
1. If project has UI components:
|
1. If project has UI components:
|
||||||
- Recommend engaging Design Architect agent
|
|
||||||
- Use "Frontend Architecture Mode"
|
- Use "Frontend Architecture Mode"
|
||||||
- Provide this document as input
|
- Provide this document as input
|
||||||
|
|
||||||
@@ -7112,22 +6848,15 @@ sections:
|
|||||||
|
|
||||||
3. Include specific prompts for next agents if needed
|
3. Include specific prompts for next agents if needed
|
||||||
sections:
|
sections:
|
||||||
- id: design-architect-prompt
|
- id: architect-prompt
|
||||||
title: Design Architect Prompt
|
title: Architect Prompt
|
||||||
condition: Project has UI components
|
condition: Project has UI components
|
||||||
instruction: |
|
instruction: |
|
||||||
Create a brief prompt to hand off to Design Architect for Frontend Architecture creation. Include:
|
Create a brief prompt to hand off to Architect for Frontend Architecture creation. Include:
|
||||||
- Reference to this architecture document
|
- Reference to this architecture document
|
||||||
- Key UI requirements from PRD
|
- Key UI requirements from PRD
|
||||||
- Any frontend-specific decisions made here
|
- Any frontend-specific decisions made here
|
||||||
- Request for detailed frontend architecture
|
- Request for detailed frontend architecture
|
||||||
- id: developer-handoff
|
|
||||||
title: Developer Handoff
|
|
||||||
instruction: |
|
|
||||||
Create a brief prompt for developers starting implementation. Include:
|
|
||||||
- Reference to this architecture and coding standards
|
|
||||||
- First epic/story to implement
|
|
||||||
- Key technical decisions to follow
|
|
||||||
==================== END: .bmad-core/templates/architecture-tmpl.yaml ====================
|
==================== END: .bmad-core/templates/architecture-tmpl.yaml ====================
|
||||||
|
|
||||||
==================== START: .bmad-core/templates/front-end-architecture-tmpl.yaml ====================
|
==================== START: .bmad-core/templates/front-end-architecture-tmpl.yaml ====================
|
||||||
@@ -9083,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:
|
||||||
@@ -9978,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
|
||||||
@@ -10224,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
|
||||||
@@ -10421,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
|
||||||
@@ -10646,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
|
||||||
@@ -11093,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
|
||||||
|
|||||||
276
dist/teams/team-ide-minimal.txt
vendored
276
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,9 +181,7 @@ dependencies:
|
|||||||
- bmad-kb.md
|
- bmad-kb.md
|
||||||
- elicitation-methods.md
|
- elicitation-methods.md
|
||||||
utils:
|
utils:
|
||||||
- plan-management.md
|
|
||||||
- workflow-management.md
|
- workflow-management.md
|
||||||
- template-format.md
|
|
||||||
```
|
```
|
||||||
==================== END: .bmad-core/agents/bmad-orchestrator.md ====================
|
==================== END: .bmad-core/agents/bmad-orchestrator.md ====================
|
||||||
|
|
||||||
@@ -1623,17 +1618,10 @@ The BMad-Method is built around a modular architecture centered on the `bmad-cor
|
|||||||
|
|
||||||
BMad employs a sophisticated template system with three key components:
|
BMad employs a sophisticated template system with three key components:
|
||||||
|
|
||||||
1. **Template Format** (`utils/template-format.md`): Defines markup language for variable substitution and AI processing directives
|
1. **Template Format** (`utils/bmad-doc-template.md`): Defines markup language for variable substitution and AI processing directives from yaml templates
|
||||||
2. **Document Creation** (`tasks/create-doc.md`): Orchestrates template selection and user interaction
|
2. **Document Creation** (`tasks/create-doc.md`): Orchestrates template selection and user interaction to transform yaml spec to final markdown output
|
||||||
3. **Advanced Elicitation** (`tasks/advanced-elicitation.md`): Provides interactive refinement through structured brainstorming
|
3. **Advanced Elicitation** (`tasks/advanced-elicitation.md`): Provides interactive refinement through structured brainstorming
|
||||||
|
|
||||||
**Template Features**:
|
|
||||||
|
|
||||||
- **Self-contained**: Templates embed both output structure and processing instructions
|
|
||||||
- **Variable Substitution**: `{{placeholders}}` for dynamic content
|
|
||||||
- **AI Processing Directives**: `[[LLM: instructions]]` for AI-only processing
|
|
||||||
- **Interactive Refinement**: Built-in elicitation processes for quality improvement
|
|
||||||
|
|
||||||
### Technical Preferences Integration
|
### Technical Preferences Integration
|
||||||
|
|
||||||
The `technical-preferences.md` file serves as a persistent technical profile that:
|
The `technical-preferences.md` file serves as a persistent technical profile that:
|
||||||
@@ -1953,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
|
||||||
@@ -2023,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
|
||||||
@@ -2167,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
|
||||||
|
|
||||||
@@ -2461,35 +2227,6 @@ Handle conditional paths by asking clarifying questions when needed.
|
|||||||
Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs.
|
Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs.
|
||||||
==================== END: .bmad-core/utils/workflow-management.md ====================
|
==================== END: .bmad-core/utils/workflow-management.md ====================
|
||||||
|
|
||||||
==================== START: .bmad-core/utils/template-format.md ====================
|
|
||||||
# Template Format Conventions
|
|
||||||
|
|
||||||
Templates in the BMad method use standardized markup for AI processing. These conventions ensure consistent document generation.
|
|
||||||
|
|
||||||
## Template Markup Elements
|
|
||||||
|
|
||||||
- **{{placeholders}}**: Variables to be replaced with actual content
|
|
||||||
- **[[LLM: instructions]]**: Internal processing instructions for AI agents (never shown to users)
|
|
||||||
- **REPEAT** sections: Content blocks that may be repeated as needed
|
|
||||||
- **^^CONDITION^^** blocks: Conditional content included only if criteria are met
|
|
||||||
- **@{examples}**: Example content for guidance (never output to users)
|
|
||||||
|
|
||||||
## Processing Rules
|
|
||||||
|
|
||||||
- Replace all {{placeholders}} with project-specific content
|
|
||||||
- Execute all [[LLM: instructions]] internally without showing users
|
|
||||||
- Process conditional and repeat blocks as specified
|
|
||||||
- Use examples for guidance but never include them in final output
|
|
||||||
- Present only clean, formatted content to users
|
|
||||||
|
|
||||||
## Critical Guidelines
|
|
||||||
|
|
||||||
- **NEVER display template markup, LLM instructions, or examples to users**
|
|
||||||
- Template elements are for AI processing only
|
|
||||||
- Focus on faithful template execution and clean output
|
|
||||||
- All template-specific instructions are embedded within templates
|
|
||||||
==================== END: .bmad-core/utils/template-format.md ====================
|
|
||||||
|
|
||||||
==================== START: .bmad-core/tasks/execute-checklist.md ====================
|
==================== START: .bmad-core/tasks/execute-checklist.md ====================
|
||||||
# Checklist Validation Task
|
# Checklist Validation Task
|
||||||
|
|
||||||
@@ -3180,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:
|
||||||
@@ -4089,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
|
||||||
|
|
||||||
|
|||||||
297
dist/teams/team-no-ui.txt
vendored
297
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,9 +184,7 @@ dependencies:
|
|||||||
- bmad-kb.md
|
- bmad-kb.md
|
||||||
- elicitation-methods.md
|
- elicitation-methods.md
|
||||||
utils:
|
utils:
|
||||||
- plan-management.md
|
|
||||||
- workflow-management.md
|
- workflow-management.md
|
||||||
- template-format.md
|
|
||||||
```
|
```
|
||||||
==================== END: .bmad-core/agents/bmad-orchestrator.md ====================
|
==================== END: .bmad-core/agents/bmad-orchestrator.md ====================
|
||||||
|
|
||||||
@@ -1666,17 +1661,10 @@ The BMad-Method is built around a modular architecture centered on the `bmad-cor
|
|||||||
|
|
||||||
BMad employs a sophisticated template system with three key components:
|
BMad employs a sophisticated template system with three key components:
|
||||||
|
|
||||||
1. **Template Format** (`utils/template-format.md`): Defines markup language for variable substitution and AI processing directives
|
1. **Template Format** (`utils/bmad-doc-template.md`): Defines markup language for variable substitution and AI processing directives from yaml templates
|
||||||
2. **Document Creation** (`tasks/create-doc.md`): Orchestrates template selection and user interaction
|
2. **Document Creation** (`tasks/create-doc.md`): Orchestrates template selection and user interaction to transform yaml spec to final markdown output
|
||||||
3. **Advanced Elicitation** (`tasks/advanced-elicitation.md`): Provides interactive refinement through structured brainstorming
|
3. **Advanced Elicitation** (`tasks/advanced-elicitation.md`): Provides interactive refinement through structured brainstorming
|
||||||
|
|
||||||
**Template Features**:
|
|
||||||
|
|
||||||
- **Self-contained**: Templates embed both output structure and processing instructions
|
|
||||||
- **Variable Substitution**: `{{placeholders}}` for dynamic content
|
|
||||||
- **AI Processing Directives**: `[[LLM: instructions]]` for AI-only processing
|
|
||||||
- **Interactive Refinement**: Built-in elicitation processes for quality improvement
|
|
||||||
|
|
||||||
### Technical Preferences Integration
|
### Technical Preferences Integration
|
||||||
|
|
||||||
The `technical-preferences.md` file serves as a persistent technical profile that:
|
The `technical-preferences.md` file serves as a persistent technical profile that:
|
||||||
@@ -1996,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
|
||||||
@@ -2066,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
|
||||||
@@ -2210,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
|
||||||
|
|
||||||
@@ -2504,35 +2270,6 @@ Handle conditional paths by asking clarifying questions when needed.
|
|||||||
Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs.
|
Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs.
|
||||||
==================== END: .bmad-core/utils/workflow-management.md ====================
|
==================== END: .bmad-core/utils/workflow-management.md ====================
|
||||||
|
|
||||||
==================== START: .bmad-core/utils/template-format.md ====================
|
|
||||||
# Template Format Conventions
|
|
||||||
|
|
||||||
Templates in the BMad method use standardized markup for AI processing. These conventions ensure consistent document generation.
|
|
||||||
|
|
||||||
## Template Markup Elements
|
|
||||||
|
|
||||||
- **{{placeholders}}**: Variables to be replaced with actual content
|
|
||||||
- **[[LLM: instructions]]**: Internal processing instructions for AI agents (never shown to users)
|
|
||||||
- **REPEAT** sections: Content blocks that may be repeated as needed
|
|
||||||
- **^^CONDITION^^** blocks: Conditional content included only if criteria are met
|
|
||||||
- **@{examples}**: Example content for guidance (never output to users)
|
|
||||||
|
|
||||||
## Processing Rules
|
|
||||||
|
|
||||||
- Replace all {{placeholders}} with project-specific content
|
|
||||||
- Execute all [[LLM: instructions]] internally without showing users
|
|
||||||
- Process conditional and repeat blocks as specified
|
|
||||||
- Use examples for guidance but never include them in final output
|
|
||||||
- Present only clean, formatted content to users
|
|
||||||
|
|
||||||
## Critical Guidelines
|
|
||||||
|
|
||||||
- **NEVER display template markup, LLM instructions, or examples to users**
|
|
||||||
- Template elements are for AI processing only
|
|
||||||
- Focus on faithful template execution and clean output
|
|
||||||
- All template-specific instructions are embedded within templates
|
|
||||||
==================== END: .bmad-core/utils/template-format.md ====================
|
|
||||||
|
|
||||||
==================== START: .bmad-core/tasks/facilitate-brainstorming-session.md ====================
|
==================== START: .bmad-core/tasks/facilitate-brainstorming-session.md ====================
|
||||||
---
|
---
|
||||||
docOutputLocation: docs/brainstorming-session-results.md
|
docOutputLocation: docs/brainstorming-session-results.md
|
||||||
@@ -5145,9 +4882,9 @@ sections:
|
|||||||
- id: next-steps
|
- id: next-steps
|
||||||
title: Next Steps
|
title: Next Steps
|
||||||
sections:
|
sections:
|
||||||
- id: design-architect-prompt
|
- id: ux-expert-prompt
|
||||||
title: Design Architect Prompt
|
title: UX Expert Prompt
|
||||||
instruction: This section will contain the prompt for the Design Architect, keep it short and to the point to initiate create architecture mode using this document as input.
|
instruction: This section will contain the prompt for the UX Expert, keep it short and to the point to initiate create architecture mode using this document as input.
|
||||||
- id: architect-prompt
|
- id: architect-prompt
|
||||||
title: Architect Prompt
|
title: Architect Prompt
|
||||||
instruction: This section will contain the prompt for the Architect, keep it short and to the point to initiate create architecture mode using this document as input.
|
instruction: This section will contain the prompt for the Architect, keep it short and to the point to initiate create architecture mode using this document as input.
|
||||||
@@ -6637,7 +6374,6 @@ sections:
|
|||||||
After completing the architecture:
|
After completing the architecture:
|
||||||
|
|
||||||
1. If project has UI components:
|
1. If project has UI components:
|
||||||
- Recommend engaging Design Architect agent
|
|
||||||
- Use "Frontend Architecture Mode"
|
- Use "Frontend Architecture Mode"
|
||||||
- Provide this document as input
|
- Provide this document as input
|
||||||
|
|
||||||
@@ -6648,22 +6384,15 @@ sections:
|
|||||||
|
|
||||||
3. Include specific prompts for next agents if needed
|
3. Include specific prompts for next agents if needed
|
||||||
sections:
|
sections:
|
||||||
- id: design-architect-prompt
|
- id: architect-prompt
|
||||||
title: Design Architect Prompt
|
title: Architect Prompt
|
||||||
condition: Project has UI components
|
condition: Project has UI components
|
||||||
instruction: |
|
instruction: |
|
||||||
Create a brief prompt to hand off to Design Architect for Frontend Architecture creation. Include:
|
Create a brief prompt to hand off to Architect for Frontend Architecture creation. Include:
|
||||||
- Reference to this architecture document
|
- Reference to this architecture document
|
||||||
- Key UI requirements from PRD
|
- Key UI requirements from PRD
|
||||||
- Any frontend-specific decisions made here
|
- Any frontend-specific decisions made here
|
||||||
- Request for detailed frontend architecture
|
- Request for detailed frontend architecture
|
||||||
- id: developer-handoff
|
|
||||||
title: Developer Handoff
|
|
||||||
instruction: |
|
|
||||||
Create a brief prompt for developers starting implementation. Include:
|
|
||||||
- Reference to this architecture and coding standards
|
|
||||||
- First epic/story to implement
|
|
||||||
- Key technical decisions to follow
|
|
||||||
==================== END: .bmad-core/templates/architecture-tmpl.yaml ====================
|
==================== END: .bmad-core/templates/architecture-tmpl.yaml ====================
|
||||||
|
|
||||||
==================== START: .bmad-core/templates/front-end-architecture-tmpl.yaml ====================
|
==================== START: .bmad-core/templates/front-end-architecture-tmpl.yaml ====================
|
||||||
@@ -8619,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:
|
||||||
@@ -9669,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
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ The BMad Method is a natural language framework for AI-assisted software develop
|
|||||||
|
|
||||||
- **Everything is markdown**: Agents, tasks, templates - all written in plain English
|
- **Everything is markdown**: Agents, tasks, templates - all written in plain English
|
||||||
- **No code in core**: The framework itself contains no programming code, only natural language instructions
|
- **No code in core**: The framework itself contains no programming code, only natural language instructions
|
||||||
- **Self-contained templates**: Templates include their own generation instructions using `[[LLM: ...]]` markup
|
- **Self-contained templates**: Templates are defined as YAML files with structured sections that include metadata, workflow configuration, and detailed instructions for content generation
|
||||||
|
|
||||||
### 3. Agent and Task Design
|
### 3. Agent and Task Design
|
||||||
|
|
||||||
@@ -60,22 +60,28 @@ See [Expansion Packs Guide](../docs/expansion-packs.md) for detailed examples an
|
|||||||
- This keeps context overhead minimal
|
- This keeps context overhead minimal
|
||||||
6. **Reuse common tasks** - Don't create new document creation tasks
|
6. **Reuse common tasks** - Don't create new document creation tasks
|
||||||
- Use the existing `create-doc` task
|
- Use the existing `create-doc` task
|
||||||
- Pass the appropriate template with embedded LLM instructions
|
- Pass the appropriate YAML template with structured sections
|
||||||
- This maintains consistency and reduces duplication
|
- This maintains consistency and reduces duplication
|
||||||
|
|
||||||
### Template Rules
|
### Template Rules
|
||||||
|
|
||||||
1. Include generation instructions with `[[LLM: ...]]` markup
|
Templates follow the [BMad Document Template](common/utils/bmad-doc-template.md) specification using YAML format:
|
||||||
2. Provide clear structure for output
|
|
||||||
3. Make templates reusable across agents
|
1. **Structure**: Templates are defined in YAML with clear metadata, workflow configuration, and section hierarchy
|
||||||
4. Use standardized markup elements:
|
2. **Separation of Concerns**: Instructions for LLMs are in `instruction` fields, separate from content
|
||||||
- `{{placeholders}}` for variables to be replaced
|
3. **Reusability**: Templates are agent-agnostic and can be used across different agents
|
||||||
- `[[LLM: instructions]]` for AI-only processing (never shown to users)
|
4. **Key Components**:
|
||||||
- `REPEAT` sections for repeatable content blocks
|
- `template` block for metadata (id, name, version, output settings)
|
||||||
- `^^CONDITION^^` blocks for conditional content
|
- `workflow` block for interaction mode configuration
|
||||||
- `@{examples}` for guidance examples (never output to users)
|
- `sections` array defining document structure with nested subsections
|
||||||
5. NEVER display template markup or LLM instructions to users
|
- Each section has `id`, `title`, and `instruction` fields
|
||||||
6. Focus on clean output - all processing instructions stay internal
|
5. **Advanced Features**:
|
||||||
|
- Variable substitution using `{{variable_name}}` syntax
|
||||||
|
- Conditional sections with `condition` field
|
||||||
|
- Repeatable sections with `repeatable: true`
|
||||||
|
- Agent permissions with `owner` and `editors` fields
|
||||||
|
- Examples arrays for guidance (never included in output)
|
||||||
|
6. **Clean Output**: YAML structure ensures all processing logic stays separate from generated content
|
||||||
|
|
||||||
## Remember
|
## Remember
|
||||||
|
|
||||||
@@ -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`)
|
||||||
|
|||||||
86
docs/template-markup-references.md
Normal file
86
docs/template-markup-references.md
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
# Old Template Markup System References
|
||||||
|
|
||||||
|
This document catalogs all references to the old template markup system found in the BMAD-METHOD documentation and codebase.
|
||||||
|
|
||||||
|
## Summary of Old Markup Patterns
|
||||||
|
|
||||||
|
The old template markup system used the following patterns:
|
||||||
|
|
||||||
|
- `[[LLM: ...]]` - LLM-only processing directives
|
||||||
|
- `{{placeholders}}` - Variable substitution
|
||||||
|
- `<<REPEAT section="name">>` - Repeatable sections
|
||||||
|
- `^^CONDITION: condition_name^^` - Conditional blocks
|
||||||
|
- `@{examples}` - Example content markers
|
||||||
|
|
||||||
|
## Files Containing References
|
||||||
|
|
||||||
|
### 1. Primary Documentation Files
|
||||||
|
|
||||||
|
#### `/Users/brianmadison/dev-bmc/BMAD-METHOD/docs/user-guide.md`
|
||||||
|
|
||||||
|
- **Lines 149-155**: Describes template structure with placeholders and LLM instructions
|
||||||
|
- **Lines 229-230**: References advanced elicitation with embedded LLM instructions
|
||||||
|
- **Lines 527-549**: Shows custom template creation with LLM instructions and placeholders
|
||||||
|
- **Lines 590-632**: Detailed template patterns including variables, AI processing, and conditionals
|
||||||
|
- **Lines 619-623**: References to `@{example}` patterns and `[[LLM:]]` instructions
|
||||||
|
|
||||||
|
#### `/Users/brianmadison/dev-bmc/BMAD-METHOD/docs/core-architecture.md`
|
||||||
|
|
||||||
|
- **Lines 93-104**: Describes templates as self-contained with embedded LLM instructions
|
||||||
|
- **Lines 97-104**: Mentions template-format.md specification with placeholders and LLM directives
|
||||||
|
|
||||||
|
#### `/Users/brianmadison/dev-bmc/BMAD-METHOD/CLAUDE.md`
|
||||||
|
|
||||||
|
- **Lines 37, 262**: References to template instructions using `[[LLM: ...]]` markup
|
||||||
|
- **Line 38**: Mentions templates with embedded LLM instructions
|
||||||
|
|
||||||
|
### 2. Common Utilities
|
||||||
|
|
||||||
|
#### `/Users/brianmadison/dev-bmc/BMAD-METHOD/common/utils/bmad-doc-template.md`
|
||||||
|
|
||||||
|
- **Lines 296-324**: Migration section describes converting from legacy markdown+frontmatter templates
|
||||||
|
- **Lines 319-323**: Specific conversion instructions for old markup patterns
|
||||||
|
|
||||||
|
### 3. Task Files
|
||||||
|
|
||||||
|
#### `/Users/brianmadison/dev-bmc/BMAD-METHOD/bmad-core/tasks/shard-doc.md`
|
||||||
|
|
||||||
|
- **Lines 11-30**: Contains LLM instructions embedded in the task
|
||||||
|
- **Line 160**: References preserving template markup including `{{placeholders}}` and `[[LLM instructions]]`
|
||||||
|
|
||||||
|
#### `/Users/brianmadison/dev-bmc/BMAD-METHOD/expansion-packs/bmad-creator-tools/tasks/generate-expansion-pack.md`
|
||||||
|
|
||||||
|
- **Lines 10-14**: Describes template systems with LLM instruction embedding
|
||||||
|
- **Lines 107-118**: Template section planning with LLM instructions
|
||||||
|
- **Lines 229-245**: Detailed LLM instruction patterns for templates
|
||||||
|
- **Lines 569-593**: Advanced template design patterns
|
||||||
|
- **Lines 229, 573**: Specific examples of `[[LLM:]]` usage
|
||||||
|
- **Line 574**: References conditional content with `^^CONDITION:^^`
|
||||||
|
- **Line 576**: Mentions iteration controls with `<<REPEAT>>`
|
||||||
|
|
||||||
|
### 4. Agent and Template Files
|
||||||
|
|
||||||
|
Multiple agent and task files contain actual usage of the old markup system (22 files found with `[[LLM:]]` patterns), including:
|
||||||
|
|
||||||
|
- Story templates
|
||||||
|
- Checklists
|
||||||
|
- Task definitions
|
||||||
|
- Workflow plans
|
||||||
|
|
||||||
|
## Key Observations
|
||||||
|
|
||||||
|
1. **Documentation vs Implementation**: The documentation heavily references the old markup system, while the new YAML-based template system (`bmad-doc-template.md`) is already defined but not yet reflected in the main documentation.
|
||||||
|
|
||||||
|
2. **Migration Path**: The `bmad-doc-template.md` file includes a migration section (lines 316-324) that explicitly maps old patterns to new YAML structures.
|
||||||
|
|
||||||
|
3. **Active Usage**: Many core tasks and templates still actively use the old markup patterns, particularly `[[LLM:]]` instructions embedded within markdown files.
|
||||||
|
|
||||||
|
4. **Inconsistency**: Some files reference a `template-format.md` file that doesn't exist in the expected locations, suggesting incomplete migration or documentation updates.
|
||||||
|
|
||||||
|
## Recommendations
|
||||||
|
|
||||||
|
1. **Update User Guide**: The user guide needs significant updates to reflect the new YAML-based template system
|
||||||
|
2. **Update Core Architecture Docs**: Remove references to embedded LLM instructions in templates
|
||||||
|
3. **Create Template Migration Guide**: A comprehensive guide for converting existing templates
|
||||||
|
4. **Update Extension Pack Documentation**: The bmad-creator-tools expansion pack documentation needs updates
|
||||||
|
5. **Audit Active Templates**: Review and migrate templates that still use the old markup system
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -1,3 +1,308 @@
|
|||||||
# Usage Information
|
# BMad Infrastructure DevOps Expansion Pack Knowledge Base
|
||||||
|
|
||||||
TODO
|
## Overview
|
||||||
|
|
||||||
|
The BMad Infrastructure DevOps expansion pack extends the BMad Method framework with comprehensive infrastructure and DevOps capabilities. It enables teams to design, implement, validate, and maintain modern cloud-native infrastructure alongside their application development efforts.
|
||||||
|
|
||||||
|
**Version**: 1.7.0
|
||||||
|
**BMad Compatibility**: v4+
|
||||||
|
**Author**: Brian (BMad)
|
||||||
|
|
||||||
|
## Core Purpose
|
||||||
|
|
||||||
|
This expansion pack addresses the critical need for systematic infrastructure planning and implementation in modern software projects. It provides:
|
||||||
|
|
||||||
|
- Structured approach to infrastructure architecture design
|
||||||
|
- Platform engineering implementation guidance
|
||||||
|
- Comprehensive validation and review processes
|
||||||
|
- Integration with core BMad development workflows
|
||||||
|
- Support for cloud-native and traditional infrastructure patterns
|
||||||
|
|
||||||
|
## When to Use This Expansion Pack
|
||||||
|
|
||||||
|
Use the BMad Infrastructure DevOps expansion pack when your project involves:
|
||||||
|
|
||||||
|
- **Cloud Infrastructure Design**: AWS, Azure, GCP, or multi-cloud architectures
|
||||||
|
- **Kubernetes and Container Orchestration**: Container platform design and implementation
|
||||||
|
- **Infrastructure as Code**: Terraform, CloudFormation, Pulumi implementations
|
||||||
|
- **GitOps Workflows**: ArgoCD, Flux, or similar continuous deployment patterns
|
||||||
|
- **Platform Engineering**: Building internal developer platforms and self-service capabilities
|
||||||
|
- **Service Mesh Implementation**: Istio, Linkerd, or similar service mesh architectures
|
||||||
|
- **DevOps Transformation**: Establishing or improving DevOps practices and culture
|
||||||
|
|
||||||
|
## Key Components
|
||||||
|
|
||||||
|
### 1. DevOps Agent: Alex
|
||||||
|
|
||||||
|
**Role**: DevOps Infrastructure Specialist
|
||||||
|
**Experience**: 15+ years in infrastructure and platform engineering
|
||||||
|
|
||||||
|
**Core Principles**:
|
||||||
|
|
||||||
|
- Infrastructure as Code (IaC) First
|
||||||
|
- Automation and Repeatability
|
||||||
|
- Reliability and Scalability
|
||||||
|
- Security by Design
|
||||||
|
- Cost Optimization
|
||||||
|
- Developer Experience Focus
|
||||||
|
|
||||||
|
**Commands**:
|
||||||
|
|
||||||
|
- `*help` - Display available commands and capabilities
|
||||||
|
- `*chat-mode` - Interactive conversation mode for infrastructure discussions
|
||||||
|
- `*create-doc` - Generate infrastructure documentation from templates
|
||||||
|
- `*review-infrastructure` - Conduct systematic infrastructure review
|
||||||
|
- `*validate-infrastructure` - Validate infrastructure against comprehensive checklist
|
||||||
|
- `*checklist` - Access the 16-section infrastructure validation checklist
|
||||||
|
- `*exit` - Return to normal context
|
||||||
|
|
||||||
|
### 2. Infrastructure Templates
|
||||||
|
|
||||||
|
#### Infrastructure Architecture Template
|
||||||
|
|
||||||
|
**Purpose**: Design comprehensive infrastructure architecture
|
||||||
|
**Key Sections**:
|
||||||
|
|
||||||
|
- Infrastructure Overview (providers, regions, environments)
|
||||||
|
- Infrastructure as Code approach and tooling
|
||||||
|
- Network Architecture with visual diagrams
|
||||||
|
- Compute Resources planning
|
||||||
|
- Security Architecture design
|
||||||
|
- Monitoring and Observability strategy
|
||||||
|
- CI/CD Pipeline architecture
|
||||||
|
- Disaster Recovery planning
|
||||||
|
- BMad Integration points
|
||||||
|
|
||||||
|
#### Platform Implementation Template
|
||||||
|
|
||||||
|
**Purpose**: Implement platform infrastructure based on approved architecture
|
||||||
|
**Key Sections**:
|
||||||
|
|
||||||
|
- Foundation Infrastructure Layer
|
||||||
|
- Container Platform (Kubernetes) setup
|
||||||
|
- GitOps Workflow implementation
|
||||||
|
- Service Mesh configuration
|
||||||
|
- Developer Experience Platform
|
||||||
|
- Security hardening procedures
|
||||||
|
- Platform validation and testing
|
||||||
|
|
||||||
|
### 3. Tasks
|
||||||
|
|
||||||
|
#### Review Infrastructure Task
|
||||||
|
|
||||||
|
**Purpose**: Systematic infrastructure review process
|
||||||
|
**Features**:
|
||||||
|
|
||||||
|
- Incremental or rapid assessment modes
|
||||||
|
- Architectural escalation for complex issues
|
||||||
|
- Advanced elicitation for deep analysis
|
||||||
|
- Prioritized findings and recommendations
|
||||||
|
- Integration with BMad Architecture phase
|
||||||
|
|
||||||
|
#### Validate Infrastructure Task
|
||||||
|
|
||||||
|
**Purpose**: Comprehensive infrastructure validation
|
||||||
|
**Features**:
|
||||||
|
|
||||||
|
- 16-section validation checklist
|
||||||
|
- Architecture Design Review Gate
|
||||||
|
- Compliance percentage tracking
|
||||||
|
- Remediation planning
|
||||||
|
- BMad integration assessment
|
||||||
|
|
||||||
|
### 4. Infrastructure Validation Checklist
|
||||||
|
|
||||||
|
A comprehensive 16-section checklist covering:
|
||||||
|
|
||||||
|
**Foundation Infrastructure (Sections 1-12)**:
|
||||||
|
|
||||||
|
1. Security Foundation - IAM, encryption, compliance
|
||||||
|
2. Infrastructure as Code - Version control, testing, documentation
|
||||||
|
3. Resilience & High Availability - Multi-AZ, failover, SLAs
|
||||||
|
4. Backup & Disaster Recovery - Strategies, testing, RTO/RPO
|
||||||
|
5. Monitoring & Observability - Metrics, logging, alerting
|
||||||
|
6. Performance & Scalability - Auto-scaling, load testing
|
||||||
|
7. Infrastructure Operations - Patching, maintenance, runbooks
|
||||||
|
8. CI/CD Infrastructure - Pipelines, environments, deployments
|
||||||
|
9. Networking & Connectivity - Architecture, security, DNS
|
||||||
|
10. Compliance & Governance - Standards, auditing, policies
|
||||||
|
11. BMad Integration - Agent support, workflow alignment
|
||||||
|
12. Architecture Documentation - Diagrams, decisions, maintenance
|
||||||
|
|
||||||
|
**Platform Engineering (Sections 13-16)**: 13. Container Platform - Kubernetes setup, RBAC, networking 14. GitOps Workflows - Repository structure, deployment patterns 15. Service Mesh - Traffic management, security, observability 16. Developer Experience - Self-service, documentation, tooling
|
||||||
|
|
||||||
|
## Integration with BMad Flow
|
||||||
|
|
||||||
|
### Workflow Integration Points
|
||||||
|
|
||||||
|
1. **After Architecture Phase**: Infrastructure design begins after application architecture is defined
|
||||||
|
2. **Parallel to Development**: Infrastructure implementation runs alongside application development
|
||||||
|
3. **Before Production**: Infrastructure validation gates before production deployment
|
||||||
|
4. **Continuous Operation**: Ongoing infrastructure reviews and improvements
|
||||||
|
|
||||||
|
### Agent Collaboration
|
||||||
|
|
||||||
|
- **With Architect (Sage)**: Joint planning sessions, design reviews, architectural alignment
|
||||||
|
- **With Developer (Blake)**: Platform capabilities, development environment setup
|
||||||
|
- **With Product Manager (Finley)**: Infrastructure requirements, cost considerations
|
||||||
|
- **With Creator Agents**: Infrastructure for creative workflows and asset management
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
### Infrastructure Design
|
||||||
|
|
||||||
|
1. **Start with Requirements**: Understand application needs before designing infrastructure
|
||||||
|
2. **Design for Scale**: Plan for 10x growth from day one
|
||||||
|
3. **Security First**: Implement defense in depth at every layer
|
||||||
|
4. **Cost Awareness**: Balance performance with budget constraints
|
||||||
|
5. **Document Everything**: Maintain comprehensive documentation
|
||||||
|
|
||||||
|
### Implementation Approach
|
||||||
|
|
||||||
|
1. **Incremental Rollout**: Deploy infrastructure in stages with validation gates
|
||||||
|
2. **Automation Focus**: Automate repetitive tasks and deployments
|
||||||
|
3. **Testing Strategy**: Include infrastructure testing in CI/CD pipelines
|
||||||
|
4. **Monitoring Setup**: Implement observability before production
|
||||||
|
5. **Team Training**: Ensure team understanding of infrastructure
|
||||||
|
|
||||||
|
### Validation Process
|
||||||
|
|
||||||
|
1. **Regular Reviews**: Schedule periodic infrastructure assessments
|
||||||
|
2. **Checklist Compliance**: Maintain high compliance with validation checklist
|
||||||
|
3. **Performance Baselines**: Establish and monitor performance metrics
|
||||||
|
4. **Security Audits**: Regular security assessments and penetration testing
|
||||||
|
5. **Cost Optimization**: Monthly cost reviews and optimization
|
||||||
|
|
||||||
|
## Common Use Cases
|
||||||
|
|
||||||
|
### 1. New Project Infrastructure
|
||||||
|
|
||||||
|
**Scenario**: Starting a new cloud-native application
|
||||||
|
**Process**:
|
||||||
|
|
||||||
|
1. Use Infrastructure Architecture template for design
|
||||||
|
2. Review with Architect agent
|
||||||
|
3. Implement using Platform Implementation template
|
||||||
|
4. Validate with comprehensive checklist
|
||||||
|
5. Deploy incrementally with monitoring
|
||||||
|
|
||||||
|
### 2. Infrastructure Modernization
|
||||||
|
|
||||||
|
**Scenario**: Migrating legacy infrastructure to cloud
|
||||||
|
**Process**:
|
||||||
|
|
||||||
|
1. Review existing infrastructure
|
||||||
|
2. Design target architecture
|
||||||
|
3. Plan migration phases
|
||||||
|
4. Implement with validation gates
|
||||||
|
5. Monitor and optimize
|
||||||
|
|
||||||
|
### 3. Platform Engineering Initiative
|
||||||
|
|
||||||
|
**Scenario**: Building internal developer platform
|
||||||
|
**Process**:
|
||||||
|
|
||||||
|
1. Assess developer needs
|
||||||
|
2. Design platform architecture
|
||||||
|
3. Implement Kubernetes/GitOps foundation
|
||||||
|
4. Build self-service capabilities
|
||||||
|
5. Enable developer adoption
|
||||||
|
|
||||||
|
### 4. Multi-Cloud Strategy
|
||||||
|
|
||||||
|
**Scenario**: Implementing multi-cloud architecture
|
||||||
|
**Process**:
|
||||||
|
|
||||||
|
1. Define cloud strategy and requirements
|
||||||
|
2. Design cloud-agnostic architecture
|
||||||
|
3. Implement with IaC abstraction
|
||||||
|
4. Validate cross-cloud functionality
|
||||||
|
5. Establish unified monitoring
|
||||||
|
|
||||||
|
## Advanced Features
|
||||||
|
|
||||||
|
### GitOps Workflows
|
||||||
|
|
||||||
|
- **Repository Structure**: Organized by environment and application
|
||||||
|
- **Deployment Patterns**: Progressive delivery, canary deployments
|
||||||
|
- **Secret Management**: External secrets operator integration
|
||||||
|
- **Policy Enforcement**: OPA/Gatekeeper for compliance
|
||||||
|
|
||||||
|
### Service Mesh Capabilities
|
||||||
|
|
||||||
|
- **Traffic Management**: Load balancing, circuit breaking, retries
|
||||||
|
- **Security**: mTLS, authorization policies
|
||||||
|
- **Observability**: Distributed tracing, service maps
|
||||||
|
- **Multi-Cluster**: Cross-cluster communication
|
||||||
|
|
||||||
|
### Developer Self-Service
|
||||||
|
|
||||||
|
- **Portal Features**: Resource provisioning, environment management
|
||||||
|
- **API Gateway**: Centralized API management
|
||||||
|
- **Documentation**: Automated API docs, runbooks
|
||||||
|
- **Tooling**: CLI tools, IDE integrations
|
||||||
|
|
||||||
|
## Troubleshooting Guide
|
||||||
|
|
||||||
|
### Common Issues
|
||||||
|
|
||||||
|
1. **Infrastructure Drift**
|
||||||
|
|
||||||
|
- Solution: Implement drift detection in IaC pipelines
|
||||||
|
- Prevention: Restrict manual changes, enforce GitOps
|
||||||
|
|
||||||
|
2. **Cost Overruns**
|
||||||
|
|
||||||
|
- Solution: Implement cost monitoring and alerts
|
||||||
|
- Prevention: Resource tagging, budget limits
|
||||||
|
|
||||||
|
3. **Performance Problems**
|
||||||
|
|
||||||
|
- Solution: Review monitoring data, scale resources
|
||||||
|
- Prevention: Load testing, capacity planning
|
||||||
|
|
||||||
|
4. **Security Vulnerabilities**
|
||||||
|
- Solution: Immediate patching, security reviews
|
||||||
|
- Prevention: Automated scanning, compliance checks
|
||||||
|
|
||||||
|
## Metrics and KPIs
|
||||||
|
|
||||||
|
### Infrastructure Metrics
|
||||||
|
|
||||||
|
- **Availability**: Target 99.9%+ uptime
|
||||||
|
- **Performance**: Response time < 100ms
|
||||||
|
- **Cost Efficiency**: Cost per transaction trending down
|
||||||
|
- **Security**: Zero critical vulnerabilities
|
||||||
|
- **Automation**: 90%+ automated deployments
|
||||||
|
|
||||||
|
### Platform Metrics
|
||||||
|
|
||||||
|
- **Developer Satisfaction**: NPS > 50
|
||||||
|
- **Self-Service Adoption**: 80%+ platform usage
|
||||||
|
- **Deployment Frequency**: Multiple per day
|
||||||
|
- **Lead Time**: < 1 hour from commit to production
|
||||||
|
- **MTTR**: < 30 minutes for incidents
|
||||||
|
|
||||||
|
## Future Enhancements
|
||||||
|
|
||||||
|
### Planned Features
|
||||||
|
|
||||||
|
1. **AI-Driven Optimization**: Automated infrastructure tuning
|
||||||
|
2. **Enhanced Security**: Zero-trust architecture templates
|
||||||
|
3. **Edge Computing**: Support for edge infrastructure patterns
|
||||||
|
4. **Sustainability**: Carbon footprint optimization
|
||||||
|
5. **Advanced Compliance**: Industry-specific compliance templates
|
||||||
|
|
||||||
|
### Integration Roadmap
|
||||||
|
|
||||||
|
1. **Cloud Provider APIs**: Direct integration with AWS, Azure, GCP
|
||||||
|
2. **IaC Tools**: Native support for Terraform, Pulumi
|
||||||
|
3. **Monitoring Platforms**: Integration with Datadog, New Relic
|
||||||
|
4. **Security Tools**: SIEM and vulnerability scanner integration
|
||||||
|
5. **Cost Management**: FinOps platform integration
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
The BMad Infrastructure DevOps expansion pack provides a comprehensive framework for modern infrastructure and platform engineering. By following its structured approach and leveraging the provided tools and templates, teams can build reliable, scalable, and secure infrastructure that accelerates application delivery while maintaining operational excellence.
|
||||||
|
|
||||||
|
For support and updates, refer to the main BMad Method documentation or contact the BMad community.
|
||||||
|
|||||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "bmad-method",
|
"name": "bmad-method",
|
||||||
"version": "4.27.3",
|
"version": "4.28.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "bmad-method",
|
"name": "bmad-method",
|
||||||
"version": "4.27.3",
|
"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.3",
|
"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": {
|
||||||
|
|||||||
@@ -224,6 +224,58 @@ async function promptInstallation() {
|
|||||||
answers.installType = selectedItems.includes('bmad-core') ? 'full' : 'expansion-only';
|
answers.installType = selectedItems.includes('bmad-core') ? 'full' : 'expansion-only';
|
||||||
answers.expansionPacks = selectedItems.filter(item => item !== 'bmad-core');
|
answers.expansionPacks = selectedItems.filter(item => item !== 'bmad-core');
|
||||||
|
|
||||||
|
// Ask sharding questions if installing BMad core
|
||||||
|
if (selectedItems.includes('bmad-core')) {
|
||||||
|
console.log(chalk.cyan('\n📋 Document Organization Settings'));
|
||||||
|
console.log(chalk.dim('Configure how your project documentation should be organized.\n'));
|
||||||
|
|
||||||
|
// Ask about PRD sharding
|
||||||
|
const { prdSharded } = await inquirer.prompt([
|
||||||
|
{
|
||||||
|
type: 'confirm',
|
||||||
|
name: 'prdSharded',
|
||||||
|
message: 'Will the PRD (Product Requirements Document) be sharded into multiple files?',
|
||||||
|
default: true
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
answers.prdSharded = prdSharded;
|
||||||
|
|
||||||
|
// Ask about architecture sharding
|
||||||
|
const { architectureSharded } = await inquirer.prompt([
|
||||||
|
{
|
||||||
|
type: 'confirm',
|
||||||
|
name: 'architectureSharded',
|
||||||
|
message: 'Will the architecture documentation be sharded into multiple files?',
|
||||||
|
default: true
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
answers.architectureSharded = architectureSharded;
|
||||||
|
|
||||||
|
// Show warning if architecture sharding is disabled
|
||||||
|
if (!architectureSharded) {
|
||||||
|
console.log(chalk.yellow.bold('\n⚠️ IMPORTANT: Architecture Sharding Disabled'));
|
||||||
|
console.log(chalk.yellow('With architecture sharding disabled, you should still create the files listed'));
|
||||||
|
console.log(chalk.yellow('in devLoadAlwaysFiles (like coding-standards.md, tech-stack.md, source-tree.md)'));
|
||||||
|
console.log(chalk.yellow('as these are used by the dev agent at runtime.'));
|
||||||
|
console.log(chalk.yellow('\nAlternatively, you can remove these files from the devLoadAlwaysFiles list'));
|
||||||
|
console.log(chalk.yellow('in your core-config.yaml after installation.'));
|
||||||
|
|
||||||
|
const { acknowledge } = await inquirer.prompt([
|
||||||
|
{
|
||||||
|
type: 'confirm',
|
||||||
|
name: 'acknowledge',
|
||||||
|
message: 'Do you acknowledge this requirement and want to proceed?',
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
|
||||||
|
if (!acknowledge) {
|
||||||
|
console.log(chalk.red('Installation cancelled.'));
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Ask for IDE configuration
|
// Ask for IDE configuration
|
||||||
const { ides } = await inquirer.prompt([
|
const { ides } = await inquirer.prompt([
|
||||||
{
|
{
|
||||||
@@ -246,6 +298,37 @@ async function promptInstallation() {
|
|||||||
// Use selected IDEs directly
|
// Use selected IDEs directly
|
||||||
answers.ides = ides;
|
answers.ides = ides;
|
||||||
|
|
||||||
|
// Configure GitHub Copilot immediately if selected
|
||||||
|
if (ides.includes('github-copilot')) {
|
||||||
|
console.log(chalk.cyan('\n🔧 GitHub Copilot Configuration'));
|
||||||
|
console.log(chalk.dim('BMad works best with specific VS Code settings for optimal agent experience.\n'));
|
||||||
|
|
||||||
|
const { configChoice } = await inquirer.prompt([
|
||||||
|
{
|
||||||
|
type: 'list',
|
||||||
|
name: 'configChoice',
|
||||||
|
message: chalk.yellow('How would you like to configure GitHub Copilot settings?'),
|
||||||
|
choices: [
|
||||||
|
{
|
||||||
|
name: 'Use recommended defaults (fastest setup)',
|
||||||
|
value: 'defaults'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Configure each setting manually (customize to your preferences)',
|
||||||
|
value: 'manual'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Skip settings configuration (I\'ll configure manually later)',
|
||||||
|
value: 'skip'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
default: 'defaults'
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
|
||||||
|
answers.githubCopilotConfig = { configChoice };
|
||||||
|
}
|
||||||
|
|
||||||
// Ask for web bundles installation
|
// Ask for web bundles installation
|
||||||
const { includeWebBundles } = await inquirer.prompt([
|
const { includeWebBundles } = await inquirer.prompt([
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -271,6 +281,99 @@ class FileManager {
|
|||||||
|
|
||||||
return manifest;
|
return manifest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async modifyCoreConfig(installDir, config) {
|
||||||
|
const coreConfigPath = path.join(installDir, '.bmad-core', 'core-config.yaml');
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Read the existing core-config.yaml
|
||||||
|
const coreConfigContent = await fs.readFile(coreConfigPath, 'utf8');
|
||||||
|
const coreConfig = yaml.load(coreConfigContent);
|
||||||
|
|
||||||
|
// Modify sharding settings if provided
|
||||||
|
if (config.prdSharded !== undefined) {
|
||||||
|
coreConfig.prd.prdSharded = config.prdSharded;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config.architectureSharded !== undefined) {
|
||||||
|
coreConfig.architecture.architectureSharded = config.architectureSharded;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write back the modified config
|
||||||
|
await fs.writeFile(coreConfigPath, yaml.dump(coreConfig, { indent: 2 }));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} catch (error) {
|
||||||
|
await initializeModules();
|
||||||
|
console.error(chalk.red(`Failed to modify core-config.yaml:`), error.message);
|
||||||
|
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();
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class IdeSetup {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async setup(ide, installDir, selectedAgent = null, spinner = null) {
|
async setup(ide, installDir, selectedAgent = null, spinner = null, preConfiguredSettings = null) {
|
||||||
await initializeModules();
|
await initializeModules();
|
||||||
const ideConfig = await configLoader.getIdeConfiguration(ide);
|
const ideConfig = await configLoader.getIdeConfiguration(ide);
|
||||||
|
|
||||||
@@ -66,7 +66,7 @@ class IdeSetup {
|
|||||||
case "gemini":
|
case "gemini":
|
||||||
return this.setupGeminiCli(installDir, selectedAgent);
|
return this.setupGeminiCli(installDir, selectedAgent);
|
||||||
case "github-copilot":
|
case "github-copilot":
|
||||||
return this.setupGitHubCopilot(installDir, selectedAgent, spinner);
|
return this.setupGitHubCopilot(installDir, selectedAgent, spinner, preConfiguredSettings);
|
||||||
default:
|
default:
|
||||||
console.log(chalk.yellow(`\nIDE ${ide} not yet supported`));
|
console.log(chalk.yellow(`\nIDE ${ide} not yet supported`));
|
||||||
return false;
|
return false;
|
||||||
@@ -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,52 +566,55 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
async setupGitHubCopilot(installDir, selectedAgent, spinner = null) {
|
async setupGitHubCopilot(installDir, selectedAgent, spinner = null, preConfiguredSettings = null) {
|
||||||
await initializeModules();
|
await initializeModules();
|
||||||
|
|
||||||
// Configure VS Code workspace settings first to avoid UI conflicts with loading spinners
|
// Configure VS Code workspace settings first to avoid UI conflicts with loading spinners
|
||||||
await this.configureVsCodeSettings(installDir, spinner);
|
await this.configureVsCodeSettings(installDir, spinner, preConfiguredSettings);
|
||||||
|
|
||||||
const chatmodesDir = path.join(installDir, ".github", "chatmodes");
|
const chatmodesDir = path.join(installDir, ".github", "chatmodes");
|
||||||
const agents = selectedAgent ? [selectedAgent] : await this.getAllAgentIds(installDir);
|
const agents = selectedAgent ? [selectedAgent] : await this.getAllAgentIds(installDir);
|
||||||
@@ -616,7 +660,7 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
async configureVsCodeSettings(installDir, spinner) {
|
async configureVsCodeSettings(installDir, spinner, preConfiguredSettings = null) {
|
||||||
await initializeModules(); // Ensure inquirer is loaded
|
await initializeModules(); // Ensure inquirer is loaded
|
||||||
const vscodeDir = path.join(installDir, ".vscode");
|
const vscodeDir = path.join(installDir, ".vscode");
|
||||||
const settingsPath = path.join(vscodeDir, "settings.json");
|
const settingsPath = path.join(vscodeDir, "settings.json");
|
||||||
@@ -636,17 +680,23 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Use pre-configured settings if provided, otherwise prompt
|
||||||
|
let configChoice;
|
||||||
|
if (preConfiguredSettings && preConfiguredSettings.configChoice) {
|
||||||
|
configChoice = preConfiguredSettings.configChoice;
|
||||||
|
console.log(chalk.dim(`Using pre-configured GitHub Copilot settings: ${configChoice}`));
|
||||||
|
} else {
|
||||||
// Clear any previous output and add spacing to avoid conflicts with loaders
|
// Clear any previous output and add spacing to avoid conflicts with loaders
|
||||||
console.log('\n'.repeat(2));
|
console.log('\n'.repeat(2));
|
||||||
console.log(chalk.blue("🔧 Github Copilot Agent Settings Configuration"));
|
console.log(chalk.blue("🔧 Github Copilot Agent Settings Configuration"));
|
||||||
console.log(chalk.dim("BMad works best with specific VS Code settings for optimal agent experience."));
|
console.log(chalk.dim("BMad works best with specific VS Code settings for optimal agent experience."));
|
||||||
console.log(''); // Add extra spacing
|
console.log(''); // Add extra spacing
|
||||||
|
|
||||||
const { configChoice } = await inquirer.prompt([
|
const response = await inquirer.prompt([
|
||||||
{
|
{
|
||||||
type: 'list',
|
type: 'list',
|
||||||
name: 'configChoice',
|
name: 'configChoice',
|
||||||
message: 'How would you like to configure Github Copilot settings?',
|
message: chalk.yellow('How would you like to configure GitHub Copilot settings?'),
|
||||||
choices: [
|
choices: [
|
||||||
{
|
{
|
||||||
name: 'Use recommended defaults (fastest setup)',
|
name: 'Use recommended defaults (fastest setup)',
|
||||||
@@ -657,13 +707,15 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
|
|||||||
value: 'manual'
|
value: 'manual'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Skip settings configuration (I\'ll configure manually later)\n',
|
name: 'Skip settings configuration (I\'ll configure manually later)',
|
||||||
value: 'skip'
|
value: 'skip'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
default: 'defaults'
|
default: 'defaults'
|
||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
|
configChoice = response.configChoice;
|
||||||
|
}
|
||||||
|
|
||||||
let bmadSettings = {};
|
let bmadSettings = {};
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -373,10 +393,17 @@ class Installer {
|
|||||||
if (ides.length > 0) {
|
if (ides.length > 0) {
|
||||||
for (const ide of ides) {
|
for (const ide of ides) {
|
||||||
spinner.text = `Setting up ${ide} integration...`;
|
spinner.text = `Setting up ${ide} integration...`;
|
||||||
await ideSetup.setup(ide, installDir, config.agent, spinner);
|
const preConfiguredSettings = ide === 'github-copilot' ? config.githubCopilotConfig : null;
|
||||||
|
await ideSetup.setup(ide, installDir, config.agent, spinner, preConfiguredSettings);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Modify core-config.yaml if sharding preferences were provided
|
||||||
|
if (config.installType !== "expansion-only" && (config.prdSharded !== undefined || config.architectureSharded !== undefined)) {
|
||||||
|
spinner.text = "Configuring document sharding settings...";
|
||||||
|
await fileManager.modifyCoreConfig(installDir, config);
|
||||||
|
}
|
||||||
|
|
||||||
// Create manifest (skip for expansion-only installations)
|
// Create manifest (skip for expansion-only installations)
|
||||||
if (config.installType !== "expansion-only") {
|
if (config.installType !== "expansion-only") {
|
||||||
spinner.text = "Creating installation manifest...";
|
spinner.text = "Creating installation manifest...";
|
||||||
@@ -1165,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'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1251,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)
|
||||||
@@ -1270,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 {
|
||||||
@@ -1314,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)
|
||||||
@@ -1331,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}`));
|
||||||
@@ -1345,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
|
||||||
@@ -1363,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.3",
|
"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