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