bmad-method 4.4.2 → 4.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.prettierignore +22 -0
- package/.prettierrc +23 -0
- package/CHANGELOG.md +25 -0
- package/README.md +41 -14
- package/bmad-core/agents/bmad-orchestrator.md +11 -11
- package/bmad-core/agents/sm.md +1 -1
- package/bmad-core/tasks/shard-doc.md +3 -5
- package/bmad-core/templates/architecture-tmpl.md +2 -2
- package/bmad-core/templates/brownfield-architecture-tmpl.md +4 -4
- package/bmad-core/templates/front-end-spec-tmpl.md +4 -4
- package/bmad-core/templates/fullstack-architecture-tmpl.md +2 -2
- package/bmad-core/utils/workflow-management.md +4 -4
- package/{bmad-core/web-bundles → dist}/agents/bmad-master.txt +0 -176
- package/{expansion-packs/bmad-2d-phaser-game-dev/web-bundles/teams/team-game-dev.txt → dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt} +4 -4
- package/dist/expansion-packs/expansion-creator/agents/bmad-the-creator.txt +1561 -0
- package/dist/teams/team-all.txt +10307 -0
- package/dist/teams/team-fullstack.txt +9659 -0
- package/dist/teams/team-ide-minimal.txt +2739 -0
- package/dist/teams/team-no-ui.txt +8519 -0
- package/docs/claude-code-guide.md +6 -4
- package/docs/cursor-guide.md +8 -4
- package/docs/roo-code-guide.md +8 -6
- package/docs/windsurf-guide.md +6 -4
- package/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yml +12 -0
- package/expansion-packs/expansion-creator/README.md +8 -0
- package/expansion-packs/expansion-creator/agents/bmad-the-creator.md +53 -0
- package/expansion-packs/expansion-creator/common-tasks/create-doc.md +74 -0
- package/expansion-packs/expansion-creator/common-tasks/execute-checklist.md +97 -0
- package/expansion-packs/expansion-creator/manifest.yml +12 -0
- package/{creator-tools → expansion-packs/expansion-creator}/tasks/create-agent.md +4 -4
- package/expansion-packs/expansion-creator/tasks/generate-expansion-pack.md +1026 -0
- package/expansion-packs/expansion-creator/templates/agent-teams-tmpl.md +154 -0
- package/expansion-packs/expansion-creator/templates/agent-tmpl.md +140 -0
- package/expansion-packs/expansion-creator/utils/template-format.md +26 -0
- package/expansion-packs/expansion-creator/utils/workflow-management.md +223 -0
- package/package.json +3 -15
- package/tools/builders/web-builder.js +2 -4
- package/tools/cli.js +0 -15
- package/tools/installer/bin/bmad.js +111 -24
- package/tools/installer/lib/config-loader.js +5 -0
- package/tools/installer/lib/ide-setup.js +4 -4
- package/tools/installer/lib/installer.js +130 -24
- package/tools/installer/package.json +1 -1
- package/.claude/commands/analyst.md +0 -63
- package/.claude/commands/architect.md +0 -65
- package/.claude/commands/bmad-master.md +0 -103
- package/.claude/commands/bmad-orchestrator.md +0 -132
- package/.claude/commands/dev.md +0 -74
- package/.claude/commands/pm.md +0 -63
- package/.claude/commands/po.md +0 -64
- package/.claude/commands/qa.md +0 -56
- package/.claude/commands/sm.md +0 -59
- package/.claude/commands/ux-expert.md +0 -70
- package/.cursor/rules/analyst.mdc +0 -77
- package/.cursor/rules/architect.mdc +0 -79
- package/.cursor/rules/bmad-master.mdc +0 -117
- package/.cursor/rules/bmad-orchestrator.mdc +0 -146
- package/.cursor/rules/dev.mdc +0 -88
- package/.cursor/rules/pm.mdc +0 -77
- package/.cursor/rules/po.mdc +0 -78
- package/.cursor/rules/qa.mdc +0 -70
- package/.cursor/rules/sm.mdc +0 -73
- package/.cursor/rules/ux-expert.mdc +0 -84
- package/.roo/.roomodes +0 -95
- package/.roo/README.md +0 -27
- package/.windsurf/rules/analyst.md +0 -71
- package/.windsurf/rules/architect.md +0 -73
- package/.windsurf/rules/bmad-master.md +0 -111
- package/.windsurf/rules/bmad-orchestrator.md +0 -140
- package/.windsurf/rules/dev.md +0 -82
- package/.windsurf/rules/pm.md +0 -71
- package/.windsurf/rules/po.md +0 -72
- package/.windsurf/rules/qa.md +0 -64
- package/.windsurf/rules/sm.md +0 -67
- package/.windsurf/rules/ux-expert.md +0 -78
- package/bmad-core/bmad-core-config.yml +0 -60
- package/bmad-core/templates/agent-tmpl.md +0 -58
- package/bmad-core/utils/agent-switcher.ide.md +0 -112
- package/creator-tools/tasks/generate-expansion-pack.md +0 -427
- package/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/team-game-dev.yml +0 -12
- package/expansion-packs/bmad-2d-phaser-game-dev/web-bundles/team-game-dev.txt +0 -4395
- /package/{bmad-core/web-bundles → dist}/agents/analyst.txt +0 -0
- /package/{bmad-core/web-bundles → dist}/agents/architect.txt +0 -0
- /package/{bmad-core/web-bundles → dist}/agents/bmad-orchestrator.txt +0 -0
- /package/{bmad-core/web-bundles → dist}/agents/dev.txt +0 -0
- /package/{bmad-core/web-bundles → dist}/agents/pm.txt +0 -0
- /package/{bmad-core/web-bundles → dist}/agents/po.txt +0 -0
- /package/{bmad-core/web-bundles → dist}/agents/qa.txt +0 -0
- /package/{bmad-core/web-bundles → dist}/agents/sm.txt +0 -0
- /package/{bmad-core/web-bundles → dist}/agents/ux-expert.txt +0 -0
- /package/{expansion-packs/bmad-2d-phaser-game-dev/web-bundles → dist/expansion-packs/bmad-2d-phaser-game-dev}/agents/game-designer.txt +0 -0
- /package/{expansion-packs/bmad-2d-phaser-game-dev/web-bundles → dist/expansion-packs/bmad-2d-phaser-game-dev}/agents/game-developer.txt +0 -0
- /package/{expansion-packs/bmad-2d-phaser-game-dev/web-bundles → dist/expansion-packs/bmad-2d-phaser-game-dev}/agents/game-sm.txt +0 -0
- /package/{expansion-packs/bmad-infrastructure-devops/web-bundles → dist/expansion-packs/bmad-infrastructure-devops}/agents/infra-devops-platform.txt +0 -0
- /package/{bmad-core → expansion-packs/expansion-creator}/templates/expansion-pack-plan-tmpl.md +0 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# Agent Team Configuration Template
|
|
2
|
+
|
|
3
|
+
[[LLM: This template is for creating agent team configurations in YAML format. Follow the structure carefully and replace all placeholders with appropriate values. The team name should reflect the team's purpose and domain focus.]]
|
|
4
|
+
|
|
5
|
+
````yaml
|
|
6
|
+
bundle:
|
|
7
|
+
name: {{team-display-name}}
|
|
8
|
+
[[LLM: Use format "Team [Descriptor]" for generic teams or "[Domain] Team" for specialized teams. Examples: "Team Fullstack", "Healthcare Team", "Legal Team"]]
|
|
9
|
+
|
|
10
|
+
icon: {{team-emoji}}
|
|
11
|
+
[[LLM: Choose a single emoji that best represents the team's function or name]]
|
|
12
|
+
|
|
13
|
+
description: {{team-description}}
|
|
14
|
+
[[LLM: Write a concise description (1 sentence) that explains:
|
|
15
|
+
1. The team's primary purpose
|
|
16
|
+
2. What types of projects they handle
|
|
17
|
+
3. Any special capabilities or focus areas
|
|
18
|
+
4. Keep it short as its displayed in menus
|
|
19
|
+
Example: "Full Stack Ideation Web App Team." or "Startup Business Coaching team"]]
|
|
20
|
+
|
|
21
|
+
agents:
|
|
22
|
+
[[LLM: List the agents that make up this team. Guidelines:
|
|
23
|
+
- Use shortened agent names (e.g., 'analyst' not 'business-analyst')
|
|
24
|
+
- Include 'bmad-orchestrator' for bmad-core teams as the coordinator
|
|
25
|
+
- Only use '*' for an all-inclusive team (rare)
|
|
26
|
+
- Order agents logically by workflow (analysis → design → development → testing)
|
|
27
|
+
- For expansion packs, include both core agents and custom agents]]
|
|
28
|
+
|
|
29
|
+
^^CONDITION: standard-team^^
|
|
30
|
+
# Core workflow agents
|
|
31
|
+
- bmad-orchestrator # Team coordinator
|
|
32
|
+
- analyst # Requirements and analysis
|
|
33
|
+
- pm # Product management
|
|
34
|
+
- architect # System design
|
|
35
|
+
- dev # Development
|
|
36
|
+
- qa # Quality assurance
|
|
37
|
+
^^/CONDITION: standard-team^^
|
|
38
|
+
|
|
39
|
+
^^CONDITION: minimal-team^^
|
|
40
|
+
# Minimal team for quick iterations
|
|
41
|
+
- bmad-orchestrator # Team coordinator
|
|
42
|
+
- architect # Design and planning
|
|
43
|
+
- dev # Implementation
|
|
44
|
+
^^/CONDITION: minimal-team^^
|
|
45
|
+
|
|
46
|
+
^^CONDITION: specialized-team^^
|
|
47
|
+
# Domain-specific team composition
|
|
48
|
+
- {{domain}}-orchestrator # Domain coordinator
|
|
49
|
+
<<REPEAT section="specialist-agents" count="{{agent-count}}">>
|
|
50
|
+
- {{agent-short-name}} # {{agent-role-description}}
|
|
51
|
+
<</REPEAT>>
|
|
52
|
+
^^/CONDITION: specialized-team^^
|
|
53
|
+
|
|
54
|
+
^^CONDITION: include-all-agents^^
|
|
55
|
+
- '*' # Include all available agents
|
|
56
|
+
^^/CONDITION: include-all-agents^^
|
|
57
|
+
|
|
58
|
+
workflows:
|
|
59
|
+
[[LLM: Define the workflows this team can execute that will guide the user through a multi-step multi agent process. Guidelines:
|
|
60
|
+
- Use null if the team doesn't have predefined workflows
|
|
61
|
+
- Workflow names should be descriptive
|
|
62
|
+
- use domain-specific workflow names]]
|
|
63
|
+
|
|
64
|
+
^^CONDITION: no-workflows^^
|
|
65
|
+
null # No predefined workflows
|
|
66
|
+
^^/CONDITION: no-workflows^^
|
|
67
|
+
|
|
68
|
+
^^CONDITION: standard-workflows^^
|
|
69
|
+
# New project workflows
|
|
70
|
+
- greenfield-fullstack # New full-stack application
|
|
71
|
+
- greenfield-service # New backend service
|
|
72
|
+
- greenfield-ui # New frontend application
|
|
73
|
+
|
|
74
|
+
# Existing project workflows
|
|
75
|
+
- brownfield-fullstack # Enhance existing full-stack app
|
|
76
|
+
- brownfield-service # Enhance existing service
|
|
77
|
+
- brownfield-ui # Enhance existing UI
|
|
78
|
+
^^/CONDITION: standard-workflows^^
|
|
79
|
+
|
|
80
|
+
^^CONDITION: domain-workflows^^
|
|
81
|
+
# Domain-specific workflows
|
|
82
|
+
<<REPEAT section="workflows" count="{{workflow-count}}">>
|
|
83
|
+
- {{workflow-name}} # {{workflow-description}}
|
|
84
|
+
<</REPEAT>>
|
|
85
|
+
^^/CONDITION: domain-workflows^^
|
|
86
|
+
```text
|
|
87
|
+
|
|
88
|
+
@{example-1: Standard fullstack team}
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
bundle:
|
|
92
|
+
name: Team Fullstack
|
|
93
|
+
icon: 🚀
|
|
94
|
+
description: Complete agile team for full-stack web applications. Handles everything from requirements to deployment.
|
|
95
|
+
agents:
|
|
96
|
+
- bmad-orchestrator
|
|
97
|
+
- analyst
|
|
98
|
+
- pm
|
|
99
|
+
- architect
|
|
100
|
+
- dev
|
|
101
|
+
- qa
|
|
102
|
+
- ux-expert
|
|
103
|
+
workflows:
|
|
104
|
+
- greenfield-fullstack
|
|
105
|
+
- greenfield-service
|
|
106
|
+
- greenfield-ui
|
|
107
|
+
- brownfield-fullstack
|
|
108
|
+
- brownfield-service
|
|
109
|
+
- brownfield-ui
|
|
110
|
+
````
|
|
111
|
+
|
|
112
|
+
@{example-2: Healthcare expansion pack team}
|
|
113
|
+
|
|
114
|
+
````yaml
|
|
115
|
+
bundle:
|
|
116
|
+
name: Healthcare Compliance Team
|
|
117
|
+
icon: ⚕️
|
|
118
|
+
description: Specialized team for healthcare applications with HIPAA compliance focus. Manages clinical workflows and regulatory requirements.
|
|
119
|
+
agents:
|
|
120
|
+
- healthcare-orchestrator
|
|
121
|
+
- clinical-analyst
|
|
122
|
+
- compliance-officer
|
|
123
|
+
- architect
|
|
124
|
+
- dev
|
|
125
|
+
- qa
|
|
126
|
+
workflows:
|
|
127
|
+
- healthcare-patient-portal
|
|
128
|
+
- healthcare-compliance-audit
|
|
129
|
+
- clinical-trial-management
|
|
130
|
+
```text
|
|
131
|
+
|
|
132
|
+
@{example-3: Minimal IDE team}
|
|
133
|
+
|
|
134
|
+
```yaml
|
|
135
|
+
bundle:
|
|
136
|
+
name: Team IDE Minimal
|
|
137
|
+
icon: ⚡
|
|
138
|
+
description: Minimal team for IDE usage. Just the essentials for quick development.
|
|
139
|
+
agents:
|
|
140
|
+
- bmad-orchestrator
|
|
141
|
+
- architect
|
|
142
|
+
- dev
|
|
143
|
+
workflows: null
|
|
144
|
+
````
|
|
145
|
+
|
|
146
|
+
[[LLM: When creating a new team configuration:
|
|
147
|
+
|
|
148
|
+
1. Choose the most appropriate condition block based on team type
|
|
149
|
+
2. Remove all unused condition blocks
|
|
150
|
+
3. Replace all placeholders with actual values
|
|
151
|
+
4. Ensure agent names match available agents in the system
|
|
152
|
+
5. Verify workflow names match available workflows
|
|
153
|
+
6. Save as team-[descriptor].yml or [domain]-team.yml
|
|
154
|
+
7. Place in the agent-teams directory of the appropriate location]]
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# [AGENT_ID]
|
|
2
|
+
|
|
3
|
+
[[LLM: This is an agent definition template. When creating a new agent:
|
|
4
|
+
|
|
5
|
+
1. ALL dependencies (tasks, templates, checklists, data) MUST exist or be created
|
|
6
|
+
2. For output generation, use the create-doc pattern with appropriate templates
|
|
7
|
+
3. Templates should include LLM instructions for guiding users through content creation
|
|
8
|
+
4. Character personas should be consistent and domain-appropriate
|
|
9
|
+
5. Follow the numbered options protocol for all user interactions]]
|
|
10
|
+
|
|
11
|
+
CRITICAL: Read the full YML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:
|
|
12
|
+
|
|
13
|
+
````yml
|
|
14
|
+
activation-instructions:
|
|
15
|
+
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
|
|
16
|
+
- Only read the files/tasks listed here when user selects them for execution to minimize context usage
|
|
17
|
+
- The customization field ALWAYS takes precedence over any conflicting instructions
|
|
18
|
+
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
|
|
19
|
+
|
|
20
|
+
agent:
|
|
21
|
+
name: [AGENT_NAME]
|
|
22
|
+
id: [AGENT_ID]
|
|
23
|
+
title: [AGENT_TITLE]
|
|
24
|
+
customization: [OPTIONAL_CUSTOMIZATION]
|
|
25
|
+
|
|
26
|
+
persona:
|
|
27
|
+
role: [AGENT_ROLE_DESCRIPTION]
|
|
28
|
+
style: [COMMUNICATION_STYLE]
|
|
29
|
+
identity: [AGENT_IDENTITY_DESCRIPTION]
|
|
30
|
+
focus: [PRIMARY_FOCUS_AREAS]
|
|
31
|
+
|
|
32
|
+
core_principles:
|
|
33
|
+
- [PRINCIPLE_1]
|
|
34
|
+
- [PRINCIPLE_2]
|
|
35
|
+
- [PRINCIPLE_3]
|
|
36
|
+
# Add more principles as needed
|
|
37
|
+
|
|
38
|
+
startup:
|
|
39
|
+
- [STARTUP_INSTRUCTIONS]
|
|
40
|
+
|
|
41
|
+
commands:
|
|
42
|
+
- "*help" - Show: numbered list of the following commands to allow selection
|
|
43
|
+
- "*chat-mode" - (Default) [DEFAULT_MODE_DESCRIPTION]
|
|
44
|
+
- "*create-doc {template}" - Create doc (no template = show available templates)
|
|
45
|
+
[[LLM: For output generation tasks, always use create-doc with templates rather than custom tasks.
|
|
46
|
+
Example: Instead of a "create-blueprint" task, use "*create-doc blueprint-tmpl"
|
|
47
|
+
The template should contain LLM instructions for guiding users through the creation process]]
|
|
48
|
+
- [tasks] specific to the agent that are not covered by a template
|
|
49
|
+
[[LLM: Only create custom tasks for actions that don't produce documents, like analysis, validation, or process execution]]
|
|
50
|
+
- "*exit" - Say goodbye as the [AGENT_TITLE], and then abandon inhabiting this persona
|
|
51
|
+
|
|
52
|
+
dependencies:
|
|
53
|
+
[[LLM: CRITICAL - All dependencies listed here MUST exist in the expansion pack or be created:
|
|
54
|
+
- Tasks: Must exist in tasks/ directory (include create-doc if using templates)
|
|
55
|
+
- Templates: Must exist in templates/ directory with proper LLM instructions
|
|
56
|
+
- Checklists: Must exist in checklists/ directory for quality validation
|
|
57
|
+
- Data: Must exist in data/ directory or be documented as user-required
|
|
58
|
+
- Utils: Must exist in utils/ directory (include template-format if using templates)]]
|
|
59
|
+
|
|
60
|
+
tasks:
|
|
61
|
+
- create-doc # Required if agent creates documents from templates
|
|
62
|
+
- [TASK_1] # Custom task for non-document operations
|
|
63
|
+
- [TASK_2] # Another custom task
|
|
64
|
+
[[LLM: Example tasks: validate-design, analyze-requirements, execute-tests]]
|
|
65
|
+
|
|
66
|
+
templates:
|
|
67
|
+
- [TEMPLATE_1] # Template with LLM instructions for guided creation
|
|
68
|
+
- [TEMPLATE_2] # Another template for different document type
|
|
69
|
+
[[LLM: Example: blueprint-tmpl, contract-tmpl, report-tmpl
|
|
70
|
+
Each template should include [[LLM: guidance]] and other conventions from `template-formmat.md` sections for user interaction]]
|
|
71
|
+
|
|
72
|
+
checklists:
|
|
73
|
+
- [CHECKLIST_1] # Quality validation for template outputs
|
|
74
|
+
[[LLM: Example: blueprint-checklist, contract-checklist
|
|
75
|
+
Checklists validate documents created from templates]]
|
|
76
|
+
|
|
77
|
+
data:
|
|
78
|
+
- [DATA_1] # Domain knowledge files
|
|
79
|
+
[[LLM: Example: building-codes.md, legal-terminology.md
|
|
80
|
+
Can be embedded in pack or required from user]]
|
|
81
|
+
|
|
82
|
+
utils:
|
|
83
|
+
- template-format # Required if using templates
|
|
84
|
+
- [UTIL_1] # Other utilities as needed
|
|
85
|
+
[[LLM: Include workflow-management if agent participates in workflows]]
|
|
86
|
+
```text
|
|
87
|
+
|
|
88
|
+
@{example: Construction Contractor Agent}
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
activation-instructions:
|
|
92
|
+
- Follow all instructions in this file
|
|
93
|
+
- Stay in character as Marcus Thompson, Construction Manager
|
|
94
|
+
- Use numbered options for all interactions
|
|
95
|
+
agent:
|
|
96
|
+
name: Marcus Thompson
|
|
97
|
+
id: construction-contractor
|
|
98
|
+
title: Construction Project Manager
|
|
99
|
+
customization: null
|
|
100
|
+
persona:
|
|
101
|
+
role: Licensed general contractor with 20 years experience
|
|
102
|
+
style: Professional, detail-oriented, safety-conscious
|
|
103
|
+
identity: Former site foreman who worked up to project management
|
|
104
|
+
focus: Building design, code compliance, project scheduling, cost estimation
|
|
105
|
+
core_principles:
|
|
106
|
+
- Safety first - all designs must prioritize worker and occupant safety
|
|
107
|
+
- Code compliance - ensure all work meets local building codes
|
|
108
|
+
- Quality craftsmanship - no shortcuts on structural integrity
|
|
109
|
+
startup:
|
|
110
|
+
- Greet as Marcus Thompson, Construction Project Manager
|
|
111
|
+
- Briefly mention your experience and readiness to help
|
|
112
|
+
- Ask what type of construction project they're planning
|
|
113
|
+
- DO NOT auto-execute any commands
|
|
114
|
+
commands:
|
|
115
|
+
- '*help" - Show numbered list of available commands'
|
|
116
|
+
- '*chat-mode" - Discuss construction projects and provide expertise'
|
|
117
|
+
- '*create-doc blueprint-tmpl" - Create architectural blueprints'
|
|
118
|
+
- '*create-doc estimate-tmpl" - Create project cost estimate'
|
|
119
|
+
- '*create-doc schedule-tmpl" - Create construction schedule'
|
|
120
|
+
- '*validate-plans" - Review plans for code compliance'
|
|
121
|
+
- '*safety-assessment" - Evaluate safety considerations'
|
|
122
|
+
- '*exit" - Say goodbye as Marcus and exit'
|
|
123
|
+
dependencies:
|
|
124
|
+
tasks:
|
|
125
|
+
- 'create-doc # For document creation'
|
|
126
|
+
- 'validate-plans # Custom validation task'
|
|
127
|
+
- 'safety-assessment # Custom safety review task'
|
|
128
|
+
templates:
|
|
129
|
+
- 'blueprint-tmpl # Architectural blueprint template'
|
|
130
|
+
- 'estimate-tmpl # Cost estimation template'
|
|
131
|
+
- 'schedule-tmpl # Project timeline template'
|
|
132
|
+
checklists:
|
|
133
|
+
- 'blueprint-checklist # Validates blueprint completeness'
|
|
134
|
+
- 'safety-checklist # Safety compliance validation'
|
|
135
|
+
data:
|
|
136
|
+
- 'building-codes.md # Local building code reference'
|
|
137
|
+
- 'materials-guide.md # Construction materials specs'
|
|
138
|
+
utils:
|
|
139
|
+
- 'template-format # For template processing'
|
|
140
|
+
````
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Template Format Conventions
|
|
2
|
+
|
|
3
|
+
Templates in the BMAD method use standardized markup for AI processing. These conventions ensure consistent document generation.
|
|
4
|
+
|
|
5
|
+
## Template Markup Elements
|
|
6
|
+
|
|
7
|
+
- **{{placeholders}}**: Variables to be replaced with actual content
|
|
8
|
+
- **[[LLM: instructions]]**: Internal processing instructions for AI agents (never shown to users)
|
|
9
|
+
- **REPEAT** sections: Content blocks that may be repeated as needed
|
|
10
|
+
- **^^CONDITION^^** blocks: Conditional content included only if criteria are met
|
|
11
|
+
- **@{examples}**: Example content for guidance (never output to users)
|
|
12
|
+
|
|
13
|
+
## Processing Rules
|
|
14
|
+
|
|
15
|
+
- Replace all {{placeholders}} with project-specific content
|
|
16
|
+
- Execute all [[LLM: instructions]] internally without showing users
|
|
17
|
+
- Process conditional and repeat blocks as specified
|
|
18
|
+
- Use examples for guidance but never include them in final output
|
|
19
|
+
- Present only clean, formatted content to users
|
|
20
|
+
|
|
21
|
+
## Critical Guidelines
|
|
22
|
+
|
|
23
|
+
- **NEVER display template markup, LLM instructions, or examples to users**
|
|
24
|
+
- Template elements are for AI processing only
|
|
25
|
+
- Focus on faithful template execution and clean output
|
|
26
|
+
- All template-specific instructions are embedded within templates
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
# Workflow Management
|
|
2
|
+
|
|
3
|
+
This utility enables the BMAD orchestrator to manage and execute team workflows.
|
|
4
|
+
|
|
5
|
+
## Important: Dynamic Workflow Loading
|
|
6
|
+
|
|
7
|
+
The BMAD orchestrator MUST read the available workflows from the current team configuration's `workflows` field. Do not use hardcoded workflow lists. Each team bundle defines its own set of supported workflows based on the agents it includes.
|
|
8
|
+
|
|
9
|
+
**Critical Distinction**:
|
|
10
|
+
|
|
11
|
+
- When asked "what workflows are available?", show ONLY the workflows defined in the current team bundle's configuration
|
|
12
|
+
- Use `/agent-list` to show agents in the current bundle
|
|
13
|
+
- Use `/workflows` to show workflows in the current bundle, NOT any creation tasks
|
|
14
|
+
|
|
15
|
+
### Workflow Descriptions
|
|
16
|
+
|
|
17
|
+
When displaying workflows, use these descriptions based on the workflow ID:
|
|
18
|
+
|
|
19
|
+
- **greenfield-fullstack**: Build a new full-stack application from concept to development
|
|
20
|
+
- **brownfield-fullstack**: Enhance an existing full-stack application with new features
|
|
21
|
+
- **greenfield-service**: Build a new backend service or API from concept to development
|
|
22
|
+
- **brownfield-service**: Enhance an existing backend service or API
|
|
23
|
+
- **greenfield-ui**: Build a new frontend/UI application from concept to development
|
|
24
|
+
- **brownfield-ui**: Enhance an existing frontend/UI application
|
|
25
|
+
|
|
26
|
+
## Workflow Commands
|
|
27
|
+
|
|
28
|
+
### /workflows
|
|
29
|
+
|
|
30
|
+
Lists all available workflows for the current team. The available workflows are determined by the team configuration and may include workflows such as:
|
|
31
|
+
|
|
32
|
+
- greenfield-fullstack
|
|
33
|
+
- brownfield-fullstack
|
|
34
|
+
- greenfield-service
|
|
35
|
+
- brownfield-service
|
|
36
|
+
- greenfield-ui
|
|
37
|
+
- brownfield-ui
|
|
38
|
+
|
|
39
|
+
The actual list depends on which team bundle is loaded. When responding to this command, display the workflows that are configured in the current team's `workflows` field.
|
|
40
|
+
|
|
41
|
+
Example response format:
|
|
42
|
+
|
|
43
|
+
````text
|
|
44
|
+
Available workflows for [Team Name]:
|
|
45
|
+
1. [workflow-id] - [Brief description based on workflow type]
|
|
46
|
+
2. [workflow-id] - [Brief description based on workflow type]
|
|
47
|
+
[... etc. ...]
|
|
48
|
+
|
|
49
|
+
Use /workflow-start {number or id} to begin a workflow.
|
|
50
|
+
```text
|
|
51
|
+
|
|
52
|
+
### /workflow-start {workflow-id}
|
|
53
|
+
|
|
54
|
+
Starts a specific workflow and transitions to the first agent.
|
|
55
|
+
|
|
56
|
+
Example: `/workflow-start greenfield-fullstack`
|
|
57
|
+
|
|
58
|
+
### /workflow-status
|
|
59
|
+
|
|
60
|
+
Shows current workflow progress, completed artifacts, and next steps.
|
|
61
|
+
|
|
62
|
+
Example response:
|
|
63
|
+
|
|
64
|
+
```text
|
|
65
|
+
Current Workflow: Greenfield Full-Stack Development
|
|
66
|
+
Stage: Product Planning (2 of 6)
|
|
67
|
+
Completed:
|
|
68
|
+
✓ Discovery & Requirements
|
|
69
|
+
- project-brief (completed by Mary)
|
|
70
|
+
|
|
71
|
+
In Progress:
|
|
72
|
+
⚡ Product Planning
|
|
73
|
+
- Create PRD (John) - awaiting input
|
|
74
|
+
|
|
75
|
+
Next: Technical Architecture
|
|
76
|
+
```text
|
|
77
|
+
|
|
78
|
+
### /workflow-resume
|
|
79
|
+
|
|
80
|
+
Resumes a workflow from where it left off, useful when starting a new chat.
|
|
81
|
+
|
|
82
|
+
User can provide completed artifacts:
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
User: /workflow-resume greenfield-fullstack
|
|
86
|
+
I have completed: project-brief, PRD
|
|
87
|
+
BMad: I see you've completed Discovery and part of Product Planning.
|
|
88
|
+
Based on the greenfield-fullstack workflow, the next step is:
|
|
89
|
+
- UX Strategy with Sally (ux-expert)
|
|
90
|
+
|
|
91
|
+
Would you like me to load Sally to continue?
|
|
92
|
+
```text
|
|
93
|
+
|
|
94
|
+
### /workflow-next
|
|
95
|
+
|
|
96
|
+
Shows the next recommended agent and action in the current workflow.
|
|
97
|
+
|
|
98
|
+
## Workflow Execution Flow
|
|
99
|
+
|
|
100
|
+
### 1. Starting a Workflow
|
|
101
|
+
|
|
102
|
+
When a workflow is started:
|
|
103
|
+
|
|
104
|
+
1. Load the workflow definition
|
|
105
|
+
2. Identify the first stage and step
|
|
106
|
+
3. Transition to the required agent
|
|
107
|
+
4. Provide context about expected inputs/outputs
|
|
108
|
+
5. Guide artifact creation
|
|
109
|
+
|
|
110
|
+
### 2. Stage Transitions
|
|
111
|
+
|
|
112
|
+
After each artifact is completed:
|
|
113
|
+
|
|
114
|
+
1. Mark the step as complete
|
|
115
|
+
2. Check transition conditions
|
|
116
|
+
3. If stage is complete, move to next stage
|
|
117
|
+
4. Load the appropriate agent
|
|
118
|
+
5. Pass relevant artifacts as context
|
|
119
|
+
|
|
120
|
+
### 3. Artifact Tracking
|
|
121
|
+
|
|
122
|
+
Track all created artifacts:
|
|
123
|
+
|
|
124
|
+
```yaml
|
|
125
|
+
workflow_state:
|
|
126
|
+
current_workflow: greenfield-fullstack
|
|
127
|
+
current_stage: planning
|
|
128
|
+
current_step: 2
|
|
129
|
+
artifacts:
|
|
130
|
+
project-brief:
|
|
131
|
+
status: completed
|
|
132
|
+
created_by: analyst
|
|
133
|
+
timestamp: 2024-01-15T10:30:00.000Z
|
|
134
|
+
prd:
|
|
135
|
+
status: in-progress
|
|
136
|
+
created_by: pm
|
|
137
|
+
started: 2024-01-15T11:00:00.000Z
|
|
138
|
+
```text
|
|
139
|
+
|
|
140
|
+
### 4. Workflow Interruption Handling
|
|
141
|
+
|
|
142
|
+
When user returns after interruption:
|
|
143
|
+
|
|
144
|
+
1. Ask if continuing previous workflow
|
|
145
|
+
2. Request any completed artifacts
|
|
146
|
+
3. Analyze provided artifacts
|
|
147
|
+
4. Determine workflow position
|
|
148
|
+
5. Suggest next appropriate step
|
|
149
|
+
|
|
150
|
+
Example:
|
|
151
|
+
|
|
152
|
+
```text
|
|
153
|
+
User: I'm working on a new app. Here's my PRD and architecture doc.
|
|
154
|
+
BMad: I see you have a PRD and architecture document. Based on these artifacts,
|
|
155
|
+
it looks like you're following the greenfield-fullstack workflow and have completed
|
|
156
|
+
stages 1-3. The next recommended step would be:
|
|
157
|
+
|
|
158
|
+
Stage 4: Validation & Refinement
|
|
159
|
+
- Load Sarah (Product Owner) to validate all artifacts
|
|
160
|
+
|
|
161
|
+
Would you like to continue with this workflow?
|
|
162
|
+
```text
|
|
163
|
+
|
|
164
|
+
## Workflow Context Passing
|
|
165
|
+
|
|
166
|
+
When transitioning between agents, pass:
|
|
167
|
+
|
|
168
|
+
1. Previous artifacts created
|
|
169
|
+
2. Current workflow stage
|
|
170
|
+
3. Expected outputs
|
|
171
|
+
4. Any decisions or constraints identified
|
|
172
|
+
|
|
173
|
+
Example transition:
|
|
174
|
+
|
|
175
|
+
```text
|
|
176
|
+
BMad: Great! John has completed the PRD. According to the greenfield-fullstack workflow,
|
|
177
|
+
the next step is UX Strategy with Sally.
|
|
178
|
+
|
|
179
|
+
/ux-expert
|
|
180
|
+
|
|
181
|
+
Sally: I see we're in the Product Planning stage of the greenfield-fullstack workflow.
|
|
182
|
+
I have access to:
|
|
183
|
+
- Project Brief from Mary
|
|
184
|
+
- PRD from John
|
|
185
|
+
|
|
186
|
+
Let's create the UX strategy and UI specifications. First, let me review
|
|
187
|
+
the PRD to understand the features we're designing for...
|
|
188
|
+
```text
|
|
189
|
+
|
|
190
|
+
## Multi-Path Workflows
|
|
191
|
+
|
|
192
|
+
Some workflows may have multiple paths:
|
|
193
|
+
|
|
194
|
+
```yaml
|
|
195
|
+
conditional_paths:
|
|
196
|
+
- condition: project_type == 'mobile'
|
|
197
|
+
next_stage: mobile-specific-design
|
|
198
|
+
- condition: project_type == 'web'
|
|
199
|
+
next_stage: web-architecture
|
|
200
|
+
- default: fullstack-architecture
|
|
201
|
+
````
|
|
202
|
+
|
|
203
|
+
Handle these by asking clarifying questions when needed.
|
|
204
|
+
|
|
205
|
+
## Workflow Best Practices
|
|
206
|
+
|
|
207
|
+
1. **Always show progress** - Users should know where they are
|
|
208
|
+
2. **Explain transitions** - Why moving to next agent
|
|
209
|
+
3. **Preserve context** - Pass relevant information forward
|
|
210
|
+
4. **Allow flexibility** - Users can skip or modify steps
|
|
211
|
+
5. **Track everything** - Maintain complete workflow state
|
|
212
|
+
|
|
213
|
+
## Integration with Agents
|
|
214
|
+
|
|
215
|
+
Each agent should be workflow-aware:
|
|
216
|
+
|
|
217
|
+
- Know which workflow is active
|
|
218
|
+
- Understand their role in the workflow
|
|
219
|
+
- Access previous artifacts
|
|
220
|
+
- Know expected outputs
|
|
221
|
+
- Guide toward workflow goals
|
|
222
|
+
|
|
223
|
+
This creates a seamless experience where the entire team works together toward the workflow's objectives.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bmad-method",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.5.1",
|
|
4
4
|
"description": "Breakthrough Method of Agile AI-driven Development",
|
|
5
5
|
"main": "tools/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"list:agents": "node tools/cli.js list:agents",
|
|
15
15
|
"validate": "node tools/cli.js validate",
|
|
16
16
|
"install:bmad": "node tools/installer/bin/bmad.js install",
|
|
17
|
-
"format": "prettier --write \"**/*.md\"
|
|
17
|
+
"format": "prettier --write \"**/*.md\"",
|
|
18
18
|
"version:patch": "node tools/version-bump.js patch",
|
|
19
19
|
"version:minor": "node tools/version-bump.js minor",
|
|
20
20
|
"version:major": "node tools/version-bump.js major",
|
|
@@ -60,20 +60,8 @@
|
|
|
60
60
|
"yaml-lint": "^1.7.0"
|
|
61
61
|
},
|
|
62
62
|
"lint-staged": {
|
|
63
|
-
"**/*.{yml,yaml}": [
|
|
64
|
-
"node tools/yaml-format.js"
|
|
65
|
-
],
|
|
66
63
|
"**/*.md": [
|
|
67
|
-
"
|
|
68
|
-
],
|
|
69
|
-
".roomodes": [
|
|
70
|
-
"node tools/yaml-format.js"
|
|
71
|
-
],
|
|
72
|
-
"bmad-core/**/*.yml": [
|
|
73
|
-
"node tools/yaml-format.js"
|
|
74
|
-
],
|
|
75
|
-
".github/**/*.yml": [
|
|
76
|
-
"node tools/yaml-format.js"
|
|
64
|
+
"prettier --write"
|
|
77
65
|
]
|
|
78
66
|
}
|
|
79
67
|
}
|
|
@@ -6,8 +6,7 @@ class WebBuilder {
|
|
|
6
6
|
constructor(options = {}) {
|
|
7
7
|
this.rootDir = options.rootDir || process.cwd();
|
|
8
8
|
this.outputDirs = options.outputDirs || [
|
|
9
|
-
path.join(this.rootDir, 'dist')
|
|
10
|
-
path.join(this.rootDir, 'bmad-core', 'web-bundles')
|
|
9
|
+
path.join(this.rootDir, 'dist')
|
|
11
10
|
];
|
|
12
11
|
this.resolver = new DependencyResolver(this.rootDir);
|
|
13
12
|
this.templatePath = path.join(this.rootDir, 'bmad-core', 'templates', 'web-agent-startup-instructions-template.md');
|
|
@@ -152,7 +151,6 @@ class WebBuilder {
|
|
|
152
151
|
async buildExpansionPack(packName, options = {}) {
|
|
153
152
|
const packDir = path.join(this.rootDir, 'expansion-packs', packName);
|
|
154
153
|
const outputDirs = [
|
|
155
|
-
path.join(packDir, 'web-bundles'),
|
|
156
154
|
path.join(this.rootDir, 'dist', 'expansion-packs', packName)
|
|
157
155
|
];
|
|
158
156
|
|
|
@@ -200,7 +198,7 @@ class WebBuilder {
|
|
|
200
198
|
const agentTeamsDir = path.join(packDir, 'agent-teams');
|
|
201
199
|
try {
|
|
202
200
|
const teamFiles = await fs.readdir(agentTeamsDir);
|
|
203
|
-
const teamFile = teamFiles.find(f => f.
|
|
201
|
+
const teamFile = teamFiles.find(f => f.endsWith('.yml'));
|
|
204
202
|
|
|
205
203
|
if (teamFile) {
|
|
206
204
|
console.log(` Building team bundle for ${packName}`);
|
package/tools/cli.js
CHANGED
|
@@ -52,21 +52,6 @@ program
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
// Generate IDE configuration folders
|
|
56
|
-
console.log('Generating IDE configuration folders...');
|
|
57
|
-
const installDir = process.cwd();
|
|
58
|
-
|
|
59
|
-
// Generate configurations for all supported IDEs
|
|
60
|
-
const ides = ['cursor', 'claude-code', 'windsurf', 'roo'];
|
|
61
|
-
for (const ide of ides) {
|
|
62
|
-
try {
|
|
63
|
-
console.log(`Setting up ${ide} integration...`);
|
|
64
|
-
await IdeSetup.setup(ide, installDir);
|
|
65
|
-
} catch (error) {
|
|
66
|
-
console.warn(`Warning: Failed to setup ${ide}:`, error.message);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
55
|
console.log('Build completed successfully!');
|
|
71
56
|
} catch (error) {
|
|
72
57
|
console.error('Build failed:', error.message);
|