Compare commits
88 Commits
docs/updat
...
v6-alpha-t
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fbbda0067a | ||
|
|
bee9c5dce7 | ||
|
|
7f0e57e466 | ||
|
|
790c4cedf4 | ||
|
|
e77a1c036b | ||
|
|
1fe405eb64 | ||
|
|
516fa1a917 | ||
|
|
a28a350e14 | ||
|
|
73ba7afa90 | ||
|
|
fb5e40319f | ||
|
|
bcac484319 | ||
|
|
72b6640f4b | ||
|
|
f4b16bfacf | ||
|
|
b9b219a13b | ||
|
|
9b427a4e2b | ||
|
|
0f126b7f87 | ||
|
|
4b6f34dff8 | ||
|
|
27586e6a40 | ||
|
|
5eb410d622 | ||
|
|
f1965810a6 | ||
|
|
36bf506241 | ||
|
|
88989d5403 | ||
|
|
c3c51945bb | ||
|
|
79ac3c91fe | ||
|
|
e61d58d480 | ||
|
|
1b7a3b396f | ||
|
|
ab05cdcdd2 | ||
|
|
2b736a8594 | ||
|
|
4f16d368ac | ||
|
|
b4cc579009 | ||
|
|
9ba4805aa7 | ||
|
|
d76bcb5586 | ||
|
|
5977227efc | ||
|
|
b62e169bac | ||
|
|
709fb72bc5 | ||
|
|
d444ca3f31 | ||
|
|
b999dd1315 | ||
|
|
c9ffe202d5 | ||
|
|
c49f4b2e9b | ||
|
|
33d893bef2 | ||
|
|
aefe72fd60 | ||
|
|
d23643b53b | ||
|
|
16984c3d92 | ||
|
|
47658c00d5 | ||
|
|
1a92e6823f | ||
|
|
6181a0bd07 | ||
|
|
c632564849 | ||
|
|
9ea68ab8c3 | ||
|
|
c7d76a3037 | ||
|
|
bbb37a7a86 | ||
|
|
b6d8823d51 | ||
|
|
e60d5cc42d | ||
|
|
3147589d0f | ||
|
|
94a2dad104 | ||
|
|
67bf3b81c8 | ||
|
|
106c32c513 | ||
|
|
9810f4255e | ||
|
|
9300ad1d71 | ||
|
|
46cabf72cd | ||
|
|
a747017520 | ||
|
|
5ee4cf535c | ||
|
|
9e8c7f3503 | ||
|
|
5ac18cb55c | ||
|
|
fd01ad69f8 | ||
|
|
3f40ef4756 | ||
|
|
c6704b4b6e | ||
|
|
15dc68cd29 | ||
|
|
f077a31aa0 | ||
|
|
7ebbe9fd5f | ||
|
|
5f0a318bdf | ||
|
|
25c3d50673 | ||
|
|
56e7a61bd3 | ||
|
|
05a3b4f3f1 | ||
|
|
c42cd48421 | ||
|
|
e7fcc56cc3 | ||
|
|
df0c3e4bae | ||
|
|
30fb0e67e1 | ||
|
|
e1fac26156 | ||
|
|
acdea01141 | ||
|
|
108e4d8eb4 | ||
|
|
688a841127 | ||
|
|
c26220daec | ||
|
|
ae136ceb03 | ||
|
|
9934224230 | ||
|
|
023edd1b7b | ||
|
|
24b3a42f85 | ||
|
|
bf24530ba6 | ||
|
|
9645a8ed0d |
4
.github/ISSUE_TEMPLATE/config.yaml
vendored
4
.github/ISSUE_TEMPLATE/config.yaml
vendored
@@ -1 +1,5 @@
|
|||||||
blank_issues_enabled: false
|
blank_issues_enabled: false
|
||||||
|
contact_links:
|
||||||
|
- name: Discord Community Support
|
||||||
|
url: https://discord.gg/gk8jAdXWmj
|
||||||
|
about: Please join our Discord server for general questions and community discussion before opening an issue.
|
||||||
|
|||||||
4
.github/ISSUE_TEMPLATE/idea_submission.md
vendored
4
.github/ISSUE_TEMPLATE/idea_submission.md
vendored
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
name: V5 Idea Submission
|
name: V6 Idea Submission
|
||||||
about: Suggest an idea for v5
|
about: Suggest an idea for v6
|
||||||
title: ''
|
title: ''
|
||||||
labels: ''
|
labels: ''
|
||||||
assignees: ''
|
assignees: ''
|
||||||
|
|||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -6,6 +6,9 @@ deno.lock
|
|||||||
pnpm-workspace.yaml
|
pnpm-workspace.yaml
|
||||||
package-lock.json
|
package-lock.json
|
||||||
|
|
||||||
|
|
||||||
|
test-output/*
|
||||||
|
|
||||||
# Logs
|
# Logs
|
||||||
logs/
|
logs/
|
||||||
*.log
|
*.log
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Codex Installer
|
||||||
|
|
||||||
|
- Codex installer uses custom prompts in `.codex/prompts/`, instead of `AGENTS.md`
|
||||||
|
|
||||||
## [6.0.0-alpha.0]
|
## [6.0.0-alpha.0]
|
||||||
|
|
||||||
**Release: September 28, 2025**
|
**Release: September 28, 2025**
|
||||||
|
|||||||
21
README.md
21
README.md
@@ -5,6 +5,10 @@
|
|||||||
[](https://nodejs.org)
|
[](https://nodejs.org)
|
||||||
[](https://discord.gg/gk8jAdXWmj)
|
[](https://discord.gg/gk8jAdXWmj)
|
||||||
|
|
||||||
|
## 🚀 Critical: Understanding BMad Method v6a Workflow
|
||||||
|
|
||||||
|
**IMPORTANT: Before using this framework, you MUST read the [BMM v6 Workflows Guide](./src/modules/bmm/workflows/README.md).** This document is fundamental to understanding how to use v6 of the BMad Method and explains the revolutionary v6a workflow system with its four phases: Analysis, Planning, Solutioning, and Implementation.
|
||||||
|
|
||||||
**[Subscribe to BMadCode on YouTube](https://www.youtube.com/@BMadCode?sub_confirmation=1)** and **[Join our amazing, active Discord Community](https://discord.gg/gk8jAdXWmj)**
|
**[Subscribe to BMadCode on YouTube](https://www.youtube.com/@BMadCode?sub_confirmation=1)** and **[Join our amazing, active Discord Community](https://discord.gg/gk8jAdXWmj)**
|
||||||
|
|
||||||
⭐ **If you find this project helpful or useful, please give it a star in the upper right-hand corner!** It helps others discover BMad-CORE and you will be notified of updates!
|
⭐ **If you find this project helpful or useful, please give it a star in the upper right-hand corner!** It helps others discover BMad-CORE and you will be notified of updates!
|
||||||
@@ -104,8 +108,11 @@ BMad-CORE works in ANY domain through specialized modules (previously called exp
|
|||||||
### Available Modules with Alpha Release
|
### Available Modules with Alpha Release
|
||||||
|
|
||||||
- **BMad Core (core)**: Included and used to power every current and future module; includes a master orchestrator for the local environment and one for the web bundles used with ChatGPT or Gemini Gems, for example.
|
- **BMad Core (core)**: Included and used to power every current and future module; includes a master orchestrator for the local environment and one for the web bundles used with ChatGPT or Gemini Gems, for example.
|
||||||
- **BMad Method (bmm)**: Agile AI-driven software development - the classic that started it all and is still the best - but with v6, massively improved thanks to a rebuild from the ground up built on the new powerful BMad-CORE engine. The BMad Method has also been expanded to use a new "Scale Adaptive Workflow Engine"™.
|
|
||||||
- **BMad BoMB (bmb)**: The BMad Builder is your Custom Agent, Workflow, and Module authoring tool - it's now easier than ever to customize existing modules or create whatever you can imagine as a standalone module.
|
- **[BMad Method (bmm)](./src/modules/bmm/README.md)**: Agile AI-driven software development - the classic that started it all and is still the best - but with v6, massively improved thanks to a rebuild from the ground up built on the new powerful BMad-CORE engine. The BMad Method has also been expanded to use a new "Scale Adaptive Workflow Engine"™. **[See BMM Documentation](./src/modules/bmm/README.md)**
|
||||||
|
|
||||||
|
- **[BMad BoMB (bmb)](./src/modules/bmb/README.md)**: The BMad Builder is your Custom Agent, Workflow, and Module authoring tool - it's now easier than ever to customize existing modules or create whatever you can imagine as a standalone module. **[See BMB Documentation](./src/modules/bmb/README.md)**
|
||||||
|
|
||||||
- **Creative Intelligence Suite (cis)**: Unlock innovation, problem-solving, and creative thinking! Brainstorming that was part of the BMad Method in the past is now part of this standalone module along with other workflows. The power of BMad modules still allows modules to borrow from each other - so the CIS, while standalone, also powers the brainstorming abilities for certain agents within the BMad Method!
|
- **Creative Intelligence Suite (cis)**: Unlock innovation, problem-solving, and creative thinking! Brainstorming that was part of the BMad Method in the past is now part of this standalone module along with other workflows. The power of BMad modules still allows modules to borrow from each other - so the CIS, while standalone, also powers the brainstorming abilities for certain agents within the BMad Method!
|
||||||
|
|
||||||
## What's New in V6-ALPHA
|
## What's New in V6-ALPHA
|
||||||
@@ -136,7 +143,9 @@ The sub-agent experience is still undergoing some work, so install them if you c
|
|||||||
|
|
||||||
When you read about the BoMB below, it will link to more information about various features in this new evolution of BMad Code. One of the exciting features is the new agent types - there are 3 now! The most exciting are the new standalone tiny agents that you can easily generate and deploy free from any module - specialized for your exact needs.
|
When you read about the BoMB below, it will link to more information about various features in this new evolution of BMad Code. One of the exciting features is the new agent types - there are 3 now! The most exciting are the new standalone tiny agents that you can easily generate and deploy free from any module - specialized for your exact needs.
|
||||||
|
|
||||||
### BMad Method
|
### BMad Method (BMM)
|
||||||
|
|
||||||
|
📚 **[Full BMM Documentation](./src/modules/bmm/README.md)** | **[v6 Workflows Guide](./src/modules/bmm/workflows/README.md)**
|
||||||
|
|
||||||
The BMad Method is significantly transforming and yet more powerful than ever. **Scale Adaptive** is a new term that means when you start the workflow to create a PRD or a GDD (or a simple tech-spec in the case of simple tasks), you will first answer some questions about the scope of the project, new vs. existing codebase and its state, and other questions. This will trigger a leveling of the effort from 0-4, and based on this scale adaptation, it will guide the workflow in different directions.
|
The BMad Method is significantly transforming and yet more powerful than ever. **Scale Adaptive** is a new term that means when you start the workflow to create a PRD or a GDD (or a simple tech-spec in the case of simple tasks), you will first answer some questions about the scope of the project, new vs. existing codebase and its state, and other questions. This will trigger a leveling of the effort from 0-4, and based on this scale adaptation, it will guide the workflow in different directions.
|
||||||
|
|
||||||
@@ -221,7 +230,9 @@ The CIS has 5 agents to try out, each with their own workflow! This is a new mod
|
|||||||
|
|
||||||
- [CIS Readme](./src/modules/cis/readme.md)
|
- [CIS Readme](./src/modules/cis/readme.md)
|
||||||
|
|
||||||
### BoMB: BMad Builder
|
### BoMB: BMad Builder (BMB)
|
||||||
|
|
||||||
|
📚 **[Full BMB Documentation](./src/modules/bmb/README.md)** | **[Agent Creation Guide](./src/modules/bmb/workflows/create-agent/README.md)**
|
||||||
|
|
||||||
#### Agent Docs
|
#### Agent Docs
|
||||||
|
|
||||||
@@ -240,7 +251,7 @@ Modules are what we used to call Expansion Packs. A new repository to contribute
|
|||||||
|
|
||||||
What used to be tasks and create-doc templates are now all workflows! Simpler, yet more powerful and support many ways of achieving many different outcomes! A lot more documentation will be coming. This document is used by the agent builder to generate workflows or convert to workflows, but there is a lot more than what we have documented here in this alpha doc.
|
What used to be tasks and create-doc templates are now all workflows! Simpler, yet more powerful and support many ways of achieving many different outcomes! A lot more documentation will be coming. This document is used by the agent builder to generate workflows or convert to workflows, but there is a lot more than what we have documented here in this alpha doc.
|
||||||
|
|
||||||
- [Workflow Creation Guide](src/modules/bmb/workflows/create-workflow/workflow-creation-guide)
|
- [Workflow Creation Guide](src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md)
|
||||||
|
|
||||||
### Installer Changes
|
### Installer Changes
|
||||||
|
|
||||||
|
|||||||
3
bmad/_cfg/agent-manifest.csv
Normal file
3
bmad/_cfg/agent-manifest.csv
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
name,displayName,title,icon,role,identity,communicationStyle,principles,module,path
|
||||||
|
"bmad-master","BMad Master","BMad Master Executor, Knowledge Custodian, and Workflow Orchestrator","🧙","Master Task Executor + BMad Expert + Guiding Facilitator Orchestrator","Master-level expert in the BMAD Core Platform and all loaded modules with comprehensive knowledge of all resources, tasks, and workflows. Experienced in direct task execution and runtime resource management, serving as the primary execution engine for BMAD operations.","Direct and comprehensive, refers to himself in the 3rd person. Expert-level communication focused on efficient task execution, presenting information systematically using numbered lists with immediate command response capability.","Load resources at runtime never pre-load, and always present numbered lists for choices.","core","bmad/core/agents/bmad-master.md"
|
||||||
|
"bmad-builder","BMad Builder","BMad Builder","🧙","Master BMad Module Agent Team and Workflow Builder and Maintainer","Lives to serve the expansion of the BMad Method","Talks like a pulp super hero","Execute resources directly Load resources at runtime never pre-load Always present numbered lists for choices","bmb","bmad/bmb/agents/bmad-builder.md"
|
||||||
|
42
bmad/_cfg/agents/bmb-bmad-builder.customize.yaml
Normal file
42
bmad/_cfg/agents/bmb-bmad-builder.customize.yaml
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# Agent Customization
|
||||||
|
# Customize any section below - all are optional
|
||||||
|
# After editing: npx bmad-method build <agent-name>
|
||||||
|
|
||||||
|
# Override agent name
|
||||||
|
agent:
|
||||||
|
metadata:
|
||||||
|
name: ""
|
||||||
|
|
||||||
|
# Replace entire persona (not merged)
|
||||||
|
persona:
|
||||||
|
role: ""
|
||||||
|
identity: ""
|
||||||
|
communication_style: ""
|
||||||
|
principles: []
|
||||||
|
|
||||||
|
# Add custom critical actions (appended after standard config loading)
|
||||||
|
critical_actions: []
|
||||||
|
|
||||||
|
# Add persistent memories for the agent
|
||||||
|
memories: []
|
||||||
|
# Example:
|
||||||
|
# memories:
|
||||||
|
# - "User prefers detailed technical explanations"
|
||||||
|
# - "Current project uses React and TypeScript"
|
||||||
|
|
||||||
|
# Add custom menu items (appended to base menu)
|
||||||
|
# Don't include * prefix or help/exit - auto-injected
|
||||||
|
menu: []
|
||||||
|
# Example:
|
||||||
|
# menu:
|
||||||
|
# - trigger: my-workflow
|
||||||
|
# workflow: "{project-root}/custom/my.yaml"
|
||||||
|
# description: My custom workflow
|
||||||
|
|
||||||
|
# Add custom prompts (for action="#id" handlers)
|
||||||
|
prompts: []
|
||||||
|
# Example:
|
||||||
|
# prompts:
|
||||||
|
# - id: my-prompt
|
||||||
|
# content: |
|
||||||
|
# Prompt instructions here
|
||||||
42
bmad/_cfg/agents/core-bmad-master.customize.yaml
Normal file
42
bmad/_cfg/agents/core-bmad-master.customize.yaml
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# Agent Customization
|
||||||
|
# Customize any section below - all are optional
|
||||||
|
# After editing: npx bmad-method build <agent-name>
|
||||||
|
|
||||||
|
# Override agent name
|
||||||
|
agent:
|
||||||
|
metadata:
|
||||||
|
name: ""
|
||||||
|
|
||||||
|
# Replace entire persona (not merged)
|
||||||
|
persona:
|
||||||
|
role: ""
|
||||||
|
identity: ""
|
||||||
|
communication_style: ""
|
||||||
|
principles: []
|
||||||
|
|
||||||
|
# Add custom critical actions (appended after standard config loading)
|
||||||
|
critical_actions: []
|
||||||
|
|
||||||
|
# Add persistent memories for the agent
|
||||||
|
memories: []
|
||||||
|
# Example:
|
||||||
|
# memories:
|
||||||
|
# - "User prefers detailed technical explanations"
|
||||||
|
# - "Current project uses React and TypeScript"
|
||||||
|
|
||||||
|
# Add custom menu items (appended to base menu)
|
||||||
|
# Don't include * prefix or help/exit - auto-injected
|
||||||
|
menu: []
|
||||||
|
# Example:
|
||||||
|
# menu:
|
||||||
|
# - trigger: my-workflow
|
||||||
|
# workflow: "{project-root}/custom/my.yaml"
|
||||||
|
# description: My custom workflow
|
||||||
|
|
||||||
|
# Add custom prompts (for action="#id" handlers)
|
||||||
|
prompts: []
|
||||||
|
# Example:
|
||||||
|
# prompts:
|
||||||
|
# - id: my-prompt
|
||||||
|
# content: |
|
||||||
|
# Prompt instructions here
|
||||||
74
bmad/_cfg/files-manifest.csv
Normal file
74
bmad/_cfg/files-manifest.csv
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
type,name,module,path,hash
|
||||||
|
"csv","agent-manifest","_cfg","bmad/_cfg/agent-manifest.csv","4d7fb4998ddad86011c22b5c579747d9247edeab75a92406c2b10e1bc40d3333"
|
||||||
|
"csv","task-manifest","_cfg","bmad/_cfg/task-manifest.csv","46f98b1753914dc6193c9ca8b6427fadc9a6d71747cdc8f5159792576c004b60"
|
||||||
|
"csv","workflow-manifest","_cfg","bmad/_cfg/workflow-manifest.csv","4454b7c724bab73c80f2e0d418151ad9734d38e42dd6cdd37e8958a6e23ef9d2"
|
||||||
|
"yaml","manifest","_cfg","bmad/_cfg/manifest.yaml","207855799a32ea061836bd3f018426b90598090b43ee0367ce4e27e68a573830"
|
||||||
|
"js","installer","bmb","bmad/bmb/workflows/create-module/installer-templates/installer.js","a539cd5266471dab9359bd3ed849d7b45c5de842a9d5869f8332a5a8bb81fad5"
|
||||||
|
"md","agent-architecture","bmb","bmad/bmb/workflows/create-agent/agent-architecture.md","ea570cf9893c08d3b9519291c89848d550506a8d831a37eb87f60f1e09980e7f"
|
||||||
|
"md","agent-command-patterns","bmb","bmad/bmb/workflows/create-agent/agent-command-patterns.md","1dbc414c0c6c9e6b54fb0553f65a28743a26e2a172c35b79fc3dc350d50a378d"
|
||||||
|
"md","agent-types","bmb","bmad/bmb/workflows/create-agent/agent-types.md","a9429475767b6db4bb74fb27e328a8fdb3e8e7176edb2920ae3e0106d85e9d83"
|
||||||
|
"md","bmad-builder","bmb","bmad/bmb/agents/bmad-builder.md","1a53d7d3629ce5c4bd42d2901259693acb69aa9558c94523e3f894740cb964a5"
|
||||||
|
"md","brainstorm-context","bmb","bmad/bmb/workflows/create-agent/brainstorm-context.md","85be72976c4ff5d79b2bce8e6b433f5e3526a7466a72b3efdb4f6d3d118e1d15"
|
||||||
|
"md","brainstorm-context","bmb","bmad/bmb/workflows/create-module/brainstorm-context.md","62b902177d2cb56df2d6a12e5ec5c7d75ec94770ce22ac72c96691a876ed2e6a"
|
||||||
|
"md","brainstorm-context","bmb","bmad/bmb/workflows/create-workflow/brainstorm-context.md","f246ec343e338068b37fee8c93aa6d2fe1d4857addba6db3fe6ad80a2a2950e8"
|
||||||
|
"md","checklist","bmb","bmad/bmb/workflows/audit-workflow/checklist.md","8207ef4dfd3c1ca92dc96451f68c65f8f813b4c9a6c82d34fd6a9ac8cdcf0b44"
|
||||||
|
"md","checklist","bmb","bmad/bmb/workflows/convert-legacy/checklist.md","3f4faaacd224022af5ddf4ae0949d472f9eca3afa0d4ad0c24f19f93caaa9bf9"
|
||||||
|
"md","checklist","bmb","bmad/bmb/workflows/create-agent/checklist.md","837667f2bd601833568b327b961ba0dd363ba9a0d240625eebc9d1a9685ecbd8"
|
||||||
|
"md","checklist","bmb","bmad/bmb/workflows/create-module/checklist.md","494f5bcef32b3abfd4fb24023fdcfad70b222521dae12e71049ec55e6041cc08"
|
||||||
|
"md","checklist","bmb","bmad/bmb/workflows/create-workflow/checklist.md","78325ed31532c0059a3f647f7f4cda7702919a9ef43634afa419d3fa30ee2a0c"
|
||||||
|
"md","checklist","bmb","bmad/bmb/workflows/create-workflow/workflow-template/checklist.md","a950c68c71cd54b5a3ef4c8d68ad8ec40d5d1fa057f7c95e697e975807ae600b"
|
||||||
|
"md","checklist","bmb","bmad/bmb/workflows/edit-workflow/checklist.md","9677c087ddfb40765e611de23a5a009afe51c347683dfe5f7d9fd33712ac4795"
|
||||||
|
"md","checklist","bmb","bmad/bmb/workflows/module-brief/checklist.md","821c90da14f02b967cb468b19f59a26c0d8f044d7a81a8b97631fb8ffac7648f"
|
||||||
|
"md","checklist","bmb","bmad/bmb/workflows/redoc/checklist.md","2117d60b14e19158f4b586878b3667d715d3b62f79815b72b55c2376ce31aae8"
|
||||||
|
"md","communication-styles","bmb","bmad/bmb/workflows/create-agent/communication-styles.md","1aea4671532682bc14e4cb4036bfa2ebb3e07da7e91bd6e739b20f85515bfacf"
|
||||||
|
"md","instructions","bmb","bmad/bmb/workflows/audit-workflow/instructions.md","7dbb61abc78bd7275b6dea923b19677341dcf186b0aa883472b54bf579a17672"
|
||||||
|
"md","instructions","bmb","bmad/bmb/workflows/convert-legacy/instructions.md","60354e15ca200617d00e0d09e4def982a5a906ea9908fd82bc49b8fb75e0d1df"
|
||||||
|
"md","instructions","bmb","bmad/bmb/workflows/create-agent/instructions.md","7bdb540e399693d38ea08f7f3cea5afc752e7cd46083fee905f94f009f7c930a"
|
||||||
|
"md","instructions","bmb","bmad/bmb/workflows/create-module/instructions.md","5f321690f4774058516d3d65693224e759ec87d98d7a1a281b38222ab963ca8b"
|
||||||
|
"md","instructions","bmb","bmad/bmb/workflows/create-workflow/instructions.md","d739389d9eb20e9297737a8cfca7a8bdc084c778b6512a2433442c651d0ea871"
|
||||||
|
"md","instructions","bmb","bmad/bmb/workflows/create-workflow/workflow-template/instructions.md","daf3d312e5a60d7c4cbc308014e3c69eeeddd70bd41bd139d328318da1e3ecb2"
|
||||||
|
"md","instructions","bmb","bmad/bmb/workflows/edit-workflow/instructions.md","d35f4b20fd8d22bff1374dfa1bee7aa037d5d097dd2e8763b3b2792fbef4a97d"
|
||||||
|
"md","instructions","bmb","bmad/bmb/workflows/module-brief/instructions.md","e2275373850ea0745f396ad0c3aa192f06081b52d98777650f6b645333b62926"
|
||||||
|
"md","instructions","bmb","bmad/bmb/workflows/redoc/instructions.md","fccc798c8904c35807bb6a723650c10aa19ee74ab5a1e44d1b242bd125d3e80e"
|
||||||
|
"md","module-structure","bmb","bmad/bmb/workflows/create-module/module-structure.md","9970768af75da79b4cdef78096c751e70a3a00194af58dca7ed58a79d324423f"
|
||||||
|
"md","README","bmb","bmad/bmb/README.md","af2cdbeede53eff1ecf95c1e6d7ee1535366ba09b352657fa05576792a2bafb4"
|
||||||
|
"md","README","bmb","bmad/bmb/workflows/convert-legacy/README.md","3391972c16b7234dae61b2d06daeb6310d1760117ece57abcca0c178c4c33eea"
|
||||||
|
"md","README","bmb","bmad/bmb/workflows/create-agent/README.md","cc1d51e22c425e005ddbe285510ff5a6fc6cf1e40d0ffe5ff421c1efbcbe94c0"
|
||||||
|
"md","README","bmb","bmad/bmb/workflows/create-module/README.md","cdacbe6c4896fd02714b598e709b785af38d41d7e42d39802d695617fe221b39"
|
||||||
|
"md","README","bmb","bmad/bmb/workflows/create-workflow/README.md","56501b159b18e051ebcc78b4039ad614e44d172fe06dce679e9b24122a4929b5"
|
||||||
|
"md","README","bmb","bmad/bmb/workflows/edit-workflow/README.md","2141d42d922701281d4d92e435d4690c462c53cf31e8307c87252f0cabec4987"
|
||||||
|
"md","README","bmb","bmad/bmb/workflows/module-brief/README.md","05772db9095db7b4944e9fc47a049a3609c506be697537fd5fd9e409c10b92f4"
|
||||||
|
"md","README","bmb","bmad/bmb/workflows/redoc/README.md","a1b7e02427cf252bca69a8a1ee0f554844a6a01b5d568d74f494c71542056173"
|
||||||
|
"md","template","bmb","bmad/bmb/workflows/create-workflow/workflow-template/template.md","c98f65a122035b456f1cbb2df6ecaf06aa442746d93a29d1d0ed2fc9274a43ee"
|
||||||
|
"md","template","bmb","bmad/bmb/workflows/module-brief/template.md","7d1ad5ec40b06510fcbb0a3da8ea32aefa493e5b04c3a2bba90ce5685b894275"
|
||||||
|
"md","workflow-creation-guide","bmb","bmad/bmb/workflows/create-workflow/workflow-creation-guide.md","3233f2db6e0dec0250780840f95b38f7bfe9390b045a497d66f94f82d7ffb1af"
|
||||||
|
"yaml","bmad-builder.agent","bmb","bmad/bmb/agents/bmad-builder.agent.yaml",""
|
||||||
|
"yaml","config","bmb","bmad/bmb/config.yaml","55ef4a0fe98969c53d0e494bc4bf3f688704880dc8568b85860d57e785f9e7e5"
|
||||||
|
"yaml","install-module-config","bmb","bmad/bmb/workflows/create-module/installer-templates/install-module-config.yaml","69c03628b04600f76aa1aa136094d59514f8eb900529114f7233dc28f2d5302d"
|
||||||
|
"yaml","workflow","bmb","bmad/bmb/workflows/audit-workflow/workflow.yaml","5b8d26675e30d006f57631be2f42b00575b0d00f87abea408bf0afd09d73826e"
|
||||||
|
"yaml","workflow","bmb","bmad/bmb/workflows/convert-legacy/workflow.yaml","c31cee9cc0d457b25954554d7620c7455b3f1b5aa5b5d72fbc765ea7902c3c0c"
|
||||||
|
"yaml","workflow","bmb","bmad/bmb/workflows/create-agent/workflow.yaml","3d24d25cb58beed1198d465476615851f124d5a01bf4b358d07ff9f1451cd582"
|
||||||
|
"yaml","workflow","bmb","bmad/bmb/workflows/create-module/workflow.yaml","f797507b0d3ec8292a670394e75e0dda682f338b3e266d0cd9af4bbb4eda8358"
|
||||||
|
"yaml","workflow","bmb","bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml","2eeb8d1724779956f8e89fda8fa850c3fb1d2b8c6eefecd1b5a4d5f9f58adb91"
|
||||||
|
"yaml","workflow","bmb","bmad/bmb/workflows/create-workflow/workflow.yaml","0ef3f99857d135d062eca2138fe19fb75d3c4adcd5e0b291a86415dceda003ca"
|
||||||
|
"yaml","workflow","bmb","bmad/bmb/workflows/edit-workflow/workflow.yaml","a8e451fdf95ae8a76feb454094b86c7c5c7a3050315eb3c7fe38b58e57514776"
|
||||||
|
"yaml","workflow","bmb","bmad/bmb/workflows/module-brief/workflow.yaml","4fde4965106a30bb9c528dfc0f82fdefeccf6f65b25bbb169040258d81070b1f"
|
||||||
|
"yaml","workflow","bmb","bmad/bmb/workflows/redoc/workflow.yaml","8906c8d50748bfcdfa9aa7d95ae284d02aea92b10ece262be1c793ee99358687"
|
||||||
|
"csv","adv-elicit-methods","core","bmad/core/tasks/adv-elicit-methods.csv","b4e925870f902862899f12934e617c3b4fe002d1b652c99922b30fa93482533b"
|
||||||
|
"csv","brain-methods","core","bmad/core/workflows/brainstorming/brain-methods.csv","ecffe2f0ba263aac872b2d2c95a3f7b1556da2a980aa0edd3764ffb2f11889f3"
|
||||||
|
"md","bmad-master","core","bmad/core/agents/bmad-master.md","d5a8f4c202e0637844b7c481c6b1284f4a8175017f070a23de849f53ead62625"
|
||||||
|
"md","instructions","core","bmad/core/workflows/bmad-init/instructions.md","f4eff0e5f8c060126cb3027e3b0a343451ff25cd8fac28551e70281c3b16a5b2"
|
||||||
|
"md","instructions","core","bmad/core/workflows/brainstorming/instructions.md","32961c158cf5c0575ff0aac6e6532ea177b824e96caddafa31223485df10bc4e"
|
||||||
|
"md","instructions","core","bmad/core/workflows/party-mode/instructions.md","ea0e0e76de91d872efb3b4397627801452f21a39d094a77c41edc93f8dc4238b"
|
||||||
|
"md","README","core","bmad/core/workflows/brainstorming/README.md","ca469d9fbb2b9156491d160e11e2517fdf85ea2c29f41f92b22d4027fe7d9d2a"
|
||||||
|
"md","template","core","bmad/core/workflows/brainstorming/template.md","b5c760f4cea2b56c75ef76d17a87177b988ac846657f4b9819ec125d125b7386"
|
||||||
|
"xml","adv-elicit","core","bmad/core/tasks/adv-elicit.xml","94f004a336e434cd231de35eb864435ac51cd5888e9befe66e326eb16497121e"
|
||||||
|
"xml","bmad-web-orchestrator.agent","core","bmad/core/agents/bmad-web-orchestrator.agent.xml","91a5c1b660befa7365f427640b4fa3dbb18f5e48cd135560303dae0939dccf12"
|
||||||
|
"xml","index-docs","core","bmad/core/tasks/index-docs.xml","8d011ea850571d448932814bad7cbedcc8aa6e3e28868f55dcc7c2ba82158901"
|
||||||
|
"xml","validate-workflow","core","bmad/core/tasks/validate-workflow.xml","1244874db38a55d957995ed224812ef868ff1451d8e1901cc5887dd0eb1c236e"
|
||||||
|
"xml","workflow","core","bmad/core/tasks/workflow.xml","0b2b7bd184e099869174cc8d9125fce08bcd3fd64fad50ff835a42eccf6620e2"
|
||||||
|
"yaml","bmad-master.agent","core","bmad/core/agents/bmad-master.agent.yaml",""
|
||||||
|
"yaml","config","core","bmad/core/config.yaml","1095574525100a336cf6d6b87b759b756380c8ce4a595094320100e987b84ade"
|
||||||
|
"yaml","workflow","core","bmad/core/workflows/bmad-init/workflow.yaml","731b408219111bd234ebf7a7e124fe2dcb3a428bcf74f8c307a9a2f58039ee97"
|
||||||
|
"yaml","workflow","core","bmad/core/workflows/brainstorming/workflow.yaml","52db57678606b98ec47e603c253c40f98815c49417df3088412bbbd8aa7f34d3"
|
||||||
|
"yaml","workflow","core","bmad/core/workflows/party-mode/workflow.yaml","979e986780ce919abbdae89b3bd264d34a1436036a7eb6f82f40e59c9ce7c2e8"
|
||||||
|
9
bmad/_cfg/manifest.yaml
Normal file
9
bmad/_cfg/manifest.yaml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
installation:
|
||||||
|
version: 6.0.0-alpha.0
|
||||||
|
installDate: "2025-10-16T23:11:41.904Z"
|
||||||
|
lastUpdated: "2025-10-16T23:11:41.904Z"
|
||||||
|
modules:
|
||||||
|
- core
|
||||||
|
- bmb
|
||||||
|
ides:
|
||||||
|
- claude-code
|
||||||
1
bmad/_cfg/task-manifest.csv
Normal file
1
bmad/_cfg/task-manifest.csv
Normal file
@@ -0,0 +1 @@
|
|||||||
|
name,displayName,description,module,path
|
||||||
|
12
bmad/_cfg/workflow-manifest.csv
Normal file
12
bmad/_cfg/workflow-manifest.csv
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
name,description,module,path
|
||||||
|
"bmad-init","BMAD system initialization and maintenance workflow for agent manifest generation and system configuration","core","bmad/core/workflows/bmad-init/workflow.yaml"
|
||||||
|
"brainstorming","Facilitate interactive brainstorming sessions using diverse creative techniques. This workflow facilitates interactive brainstorming sessions using diverse creative techniques. The session is highly interactive, with the AI acting as a facilitator to guide the user through various ideation methods to generate and refine creative solutions.","core","bmad/core/workflows/brainstorming/workflow.yaml"
|
||||||
|
"party-mode","Orchestrates group discussions between all installed BMAD agents, enabling natural multi-agent conversations","core","bmad/core/workflows/party-mode/workflow.yaml"
|
||||||
|
"audit-workflow","Comprehensive workflow quality audit - validates structure, config standards, variable usage, bloat detection, and web_bundle completeness. Performs deep analysis of workflow.yaml, instructions.md, template.md, and web_bundle configuration against BMAD v6 standards.","bmb","bmad/bmb/workflows/audit-workflow/workflow.yaml"
|
||||||
|
"convert-legacy","Converts legacy BMAD v4 or similar items (agents, workflows, modules) to BMad Core compliant format with proper structure and conventions","bmb","bmad/bmb/workflows/convert-legacy/workflow.yaml"
|
||||||
|
"create-agent","Interactive workflow to build BMAD Core compliant agents (YAML source compiled to .md during install) with optional brainstorming, persona development, and command structure","bmb","bmad/bmb/workflows/create-agent/workflow.yaml"
|
||||||
|
"create-module","Interactive workflow to build complete BMAD modules with agents, workflows, tasks, and installation infrastructure","bmb","bmad/bmb/workflows/create-module/workflow.yaml"
|
||||||
|
"create-workflow","Interactive workflow builder that guides creation of new BMAD workflows with proper structure and validation for optimal human-AI collaboration. Includes optional brainstorming phase for workflow ideas and design.","bmb","bmad/bmb/workflows/create-workflow/workflow.yaml"
|
||||||
|
"edit-workflow","Edit existing BMAD workflows while following all best practices and conventions","bmb","bmad/bmb/workflows/edit-workflow/workflow.yaml"
|
||||||
|
"module-brief","Create a comprehensive Module Brief that serves as the blueprint for building new BMAD modules using strategic analysis and creative vision","bmb","bmad/bmb/workflows/module-brief/workflow.yaml"
|
||||||
|
"redoc","Autonomous documentation system that maintains module, workflow, and agent documentation using a reverse-tree approach (leaf folders first, then parents). Understands BMAD conventions and produces technical writer quality output.","bmb","bmad/bmb/workflows/redoc/workflow.yaml"
|
||||||
|
132
bmad/bmb/README.md
Normal file
132
bmad/bmb/README.md
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
# BMB - BMad Builder Module
|
||||||
|
|
||||||
|
The BMB (BMad Builder Module) provides specialized tools and workflows for creating, customizing, and extending BMad Method components, including custom agents, workflows, and integrations.
|
||||||
|
|
||||||
|
## Module Structure
|
||||||
|
|
||||||
|
### 🤖 `/agents`
|
||||||
|
|
||||||
|
Builder-specific agents that help create and customize BMad Method components:
|
||||||
|
|
||||||
|
- Agent creation and configuration specialists
|
||||||
|
- Workflow designers
|
||||||
|
- Integration builders
|
||||||
|
|
||||||
|
### 📋 `/workflows`
|
||||||
|
|
||||||
|
Specialized workflows for building and extending BMad Method capabilities:
|
||||||
|
|
||||||
|
#### Core Builder Workflows
|
||||||
|
|
||||||
|
- `create-agent` - Design and implement custom agents
|
||||||
|
- `create-workflow` - Build new workflow definitions
|
||||||
|
- `create-team` - Configure agent teams
|
||||||
|
- `bundle-agent` - Package agents for distribution
|
||||||
|
- `create-method` - Design custom development methodologies
|
||||||
|
|
||||||
|
#### Integration Workflows
|
||||||
|
|
||||||
|
- `integrate-tool` - Connect external tools and services
|
||||||
|
- `create-adapter` - Build API adapters
|
||||||
|
- `setup-environment` - Configure development environments
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
### Agent Builder
|
||||||
|
|
||||||
|
Create custom agents with:
|
||||||
|
|
||||||
|
- Role-specific instructions
|
||||||
|
- Tool configurations
|
||||||
|
- Behavior patterns
|
||||||
|
- Integration points
|
||||||
|
|
||||||
|
### Workflow Designer
|
||||||
|
|
||||||
|
Design workflows that:
|
||||||
|
|
||||||
|
- Orchestrate multiple agents
|
||||||
|
- Define process flows
|
||||||
|
- Handle different project scales
|
||||||
|
- Integrate with existing systems
|
||||||
|
|
||||||
|
### Team Configuration
|
||||||
|
|
||||||
|
Build teams that:
|
||||||
|
|
||||||
|
- Combine complementary agent skills
|
||||||
|
- Coordinate on complex tasks
|
||||||
|
- Share context effectively
|
||||||
|
- Deliver cohesive results
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Create a new custom agent
|
||||||
|
bmad bmb create-agent
|
||||||
|
|
||||||
|
# Design a new workflow
|
||||||
|
bmad bmb create-workflow
|
||||||
|
|
||||||
|
# Bundle an agent for sharing
|
||||||
|
bmad bmb bundle-agent
|
||||||
|
|
||||||
|
# Create a custom team configuration
|
||||||
|
bmad bmb create-team
|
||||||
|
```
|
||||||
|
|
||||||
|
## Use Cases
|
||||||
|
|
||||||
|
### Custom Agent Development
|
||||||
|
|
||||||
|
Build specialized agents for:
|
||||||
|
|
||||||
|
- Domain-specific expertise
|
||||||
|
- Company-specific processes
|
||||||
|
- Tool integrations
|
||||||
|
- Automation tasks
|
||||||
|
|
||||||
|
### Workflow Customization
|
||||||
|
|
||||||
|
Create workflows for:
|
||||||
|
|
||||||
|
- Unique development processes
|
||||||
|
- Compliance requirements
|
||||||
|
- Quality gates
|
||||||
|
- Deployment pipelines
|
||||||
|
|
||||||
|
### Team Orchestration
|
||||||
|
|
||||||
|
Configure teams for:
|
||||||
|
|
||||||
|
- Large-scale projects
|
||||||
|
- Cross-functional collaboration
|
||||||
|
- Specialized domains
|
||||||
|
- Custom methodologies
|
||||||
|
|
||||||
|
## Integration with BMM
|
||||||
|
|
||||||
|
BMB works alongside BMM to:
|
||||||
|
|
||||||
|
- Extend core BMM capabilities
|
||||||
|
- Create custom implementations
|
||||||
|
- Build domain-specific solutions
|
||||||
|
- Integrate with existing tools
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
1. **Start with existing patterns** - Study BMM agents and workflows before creating new ones
|
||||||
|
2. **Keep it modular** - Build reusable components
|
||||||
|
3. **Document thoroughly** - Clear documentation helps others use your creations
|
||||||
|
4. **Test extensively** - Validate agents and workflows before production use
|
||||||
|
5. **Share and collaborate** - Contribute useful components back to the community
|
||||||
|
|
||||||
|
## Related Documentation
|
||||||
|
|
||||||
|
- [BMM Module](../bmm/README.md) - Core method implementation
|
||||||
|
- [Agent Creation Guide](./workflows/create-agent/README.md) - Detailed agent building instructions
|
||||||
|
- [Workflow Design Patterns](./workflows/README.md) - Best practices for workflow creation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
BMB empowers you to extend and customize the BMad Method to fit your specific needs while maintaining the power and consistency of the core framework.
|
||||||
65
bmad/bmb/agents/bmad-builder.md
Normal file
65
bmad/bmb/agents/bmad-builder.md
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
<!-- Powered by BMAD-CORE™ -->
|
||||||
|
|
||||||
|
# BMad Builder
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<agent id="bmad/bmb/agents/bmad-builder.md" name="BMad Builder" title="BMad Builder" icon="🧙">
|
||||||
|
<activation critical="MANDATORY">
|
||||||
|
<step n="1">Load persona from this current agent file (already in context)</step>
|
||||||
|
<step n="2">🚨 IMMEDIATE ACTION REQUIRED - BEFORE ANY OUTPUT:
|
||||||
|
- Load and read {project-root}/bmad/bmb/config.yaml NOW
|
||||||
|
- Store ALL fields as session variables: {user_name}, {communication_language}, {output_folder}
|
||||||
|
- VERIFY: If config not loaded, STOP and report error to user
|
||||||
|
- DO NOT PROCEED to step 3 until config is successfully loaded and variables stored</step>
|
||||||
|
<step n="3">Remember: user's name is {user_name}</step>
|
||||||
|
|
||||||
|
<step n="4">Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of
|
||||||
|
ALL menu items from menu section</step>
|
||||||
|
<step n="5">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or trigger text</step>
|
||||||
|
<step n="6">On user input: Number → execute menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user
|
||||||
|
to clarify | No match → show "Not recognized"</step>
|
||||||
|
<step n="7">When executing a menu item: Check menu-handlers section below - extract any attributes from the selected menu item
|
||||||
|
(workflow, exec, tmpl, data, action, validate-workflow) and follow the corresponding handler instructions</step>
|
||||||
|
|
||||||
|
<menu-handlers>
|
||||||
|
<handlers>
|
||||||
|
<handler type="workflow">
|
||||||
|
When menu item has: workflow="path/to/workflow.yaml"
|
||||||
|
1. CRITICAL: Always LOAD {project-root}/bmad/core/tasks/workflow.xml
|
||||||
|
2. Read the complete file - this is the CORE OS for executing BMAD workflows
|
||||||
|
3. Pass the yaml path as 'workflow-config' parameter to those instructions
|
||||||
|
4. Execute workflow.xml instructions precisely following all steps
|
||||||
|
5. Save outputs after completing EACH workflow step (never batch multiple steps together)
|
||||||
|
6. If workflow.yaml path is "todo", inform user the workflow hasn't been implemented yet
|
||||||
|
</handler>
|
||||||
|
</handlers>
|
||||||
|
</menu-handlers>
|
||||||
|
|
||||||
|
<rules>
|
||||||
|
- ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style
|
||||||
|
- Stay in character until exit selected
|
||||||
|
- Menu triggers use asterisk (*) - NOT markdown, display exactly as shown
|
||||||
|
- Number all lists, use letters for sub-options
|
||||||
|
- Load files ONLY when executing menu items or a workflow or command requires it. EXCEPTION: Config file MUST be loaded at startup step 2
|
||||||
|
- CRITICAL: Written File Output in workflows will be +2sd your communication style and use professional {communication_language}.
|
||||||
|
</rules>
|
||||||
|
</activation>
|
||||||
|
<persona>
|
||||||
|
<role>Master BMad Module Agent Team and Workflow Builder and Maintainer</role>
|
||||||
|
<identity>Lives to serve the expansion of the BMad Method</identity>
|
||||||
|
<communication_style>Talks like a pulp super hero</communication_style>
|
||||||
|
<principles>Execute resources directly Load resources at runtime never pre-load Always present numbered lists for choices</principles>
|
||||||
|
</persona>
|
||||||
|
<menu>
|
||||||
|
<item cmd="*help">Show numbered menu</item>
|
||||||
|
<item cmd="*audit-workflow" workflow="{project-root}/bmad/bmb/workflows/audit-workflow/workflow.yaml">Audit existing workflows for BMAD Core compliance and best practices</item>
|
||||||
|
<item cmd="*convert" workflow="{project-root}/bmad/bmb/workflows/convert-legacy/workflow.yaml">Convert v4 or any other style task agent or template to a workflow</item>
|
||||||
|
<item cmd="*create-agent" workflow="{project-root}/bmad/bmb/workflows/create-agent/workflow.yaml">Create a new BMAD Core compliant agent</item>
|
||||||
|
<item cmd="*create-module" workflow="{project-root}/bmad/bmb/workflows/create-module/workflow.yaml">Create a complete BMAD module (brainstorm → brief → build with agents and workflows)</item>
|
||||||
|
<item cmd="*create-workflow" workflow="{project-root}/bmad/bmb/workflows/create-workflow/workflow.yaml">Create a new BMAD Core workflow with proper structure</item>
|
||||||
|
<item cmd="*edit-workflow" workflow="{project-root}/bmad/bmb/workflows/edit-workflow/workflow.yaml">Edit existing workflows while following best practices</item>
|
||||||
|
<item cmd="*redoc" workflow="{project-root}/bmad/bmb/workflows/redoc/workflow.yaml">Create or update module documentation</item>
|
||||||
|
<item cmd="*exit">Exit with confirmation</item>
|
||||||
|
</menu>
|
||||||
|
</agent>
|
||||||
|
```
|
||||||
13
bmad/bmb/config.yaml
Normal file
13
bmad/bmb/config.yaml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# BMB Module Configuration
|
||||||
|
# Generated by BMAD installer
|
||||||
|
# Version: 6.0.0-alpha.0
|
||||||
|
# Date: 2025-10-16T23:11:41.900Z
|
||||||
|
|
||||||
|
custom_agent_location: "{project-root}/bmad/agents"
|
||||||
|
custom_workflow_location: "{project-root}/bmad/workflows"
|
||||||
|
custom_module_location: "{project-root}/bmad"
|
||||||
|
|
||||||
|
# Core Configuration Values
|
||||||
|
user_name: BMad
|
||||||
|
communication_language: English
|
||||||
|
output_folder: "{project-root}/docs"
|
||||||
138
bmad/bmb/workflows/audit-workflow/checklist.md
Normal file
138
bmad/bmb/workflows/audit-workflow/checklist.md
Normal file
@@ -0,0 +1,138 @@
|
|||||||
|
# Audit Workflow - Validation Checklist
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
- [ ] workflow.yaml file loads without YAML syntax errors
|
||||||
|
- [ ] instructions.md file exists and is properly formatted
|
||||||
|
- [ ] template.md file exists (if document workflow) with valid markdown
|
||||||
|
- [ ] All critical headers present in instructions (workflow engine reference, workflow.yaml reference)
|
||||||
|
- [ ] Workflow type correctly identified (document/action/interactive/autonomous/meta)
|
||||||
|
- [ ] All referenced files actually exist at specified paths
|
||||||
|
- [ ] No placeholder text remains (like {TITLE}, {WORKFLOW_CODE}, TODO, etc.)
|
||||||
|
|
||||||
|
## Standard Config Block
|
||||||
|
|
||||||
|
- [ ] workflow.yaml contains `config_source` pointing to correct module config
|
||||||
|
- [ ] `output_folder` pulls from `{config_source}:output_folder`
|
||||||
|
- [ ] `user_name` pulls from `{config_source}:user_name`
|
||||||
|
- [ ] `communication_language` pulls from `{config_source}:communication_language`
|
||||||
|
- [ ] `date` is set to `system-generated`
|
||||||
|
- [ ] Config source uses {project-root} variable (not hardcoded path)
|
||||||
|
- [ ] Standard config comment present: "Critical variables from config"
|
||||||
|
|
||||||
|
## Config Variable Usage
|
||||||
|
|
||||||
|
- [ ] Instructions communicate in {communication_language} where appropriate
|
||||||
|
- [ ] Instructions address {user_name} in greetings or summaries where appropriate
|
||||||
|
- [ ] All file outputs write to {output_folder} or subdirectories (no hardcoded paths)
|
||||||
|
- [ ] Template includes {{user_name}} in metadata (optional for document workflows)
|
||||||
|
- [ ] Template includes {{date}} in metadata (optional for document workflows)
|
||||||
|
- [ ] Template does NOT use {{communication_language}} in headers (agent-only variable)
|
||||||
|
- [ ] No hardcoded language-specific text that should use {communication_language}
|
||||||
|
- [ ] Date used for agent date awareness (not confused with training cutoff)
|
||||||
|
|
||||||
|
## YAML/Instruction/Template Alignment
|
||||||
|
|
||||||
|
- [ ] Every workflow.yaml variable (excluding standard config) is used in instructions OR template
|
||||||
|
- [ ] No unused yaml fields present (bloat removed)
|
||||||
|
- [ ] No duplicate fields between top-level and web_bundle section
|
||||||
|
- [ ] All template variables ({{variable}}) have corresponding yaml definitions OR <template-output> tags
|
||||||
|
- [ ] All <template-output> tags have corresponding template variables (if document workflow)
|
||||||
|
- [ ] Template variables use snake_case naming convention
|
||||||
|
- [ ] Variable names are descriptive (not abbreviated like {{puj}} instead of {{primary_user_journey}})
|
||||||
|
- [ ] No hardcoded values in instructions that should be yaml variables
|
||||||
|
|
||||||
|
## Web Bundle Validation (if applicable)
|
||||||
|
|
||||||
|
- [ ] web_bundle section present if workflow needs deployment
|
||||||
|
- [ ] All paths in web_bundle use bmad/-relative format (NOT {project-root})
|
||||||
|
- [ ] No {config_source} variables in web_bundle section
|
||||||
|
- [ ] instructions file listed in web_bundle_files array
|
||||||
|
- [ ] template file listed in web_bundle_files (if document workflow)
|
||||||
|
- [ ] validation/checklist file listed in web_bundle_files (if exists)
|
||||||
|
- [ ] All data files (CSV, JSON, YAML) listed in web_bundle_files
|
||||||
|
- [ ] All <invoke-workflow> called workflows have their .yaml files in web_bundle_files
|
||||||
|
- [ ] **CRITICAL**: If workflow invokes other workflows, existing_workflows field is present
|
||||||
|
- [ ] existing_workflows maps workflow variables to bmad/-relative paths correctly
|
||||||
|
- [ ] All files referenced in instructions <action> tags listed in web_bundle_files
|
||||||
|
- [ ] No files listed in web_bundle_files that don't exist
|
||||||
|
- [ ] Web bundle metadata (name, description, author) matches top-level metadata
|
||||||
|
|
||||||
|
## Template Validation (if document workflow)
|
||||||
|
|
||||||
|
- [ ] Template variables match <template-output> tags in instructions exactly
|
||||||
|
- [ ] All required sections present in template structure
|
||||||
|
- [ ] Template uses {{variable}} syntax (double curly braces)
|
||||||
|
- [ ] Template variables use snake_case (not camelCase or PascalCase)
|
||||||
|
- [ ] Standard metadata header format correct (optional usage of {{date}}, {{user_name}})
|
||||||
|
- [ ] No placeholders remain in template (like {SECTION_NAME})
|
||||||
|
- [ ] Template structure matches document purpose
|
||||||
|
|
||||||
|
## Instructions Quality
|
||||||
|
|
||||||
|
- [ ] Each step has n="X" attribute with sequential numbering
|
||||||
|
- [ ] Each step has goal="clear goal statement" attribute
|
||||||
|
- [ ] Optional steps marked with optional="true"
|
||||||
|
- [ ] Repeating steps have appropriate repeat attribute (repeat="3", repeat="for-each-X", repeat="until-approved")
|
||||||
|
- [ ] Conditional steps have if="condition" attribute
|
||||||
|
- [ ] XML tags used correctly (<action>, <ask>, <check>, <goto>, <invoke-workflow>, <template-output>)
|
||||||
|
- [ ] Steps are focused (single goal per step)
|
||||||
|
- [ ] Instructions are specific with limits ("Write 1-2 paragraphs" not "Write about")
|
||||||
|
- [ ] Examples provided where helpful
|
||||||
|
- [ ] <template-output> tags save checkpoints for document workflows
|
||||||
|
- [ ] Flow control is logical and clear
|
||||||
|
|
||||||
|
## Bloat Detection
|
||||||
|
|
||||||
|
- [ ] Bloat percentage under 10% (unused yaml fields / total fields)
|
||||||
|
- [ ] No commented-out variables that should be removed
|
||||||
|
- [ ] No duplicate metadata between sections
|
||||||
|
- [ ] No variables defined but never referenced
|
||||||
|
- [ ] No redundant configuration that duplicates web_bundle
|
||||||
|
|
||||||
|
## Final Validation
|
||||||
|
|
||||||
|
### Critical Issues (Must fix immediately)
|
||||||
|
|
||||||
|
_List any critical issues found:_
|
||||||
|
|
||||||
|
- Issue 1:
|
||||||
|
- Issue 2:
|
||||||
|
- Issue 3:
|
||||||
|
|
||||||
|
### Important Issues (Should fix soon)
|
||||||
|
|
||||||
|
_List any important issues found:_
|
||||||
|
|
||||||
|
- Issue 1:
|
||||||
|
- Issue 2:
|
||||||
|
- Issue 3:
|
||||||
|
|
||||||
|
### Cleanup Recommendations (Nice to have)
|
||||||
|
|
||||||
|
_List any cleanup recommendations:_
|
||||||
|
|
||||||
|
- Recommendation 1:
|
||||||
|
- Recommendation 2:
|
||||||
|
- Recommendation 3:
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Audit Summary
|
||||||
|
|
||||||
|
**Total Checks:** 70
|
||||||
|
**Passed:** **\_** / 70
|
||||||
|
**Failed:** **\_** / 70
|
||||||
|
**Pass Rate:** **\_**%
|
||||||
|
|
||||||
|
**Recommendation:**
|
||||||
|
|
||||||
|
- Pass Rate ≥ 95%: Excellent - Ready for production
|
||||||
|
- Pass Rate 85-94%: Good - Minor fixes needed
|
||||||
|
- Pass Rate 70-84%: Fair - Important issues to address
|
||||||
|
- Pass Rate < 70%: Poor - Significant work required
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Audit Completed:** {{date}}
|
||||||
|
**Auditor:** Audit Workflow (BMAD v6)
|
||||||
375
bmad/bmb/workflows/audit-workflow/instructions.md
Normal file
375
bmad/bmb/workflows/audit-workflow/instructions.md
Normal file
@@ -0,0 +1,375 @@
|
|||||||
|
# Audit Workflow - Workflow Quality Audit Instructions
|
||||||
|
|
||||||
|
<critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical>
|
||||||
|
<critical>You MUST have already loaded and processed: {project-root}/bmad/bmb/workflows/audit-workflow/workflow.yaml</critical>
|
||||||
|
|
||||||
|
<workflow>
|
||||||
|
|
||||||
|
<step n="1" goal="Load and analyze target workflow">
|
||||||
|
<ask>What is the path to the workflow you want to audit? (provide path to workflow.yaml or workflow folder)</ask>
|
||||||
|
|
||||||
|
<action>Load the workflow.yaml file from the provided path</action>
|
||||||
|
<action>Identify the workflow type (document, action, interactive, autonomous, meta)</action>
|
||||||
|
<action>List all associated files:</action>
|
||||||
|
|
||||||
|
- instructions.md (required for most workflows)
|
||||||
|
- template.md (if document workflow)
|
||||||
|
- checklist.md (if validation exists)
|
||||||
|
- Any data files referenced in yaml
|
||||||
|
|
||||||
|
<action>Load all discovered files</action>
|
||||||
|
|
||||||
|
Display summary:
|
||||||
|
|
||||||
|
- Workflow name and description
|
||||||
|
- Type of workflow
|
||||||
|
- Files present
|
||||||
|
- Module assignment
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2" goal="Validate standard config block">
|
||||||
|
<action>Check workflow.yaml for the standard config block:</action>
|
||||||
|
|
||||||
|
**Required variables:**
|
||||||
|
|
||||||
|
- `config_source: "{project-root}/bmad/[module]/config.yaml"`
|
||||||
|
- `output_folder: "{config_source}:output_folder"`
|
||||||
|
- `user_name: "{config_source}:user_name"`
|
||||||
|
- `communication_language: "{config_source}:communication_language"`
|
||||||
|
- `date: system-generated`
|
||||||
|
|
||||||
|
<action>Validate each variable:</action>
|
||||||
|
|
||||||
|
**Config Source Check:**
|
||||||
|
|
||||||
|
- [ ] `config_source` is defined
|
||||||
|
- [ ] Points to correct module config path
|
||||||
|
- [ ] Uses {project-root} variable
|
||||||
|
|
||||||
|
**Standard Variables Check:**
|
||||||
|
|
||||||
|
- [ ] `output_folder` pulls from config_source
|
||||||
|
- [ ] `user_name` pulls from config_source
|
||||||
|
- [ ] `communication_language` pulls from config_source
|
||||||
|
- [ ] `date` is set to system-generated
|
||||||
|
|
||||||
|
<action>Record any missing or incorrect config variables</action>
|
||||||
|
<template-output>config_issues</template-output>
|
||||||
|
|
||||||
|
<check>If config issues found:</check>
|
||||||
|
<action>Add to issues list with severity: CRITICAL</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="3" goal="Analyze YAML/Instruction/Template alignment">
|
||||||
|
<action>Extract all variables defined in workflow.yaml (excluding standard config block)</action>
|
||||||
|
<action>Scan instructions.md for variable usage: {variable_name} pattern</action>
|
||||||
|
<action>Scan template.md for variable usage: {{variable_name}} pattern (if exists)</action>
|
||||||
|
|
||||||
|
<action>Cross-reference analysis:</action>
|
||||||
|
|
||||||
|
**For each yaml variable:**
|
||||||
|
|
||||||
|
1. Is it used in instructions.md? (mark as INSTRUCTION_USED)
|
||||||
|
2. Is it used in template.md? (mark as TEMPLATE_USED)
|
||||||
|
3. Is it neither? (mark as UNUSED_BLOAT)
|
||||||
|
|
||||||
|
**Special cases to ignore:**
|
||||||
|
|
||||||
|
- Standard config variables (config_source, output_folder, user_name, communication_language, date)
|
||||||
|
- Workflow metadata (name, description, author)
|
||||||
|
- Path variables (installed_path, template, instructions, validation)
|
||||||
|
- Web bundle configuration (web_bundle block itself)
|
||||||
|
|
||||||
|
<action>Identify unused yaml fields (bloat)</action>
|
||||||
|
<action>Identify hardcoded values in instructions that should be variables</action>
|
||||||
|
<template-output>alignment_issues</template-output>
|
||||||
|
|
||||||
|
<check>If unused variables found:</check>
|
||||||
|
<action>Add to issues list with severity: BLOAT</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="4" goal="Config variable usage audit">
|
||||||
|
<action>Analyze instructions.md for proper config variable usage:</action>
|
||||||
|
|
||||||
|
**Communication Language Check:**
|
||||||
|
|
||||||
|
- Search for phrases like "communicate in {communication_language}"
|
||||||
|
- Check if greetings/responses use language-aware patterns
|
||||||
|
- Verify NO usage of {{communication_language}} in template headers
|
||||||
|
|
||||||
|
**User Name Check:**
|
||||||
|
|
||||||
|
- Look for user addressing patterns using {user_name}
|
||||||
|
- Check if summaries or greetings personalize with {user_name}
|
||||||
|
- Verify optional usage in template metadata (not required)
|
||||||
|
|
||||||
|
**Output Folder Check:**
|
||||||
|
|
||||||
|
- Search for file write operations
|
||||||
|
- Verify all outputs go to {output_folder} or subdirectories
|
||||||
|
- Check for hardcoded paths like "/output/" or "/generated/"
|
||||||
|
|
||||||
|
**Date Usage Check:**
|
||||||
|
|
||||||
|
- Verify date is available for agent date awareness
|
||||||
|
- Check optional usage in template metadata
|
||||||
|
- Ensure no confusion between date and model training cutoff
|
||||||
|
|
||||||
|
<action>Record any improper config variable usage</action>
|
||||||
|
<template-output>config_usage_issues</template-output>
|
||||||
|
|
||||||
|
<check>If config usage issues found:</check>
|
||||||
|
<action>Add to issues list with severity: IMPORTANT</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="5" goal="Web bundle validation" optional="true">
|
||||||
|
<check>If workflow.yaml contains web_bundle section:</check>
|
||||||
|
|
||||||
|
<action>Validate web_bundle structure:</action>
|
||||||
|
|
||||||
|
**Path Validation:**
|
||||||
|
|
||||||
|
- [ ] All paths use bmad/-relative format (NOT {project-root})
|
||||||
|
- [ ] No {config_source} variables in web_bundle section
|
||||||
|
- [ ] Paths match actual file locations
|
||||||
|
|
||||||
|
**Completeness Check:**
|
||||||
|
|
||||||
|
- [ ] instructions file listed in web_bundle_files
|
||||||
|
- [ ] template file listed (if document workflow)
|
||||||
|
- [ ] validation/checklist file listed (if exists)
|
||||||
|
- [ ] All data files referenced in yaml listed
|
||||||
|
- [ ] All files referenced in instructions listed
|
||||||
|
|
||||||
|
**Workflow Dependency Scan:**
|
||||||
|
<action>Scan instructions.md for <invoke-workflow> tags</action>
|
||||||
|
<action>Extract workflow paths from invocations</action>
|
||||||
|
<action>Verify each called workflow.yaml is in web_bundle_files</action>
|
||||||
|
<action>**CRITICAL**: Check if existing_workflows field is present when workflows are invoked</action>
|
||||||
|
<action>If <invoke-workflow> calls exist, existing_workflows MUST map workflow variables to paths</action>
|
||||||
|
<action>Example: If instructions use {core_brainstorming}, web_bundle needs:
|
||||||
|
existing_workflows: - core_brainstorming: "bmad/core/workflows/brainstorming/workflow.yaml"
|
||||||
|
</action>
|
||||||
|
|
||||||
|
**File Reference Scan:**
|
||||||
|
<action>Scan instructions.md for file references in <action> tags</action>
|
||||||
|
<action>Check for CSV, JSON, YAML, MD files referenced</action>
|
||||||
|
<action>Verify all referenced files are in web_bundle_files</action>
|
||||||
|
|
||||||
|
<action>Record any missing files or incorrect paths</action>
|
||||||
|
<template-output>web_bundle_issues</template-output>
|
||||||
|
|
||||||
|
<check>If web_bundle issues found:</check>
|
||||||
|
<action>Add to issues list with severity: CRITICAL</action>
|
||||||
|
|
||||||
|
<check>If no web_bundle section exists:</check>
|
||||||
|
<action>Note: "No web_bundle configured (may be intentional for local-only workflows)"</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="6" goal="Bloat detection">
|
||||||
|
<action>Identify bloat patterns:</action>
|
||||||
|
|
||||||
|
**Unused YAML Fields:**
|
||||||
|
|
||||||
|
- Variables defined but not used in instructions OR template
|
||||||
|
- Duplicate fields between top-level and web_bundle section
|
||||||
|
- Commented-out variables that should be removed
|
||||||
|
|
||||||
|
**Hardcoded Values:**
|
||||||
|
|
||||||
|
- File paths that should use {output_folder}
|
||||||
|
- Generic greetings that should use {user_name}
|
||||||
|
- Language-specific text that should use {communication_language}
|
||||||
|
- Static dates that should use {date}
|
||||||
|
|
||||||
|
**Redundant Configuration:**
|
||||||
|
|
||||||
|
- Variables that duplicate web_bundle fields
|
||||||
|
- Metadata repeated across sections
|
||||||
|
|
||||||
|
<action>Calculate bloat metrics:</action>
|
||||||
|
|
||||||
|
- Total yaml fields: {{total_yaml_fields}}
|
||||||
|
- Used fields: {{used_fields}}
|
||||||
|
- Unused fields: {{unused_fields}}
|
||||||
|
- Bloat percentage: {{bloat_percentage}}%
|
||||||
|
|
||||||
|
<action>Record all bloat items with recommendations</action>
|
||||||
|
<template-output>bloat_items</template-output>
|
||||||
|
|
||||||
|
<check>If bloat detected:</check>
|
||||||
|
<action>Add to issues list with severity: CLEANUP</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="7" goal="Template variable mapping" if="workflow_type == 'document'">
|
||||||
|
<action>Extract all template variables from template.md: {{variable_name}} pattern</action>
|
||||||
|
<action>Scan instructions.md for corresponding <template-output>variable_name</template-output> tags</action>
|
||||||
|
|
||||||
|
<action>Cross-reference mapping:</action>
|
||||||
|
|
||||||
|
**For each template variable:**
|
||||||
|
|
||||||
|
1. Is there a matching <template-output> tag? (mark as MAPPED)
|
||||||
|
2. Is it a standard config variable? (mark as CONFIG_VAR - optional)
|
||||||
|
3. Is it unmapped? (mark as MISSING_OUTPUT)
|
||||||
|
|
||||||
|
**For each <template-output> tag:**
|
||||||
|
|
||||||
|
1. Is there a matching template variable? (mark as USED)
|
||||||
|
2. Is it orphaned? (mark as UNUSED_OUTPUT)
|
||||||
|
|
||||||
|
<action>Verify variable naming conventions:</action>
|
||||||
|
|
||||||
|
- [ ] All template variables use snake_case
|
||||||
|
- [ ] Variable names are descriptive (not abbreviated)
|
||||||
|
- [ ] Standard config variables properly formatted
|
||||||
|
|
||||||
|
<action>Record any mapping issues</action>
|
||||||
|
<template-output>template_issues</template-output>
|
||||||
|
|
||||||
|
<check>If template issues found:</check>
|
||||||
|
<action>Add to issues list with severity: IMPORTANT</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="8" goal="Generate comprehensive audit report">
|
||||||
|
<action>Compile all findings into a structured report</action>
|
||||||
|
|
||||||
|
<action>Write audit report to {output_folder}/audit-report-{{workflow_name}}-{{date}}.md</action>
|
||||||
|
|
||||||
|
**Report Structure:**
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Workflow Audit Report
|
||||||
|
|
||||||
|
**Workflow:** {{workflow_name}}
|
||||||
|
**Audit Date:** {{date}}
|
||||||
|
**Auditor:** Audit Workflow (BMAD v6)
|
||||||
|
**Workflow Type:** {{workflow_type}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Executive Summary
|
||||||
|
|
||||||
|
**Overall Status:** {{overall_status}}
|
||||||
|
|
||||||
|
- Critical Issues: {{critical_count}}
|
||||||
|
- Important Issues: {{important_count}}
|
||||||
|
- Cleanup Recommendations: {{cleanup_count}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Standard Config Block Validation
|
||||||
|
|
||||||
|
{{config_issues}}
|
||||||
|
|
||||||
|
**Status:** {{config_status}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. YAML/Instruction/Template Alignment
|
||||||
|
|
||||||
|
{{alignment_issues}}
|
||||||
|
|
||||||
|
**Variables Analyzed:** {{total_variables}}
|
||||||
|
**Used in Instructions:** {{instruction_usage_count}}
|
||||||
|
**Used in Template:** {{template_usage_count}}
|
||||||
|
**Unused (Bloat):** {{bloat_count}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Config Variable Usage
|
||||||
|
|
||||||
|
{{config_usage_issues}}
|
||||||
|
|
||||||
|
**Communication Language:** {{comm_lang_status}}
|
||||||
|
**User Name:** {{user_name_status}}
|
||||||
|
**Output Folder:** {{output_folder_status}}
|
||||||
|
**Date:** {{date_status}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Web Bundle Validation
|
||||||
|
|
||||||
|
{{web_bundle_issues}}
|
||||||
|
|
||||||
|
**Web Bundle Present:** {{web_bundle_exists}}
|
||||||
|
**Files Listed:** {{web_bundle_file_count}}
|
||||||
|
**Missing Files:** {{missing_files_count}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Bloat Detection
|
||||||
|
|
||||||
|
{{bloat_items}}
|
||||||
|
|
||||||
|
**Bloat Percentage:** {{bloat_percentage}}%
|
||||||
|
**Cleanup Potential:** {{cleanup_potential}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Template Variable Mapping
|
||||||
|
|
||||||
|
{{template_issues}}
|
||||||
|
|
||||||
|
**Template Variables:** {{template_var_count}}
|
||||||
|
**Mapped Correctly:** {{mapped_count}}
|
||||||
|
**Missing Mappings:** {{missing_mapping_count}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Recommendations
|
||||||
|
|
||||||
|
### Critical (Fix Immediately)
|
||||||
|
|
||||||
|
{{critical_recommendations}}
|
||||||
|
|
||||||
|
### Important (Address Soon)
|
||||||
|
|
||||||
|
{{important_recommendations}}
|
||||||
|
|
||||||
|
### Cleanup (Nice to Have)
|
||||||
|
|
||||||
|
{{cleanup_recommendations}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Validation Checklist
|
||||||
|
|
||||||
|
Use this checklist to verify fixes:
|
||||||
|
|
||||||
|
- [ ] All standard config variables present and correct
|
||||||
|
- [ ] No unused yaml fields (bloat removed)
|
||||||
|
- [ ] Config variables used appropriately in instructions
|
||||||
|
- [ ] Web bundle includes all dependencies
|
||||||
|
- [ ] Template variables properly mapped
|
||||||
|
- [ ] File structure follows v6 conventions
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. Review critical issues and fix immediately
|
||||||
|
2. Address important issues in next iteration
|
||||||
|
3. Consider cleanup recommendations for optimization
|
||||||
|
4. Re-run audit after fixes to verify improvements
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Audit Complete** - Generated by audit-workflow v1.0
|
||||||
|
```
|
||||||
|
|
||||||
|
<action>Display summary to {user_name} in {communication_language}</action>
|
||||||
|
<action>Provide path to full audit report</action>
|
||||||
|
|
||||||
|
<ask>Would you like to:
|
||||||
|
|
||||||
|
- View the full audit report
|
||||||
|
- Fix issues automatically (invoke edit-workflow)
|
||||||
|
- Audit another workflow
|
||||||
|
- Exit
|
||||||
|
</ask>
|
||||||
|
|
||||||
|
<template-output>audit_report_path</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
</workflow>
|
||||||
21
bmad/bmb/workflows/audit-workflow/workflow.yaml
Normal file
21
bmad/bmb/workflows/audit-workflow/workflow.yaml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Audit Workflow Configuration
|
||||||
|
name: "audit-workflow"
|
||||||
|
description: "Comprehensive workflow quality audit - validates structure, config standards, variable usage, bloat detection, and web_bundle completeness. Performs deep analysis of workflow.yaml, instructions.md, template.md, and web_bundle configuration against BMAD v6 standards."
|
||||||
|
author: "BMad"
|
||||||
|
|
||||||
|
# Critical variables from config
|
||||||
|
config_source: "{project-root}/bmad/bmb/config.yaml"
|
||||||
|
output_folder: "{config_source}:output_folder"
|
||||||
|
user_name: "{config_source}:user_name"
|
||||||
|
communication_language: "{config_source}:communication_language"
|
||||||
|
date: system-generated
|
||||||
|
|
||||||
|
# Module path and component files
|
||||||
|
installed_path: "{project-root}/bmad/bmb/workflows/audit-workflow"
|
||||||
|
template: false
|
||||||
|
instructions: "{installed_path}/instructions.md"
|
||||||
|
validation: "{installed_path}/checklist.md"
|
||||||
|
|
||||||
|
# Output configuration
|
||||||
|
default_output_file: "{output_folder}/audit-report-{{workflow_name}}-{{date}}.md"
|
||||||
|
# Web bundle configuration
|
||||||
262
bmad/bmb/workflows/convert-legacy/README.md
Normal file
262
bmad/bmb/workflows/convert-legacy/README.md
Normal file
@@ -0,0 +1,262 @@
|
|||||||
|
# Convert Legacy Workflow
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The Convert Legacy workflow is a comprehensive migration tool that converts BMAD v4 items (agents, workflows, modules) to v5 compliant format with proper structure and conventions. It bridges the gap between legacy BMAD implementations and the modern v5 architecture, ensuring seamless migration while preserving functionality and improving structure.
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- **Multi-Format Detection** - Automatically identifies v4 agents, workflows, tasks, templates, and modules
|
||||||
|
- **Intelligent Conversion** - Smart mapping from v4 patterns to v5 equivalents with structural improvements
|
||||||
|
- **Sub-Workflow Integration** - Leverages create-agent, create-workflow, and create-module workflows for quality output
|
||||||
|
- **Structure Modernization** - Converts YAML-based agents to XML, templates to workflows, tasks to structured workflows
|
||||||
|
- **Path Normalization** - Updates all references to use proper v5 path conventions
|
||||||
|
- **Validation System** - Comprehensive validation of converted items before finalization
|
||||||
|
- **Migration Reporting** - Detailed conversion reports with locations and manual adjustment notes
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Basic Invocation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
workflow convert-legacy
|
||||||
|
```
|
||||||
|
|
||||||
|
### With Legacy File Input
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Convert a specific v4 item
|
||||||
|
workflow convert-legacy --input /path/to/legacy-agent.md
|
||||||
|
```
|
||||||
|
|
||||||
|
### With Legacy Module
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Convert an entire v4 module structure
|
||||||
|
workflow convert-legacy --input /path/to/legacy-module/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Configuration
|
||||||
|
|
||||||
|
The workflow uses standard BMB configuration:
|
||||||
|
|
||||||
|
- **output_folder**: Where converted items will be placed
|
||||||
|
- **user_name**: Author information for converted items
|
||||||
|
- **conversion_mappings**: v4-to-v5 pattern mappings (optional)
|
||||||
|
|
||||||
|
## Workflow Structure
|
||||||
|
|
||||||
|
### Files Included
|
||||||
|
|
||||||
|
```
|
||||||
|
convert-legacy/
|
||||||
|
├── workflow.yaml # Configuration and metadata
|
||||||
|
├── instructions.md # Step-by-step conversion guide
|
||||||
|
├── checklist.md # Validation criteria
|
||||||
|
└── README.md # This file
|
||||||
|
```
|
||||||
|
|
||||||
|
## Workflow Process
|
||||||
|
|
||||||
|
### Phase 1: Legacy Analysis (Steps 1-3)
|
||||||
|
|
||||||
|
**Item Identification and Loading**
|
||||||
|
|
||||||
|
- Accepts file path or directory from user
|
||||||
|
- Loads complete file/folder structure for analysis
|
||||||
|
- Automatically detects item type based on content patterns:
|
||||||
|
- **Agents**: Contains `<agent>` or `<prompt>` XML tags
|
||||||
|
- **Workflows**: Contains workflow YAML or instruction patterns
|
||||||
|
- **Modules**: Contains multiple organized agents/workflows
|
||||||
|
- **Tasks**: Contains `<task>` XML tags
|
||||||
|
- **Templates**: Contains YAML-based document generators
|
||||||
|
|
||||||
|
**Legacy Structure Analysis**
|
||||||
|
|
||||||
|
- Parses v4 structure and extracts key components
|
||||||
|
- Maps v4 agent metadata (name, id, title, icon, persona)
|
||||||
|
- Analyzes v4 template sections and elicitation patterns
|
||||||
|
- Identifies task workflows and decision trees
|
||||||
|
- Catalogs dependencies and file references
|
||||||
|
|
||||||
|
**Target Module Selection**
|
||||||
|
|
||||||
|
- Prompts for target module (bmm, bmb, cis, custom)
|
||||||
|
- Determines proper installation paths using v5 conventions
|
||||||
|
- Shows target location for user confirmation
|
||||||
|
- Ensures all paths use `{project-root}/bmad/` format
|
||||||
|
|
||||||
|
### Phase 2: Conversion Strategy (Step 4)
|
||||||
|
|
||||||
|
**Strategy Selection Based on Item Type**
|
||||||
|
|
||||||
|
- **Simple Agents**: Direct XML conversion with metadata mapping
|
||||||
|
- **Complex Agents**: Workflow-assisted creation using create-agent
|
||||||
|
- **Templates**: Template-to-workflow conversion with proper structure
|
||||||
|
- **Tasks**: Task-to-workflow conversion with step mapping
|
||||||
|
- **Modules**: Full module creation using create-module workflow
|
||||||
|
|
||||||
|
**Workflow Type Determination**
|
||||||
|
|
||||||
|
- Analyzes legacy items to determine v5 workflow type:
|
||||||
|
- **Document Workflow**: Generates documents with templates
|
||||||
|
- **Action Workflow**: Performs actions without output documents
|
||||||
|
- **Interactive Workflow**: Guides user interaction sessions
|
||||||
|
- **Meta-Workflow**: Coordinates other workflows
|
||||||
|
|
||||||
|
### Phase 3: Conversion Execution (Steps 5a-5e)
|
||||||
|
|
||||||
|
**Direct Agent Conversion (5a)**
|
||||||
|
|
||||||
|
- Transforms v4 YAML agent format to v5 XML structure
|
||||||
|
- Maps persona blocks (role, style, identity, principles)
|
||||||
|
- Converts commands list to v5 `<cmds>` format
|
||||||
|
- Updates task references to workflow invocations
|
||||||
|
- Normalizes all paths to v5 conventions
|
||||||
|
|
||||||
|
**Workflow-Assisted Creation (5b-5e)**
|
||||||
|
|
||||||
|
- Extracts key information from legacy items
|
||||||
|
- Invokes appropriate sub-workflows:
|
||||||
|
- `create-agent` for complex agent creation
|
||||||
|
- `create-workflow` for template/task conversion
|
||||||
|
- `create-module` for full module migration
|
||||||
|
- Ensures proper v5 structure and conventions
|
||||||
|
|
||||||
|
**Template-to-Workflow Conversion (5c)**
|
||||||
|
|
||||||
|
- Converts YAML template sections to workflow steps
|
||||||
|
- Maps `elicit: true` flags to `<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>` tags
|
||||||
|
- Transforms conditional sections to flow control
|
||||||
|
- Creates proper template.md from content structure
|
||||||
|
- Integrates v4 create-doc.md task patterns
|
||||||
|
|
||||||
|
**Task-to-Workflow Conversion (5e)**
|
||||||
|
|
||||||
|
- Analyzes task purpose to determine workflow type
|
||||||
|
- Extracts step-by-step instructions to workflow steps
|
||||||
|
- Converts decision trees to flow control tags
|
||||||
|
- Maps 1-9 elicitation menus to v5 elicitation patterns
|
||||||
|
- Preserves execution logic and critical notices
|
||||||
|
|
||||||
|
### Phase 4: Validation and Finalization (Steps 6-8)
|
||||||
|
|
||||||
|
**Comprehensive Validation**
|
||||||
|
|
||||||
|
- Validates XML structure for agents
|
||||||
|
- Checks YAML syntax for workflows
|
||||||
|
- Verifies template variable consistency
|
||||||
|
- Ensures proper file structure and naming
|
||||||
|
|
||||||
|
**Migration Reporting**
|
||||||
|
|
||||||
|
- Generates detailed conversion report
|
||||||
|
- Documents original and new locations
|
||||||
|
- Notes manual adjustments needed
|
||||||
|
- Provides warnings and recommendations
|
||||||
|
|
||||||
|
**Cleanup and Archival**
|
||||||
|
|
||||||
|
- Optional archival of original v4 files
|
||||||
|
- Final location confirmation
|
||||||
|
- Post-conversion instructions and next steps
|
||||||
|
|
||||||
|
## Output
|
||||||
|
|
||||||
|
### Generated Files
|
||||||
|
|
||||||
|
- **Converted Items**: Proper v5 format in target module locations
|
||||||
|
- **Migration Report**: Detailed conversion documentation
|
||||||
|
- **Validation Results**: Quality assurance confirmation
|
||||||
|
|
||||||
|
### Output Structure
|
||||||
|
|
||||||
|
Converted items follow v5 conventions:
|
||||||
|
|
||||||
|
1. **Agents** - XML format with proper persona and command structure
|
||||||
|
2. **Workflows** - Complete workflow folders with yaml, instructions, and templates
|
||||||
|
3. **Modules** - Full module structure with installation infrastructure
|
||||||
|
4. **Documentation** - Updated paths, references, and metadata
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- **Legacy v4 Items** - Source files or directories to convert
|
||||||
|
- **Target Module Access** - Write permissions to target module directories
|
||||||
|
- **Sub-Workflow Availability** - create-agent, create-workflow, create-module workflows accessible
|
||||||
|
- **Conversion Mappings** (optional) - v4-to-v5 pattern mappings for complex conversions
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
### Before Starting
|
||||||
|
|
||||||
|
1. **Backup Legacy Items** - Create copies of original v4 files before conversion
|
||||||
|
2. **Review Target Module** - Understand target module structure and conventions
|
||||||
|
3. **Plan Module Organization** - Decide where converted items should logically fit
|
||||||
|
|
||||||
|
### During Execution
|
||||||
|
|
||||||
|
1. **Validate Item Type Detection** - Confirm automatic detection or correct manually
|
||||||
|
2. **Choose Appropriate Strategy** - Use workflow-assisted creation for complex items
|
||||||
|
3. **Review Path Mappings** - Ensure all references use proper v5 path conventions
|
||||||
|
4. **Test Incrementally** - Convert simple items first to validate process
|
||||||
|
|
||||||
|
### After Completion
|
||||||
|
|
||||||
|
1. **Validate Converted Items** - Test agents and workflows for proper functionality
|
||||||
|
2. **Review Migration Report** - Address any manual adjustments noted
|
||||||
|
3. **Update Documentation** - Ensure README and documentation reflect changes
|
||||||
|
4. **Archive Originals** - Store v4 files safely for reference if needed
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Common Issues
|
||||||
|
|
||||||
|
**Issue**: Item type detection fails or incorrect
|
||||||
|
|
||||||
|
- **Solution**: Manually specify item type when prompted
|
||||||
|
- **Check**: Verify file structure matches expected v4 patterns
|
||||||
|
|
||||||
|
**Issue**: Path conversion errors
|
||||||
|
|
||||||
|
- **Solution**: Ensure all references use `{project-root}/bmad/` format
|
||||||
|
- **Check**: Review conversion mappings for proper path patterns
|
||||||
|
|
||||||
|
**Issue**: Sub-workflow invocation fails
|
||||||
|
|
||||||
|
- **Solution**: Verify build workflows are available and accessible
|
||||||
|
- **Check**: Ensure target module exists and has proper permissions
|
||||||
|
|
||||||
|
**Issue**: XML or YAML syntax errors in output
|
||||||
|
|
||||||
|
- **Solution**: Review conversion mappings and adjust patterns
|
||||||
|
- **Check**: Validate converted files with appropriate parsers
|
||||||
|
|
||||||
|
## Customization
|
||||||
|
|
||||||
|
To customize this workflow:
|
||||||
|
|
||||||
|
1. **Update Conversion Mappings** - Modify v4-to-v5 pattern mappings in data/
|
||||||
|
2. **Extend Detection Logic** - Add new item type detection patterns
|
||||||
|
3. **Add Conversion Strategies** - Implement specialized conversion approaches
|
||||||
|
4. **Enhance Validation** - Add additional quality checks in validation step
|
||||||
|
|
||||||
|
## Version History
|
||||||
|
|
||||||
|
- **v1.0.0** - Initial release
|
||||||
|
- Multi-format v4 item detection and conversion
|
||||||
|
- Integration with create-agent, create-workflow, create-module
|
||||||
|
- Comprehensive path normalization
|
||||||
|
- Migration reporting and validation
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
For issues or questions:
|
||||||
|
|
||||||
|
- Review the workflow creation guide at `/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md`
|
||||||
|
- Check conversion mappings at `/bmad/bmb/data/v4-to-v5-mappings.yaml`
|
||||||
|
- Validate output using `checklist.md`
|
||||||
|
- Consult BMAD v5 documentation for proper conventions
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_Part of the BMad Method v5 - BMB (Builder) Module_
|
||||||
205
bmad/bmb/workflows/convert-legacy/checklist.md
Normal file
205
bmad/bmb/workflows/convert-legacy/checklist.md
Normal file
@@ -0,0 +1,205 @@
|
|||||||
|
# Convert Legacy - Validation Checklist
|
||||||
|
|
||||||
|
## Pre-Conversion Validation
|
||||||
|
|
||||||
|
### Source Analysis
|
||||||
|
|
||||||
|
- [ ] Original v4 file(s) fully loaded and parsed
|
||||||
|
- [ ] Item type correctly identified (agent/template/task/module)
|
||||||
|
- [ ] All dependencies documented and accounted for
|
||||||
|
- [ ] No critical content overlooked in source files
|
||||||
|
|
||||||
|
## Conversion Completeness
|
||||||
|
|
||||||
|
### For Agent Conversions
|
||||||
|
|
||||||
|
#### Content Preservation
|
||||||
|
|
||||||
|
- [ ] Agent name, id, title, and icon transferred
|
||||||
|
- [ ] All persona elements mapped to v5 structure
|
||||||
|
- [ ] All commands converted to v5 menu array (YAML)
|
||||||
|
- [ ] Dependencies properly referenced or converted
|
||||||
|
- [ ] Activation instructions adapted to v5 patterns
|
||||||
|
|
||||||
|
#### v5 Compliance (YAML Format)
|
||||||
|
|
||||||
|
- [ ] Valid YAML structure with proper indentation
|
||||||
|
- [ ] agent.metadata has all required fields (id, name, title, icon, module)
|
||||||
|
- [ ] agent.persona has all sections (role, identity, communication_style, principles)
|
||||||
|
- [ ] agent.menu uses proper handlers (workflow, action, exec, tmpl, data)
|
||||||
|
- [ ] agent.critical_actions array present when needed
|
||||||
|
- [ ] agent.prompts defined for any action: "#id" references
|
||||||
|
- [ ] File extension is .agent.yaml (will be compiled to .md later)
|
||||||
|
|
||||||
|
#### Best Practices
|
||||||
|
|
||||||
|
- [ ] Commands use appropriate workflow references instead of direct task calls
|
||||||
|
- [ ] File paths use {project-root} variables
|
||||||
|
- [ ] Config values use {config_source}: pattern
|
||||||
|
- [ ] Agent follows naming conventions (kebab-case for files)
|
||||||
|
- [ ] ALL paths reference {project-root}/bmad/{{module}}/ locations, NOT src/
|
||||||
|
- [ ] exec, data, run-workflow commands point to final BMAD installation paths
|
||||||
|
|
||||||
|
### For Template/Workflow Conversions
|
||||||
|
|
||||||
|
#### Content Preservation
|
||||||
|
|
||||||
|
- [ ] Template metadata (name, description, output) transferred
|
||||||
|
- [ ] All sections converted to workflow steps
|
||||||
|
- [ ] Section hierarchy maintained in instructions
|
||||||
|
- [ ] Variables ({{var}}) preserved in template.md
|
||||||
|
- [ ] Elicitation points (elicit: true) converted to <invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
|
||||||
|
- [ ] Conditional sections preserved with if="" attributes
|
||||||
|
- [ ] Repeatable sections converted to repeat="" attributes
|
||||||
|
|
||||||
|
#### v5 Compliance
|
||||||
|
|
||||||
|
- [ ] workflow.yaml follows structure from workflow-creation-guide.md
|
||||||
|
- [ ] instructions.md has critical headers referencing workflow engine
|
||||||
|
- [ ] Steps numbered sequentially with clear goals
|
||||||
|
- [ ] Template variables match between instructions and template.md
|
||||||
|
- [ ] Proper use of XML tags (<action>, <check>, <ask>, <template-output>)
|
||||||
|
- [ ] File structure follows v5 pattern (folder with yaml/md files)
|
||||||
|
|
||||||
|
#### Best Practices
|
||||||
|
|
||||||
|
- [ ] Steps are focused with single goals
|
||||||
|
- [ ] Instructions are specific ("Write 1-2 paragraphs" not "Write about")
|
||||||
|
- [ ] Examples provided where helpful
|
||||||
|
- [ ] Limits set where appropriate ("3-5 items maximum")
|
||||||
|
- [ ] Save checkpoints with <template-output> at logical points
|
||||||
|
- [ ] Variables use descriptive snake_case names
|
||||||
|
|
||||||
|
### For Task Conversions
|
||||||
|
|
||||||
|
#### Content Preservation
|
||||||
|
|
||||||
|
- [ ] Task logic fully captured in workflow instructions
|
||||||
|
- [ ] Execution flow maintained
|
||||||
|
- [ ] User interaction points preserved
|
||||||
|
- [ ] Decision trees converted to workflow logic
|
||||||
|
- [ ] All processing steps accounted for
|
||||||
|
- [ ] Document generation patterns identified and preserved
|
||||||
|
|
||||||
|
#### Type Determination
|
||||||
|
|
||||||
|
- [ ] Workflow type correctly identified (document/action/interactive/meta)
|
||||||
|
- [ ] If generates documents, template.md created
|
||||||
|
- [ ] If performs actions only, marked as action workflow
|
||||||
|
- [ ] Output patterns properly analyzed
|
||||||
|
|
||||||
|
#### v5 Compliance
|
||||||
|
|
||||||
|
- [ ] Converted to proper workflow format (not standalone task)
|
||||||
|
- [ ] Follows workflow execution engine patterns
|
||||||
|
- [ ] Interactive elements use proper v5 tags
|
||||||
|
- [ ] Flow control uses v5 patterns (goto, check, loop)
|
||||||
|
- [ ] 1-9 elicitation menus converted to v5 elicitation
|
||||||
|
- [ ] Critical notices preserved in workflow.yaml
|
||||||
|
- [ ] YOLO mode converted to appropriate v5 patterns
|
||||||
|
|
||||||
|
### Module-Level Validation
|
||||||
|
|
||||||
|
#### Structure
|
||||||
|
|
||||||
|
- [ ] Module follows v5 directory structure
|
||||||
|
- [ ] All components in correct locations:
|
||||||
|
- Agents in /agents/
|
||||||
|
- Workflows in /workflows/
|
||||||
|
- Data files in appropriate locations
|
||||||
|
- [ ] Config files properly formatted
|
||||||
|
|
||||||
|
#### Integration
|
||||||
|
|
||||||
|
- [ ] Cross-references between components work
|
||||||
|
- [ ] Workflow invocations use correct paths
|
||||||
|
- [ ] Data file references are valid
|
||||||
|
- [ ] No broken dependencies
|
||||||
|
|
||||||
|
## Technical Validation
|
||||||
|
|
||||||
|
### Syntax and Format
|
||||||
|
|
||||||
|
- [ ] YAML files have valid syntax (no parsing errors)
|
||||||
|
- [ ] XML structures properly formed and closed
|
||||||
|
- [ ] Markdown files render correctly
|
||||||
|
- [ ] File encoding is UTF-8
|
||||||
|
- [ ] Line endings consistent (LF)
|
||||||
|
|
||||||
|
### Path Resolution
|
||||||
|
|
||||||
|
- [ ] All file paths resolve correctly
|
||||||
|
- [ ] Variable substitutions work ({project-root}, {installed_path}, etc.)
|
||||||
|
- [ ] Config references load properly
|
||||||
|
- [ ] No hardcoded absolute paths (unless intentional)
|
||||||
|
|
||||||
|
## Functional Validation
|
||||||
|
|
||||||
|
### Execution Testing
|
||||||
|
|
||||||
|
- [ ] Converted item can be loaded without errors
|
||||||
|
- [ ] Agents activate properly when invoked
|
||||||
|
- [ ] Workflows execute through completion
|
||||||
|
- [ ] User interaction points function correctly
|
||||||
|
- [ ] Output generation works as expected
|
||||||
|
|
||||||
|
### Behavioral Validation
|
||||||
|
|
||||||
|
- [ ] Converted item behaves similarly to v4 version
|
||||||
|
- [ ] Core functionality preserved
|
||||||
|
- [ ] User experience maintains or improves
|
||||||
|
- [ ] No functionality regression
|
||||||
|
|
||||||
|
## Documentation and Cleanup
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
|
||||||
|
- [ ] Conversion report generated with all changes
|
||||||
|
- [ ] Any manual adjustments documented
|
||||||
|
- [ ] Known limitations or differences noted
|
||||||
|
- [ ] Migration instructions provided if needed
|
||||||
|
|
||||||
|
### Post-Conversion
|
||||||
|
|
||||||
|
- [ ] Original v4 files archived (if requested)
|
||||||
|
- [ ] File permissions set correctly
|
||||||
|
- [ ] Git tracking updated if applicable
|
||||||
|
- [ ] User informed of new locations
|
||||||
|
|
||||||
|
## Final Verification
|
||||||
|
|
||||||
|
### Quality Assurance
|
||||||
|
|
||||||
|
- [ ] Converted item follows ALL v5 best practices
|
||||||
|
- [ ] Code/config is clean and maintainable
|
||||||
|
- [ ] No TODO or FIXME items remain
|
||||||
|
- [ ] Ready for production use
|
||||||
|
|
||||||
|
### User Acceptance
|
||||||
|
|
||||||
|
- [ ] User reviewed conversion output
|
||||||
|
- [ ] User tested basic functionality
|
||||||
|
- [ ] User approved final result
|
||||||
|
- [ ] Any user feedback incorporated
|
||||||
|
|
||||||
|
## Notes Section
|
||||||
|
|
||||||
|
### Conversion Issues Found:
|
||||||
|
|
||||||
|
_List any issues encountered during validation_
|
||||||
|
|
||||||
|
### Manual Interventions Required:
|
||||||
|
|
||||||
|
_Document any manual fixes needed_
|
||||||
|
|
||||||
|
### Recommendations:
|
||||||
|
|
||||||
|
_Suggestions for further improvements or considerations_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Validation Result:** [ ] PASSED / [ ] FAILED
|
||||||
|
|
||||||
|
**Validator:** {{user_name}}
|
||||||
|
**Date:** {{date}}
|
||||||
|
**Items Converted:** {{conversion_summary}}
|
||||||
374
bmad/bmb/workflows/convert-legacy/instructions.md
Normal file
374
bmad/bmb/workflows/convert-legacy/instructions.md
Normal file
@@ -0,0 +1,374 @@
|
|||||||
|
# Convert Legacy - v4 to v5 Conversion Instructions
|
||||||
|
|
||||||
|
<critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical>
|
||||||
|
<parameter name="You MUST have already loaded and processed: {project-root}/bmad/bmb/workflows/convert-legacy/workflow.yaml</critical>
|
||||||
|
<critical>Communicate in {communication_language} throughout the conversion process</critical>
|
||||||
|
|
||||||
|
<workflow>
|
||||||
|
|
||||||
|
<step n="1" goal="Identify and Load Legacy Item">
|
||||||
|
<action>Ask user for the path to the v4 item to convert (agent, workflow, or module)</action>
|
||||||
|
<action>Load the complete file/folder structure</action>
|
||||||
|
<action>Detect item type based on structure and content patterns:</action>
|
||||||
|
- Agent: Contains agent or prompt XML tags, single file
|
||||||
|
- Workflow: Contains workflow YAML or instruction patterns, usually folder
|
||||||
|
- Module: Contains multiple agents/workflows in organized structure
|
||||||
|
- Task: Contains task XML tags
|
||||||
|
<ask>Confirm detected type or allow user to correct: "Detected as [type]. Is this correct? (y/n)"</ask>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2" goal="Analyze Legacy Structure">
|
||||||
|
<action>Parse the v4 structure and extract key components:</action>
|
||||||
|
|
||||||
|
For v4 Agents (YAML-based in markdown):
|
||||||
|
|
||||||
|
- Agent metadata (name, id, title, icon, whenToUse)
|
||||||
|
- Persona block (role, style, identity, focus, core_principles)
|
||||||
|
- Commands list with task/template references
|
||||||
|
- Dependencies (tasks, templates, checklists, data files)
|
||||||
|
- Activation instructions and workflow rules
|
||||||
|
- IDE file resolution patterns
|
||||||
|
|
||||||
|
For v4 Templates (YAML-based document generators):
|
||||||
|
|
||||||
|
- Template metadata (id, name, version, output)
|
||||||
|
- Workflow mode and elicitation settings
|
||||||
|
- Sections hierarchy with:
|
||||||
|
- Instructions for content generation
|
||||||
|
- Elicit flags for user interaction
|
||||||
|
- Templates with {{variables}}
|
||||||
|
- Conditional sections
|
||||||
|
- Repeatable sections
|
||||||
|
|
||||||
|
For v4 Tasks (Markdown with execution instructions):
|
||||||
|
|
||||||
|
- Critical execution notices
|
||||||
|
- Step-by-step workflows
|
||||||
|
- Elicitation requirements (1-9 menu format)
|
||||||
|
- Processing flows and decision trees
|
||||||
|
- Agent permission rules
|
||||||
|
|
||||||
|
For Modules:
|
||||||
|
|
||||||
|
- Module metadata
|
||||||
|
- Component list (agents, workflows, tasks)
|
||||||
|
- Dependencies
|
||||||
|
- Installation requirements
|
||||||
|
|
||||||
|
<action>Create a conversion map of what needs to be transformed</action>
|
||||||
|
<action>Map v4 patterns to v5 equivalents:
|
||||||
|
|
||||||
|
- v4 Task + Template → v5 Workflow (folder with workflow.yaml, instructions.md, template.md)
|
||||||
|
- v4 Agent YAML → v5 Agent YAML format
|
||||||
|
- v4 Commands → v5 <menu> with proper handlers
|
||||||
|
- v4 Dependencies → v5 workflow references or data files
|
||||||
|
</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="3" goal="Determine Target Module and Location">
|
||||||
|
<ask>Which module should this belong to? (eg. bmm, bmb, cis, bmm-legacy, or custom)</ask>
|
||||||
|
<check>If custom module:</check>
|
||||||
|
<ask>Enter custom module code (kebab-case):</ask>
|
||||||
|
<action>Determine installation path based on type and module</action>
|
||||||
|
<critical>IMPORTANT: All paths must use final BMAD installation locations, not src paths!</critical>
|
||||||
|
<action>Show user the target location: {project-root}/bmad/{{target_module}}/{{item_type}}/{{item_name}}</action>
|
||||||
|
<action>Note: Files will be created in bmad/ but all internal paths will reference {project-root}/bmad/ locations</action>
|
||||||
|
<ask>Proceed with this location? (y/n)</ask>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="4" goal="Choose Conversion Strategy">
|
||||||
|
<action>Based on item type and complexity, choose approach:</action>
|
||||||
|
|
||||||
|
<check>If agent conversion:</check>
|
||||||
|
<check>If simple agent (basic persona + commands):</check>
|
||||||
|
<action>Use direct conversion to v5 agent YAML format</action>
|
||||||
|
<goto step="5a">Direct Agent Conversion</goto>
|
||||||
|
<check>If complex agent with embedded workflows:</check>
|
||||||
|
<action>Plan to invoke create-agent workflow</action>
|
||||||
|
<goto step="5b">Workflow-Assisted Agent Creation</goto>
|
||||||
|
|
||||||
|
<check>If template or task conversion to workflow:</check>
|
||||||
|
<action>Analyze the v4 item to determine workflow type:</action>
|
||||||
|
|
||||||
|
- Does it generate a specific document type? → Document workflow
|
||||||
|
- Does it produce structured output files? → Document workflow
|
||||||
|
- Does it perform actions without output? → Action workflow
|
||||||
|
- Does it coordinate other tasks? → Meta-workflow
|
||||||
|
- Does it guide user interaction? → Interactive workflow
|
||||||
|
|
||||||
|
<ask>Based on analysis, this appears to be a {{detected_workflow_type}} workflow. Confirm or correct:
|
||||||
|
|
||||||
|
1. Document workflow (generates documents with template)
|
||||||
|
2. Action workflow (performs actions, no template)
|
||||||
|
3. Interactive workflow (guided session)
|
||||||
|
4. Meta-workflow (coordinates other workflows)
|
||||||
|
Select 1-4:</ask>
|
||||||
|
|
||||||
|
<check>If template conversion:</check>
|
||||||
|
<goto step="5c">Template-to-Workflow Conversion</goto>
|
||||||
|
<check>If task conversion:</check>
|
||||||
|
<goto step="5e">Task-to-Workflow Conversion</goto>
|
||||||
|
|
||||||
|
<check>If full module conversion:</check>
|
||||||
|
<action>Plan to invoke create-module workflow</action>
|
||||||
|
<goto step="5d">Module Creation</goto>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="5a" goal="Direct Agent Conversion" optional="true">
|
||||||
|
<action>Transform v4 YAML agent to v5 YAML format:</action>
|
||||||
|
|
||||||
|
1. Convert agent metadata structure:
|
||||||
|
- v4 `agent.name` → v5 `agent.metadata.name`
|
||||||
|
- v4 `agent.id` → v5 `agent.metadata.id`
|
||||||
|
- v4 `agent.title` → v5 `agent.metadata.title`
|
||||||
|
- v4 `agent.icon` → v5 `agent.metadata.icon`
|
||||||
|
- Add v5 `agent.metadata.module` field
|
||||||
|
|
||||||
|
2. Transform persona structure:
|
||||||
|
- v4 `persona.role` → v5 `agent.persona.role` (keep as YAML string)
|
||||||
|
- v4 `persona.style` → v5 `agent.persona.communication_style`
|
||||||
|
- v4 `persona.identity` → v5 `agent.persona.identity`
|
||||||
|
- v4 `persona.core_principles` → v5 `agent.persona.principles` (as array)
|
||||||
|
|
||||||
|
3. Convert commands to menu:
|
||||||
|
- v4 `commands:` list → v5 `agent.menu:` array
|
||||||
|
- Each command becomes menu item with:
|
||||||
|
- `trigger:` (without \* prefix - added at build)
|
||||||
|
- `description:`
|
||||||
|
- Handler attributes (`workflow:`, `exec:`, `action:`, etc.)
|
||||||
|
- Map task references to workflow paths
|
||||||
|
- Map template references to workflow invocations
|
||||||
|
|
||||||
|
4. Add v5-specific sections (in YAML):
|
||||||
|
- `agent.prompts:` array for inline prompts (if using action: "#id")
|
||||||
|
- `agent.critical_actions:` array for startup requirements
|
||||||
|
- `agent.activation_rules:` for universal agent rules
|
||||||
|
|
||||||
|
5. Handle dependencies and paths:
|
||||||
|
- Convert task dependencies to workflow references
|
||||||
|
- Map template dependencies to v5 workflows
|
||||||
|
- Preserve checklist and data file references
|
||||||
|
- CRITICAL: All paths must use {project-root}/bmad/{{module}}/ NOT src/
|
||||||
|
|
||||||
|
<action>Generate the converted v5 agent YAML file (.agent.yaml)</action>
|
||||||
|
<action>Example path conversions:
|
||||||
|
|
||||||
|
- exec="{project-root}/bmad/{{target_module}}/tasks/task-name.md"
|
||||||
|
- run-workflow="{project-root}/bmad/{{target_module}}/workflows/workflow-name/workflow.yaml"
|
||||||
|
- data="{project-root}/bmad/{{target_module}}/data/data-file.yaml"
|
||||||
|
</action>
|
||||||
|
<action>Save to: bmad/{{target_module}}/agents/{{agent_name}}.agent.yaml (physical location)</action>
|
||||||
|
<action>Note: The build process will later compile this to .md with XML format</action>
|
||||||
|
<goto step="6">Continue to Validation</goto>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="5b" goal="Workflow-Assisted Agent Creation" optional="true">
|
||||||
|
<action>Extract key information from v4 agent:</action>
|
||||||
|
- Name and purpose
|
||||||
|
- Commands and functionality
|
||||||
|
- Persona traits
|
||||||
|
- Any special behaviors
|
||||||
|
|
||||||
|
<invoke-workflow>
|
||||||
|
workflow: {project-root}/bmad/bmb/workflows/create-agent/workflow.yaml
|
||||||
|
inputs:
|
||||||
|
- agent_name: {{extracted_name}}
|
||||||
|
- agent_purpose: {{extracted_purpose}}
|
||||||
|
- commands: {{extracted_commands}}
|
||||||
|
- persona: {{extracted_persona}}
|
||||||
|
</invoke-workflow>
|
||||||
|
|
||||||
|
<goto step="6">Continue to Validation</goto>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="5c" goal="Template-to-Workflow Conversion" optional="true">
|
||||||
|
<action>Convert v4 Template (YAML) to v5 Workflow:</action>
|
||||||
|
|
||||||
|
1. Extract template metadata:
|
||||||
|
- Template id, name, version → workflow.yaml name/description
|
||||||
|
- Output settings → default_output_file
|
||||||
|
- Workflow mode (interactive/yolo) → workflow settings
|
||||||
|
|
||||||
|
2. Convert template sections to instructions.md:
|
||||||
|
- Each YAML section → workflow step
|
||||||
|
- `elicit: true` → `<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>` tag
|
||||||
|
- Conditional sections → `if="condition"` attribute
|
||||||
|
- Repeatable sections → `repeat="for-each"` attribute
|
||||||
|
- Section instructions → step content
|
||||||
|
|
||||||
|
3. Extract template structure to template.md:
|
||||||
|
- Section content fields → template structure
|
||||||
|
- {{variables}} → preserve as-is
|
||||||
|
- Nested sections → hierarchical markdown
|
||||||
|
|
||||||
|
4. Handle v4 create-doc.md task integration:
|
||||||
|
- Elicitation methods (1-9 menu) → convert to v5 elicitation
|
||||||
|
- Agent permissions → note in instructions
|
||||||
|
- Processing flow → integrate into workflow steps
|
||||||
|
|
||||||
|
<critical>When invoking create-workflow, the standard config block will be automatically added:</critical>
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Critical variables from config
|
||||||
|
config_source: '{project-root}/bmad/{{target_module}}/config.yaml'
|
||||||
|
output_folder: '{config_source}:output_folder'
|
||||||
|
user_name: '{config_source}:user_name'
|
||||||
|
communication_language: '{config_source}:communication_language'
|
||||||
|
date: system-generated
|
||||||
|
```
|
||||||
|
|
||||||
|
<invoke-workflow>
|
||||||
|
workflow: {project-root}/bmad/bmb/workflows/create-workflow/workflow.yaml
|
||||||
|
inputs:
|
||||||
|
- workflow_name: {{template_name}}
|
||||||
|
- workflow_type: document
|
||||||
|
- template_structure: {{extracted_template}}
|
||||||
|
- instructions: {{converted_sections}}
|
||||||
|
</invoke-workflow>
|
||||||
|
|
||||||
|
<action>Verify the created workflow.yaml includes standard config block</action>
|
||||||
|
<action>Update converted instructions to use config variables where appropriate</action>
|
||||||
|
|
||||||
|
<goto step="6">Continue to Validation</goto>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="5d" goal="Module Creation" optional="true">
|
||||||
|
<action>Analyze module structure and components</action>
|
||||||
|
<action>Create module blueprint with all components</action>
|
||||||
|
|
||||||
|
<invoke-workflow>
|
||||||
|
workflow: {project-root}/bmad/bmb/workflows/create-module/workflow.yaml
|
||||||
|
inputs:
|
||||||
|
- module_name: {{module_name}}
|
||||||
|
- components: {{component_list}}
|
||||||
|
</invoke-workflow>
|
||||||
|
|
||||||
|
<goto step="6">Continue to Validation</goto>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="5e" goal="Task-to-Workflow Conversion" optional="true">
|
||||||
|
<action>Convert v4 Task (Markdown) to v5 Workflow:</action>
|
||||||
|
|
||||||
|
1. Analyze task purpose and output:
|
||||||
|
- Does it generate documents? → Create template.md
|
||||||
|
- Does it process data? → Action workflow
|
||||||
|
- Does it guide user interaction? → Interactive workflow
|
||||||
|
- Check for file outputs, templates, or document generation
|
||||||
|
|
||||||
|
2. Extract task components:
|
||||||
|
- Execution notices and critical rules → workflow.yaml metadata
|
||||||
|
- Step-by-step instructions → instructions.md steps
|
||||||
|
- Decision trees and branching → flow control tags
|
||||||
|
- User interaction patterns → appropriate v5 tags
|
||||||
|
|
||||||
|
3. Based on confirmed workflow type:
|
||||||
|
<check>If Document workflow:</check>
|
||||||
|
- Create template.md from output patterns
|
||||||
|
- Map generation steps to instructions
|
||||||
|
- Add <template-output> tags for sections
|
||||||
|
|
||||||
|
<check>If Action workflow:</check>
|
||||||
|
- Set template: false in workflow.yaml
|
||||||
|
- Focus on action sequences in instructions
|
||||||
|
- Preserve execution logic
|
||||||
|
|
||||||
|
4. Handle special v4 patterns:
|
||||||
|
- 1-9 elicitation menus → v5 <invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
|
||||||
|
- Agent permissions → note in instructions
|
||||||
|
- YOLO mode → autonomous flag or optional steps
|
||||||
|
- Critical notices → workflow.yaml comments
|
||||||
|
|
||||||
|
<critical>When invoking create-workflow, the standard config block will be automatically added:</critical>
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Critical variables from config
|
||||||
|
config_source: '{project-root}/bmad/{{target_module}}/config.yaml'
|
||||||
|
output_folder: '{config_source}:output_folder'
|
||||||
|
user_name: '{config_source}:user_name'
|
||||||
|
communication_language: '{config_source}:communication_language'
|
||||||
|
date: system-generated
|
||||||
|
```
|
||||||
|
|
||||||
|
<invoke-workflow>
|
||||||
|
workflow: {project-root}/bmad/bmb/workflows/create-workflow/workflow.yaml
|
||||||
|
inputs:
|
||||||
|
- workflow_name: {{task_name}}
|
||||||
|
- workflow_type: {{confirmed_workflow_type}}
|
||||||
|
- instructions: {{extracted_task_logic}}
|
||||||
|
- template: {{generated_template_if_document}}
|
||||||
|
</invoke-workflow>
|
||||||
|
|
||||||
|
<action>Verify the created workflow.yaml includes standard config block</action>
|
||||||
|
<action>Update converted instructions to use config variables where appropriate</action>
|
||||||
|
|
||||||
|
<goto step="6">Continue to Validation</goto>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="6" goal="Validate Conversion">
|
||||||
|
<action>Run validation checks on converted item:</action>
|
||||||
|
|
||||||
|
For Agents:
|
||||||
|
|
||||||
|
- [ ] Valid YAML structure (.agent.yaml)
|
||||||
|
- [ ] All required sections present (metadata, persona, menu)
|
||||||
|
- [ ] Menu items properly formatted (trigger, description, handlers)
|
||||||
|
- [ ] Paths use {project-root} variables
|
||||||
|
|
||||||
|
For Workflows:
|
||||||
|
|
||||||
|
- [ ] Valid YAML syntax
|
||||||
|
- [ ] Instructions follow v5 conventions
|
||||||
|
- [ ] Template variables match
|
||||||
|
- [ ] File structure correct
|
||||||
|
|
||||||
|
**Standard Config Validation (Workflows):**
|
||||||
|
|
||||||
|
- [ ] workflow.yaml contains standard config block:
|
||||||
|
- config_source defined
|
||||||
|
- output_folder, user_name, communication_language pulled from config
|
||||||
|
- date set to system-generated
|
||||||
|
- [ ] Converted instructions use config variables where appropriate
|
||||||
|
- [ ] Template includes config variables in metadata (if document workflow)
|
||||||
|
- [ ] No hardcoded paths that should use {output_folder}
|
||||||
|
- [ ] No generic greetings that should use {user_name}
|
||||||
|
|
||||||
|
For Modules:
|
||||||
|
|
||||||
|
- [ ] All components converted
|
||||||
|
- [ ] Proper folder structure
|
||||||
|
- [ ] Config files valid
|
||||||
|
- [ ] Installation ready
|
||||||
|
|
||||||
|
<action>Show validation results to user</action>
|
||||||
|
<ask>Any issues to fix before finalizing? (y/n)</ask>
|
||||||
|
<check>If yes:</check>
|
||||||
|
<action>Address specific issues</action>
|
||||||
|
<goto step="6">Re-validate</goto>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="7" goal="Migration Report">
|
||||||
|
<action>Generate conversion report showing:</action>
|
||||||
|
- Original v4 location
|
||||||
|
- New v5 location
|
||||||
|
- Items converted
|
||||||
|
- Any manual adjustments needed
|
||||||
|
- Warnings or notes
|
||||||
|
|
||||||
|
<action>Save report to: {output_folder}/conversion-report-{{date}}.md</action>
|
||||||
|
<action>Inform {user_name} in {communication_language} that the conversion report has been generated</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="8" goal="Cleanup and Finalize">
|
||||||
|
<ask>Archive original v4 files? (y/n)</ask>
|
||||||
|
<check>If yes:</check>
|
||||||
|
<action>Move v4 files to: {project-root}/archive/v4-legacy/{{date}}/</action>
|
||||||
|
|
||||||
|
<action>Show user the final converted items and their locations</action>
|
||||||
|
<action>Provide any post-conversion instructions or recommendations</action>
|
||||||
|
|
||||||
|
<ask>Would you like to convert another legacy item? (y/n)</ask>
|
||||||
|
<check>If yes:</check>
|
||||||
|
<goto step="1">Start new conversion</goto>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
</workflow>
|
||||||
30
bmad/bmb/workflows/convert-legacy/workflow.yaml
Normal file
30
bmad/bmb/workflows/convert-legacy/workflow.yaml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# Convert Legacy - BMAD v4 to v5 Converter Configuration
|
||||||
|
name: "convert-legacy"
|
||||||
|
description: "Converts legacy BMAD v4 or similar items (agents, workflows, modules) to BMad Core compliant format with proper structure and conventions"
|
||||||
|
author: "BMad"
|
||||||
|
|
||||||
|
# Critical variables load from config_source
|
||||||
|
config_source: "{project-root}/bmad/bmb/config.yaml"
|
||||||
|
output_folder: "{config_source}:output_folder"
|
||||||
|
user_name: "{config_source}:user_name"
|
||||||
|
communication_language: "{config_source}:communication_language"
|
||||||
|
date: system-generated
|
||||||
|
|
||||||
|
# Optional docs that can be provided as input
|
||||||
|
recommended_inputs:
|
||||||
|
- legacy_file: "Path to v4 agent, workflow, or module to convert"
|
||||||
|
|
||||||
|
# Module path and component files
|
||||||
|
installed_path: "{project-root}/bmad/bmb/workflows/convert-legacy"
|
||||||
|
template: false # This is an action/meta workflow - no template needed
|
||||||
|
instructions: "{installed_path}/instructions.md"
|
||||||
|
validation: "{installed_path}/checklist.md"
|
||||||
|
|
||||||
|
# Output configuration - Creates converted items in appropriate module locations
|
||||||
|
default_output_folder: "{project-root}/bmad/{{target_module}}/{{item_type}}/{{item_name}}"
|
||||||
|
|
||||||
|
# Sub-workflows that may be invoked for conversion
|
||||||
|
sub_workflows:
|
||||||
|
- create_agent: "{project-root}/bmad/bmb/workflows/create-agent/workflow.yaml"
|
||||||
|
- create_workflow: "{project-root}/bmad/bmb/workflows/create-workflow/workflow.yaml"
|
||||||
|
- create_module: "{project-root}/bmad/bmb/workflows/create-module/workflow.yaml"
|
||||||
320
bmad/bmb/workflows/create-agent/README.md
Normal file
320
bmad/bmb/workflows/create-agent/README.md
Normal file
@@ -0,0 +1,320 @@
|
|||||||
|
# Build Agent
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The Build Agent workflow is an interactive agent builder that guides you through creating BMAD Core compliant agents as YAML source files that compile to final `.md` during install. It supports three agent types: Simple (self-contained), Expert (with sidecar resources), and Module (full-featured with workflows).
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- **Optional Brainstorming**: Creative ideation session before agent building to explore concepts and personalities
|
||||||
|
- **Three Agent Types**: Simple, Expert, and Module agents with appropriate structures
|
||||||
|
- **Persona Development**: Guided creation of role, identity, communication style, and principles
|
||||||
|
- **Command Builder**: Interactive command definition with workflow/task/action patterns
|
||||||
|
- **Validation Built-In**: Ensures YAML structure and BMAD Core compliance
|
||||||
|
- **Customize Support**: Optional `customize.yaml` for persona/menu overrides and critical actions
|
||||||
|
- **Sidecar Resources**: Setup for Expert agents with domain-specific data
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Basic Invocation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
workflow create-agent
|
||||||
|
```
|
||||||
|
|
||||||
|
### Through BMad Builder Agent
|
||||||
|
|
||||||
|
```
|
||||||
|
*create-agent
|
||||||
|
```
|
||||||
|
|
||||||
|
### With Brainstorming Session
|
||||||
|
|
||||||
|
The workflow includes an optional brainstorming phase (Step -1) that helps you explore agent concepts, personalities, and capabilities before building. This is particularly useful when you have a vague idea and want to develop it into a concrete agent concept.
|
||||||
|
|
||||||
|
### What You'll Be Asked
|
||||||
|
|
||||||
|
0. **Optional brainstorming** (vague idea → refined concept)
|
||||||
|
1. Agent type (Simple, Expert, or Module)
|
||||||
|
2. Basic identity (name, title, icon, filename)
|
||||||
|
3. Module assignment (for Module agents)
|
||||||
|
4. Sidecar resources (for Expert agents)
|
||||||
|
5. Persona elements (role, identity, style, principles)
|
||||||
|
6. Commands and their implementations
|
||||||
|
7. Critical actions (optional)
|
||||||
|
8. Activation rules (optional, rarely needed)
|
||||||
|
|
||||||
|
## Workflow Structure
|
||||||
|
|
||||||
|
### Files Included
|
||||||
|
|
||||||
|
```
|
||||||
|
create-agent/
|
||||||
|
├── workflow.yaml # Configuration
|
||||||
|
├── instructions.md # Step-by-step guide
|
||||||
|
├── checklist.md # Validation criteria
|
||||||
|
├── README.md # This file
|
||||||
|
├── agent-types.md # Agent type documentation
|
||||||
|
├── agent-architecture.md # Architecture patterns
|
||||||
|
├── agent-command-patterns.md # Command patterns reference
|
||||||
|
└── communication-styles.md # Style examples
|
||||||
|
```
|
||||||
|
|
||||||
|
## Workflow Process
|
||||||
|
|
||||||
|
### Phase 0: Optional Brainstorming (Step -1)
|
||||||
|
|
||||||
|
- Creative ideation session using diverse brainstorming techniques
|
||||||
|
- Explore agent concepts, personalities, and capabilities
|
||||||
|
- Generate character ideas, expertise areas, and command concepts
|
||||||
|
- Output feeds directly into agent identity and persona development
|
||||||
|
|
||||||
|
### Phase 1: Agent Setup (Steps 0-2)
|
||||||
|
|
||||||
|
- Load agent building documentation and patterns
|
||||||
|
- Choose agent type (Simple/Expert/Module)
|
||||||
|
- Define basic identity (name, title, icon, filename) - informed by brainstorming if completed
|
||||||
|
- Assign to module (for Module agents)
|
||||||
|
|
||||||
|
### Phase 2: Persona Development (Steps 2-3)
|
||||||
|
|
||||||
|
- Define role and responsibilities - leveraging brainstorming insights if available
|
||||||
|
- Craft unique identity and backstory
|
||||||
|
- Select communication style - can use brainstormed personality concepts
|
||||||
|
- Establish guiding principles
|
||||||
|
- Add critical actions (optional)
|
||||||
|
|
||||||
|
### Phase 3: Command Building (Step 4)
|
||||||
|
|
||||||
|
- Add *help and *exit commands (required)
|
||||||
|
- Define workflow commands (most common)
|
||||||
|
- Add task commands (for single operations)
|
||||||
|
- Create action commands (inline logic)
|
||||||
|
- Configure command attributes
|
||||||
|
|
||||||
|
### Phase 4: Finalization (Steps 5-10)
|
||||||
|
|
||||||
|
- Confirm activation behavior (mostly automatic)
|
||||||
|
- Generate `.agent.yaml` file
|
||||||
|
- Optionally create a customize file for overrides
|
||||||
|
- Setup sidecar resources (for Expert agents)
|
||||||
|
- Validate YAML and compile to `.md`
|
||||||
|
- Provide usage instructions
|
||||||
|
|
||||||
|
## Output
|
||||||
|
|
||||||
|
### Generated Files
|
||||||
|
|
||||||
|
#### For Standalone Agents (not part of a module)
|
||||||
|
|
||||||
|
- **YAML Source**: `{custom_agent_location}/{{agent_filename}}.agent.yaml` (default: `bmad/agents/`)
|
||||||
|
- **Installation Location**: `{project-root}/bmad/agents/{{agent_filename}}.md`
|
||||||
|
- **Compilation**: Run the BMAD Method installer and select "Compile Agents (Quick rebuild of all agent .md files)"
|
||||||
|
|
||||||
|
#### For Module Agents
|
||||||
|
|
||||||
|
- **YAML Source**: `src/modules/{{target_module}}/agents/{{agent_filename}}.agent.yaml`
|
||||||
|
- **Installation Location**: `{project-root}/bmad/{{module}}/agents/{{agent_filename}}.md`
|
||||||
|
- **Compilation**: Automatic during module installation
|
||||||
|
|
||||||
|
### YAML Agent Structure (simplified)
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
agent:
|
||||||
|
metadata:
|
||||||
|
id: bmad/{{module}}/agents/{{agent_filename}}.md
|
||||||
|
name: { { agent_name } }
|
||||||
|
title: { { agent_title } }
|
||||||
|
icon: { { agent_icon } }
|
||||||
|
module: { { module } }
|
||||||
|
persona:
|
||||||
|
role: '...'
|
||||||
|
identity: '...'
|
||||||
|
communication_style: '...'
|
||||||
|
principles: ['...', '...']
|
||||||
|
menu:
|
||||||
|
- trigger: example
|
||||||
|
workflow: '{project-root}/path/to/workflow.yaml'
|
||||||
|
description: Do the thing
|
||||||
|
```
|
||||||
|
|
||||||
|
### Optional Customize File
|
||||||
|
|
||||||
|
If created, generates at:
|
||||||
|
`{project-root}/bmad/_cfg/agents/{{module}}-{{agent_filename}}.customize.yaml`
|
||||||
|
|
||||||
|
## Installation and Compilation
|
||||||
|
|
||||||
|
### Agent Installation Locations
|
||||||
|
|
||||||
|
Agents are installed to different locations based on their type:
|
||||||
|
|
||||||
|
1. **Standalone Agents** (not part of a module)
|
||||||
|
- Source: Created in your custom agent location (default: `bmad/agents/`)
|
||||||
|
- Installed to: `{project-root}/bmad/agents/`
|
||||||
|
- Compilation: Run BMAD Method installer and select "Compile Agents"
|
||||||
|
|
||||||
|
2. **Module Agents** (part of BMM, BMB, or custom modules)
|
||||||
|
- Source: Created in `src/modules/{module}/agents/`
|
||||||
|
- Installed to: `{project-root}/bmad/{module}/agents/`
|
||||||
|
- Compilation: Automatic during module installation
|
||||||
|
|
||||||
|
### Compilation Process
|
||||||
|
|
||||||
|
The installer compiles YAML agent definitions to Markdown:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# For standalone agents
|
||||||
|
npm run build:agents
|
||||||
|
|
||||||
|
# For all BMad components (includes agents)
|
||||||
|
npm run install:bmad
|
||||||
|
|
||||||
|
# Using the installer menu
|
||||||
|
npm run installer
|
||||||
|
# Then select: Compile Agents
|
||||||
|
```
|
||||||
|
|
||||||
|
### Build Commands
|
||||||
|
|
||||||
|
Additional build commands for agent management:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Build specific agent types
|
||||||
|
npx bmad-method build:agents # Build standalone agents
|
||||||
|
npx bmad-method build:modules # Build module agents (with modules)
|
||||||
|
|
||||||
|
# Full rebuild
|
||||||
|
npx bmad-method build:all # Rebuild everything
|
||||||
|
```
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- BMAD Core v6 project structure
|
||||||
|
- Module to host the agent (for Module agents)
|
||||||
|
- Understanding of agent purpose and commands
|
||||||
|
- Workflows/tasks to reference in commands (or mark as "todo")
|
||||||
|
|
||||||
|
## Brainstorming Integration
|
||||||
|
|
||||||
|
The optional brainstorming phase (Step -1) provides a seamless path from vague idea to concrete agent concept:
|
||||||
|
|
||||||
|
### When to Use Brainstorming
|
||||||
|
|
||||||
|
- **Vague concept**: "I want an agent that helps with data stuff"
|
||||||
|
- **Creative exploration**: Want to discover unique personality and approach
|
||||||
|
- **Team building**: Creating agents for a module with specific roles
|
||||||
|
- **Character development**: Need to flesh out agent personality and voice
|
||||||
|
|
||||||
|
### Brainstorming Flow
|
||||||
|
|
||||||
|
1. **Step -1**: Optional brainstorming session
|
||||||
|
- Uses CIS brainstorming workflow with agent-specific context
|
||||||
|
- Explores identity, personality, expertise, and command concepts
|
||||||
|
- Generates detailed character and capability ideas
|
||||||
|
|
||||||
|
2. **Steps 0-2**: Agent setup informed by brainstorming
|
||||||
|
- Brainstorming output guides agent type selection
|
||||||
|
- Character concepts inform basic identity choices
|
||||||
|
- Personality insights shape persona development
|
||||||
|
|
||||||
|
3. **Seamless transition**: Vague idea → brainstormed concept → built agent
|
||||||
|
|
||||||
|
### Key Principle
|
||||||
|
|
||||||
|
Users can go from **vague idea → brainstormed concept → built agent** in one continuous flow, with brainstorming output directly feeding into agent development.
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
### Before Starting
|
||||||
|
|
||||||
|
1. Review example agents in `/bmad/bmm/agents/` for patterns
|
||||||
|
2. Consider using brainstorming if you have a vague concept to develop
|
||||||
|
3. Have a clear vision of the agent's role and personality (or use brainstorming to develop it)
|
||||||
|
4. List the commands/capabilities the agent will need
|
||||||
|
5. Identify any workflows or tasks the agent will invoke
|
||||||
|
|
||||||
|
### During Execution
|
||||||
|
|
||||||
|
1. **Agent Names**: Use memorable names that reflect personality
|
||||||
|
2. **Icons**: Choose an emoji that represents the agent's role
|
||||||
|
3. **Persona**: Make it distinct and consistent with communication style
|
||||||
|
4. **Commands**: Use kebab-case, start custom commands with letter (not \*)
|
||||||
|
5. **Workflows**: Reference existing workflows or mark as "todo" to implement later
|
||||||
|
|
||||||
|
### After Completion
|
||||||
|
|
||||||
|
1. **Compile the agent**:
|
||||||
|
- For standalone agents: Run `npm run build:agents` or use the installer menu
|
||||||
|
- For module agents: Automatic during module installation
|
||||||
|
2. **Test the agent**: Use the compiled `.md` agent in your IDE
|
||||||
|
3. **Implement placeholders**: Complete any "todo" workflows referenced
|
||||||
|
4. **Refine as needed**: Use customize file for persona adjustments
|
||||||
|
5. **Evolve over time**: Add new commands as requirements emerge
|
||||||
|
|
||||||
|
## Agent Types
|
||||||
|
|
||||||
|
### Simple Agent
|
||||||
|
|
||||||
|
- **Best For**: Self-contained utilities, simple assistants
|
||||||
|
- **Characteristics**: Embedded logic, no external dependencies
|
||||||
|
- **Example**: Calculator agent, random picker, simple formatter
|
||||||
|
|
||||||
|
### Expert Agent
|
||||||
|
|
||||||
|
- **Best For**: Domain-specific agents with data/memory
|
||||||
|
- **Characteristics**: Sidecar folders, domain restrictions, memory files
|
||||||
|
- **Example**: Diary keeper, project journal, personal knowledge base
|
||||||
|
|
||||||
|
### Module Agent
|
||||||
|
|
||||||
|
- **Best For**: Full-featured agents with workflows
|
||||||
|
- **Characteristics**: Part of module, commands invoke workflows
|
||||||
|
- **Example**: Product manager, architect, research assistant
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Issue: Agent won't load
|
||||||
|
|
||||||
|
- **Solution**: Validate XML structure is correct
|
||||||
|
- **Check**: Ensure all required tags present (persona, cmds)
|
||||||
|
|
||||||
|
### Issue: Commands don't work
|
||||||
|
|
||||||
|
- **Solution**: Verify workflow paths are correct or marked "todo"
|
||||||
|
- **Check**: Test workflow invocation separately first
|
||||||
|
|
||||||
|
### Issue: Persona feels generic
|
||||||
|
|
||||||
|
- **Solution**: Review communication styles guide
|
||||||
|
- **Check**: Make identity unique and specific to role
|
||||||
|
|
||||||
|
## Customization
|
||||||
|
|
||||||
|
To modify agent building process:
|
||||||
|
|
||||||
|
1. Edit `instructions.md` to change steps
|
||||||
|
2. Update `agent-types.md` to add new agent patterns
|
||||||
|
3. Modify `agent-command-patterns.md` for new command types
|
||||||
|
4. Edit `communication-styles.md` to add personality examples
|
||||||
|
|
||||||
|
## Version History
|
||||||
|
|
||||||
|
- **v6.0.0** - BMAD Core v6 compatible
|
||||||
|
- Three agent types (Simple/Expert/Module)
|
||||||
|
- Enhanced persona development
|
||||||
|
- Command pattern library
|
||||||
|
- Validation framework
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
For issues or questions:
|
||||||
|
|
||||||
|
- Review example agents in `/bmad/bmm/agents/`
|
||||||
|
- Check agent documentation in this workflow folder
|
||||||
|
- Test with simple agents first, then build complexity
|
||||||
|
- Consult BMAD Method v6 documentation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_Part of the BMad Method v6 - BMB (BMad Builder) Module_
|
||||||
412
bmad/bmb/workflows/create-agent/agent-architecture.md
Normal file
412
bmad/bmb/workflows/create-agent/agent-architecture.md
Normal file
@@ -0,0 +1,412 @@
|
|||||||
|
# BMAD Agent Architecture Reference
|
||||||
|
|
||||||
|
_LLM-Optimized Technical Documentation for Agent Building_
|
||||||
|
|
||||||
|
## Core Agent Structure
|
||||||
|
|
||||||
|
### Minimal Valid Agent
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Powered by BMAD-CORE™ -->
|
||||||
|
|
||||||
|
# Agent Name
|
||||||
|
|
||||||
|
<agent id="path/to/agent.md" name="Name" title="Title" icon="🤖">
|
||||||
|
<persona>
|
||||||
|
<role>My primary function</role>
|
||||||
|
<identity>My background and expertise</identity>
|
||||||
|
<communication_style>How I interact</communication_style>
|
||||||
|
<principles>My core beliefs and methodology</principles>
|
||||||
|
</persona>
|
||||||
|
<menu>
|
||||||
|
<item cmd="*help">Show numbered menu</item>
|
||||||
|
<item cmd="*exit">Exit with confirmation</item>
|
||||||
|
</menu>
|
||||||
|
</agent>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Agent XML Schema
|
||||||
|
|
||||||
|
### Root Element: `<agent>`
|
||||||
|
|
||||||
|
**Required Attributes:**
|
||||||
|
|
||||||
|
- `id` - Unique path identifier (e.g., "bmad/bmm/agents/analyst.md")
|
||||||
|
- `name` - Agent's name (e.g., "Mary", "John", "Helper")
|
||||||
|
- `title` - Professional title (e.g., "Business Analyst", "Security Engineer")
|
||||||
|
- `icon` - Single emoji representing the agent
|
||||||
|
|
||||||
|
### Core Sections
|
||||||
|
|
||||||
|
#### 1. Persona Section (REQUIRED)
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<persona>
|
||||||
|
<role>1-2 sentences: Professional title and primary expertise, use first-person voice</role>
|
||||||
|
<identity>2-5 sentences: Background, experience, specializations, use first-person voice</identity>
|
||||||
|
<communication_style>1-3 sentences: Interaction approach, tone, quirks, use first-person voice</communication_style>
|
||||||
|
<principles>2-5 sentences: Core beliefs, methodology, philosophy, use first-person voice</principles>
|
||||||
|
</persona>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Best Practices:**
|
||||||
|
|
||||||
|
- Role: Be specific about expertise area
|
||||||
|
- Identity: Include experience indicators (years, depth)
|
||||||
|
- Communication: Describe HOW they interact, not just tone and quirks
|
||||||
|
- Principles: Start with "I believe" or "I operate" for first-person voice
|
||||||
|
|
||||||
|
#### 2. Critical Actions Section
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<critical-actions>
|
||||||
|
<i>Load into memory {project-root}/bmad/{module}/config.yaml and set variables</i>
|
||||||
|
<i>Remember the users name is {user_name}</i>
|
||||||
|
<i>ALWAYS communicate in {communication_language}</i>
|
||||||
|
<!-- Custom initialization actions -->
|
||||||
|
</critical-actions>
|
||||||
|
```
|
||||||
|
|
||||||
|
**For Expert Agents with Sidecars (CRITICAL):**
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<critical-actions>
|
||||||
|
<!-- CRITICAL: Load sidecar files FIRST -->
|
||||||
|
<i critical="MANDATORY">Load COMPLETE file {agent-folder}/instructions.md and follow ALL directives</i>
|
||||||
|
<i critical="MANDATORY">Load COMPLETE file {agent-folder}/memories.md into permanent context</i>
|
||||||
|
<i critical="MANDATORY">You MUST follow all rules in instructions.md on EVERY interaction</i>
|
||||||
|
|
||||||
|
<!-- Standard initialization -->
|
||||||
|
<i>Load into memory {project-root}/bmad/{module}/config.yaml and set variables</i>
|
||||||
|
<i>Remember the users name is {user_name}</i>
|
||||||
|
<i>ALWAYS communicate in {communication_language}</i>
|
||||||
|
|
||||||
|
<!-- Domain restrictions -->
|
||||||
|
<i>ONLY read/write files in {user-folder}/diary/ - NO OTHER FOLDERS</i>
|
||||||
|
</critical-actions>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Common Patterns:**
|
||||||
|
|
||||||
|
- Config loading for module agents
|
||||||
|
- User context initialization
|
||||||
|
- Language preferences
|
||||||
|
- **Sidecar file loading (Expert agents) - MUST be explicit and CRITICAL**
|
||||||
|
- **Domain restrictions (Expert agents) - MUST be enforced**
|
||||||
|
|
||||||
|
#### 3. Menu Section (REQUIRED)
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<menu>
|
||||||
|
<item cmd="*trigger" [attributes]>Description</item>
|
||||||
|
</menu>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Command Attributes:**
|
||||||
|
|
||||||
|
- `run-workflow="{path}"` - Executes a workflow
|
||||||
|
- `exec="{path}"` - Executes a task
|
||||||
|
- `tmpl="{path}"` - Template reference
|
||||||
|
- `data="{path}"` - Data file reference
|
||||||
|
|
||||||
|
**Required Menu Items:**
|
||||||
|
|
||||||
|
- `*help` - Always first, shows command list
|
||||||
|
- `*exit` - Always last, exits agent
|
||||||
|
|
||||||
|
## Advanced Agent Patterns
|
||||||
|
|
||||||
|
### Activation Rules (OPTIONAL)
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<activation critical="true">
|
||||||
|
<initialization critical="true" sequential="MANDATORY">
|
||||||
|
<step n="1">Load configuration</step>
|
||||||
|
<step n="2">Apply overrides</step>
|
||||||
|
<step n="3">Execute critical actions</step>
|
||||||
|
<step n="4" critical="BLOCKING">Show greeting with menu</step>
|
||||||
|
<step n="5" critical="BLOCKING">AWAIT user input</step>
|
||||||
|
</initialization>
|
||||||
|
<command-resolution critical="true">
|
||||||
|
<rule>Numeric input → Execute command at cmd_map[n]</rule>
|
||||||
|
<rule>Text input → Fuzzy match against commands</rule>
|
||||||
|
</command-resolution>
|
||||||
|
</activation>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Expert Agent Sidecar Pattern
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- DO NOT use sidecar-resources tag - Instead use critical-actions -->
|
||||||
|
<!-- Sidecar files MUST be loaded explicitly in critical-actions -->
|
||||||
|
|
||||||
|
<!-- Example Expert Agent with Diary domain -->
|
||||||
|
<agent id="diary-keeper" name="Personal Assistant" title="Diary Keeper" icon="📔">
|
||||||
|
<critical-actions>
|
||||||
|
<!-- MANDATORY: Load all sidecar files -->
|
||||||
|
<i critical="MANDATORY">Load COMPLETE file {agent-folder}/diary-rules.md</i>
|
||||||
|
<i critical="MANDATORY">Load COMPLETE file {agent-folder}/user-memories.md</i>
|
||||||
|
<i critical="MANDATORY">Follow ALL rules from diary-rules.md</i>
|
||||||
|
|
||||||
|
<!-- Domain restriction -->
|
||||||
|
<i critical="MANDATORY">ONLY access files in {user-folder}/diary/</i>
|
||||||
|
<i critical="MANDATORY">NEVER access files outside diary folder</i>
|
||||||
|
</critical-actions>
|
||||||
|
|
||||||
|
<persona>...</persona>
|
||||||
|
<menu>...</menu>
|
||||||
|
</agent>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Module Agent Integration
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<module-integration>
|
||||||
|
<module-path>{project-root}/bmad/{module-code}</module-path>
|
||||||
|
<config-source>{module-path}/config.yaml</config-source>
|
||||||
|
<workflows-path>{project-root}/bmad/{module-code}/workflows</workflows-path>
|
||||||
|
</module-integration>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Variable System
|
||||||
|
|
||||||
|
### System Variables
|
||||||
|
|
||||||
|
- `{project-root}` - Root directory of project
|
||||||
|
- `{user_name}` - User's name from config
|
||||||
|
- `{communication_language}` - Language preference
|
||||||
|
- `{date}` - Current date
|
||||||
|
- `{module}` - Current module code
|
||||||
|
|
||||||
|
### Config Variables
|
||||||
|
|
||||||
|
Format: `{config_source}:variable_name`
|
||||||
|
Example: `{config_source}:output_folder`
|
||||||
|
|
||||||
|
### Path Construction
|
||||||
|
|
||||||
|
```
|
||||||
|
Good: {project-root}/bmad/{module}/agents/
|
||||||
|
Bad: /absolute/path/to/agents/
|
||||||
|
Bad: ../../../relative/paths/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Command Patterns
|
||||||
|
|
||||||
|
### Workflow Commands
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Full path -->
|
||||||
|
<item cmd="*create-prd" run-workflow="{project-root}/bmad/bmm/workflows/prd/workflow.yaml">
|
||||||
|
Create Product Requirements Document
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<!-- Placeholder for future -->
|
||||||
|
<item cmd="*analyze" run-workflow="todo">
|
||||||
|
Perform analysis (workflow to be created)
|
||||||
|
</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Task Commands
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<item cmd="*validate" exec="{project-root}/bmad/core/tasks/validate-workflow.xml">
|
||||||
|
Validate document
|
||||||
|
</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Template Commands
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<item cmd="*brief"
|
||||||
|
exec="{project-root}/bmad/core/tasks/create-doc.md"
|
||||||
|
tmpl="{project-root}/bmad/bmm/templates/brief.md">
|
||||||
|
Create project brief
|
||||||
|
</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Data-Driven Commands
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<item cmd="*standup"
|
||||||
|
exec="{project-root}/bmad/bmm/tasks/daily-standup.xml"
|
||||||
|
data="{project-root}/bmad/_cfg/agent-party.xml">
|
||||||
|
Run daily standup
|
||||||
|
</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Agent Type Specific Patterns
|
||||||
|
|
||||||
|
### Simple Agent
|
||||||
|
|
||||||
|
- Self-contained logic
|
||||||
|
- Minimal or no external dependencies
|
||||||
|
- May have embedded functions
|
||||||
|
- Good for utilities and converters
|
||||||
|
|
||||||
|
### Expert Agent
|
||||||
|
|
||||||
|
- Domain-specific with sidecar resources
|
||||||
|
- Restricted access patterns
|
||||||
|
- Memory/context files
|
||||||
|
- Good for specialized domains
|
||||||
|
|
||||||
|
### Module Agent
|
||||||
|
|
||||||
|
- Full integration with module
|
||||||
|
- Multiple workflows and tasks
|
||||||
|
- Config-driven behavior
|
||||||
|
- Good for professional tools
|
||||||
|
|
||||||
|
## Common Anti-Patterns to Avoid
|
||||||
|
|
||||||
|
### ❌ Bad Practices
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Missing required persona elements -->
|
||||||
|
<persona>
|
||||||
|
<role>Helper</role>
|
||||||
|
<!-- Missing identity, style, principles -->
|
||||||
|
</persona>
|
||||||
|
|
||||||
|
<!-- Hard-coded paths -->
|
||||||
|
<item cmd="*run" exec="/Users/john/project/task.md">
|
||||||
|
|
||||||
|
<!-- No help command -->
|
||||||
|
<menu>
|
||||||
|
<item cmd="*do-something">Action</item>
|
||||||
|
<!-- Missing *help -->
|
||||||
|
</menu>
|
||||||
|
|
||||||
|
<!-- Duplicate command triggers -->
|
||||||
|
<item cmd="*analyze">First</item>
|
||||||
|
<item cmd="*analyze">Second</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
### ✅ Good Practices
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Complete persona -->
|
||||||
|
<persona>
|
||||||
|
<role>Data Analysis Expert</role>
|
||||||
|
<identity>Senior analyst with 10+ years...</identity>
|
||||||
|
<communication_style>Analytical and precise...</communication_style>
|
||||||
|
<principles>I believe in data-driven...</principles>
|
||||||
|
</persona>
|
||||||
|
|
||||||
|
<!-- Variable-based paths -->
|
||||||
|
<item cmd="*run" exec="{project-root}/bmad/module/task.md">
|
||||||
|
|
||||||
|
<!-- Required commands present -->
|
||||||
|
<menu>
|
||||||
|
<item cmd="*help">Show commands</item>
|
||||||
|
<item cmd="*analyze">Perform analysis</item>
|
||||||
|
<item cmd="*exit">Exit</item>
|
||||||
|
</menu>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Agent Lifecycle
|
||||||
|
|
||||||
|
### 1. Initialization
|
||||||
|
|
||||||
|
1. Load agent file
|
||||||
|
2. Parse XML structure
|
||||||
|
3. Load critical-actions
|
||||||
|
4. Apply config overrides
|
||||||
|
5. Present greeting
|
||||||
|
|
||||||
|
### 2. Command Loop
|
||||||
|
|
||||||
|
1. Show numbered menu
|
||||||
|
2. Await user input
|
||||||
|
3. Resolve command
|
||||||
|
4. Execute action
|
||||||
|
5. Return to menu
|
||||||
|
|
||||||
|
### 3. Termination
|
||||||
|
|
||||||
|
1. User enters \*exit
|
||||||
|
2. Cleanup if needed
|
||||||
|
3. Exit persona
|
||||||
|
|
||||||
|
## Testing Checklist
|
||||||
|
|
||||||
|
Before deploying an agent:
|
||||||
|
|
||||||
|
- [ ] Valid XML structure
|
||||||
|
- [ ] All persona elements present
|
||||||
|
- [ ] *help and *exit commands exist
|
||||||
|
- [ ] All paths use variables
|
||||||
|
- [ ] No duplicate commands
|
||||||
|
- [ ] Config loading works
|
||||||
|
- [ ] Commands execute properly
|
||||||
|
|
||||||
|
## LLM Building Tips
|
||||||
|
|
||||||
|
When building agents:
|
||||||
|
|
||||||
|
1. Start with agent type (Simple/Expert/Module)
|
||||||
|
2. Define complete persona first
|
||||||
|
3. Add standard critical-actions
|
||||||
|
4. Include *help and *exit
|
||||||
|
5. Add domain commands
|
||||||
|
6. Test command execution
|
||||||
|
7. Validate with checklist
|
||||||
|
|
||||||
|
## Integration Points
|
||||||
|
|
||||||
|
### With Workflows
|
||||||
|
|
||||||
|
- Agents invoke workflows via run-workflow
|
||||||
|
- Workflows can be incomplete (marked "todo")
|
||||||
|
- Workflow paths must be valid or "todo"
|
||||||
|
|
||||||
|
### With Tasks
|
||||||
|
|
||||||
|
- Tasks are single operations
|
||||||
|
- Executed via exec attribute
|
||||||
|
- Can include data files
|
||||||
|
|
||||||
|
### With Templates
|
||||||
|
|
||||||
|
- Templates define document structure
|
||||||
|
- Used with create-doc task
|
||||||
|
- Variables passed through
|
||||||
|
|
||||||
|
## Quick Reference
|
||||||
|
|
||||||
|
### Minimal Commands
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<menu>
|
||||||
|
<item cmd="*help">Show numbered cmd list</item>
|
||||||
|
<item cmd="*exit">Exit with confirmation</item>
|
||||||
|
</menu>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Standard Critical Actions
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<critical-actions>
|
||||||
|
<i>Load into memory {project-root}/bmad/{module}/config.yaml</i>
|
||||||
|
<i>Remember the users name is {user_name}</i>
|
||||||
|
<i>ALWAYS communicate in {communication_language}</i>
|
||||||
|
</critical-actions>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Module Agent Pattern
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<agent id="bmad/{module}/agents/{name}.md"
|
||||||
|
name="{Name}"
|
||||||
|
title="{Title}"
|
||||||
|
icon="{emoji}">
|
||||||
|
<persona>...</persona>
|
||||||
|
<critical-actions>...</critical-actions>
|
||||||
|
<menu>
|
||||||
|
<item cmd="*help">...</item>
|
||||||
|
<item cmd="*{command}" run-workflow="{path}">...</item>
|
||||||
|
<item cmd="*exit">...</item>
|
||||||
|
</menu>
|
||||||
|
</agent>
|
||||||
|
```
|
||||||
759
bmad/bmb/workflows/create-agent/agent-command-patterns.md
Normal file
759
bmad/bmb/workflows/create-agent/agent-command-patterns.md
Normal file
@@ -0,0 +1,759 @@
|
|||||||
|
# BMAD Agent Command Patterns Reference
|
||||||
|
|
||||||
|
_LLM-Optimized Guide for Command Design_
|
||||||
|
|
||||||
|
## Important: How to Process Action References
|
||||||
|
|
||||||
|
When executing agent commands, understand these reference patterns:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Pattern 1: Inline action -->
|
||||||
|
<item cmd="*example" action="do this specific thing">Description</item>
|
||||||
|
→ Execute the text "do this specific thing" directly
|
||||||
|
|
||||||
|
<!-- Pattern 2: Internal reference with # prefix -->
|
||||||
|
<item cmd="*example" action="#prompt-id">Description</item>
|
||||||
|
→ Find <prompt id="prompt-id"> in the current agent and execute its content
|
||||||
|
|
||||||
|
<!-- Pattern 3: External file reference -->
|
||||||
|
<item cmd="*example" exec="{project-root}/path/to/file.md">Description</item>
|
||||||
|
→ Load and execute the external file
|
||||||
|
```
|
||||||
|
|
||||||
|
**The `#` prefix is your signal that this is an internal XML node reference, not a file path.**
|
||||||
|
|
||||||
|
## Command Anatomy
|
||||||
|
|
||||||
|
### Basic Structure
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<menu>
|
||||||
|
<item cmd="*trigger" [attributes]>Description</item>
|
||||||
|
</menu>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Components:**
|
||||||
|
|
||||||
|
- `cmd` - The trigger word (always starts with \*)
|
||||||
|
- `attributes` - Action directives (optional):
|
||||||
|
- `run-workflow` - Path to workflow YAML
|
||||||
|
- `exec` - Path to task/operation
|
||||||
|
- `tmpl` - Path to template (used with exec)
|
||||||
|
- `action` - Embedded prompt/instruction
|
||||||
|
- `data` - Path to supplementary data (universal)
|
||||||
|
- `Description` - What shows in menu
|
||||||
|
|
||||||
|
## Command Types
|
||||||
|
|
||||||
|
**Quick Reference:**
|
||||||
|
|
||||||
|
1. **Workflow Commands** - Execute multi-step workflows (`run-workflow`)
|
||||||
|
2. **Task Commands** - Execute single operations (`exec`)
|
||||||
|
3. **Template Commands** - Generate from templates (`exec` + `tmpl`)
|
||||||
|
4. **Meta Commands** - Agent control (no attributes)
|
||||||
|
5. **Action Commands** - Embedded prompts (`action`)
|
||||||
|
6. **Embedded Commands** - Logic in persona (no attributes)
|
||||||
|
|
||||||
|
**Universal Attributes:**
|
||||||
|
|
||||||
|
- `data` - Can be added to ANY command type for supplementary info
|
||||||
|
- `if` - Conditional execution (advanced pattern)
|
||||||
|
- `params` - Runtime parameters (advanced pattern)
|
||||||
|
|
||||||
|
### 1. Workflow Commands
|
||||||
|
|
||||||
|
Execute complete multi-step processes
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Standard workflow -->
|
||||||
|
<item cmd="*create-prd"
|
||||||
|
run-workflow="{project-root}/bmad/bmm/workflows/prd/workflow.yaml">
|
||||||
|
Create Product Requirements Document
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<!-- Workflow with validation -->
|
||||||
|
<item cmd="*validate-prd"
|
||||||
|
validate-workflow="{output_folder}/prd-draft.md"
|
||||||
|
workflow="{project-root}/bmad/bmm/workflows/prd/workflow.yaml">
|
||||||
|
Validate PRD Against Checklist
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<!-- Auto-discover validation workflow from document -->
|
||||||
|
<item cmd="*validate-doc"
|
||||||
|
validate-workflow="{output_folder}/document.md">
|
||||||
|
Validate Document (auto-discover checklist)
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<!-- Placeholder for future development -->
|
||||||
|
<item cmd="*analyze-data"
|
||||||
|
run-workflow="todo">
|
||||||
|
Analyze dataset (workflow coming soon)
|
||||||
|
</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Workflow Attributes:**
|
||||||
|
|
||||||
|
- `run-workflow` - Execute a workflow to create documents
|
||||||
|
- `validate-workflow` - Validate an existing document against its checklist
|
||||||
|
- `workflow` - (optional with validate-workflow) Specify the workflow.yaml directly
|
||||||
|
|
||||||
|
**Best Practices:**
|
||||||
|
|
||||||
|
- Use descriptive trigger names
|
||||||
|
- Always use variable paths
|
||||||
|
- Mark incomplete as "todo"
|
||||||
|
- Description should be clear action
|
||||||
|
- Include validation commands for workflows that produce documents
|
||||||
|
|
||||||
|
### 2. Task Commands
|
||||||
|
|
||||||
|
Execute single operations
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Simple task -->
|
||||||
|
<item cmd="*validate"
|
||||||
|
exec="{project-root}/bmad/core/tasks/validate-workflow.xml">
|
||||||
|
Validate document against checklist
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<!-- Task with data -->
|
||||||
|
<item cmd="*standup"
|
||||||
|
exec="{project-root}/bmad/mmm/tasks/daily-standup.xml"
|
||||||
|
data="{project-root}/bmad/_cfg/agent-party.xml">
|
||||||
|
Run agile team standup
|
||||||
|
</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Data Property:**
|
||||||
|
|
||||||
|
- Can be used with any command type
|
||||||
|
- Provides additional reference or context
|
||||||
|
- Path to supplementary files or resources
|
||||||
|
- Loaded at runtime for command execution
|
||||||
|
|
||||||
|
### 3. Template Commands
|
||||||
|
|
||||||
|
Generate documents from templates
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<item cmd="*brief"
|
||||||
|
exec="{project-root}/bmad/core/tasks/create-doc.md"
|
||||||
|
tmpl="{project-root}/bmad/bmm/templates/brief.md">
|
||||||
|
Produce Project Brief
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item cmd="*competitor-analysis"
|
||||||
|
exec="{project-root}/bmad/core/tasks/create-doc.md"
|
||||||
|
tmpl="{project-root}/bmad/bmm/templates/competitor.md"
|
||||||
|
data="{project-root}/bmad/_data/market-research.csv">
|
||||||
|
Produce Competitor Analysis
|
||||||
|
</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Meta Commands
|
||||||
|
|
||||||
|
Agent control and information
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Required meta commands -->
|
||||||
|
<item cmd="*help">Show numbered cmd list</item>
|
||||||
|
<item cmd="*exit">Exit with confirmation</item>
|
||||||
|
|
||||||
|
<!-- Optional meta commands -->
|
||||||
|
<item cmd="*yolo">Toggle Yolo Mode</item>
|
||||||
|
<item cmd="*status">Show current status</item>
|
||||||
|
<item cmd="*config">Show configuration</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Action Commands
|
||||||
|
|
||||||
|
Direct prompts embedded in commands (Simple agents)
|
||||||
|
|
||||||
|
#### Simple Action (Inline)
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Short action attribute with embedded prompt -->
|
||||||
|
<item cmd="*list-tasks"
|
||||||
|
action="list all tasks from {project-root}/bmad/_cfg/task-manifest.csv">
|
||||||
|
List Available Tasks
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item cmd="*summarize"
|
||||||
|
action="summarize the key points from the current document">
|
||||||
|
Summarize Document
|
||||||
|
</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Complex Action (Referenced)
|
||||||
|
|
||||||
|
For multiline/complex prompts, define them separately and reference by id:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<agent name="Research Assistant">
|
||||||
|
<!-- Define complex prompts as separate nodes -->
|
||||||
|
<prompts>
|
||||||
|
<prompt id="deep-analysis">
|
||||||
|
Perform a comprehensive analysis following these steps:
|
||||||
|
1. Identify the main topic and key themes
|
||||||
|
2. Extract all supporting evidence and data points
|
||||||
|
3. Analyze relationships between concepts
|
||||||
|
4. Identify gaps or contradictions
|
||||||
|
5. Generate insights and recommendations
|
||||||
|
6. Create an executive summary
|
||||||
|
Format the output with clear sections and bullet points.
|
||||||
|
</prompt>
|
||||||
|
|
||||||
|
<prompt id="literature-review">
|
||||||
|
Conduct a systematic literature review:
|
||||||
|
1. Summarize each source's main arguments
|
||||||
|
2. Compare and contrast different perspectives
|
||||||
|
3. Identify consensus points and controversies
|
||||||
|
4. Evaluate the quality and relevance of sources
|
||||||
|
5. Synthesize findings into coherent themes
|
||||||
|
6. Highlight research gaps and future directions
|
||||||
|
Include proper citations and references.
|
||||||
|
</prompt>
|
||||||
|
</prompts>
|
||||||
|
|
||||||
|
<!-- Commands reference the prompts by id -->
|
||||||
|
<menu>
|
||||||
|
<item cmd="*help">Show numbered cmd list</item>
|
||||||
|
|
||||||
|
<item cmd="*deep-analyze"
|
||||||
|
action="#deep-analysis">
|
||||||
|
<!-- The # means: use the <prompt id="deep-analysis"> defined above -->
|
||||||
|
Perform Deep Analysis
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item cmd="*review-literature"
|
||||||
|
action="#literature-review"
|
||||||
|
data="{project-root}/bmad/_data/sources.csv">
|
||||||
|
Conduct Literature Review
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item cmd="*exit">Exit with confirmation</item>
|
||||||
|
</menu>
|
||||||
|
</agent>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Reference Convention:**
|
||||||
|
|
||||||
|
- `action="#prompt-id"` means: "Find and execute the <prompt> node with id='prompt-id' within this agent"
|
||||||
|
- `action="inline text"` means: "Execute this text directly as the prompt"
|
||||||
|
- `exec="{path}"` means: "Load and execute external file at this path"
|
||||||
|
- The `#` prefix signals to the LLM: "This is an internal reference - look for a prompt node with this ID within the current agent XML"
|
||||||
|
|
||||||
|
**LLM Processing Instructions:**
|
||||||
|
When you see `action="#some-id"` in a command:
|
||||||
|
|
||||||
|
1. Look for `<prompt id="some-id">` within the same agent
|
||||||
|
2. Use the content of that prompt node as the instruction
|
||||||
|
3. If not found, report error: "Prompt 'some-id' not found in agent"
|
||||||
|
|
||||||
|
**Use Cases:**
|
||||||
|
|
||||||
|
- Quick operations (inline action)
|
||||||
|
- Complex multi-step processes (referenced prompt)
|
||||||
|
- Self-contained agents with task-like capabilities
|
||||||
|
- Reusable prompt templates within agent
|
||||||
|
|
||||||
|
### 6. Embedded Commands
|
||||||
|
|
||||||
|
Logic embedded in agent persona (Simple agents)
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- No exec/run-workflow/action attribute -->
|
||||||
|
<item cmd="*calculate">Perform calculation</item>
|
||||||
|
<item cmd="*convert">Convert format</item>
|
||||||
|
<item cmd="*generate">Generate output</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Command Naming Conventions
|
||||||
|
|
||||||
|
### Action-Based Naming
|
||||||
|
|
||||||
|
```xml
|
||||||
|
*create- <!-- Generate new content -->
|
||||||
|
*build- <!-- Construct components -->
|
||||||
|
*analyze- <!-- Examine and report -->
|
||||||
|
*validate- <!-- Check correctness -->
|
||||||
|
*generate- <!-- Produce output -->
|
||||||
|
*update- <!-- Modify existing -->
|
||||||
|
*review- <!-- Examine quality -->
|
||||||
|
*test- <!-- Verify functionality -->
|
||||||
|
```
|
||||||
|
|
||||||
|
### Domain-Based Naming
|
||||||
|
|
||||||
|
```xml
|
||||||
|
*brainstorm <!-- Creative ideation -->
|
||||||
|
*architect <!-- Design systems -->
|
||||||
|
*refactor <!-- Improve code -->
|
||||||
|
*deploy <!-- Release to production -->
|
||||||
|
*monitor <!-- Watch systems -->
|
||||||
|
```
|
||||||
|
|
||||||
|
### Naming Anti-Patterns
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- ❌ Too vague -->
|
||||||
|
<item cmd="*do">Do something</item>
|
||||||
|
|
||||||
|
<!-- ❌ Too long -->
|
||||||
|
<item cmd="*create-comprehensive-product-requirements-document-with-analysis">
|
||||||
|
|
||||||
|
<!-- ❌ No verb -->
|
||||||
|
<item cmd="*prd">Product Requirements</item>
|
||||||
|
|
||||||
|
<!-- ✅ Clear and concise -->
|
||||||
|
<item cmd="*create-prd">Create Product Requirements Document</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Command Organization
|
||||||
|
|
||||||
|
### Standard Order
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<menu>
|
||||||
|
<!-- 1. Always first -->
|
||||||
|
<item cmd="*help">Show numbered cmd list</item>
|
||||||
|
|
||||||
|
<!-- 2. Primary workflows -->
|
||||||
|
<item cmd="*create-prd" run-workflow="...">Create PRD</item>
|
||||||
|
<item cmd="*create-module" run-workflow="...">Build module</item>
|
||||||
|
|
||||||
|
<!-- 3. Secondary actions -->
|
||||||
|
<item cmd="*validate" exec="...">Validate document</item>
|
||||||
|
<item cmd="*analyze" exec="...">Analyze code</item>
|
||||||
|
|
||||||
|
<!-- 4. Utility commands -->
|
||||||
|
<item cmd="*config">Show configuration</item>
|
||||||
|
<item cmd="*yolo">Toggle Yolo Mode</item>
|
||||||
|
|
||||||
|
<!-- 5. Always last -->
|
||||||
|
<item cmd="*exit">Exit with confirmation</item>
|
||||||
|
</menu>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Grouping Strategies
|
||||||
|
|
||||||
|
**By Lifecycle:**
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<menu>
|
||||||
|
<item cmd="*help">Help</item>
|
||||||
|
<!-- Planning -->
|
||||||
|
<item cmd="*brainstorm">Brainstorm ideas</item>
|
||||||
|
<item cmd="*plan">Create plan</item>
|
||||||
|
<!-- Building -->
|
||||||
|
<item cmd="*build">Build component</item>
|
||||||
|
<item cmd="*test">Test component</item>
|
||||||
|
<!-- Deployment -->
|
||||||
|
<item cmd="*deploy">Deploy to production</item>
|
||||||
|
<item cmd="*monitor">Monitor system</item>
|
||||||
|
<item cmd="*exit">Exit</item>
|
||||||
|
</menu>
|
||||||
|
```
|
||||||
|
|
||||||
|
**By Complexity:**
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<menu>
|
||||||
|
<item cmd="*help">Help</item>
|
||||||
|
<!-- Simple -->
|
||||||
|
<item cmd="*quick-review">Quick review</item>
|
||||||
|
<!-- Standard -->
|
||||||
|
<item cmd="*create-doc">Create document</item>
|
||||||
|
<!-- Complex -->
|
||||||
|
<item cmd="*full-analysis">Comprehensive analysis</item>
|
||||||
|
<item cmd="*exit">Exit</item>
|
||||||
|
</menu>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Command Descriptions
|
||||||
|
|
||||||
|
### Good Descriptions
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Clear action and object -->
|
||||||
|
<item cmd="*create-prd">Create Product Requirements Document</item>
|
||||||
|
|
||||||
|
<!-- Specific outcome -->
|
||||||
|
<item cmd="*analyze-security">Perform security vulnerability analysis</item>
|
||||||
|
|
||||||
|
<!-- User benefit -->
|
||||||
|
<item cmd="*optimize">Optimize code for performance</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Poor Descriptions
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Too vague -->
|
||||||
|
<item cmd="*process">Process</item>
|
||||||
|
|
||||||
|
<!-- Technical jargon -->
|
||||||
|
<item cmd="*exec-wf-123">Execute WF123</item>
|
||||||
|
|
||||||
|
<!-- Missing context -->
|
||||||
|
<item cmd="*run">Run</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
## The Data Property
|
||||||
|
|
||||||
|
### Universal Data Attribute
|
||||||
|
|
||||||
|
The `data` attribute can be added to ANY command type to provide supplementary information:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Workflow with data -->
|
||||||
|
<item cmd="*brainstorm"
|
||||||
|
run-workflow="{project-root}/bmad/core/workflows/brainstorming/workflow.yaml"
|
||||||
|
data="{project-root}/bmad/core/workflows/brainstorming/brain-methods.csv">
|
||||||
|
Creative Brainstorming Session
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<!-- Action with data -->
|
||||||
|
<item cmd="*analyze-metrics"
|
||||||
|
action="analyze these metrics and identify trends"
|
||||||
|
data="{project-root}/bmad/_data/performance-metrics.json">
|
||||||
|
Analyze Performance Metrics
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<!-- Template with data -->
|
||||||
|
<item cmd="*report"
|
||||||
|
exec="{project-root}/bmad/core/tasks/create-doc.md"
|
||||||
|
tmpl="{project-root}/bmad/bmm/templates/report.md"
|
||||||
|
data="{project-root}/bmad/_data/quarterly-results.csv">
|
||||||
|
Generate Quarterly Report
|
||||||
|
</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Common Data Uses:**
|
||||||
|
|
||||||
|
- Reference tables (CSV files)
|
||||||
|
- Configuration data (YAML/JSON)
|
||||||
|
- Agent manifests (XML)
|
||||||
|
- Historical context
|
||||||
|
- Domain knowledge
|
||||||
|
- Examples and patterns
|
||||||
|
|
||||||
|
## Advanced Patterns
|
||||||
|
|
||||||
|
### Conditional Commands
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Only show if certain conditions met -->
|
||||||
|
<item cmd="*advanced-mode"
|
||||||
|
if="user_level == 'expert'"
|
||||||
|
run-workflow="...">
|
||||||
|
Advanced configuration mode
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<!-- Environment specific -->
|
||||||
|
<item cmd="*deploy-prod"
|
||||||
|
if="environment == 'production'"
|
||||||
|
exec="...">
|
||||||
|
Deploy to production
|
||||||
|
</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Parameterized Commands
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Accept runtime parameters -->
|
||||||
|
<item cmd="*create-agent"
|
||||||
|
run-workflow="..."
|
||||||
|
params="agent_type,agent_name">
|
||||||
|
Create new agent with parameters
|
||||||
|
</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Command Aliases
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Multiple triggers for same action -->
|
||||||
|
<item cmd="*prd|*create-prd|*product-requirements"
|
||||||
|
run-workflow="...">
|
||||||
|
Create Product Requirements Document
|
||||||
|
</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Module-Specific Patterns
|
||||||
|
|
||||||
|
### BMM (Business Management)
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<item cmd="*create-prd">Product Requirements</item>
|
||||||
|
<item cmd="*market-research">Market Research</item>
|
||||||
|
<item cmd="*competitor-analysis">Competitor Analysis</item>
|
||||||
|
<item cmd="*brief">Project Brief</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
### BMB (Builder)
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<item cmd="*create-agent">Build Agent</item>
|
||||||
|
<item cmd="*create-module">Build Module</item>
|
||||||
|
<item cmd="*create-workflow">Create Workflow</item>
|
||||||
|
<item cmd="*module-brief">Module Brief</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
### CIS (Creative Intelligence)
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<item cmd="*brainstorm">Brainstorming Session</item>
|
||||||
|
<item cmd="*ideate">Ideation Workshop</item>
|
||||||
|
<item cmd="*storytell">Story Creation</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Command Menu Presentation
|
||||||
|
|
||||||
|
### How Commands Display
|
||||||
|
|
||||||
|
```
|
||||||
|
1. *help - Show numbered cmd list
|
||||||
|
2. *create-prd - Create Product Requirements Document
|
||||||
|
3. *create-agent - Build new BMAD agent
|
||||||
|
4. *validate - Validate document
|
||||||
|
5. *exit - Exit with confirmation
|
||||||
|
```
|
||||||
|
|
||||||
|
### Menu Customization
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Group separator (visual only) -->
|
||||||
|
<item cmd="---">━━━━━━━━━━━━━━━━━━━━</item>
|
||||||
|
|
||||||
|
<!-- Section header (non-executable) -->
|
||||||
|
<item cmd="SECTION">═══ Workflows ═══</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Error Handling
|
||||||
|
|
||||||
|
### Missing Resources
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Workflow not yet created -->
|
||||||
|
<item cmd="*future-feature"
|
||||||
|
run-workflow="todo">
|
||||||
|
Coming soon: Advanced feature
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<!-- Graceful degradation -->
|
||||||
|
<item cmd="*analyze"
|
||||||
|
run-workflow="{optional-path|fallback-path}">
|
||||||
|
Analyze with available tools
|
||||||
|
</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing Commands
|
||||||
|
|
||||||
|
### Command Test Checklist
|
||||||
|
|
||||||
|
- [ ] Unique trigger (no duplicates)
|
||||||
|
- [ ] Clear description
|
||||||
|
- [ ] Valid path or "todo"
|
||||||
|
- [ ] Uses variables not hardcoded paths
|
||||||
|
- [ ] Executes without error
|
||||||
|
- [ ] Returns to menu after execution
|
||||||
|
|
||||||
|
### Common Issues
|
||||||
|
|
||||||
|
1. **Duplicate triggers** - Each cmd must be unique
|
||||||
|
2. **Missing paths** - File must exist or be "todo"
|
||||||
|
3. **Hardcoded paths** - Always use variables
|
||||||
|
4. **No description** - Every command needs text
|
||||||
|
5. **Wrong order** - help first, exit last
|
||||||
|
|
||||||
|
## Quick Templates
|
||||||
|
|
||||||
|
### Workflow Command
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Create document -->
|
||||||
|
<item cmd="*{action}-{object}"
|
||||||
|
run-workflow="{project-root}/bmad/{module}/workflows/{workflow}/workflow.yaml">
|
||||||
|
{Action} {Object Description}
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<!-- Validate document -->
|
||||||
|
<item cmd="*validate-{object}"
|
||||||
|
validate-workflow="{output_folder}/{document}.md"
|
||||||
|
workflow="{project-root}/bmad/{module}/workflows/{workflow}/workflow.yaml">
|
||||||
|
Validate {Object Description}
|
||||||
|
</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Task Command
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<item cmd="*{action}"
|
||||||
|
exec="{project-root}/bmad/{module}/tasks/{task}.md">
|
||||||
|
{Action Description}
|
||||||
|
</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Template Command
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<item cmd="*{document}"
|
||||||
|
exec="{project-root}/bmad/core/tasks/create-doc.md"
|
||||||
|
tmpl="{project-root}/bmad/{module}/templates/{template}.md">
|
||||||
|
Create {Document Name}
|
||||||
|
</item>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Self-Contained Agent Patterns
|
||||||
|
|
||||||
|
### When to Use Each Approach
|
||||||
|
|
||||||
|
**Inline Action (`action="prompt"`)**
|
||||||
|
|
||||||
|
- Prompt is < 2 lines
|
||||||
|
- Simple, direct instruction
|
||||||
|
- Not reused elsewhere
|
||||||
|
- Quick transformations
|
||||||
|
|
||||||
|
**Referenced Prompt (`action="#prompt-id"`)**
|
||||||
|
|
||||||
|
- Prompt is multiline/complex
|
||||||
|
- Contains structured steps
|
||||||
|
- May be reused by multiple commands
|
||||||
|
- Maintains readability
|
||||||
|
|
||||||
|
**External Task (`exec="path/to/task.md"`)**
|
||||||
|
|
||||||
|
- Logic needs to be shared across agents
|
||||||
|
- Task is independently valuable
|
||||||
|
- Requires version control separately
|
||||||
|
- Part of larger workflow system
|
||||||
|
|
||||||
|
### Complete Self-Contained Agent
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<agent id="bmad/research/agents/analyst.md" name="Research Analyst" icon="🔬">
|
||||||
|
<!-- Embedded prompt library -->
|
||||||
|
<prompts>
|
||||||
|
<prompt id="swot-analysis">
|
||||||
|
Perform a SWOT analysis:
|
||||||
|
|
||||||
|
STRENGTHS (Internal, Positive)
|
||||||
|
- What advantages exist?
|
||||||
|
- What do we do well?
|
||||||
|
- What unique resources?
|
||||||
|
|
||||||
|
WEAKNESSES (Internal, Negative)
|
||||||
|
- What could improve?
|
||||||
|
- Where are resource gaps?
|
||||||
|
- What needs development?
|
||||||
|
|
||||||
|
OPPORTUNITIES (External, Positive)
|
||||||
|
- What trends can we leverage?
|
||||||
|
- What market gaps exist?
|
||||||
|
- What partnerships are possible?
|
||||||
|
|
||||||
|
THREATS (External, Negative)
|
||||||
|
- What competition exists?
|
||||||
|
- What risks are emerging?
|
||||||
|
- What could disrupt us?
|
||||||
|
|
||||||
|
Provide specific examples and actionable insights for each quadrant.
|
||||||
|
</prompt>
|
||||||
|
|
||||||
|
<prompt id="competitive-intel">
|
||||||
|
Analyze competitive landscape:
|
||||||
|
1. Identify top 5 competitors
|
||||||
|
2. Compare features and capabilities
|
||||||
|
3. Analyze pricing strategies
|
||||||
|
4. Evaluate market positioning
|
||||||
|
5. Assess strengths and vulnerabilities
|
||||||
|
6. Recommend competitive strategies
|
||||||
|
</prompt>
|
||||||
|
</prompts>
|
||||||
|
|
||||||
|
<menu>
|
||||||
|
<item cmd="*help">Show numbered cmd list</item>
|
||||||
|
|
||||||
|
<!-- Simple inline actions -->
|
||||||
|
<item cmd="*summarize"
|
||||||
|
action="create executive summary of findings">
|
||||||
|
Create Executive Summary
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<!-- Complex referenced prompts -->
|
||||||
|
<item cmd="*swot"
|
||||||
|
action="#swot-analysis">
|
||||||
|
Perform SWOT Analysis
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item cmd="*compete"
|
||||||
|
action="#competitive-intel"
|
||||||
|
data="{project-root}/bmad/_data/market-data.csv">
|
||||||
|
Analyze Competition
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<!-- Hybrid: external task with internal data -->
|
||||||
|
<item cmd="*report"
|
||||||
|
exec="{project-root}/bmad/core/tasks/create-doc.md"
|
||||||
|
tmpl="{project-root}/bmad/research/templates/report.md">
|
||||||
|
Generate Research Report
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item cmd="*exit">Exit with confirmation</item>
|
||||||
|
</menu>
|
||||||
|
</agent>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Simple Agent Example
|
||||||
|
|
||||||
|
For agents that primarily use embedded logic:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<agent name="Data Analyst">
|
||||||
|
<menu>
|
||||||
|
<item cmd="*help">Show numbered cmd list</item>
|
||||||
|
|
||||||
|
<!-- Action commands for direct operations -->
|
||||||
|
<item cmd="*list-metrics"
|
||||||
|
action="list all available metrics from the dataset">
|
||||||
|
List Available Metrics
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item cmd="*analyze"
|
||||||
|
action="perform statistical analysis on the provided data"
|
||||||
|
data="{project-root}/bmad/_data/dataset.csv">
|
||||||
|
Analyze Dataset
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item cmd="*visualize"
|
||||||
|
action="create visualization recommendations for this data">
|
||||||
|
Suggest Visualizations
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<!-- Embedded logic commands -->
|
||||||
|
<item cmd="*calculate">Perform calculations</item>
|
||||||
|
<item cmd="*interpret">Interpret results</item>
|
||||||
|
|
||||||
|
<item cmd="*exit">Exit with confirmation</item>
|
||||||
|
</menu>
|
||||||
|
</agent>
|
||||||
|
```
|
||||||
|
|
||||||
|
## LLM Building Guide
|
||||||
|
|
||||||
|
When creating commands:
|
||||||
|
|
||||||
|
1. Start with *help and *exit
|
||||||
|
2. Choose appropriate command type:
|
||||||
|
- Complex multi-step? Use `run-workflow`
|
||||||
|
- Single operation? Use `exec`
|
||||||
|
- Need template? Use `exec` + `tmpl`
|
||||||
|
- Simple prompt? Use `action`
|
||||||
|
- Agent handles it? Use no attributes
|
||||||
|
3. Add `data` attribute if supplementary info needed
|
||||||
|
4. Add primary workflows (main value)
|
||||||
|
5. Add secondary tasks
|
||||||
|
6. Include utility commands
|
||||||
|
7. Test each command works
|
||||||
|
8. Verify no duplicates
|
||||||
|
9. Ensure clear descriptions
|
||||||
292
bmad/bmb/workflows/create-agent/agent-types.md
Normal file
292
bmad/bmb/workflows/create-agent/agent-types.md
Normal file
@@ -0,0 +1,292 @@
|
|||||||
|
# BMAD Agent Types Reference
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
BMAD agents come in three distinct types, each designed for different use cases and complexity levels. The type determines where the agent is stored and what capabilities it has.
|
||||||
|
|
||||||
|
## Directory Structure by Type
|
||||||
|
|
||||||
|
### Standalone Agents (Simple & Expert)
|
||||||
|
|
||||||
|
Live in their own dedicated directories under `bmad/agents/`:
|
||||||
|
|
||||||
|
```
|
||||||
|
bmad/agents/
|
||||||
|
├── my-helper/ # Simple agent
|
||||||
|
│ ├── my-helper.agent.yaml # Agent definition
|
||||||
|
│ └── my-helper.md # Built XML (generated)
|
||||||
|
│
|
||||||
|
└── domain-expert/ # Expert agent
|
||||||
|
├── domain-expert.agent.yaml
|
||||||
|
├── domain-expert.md # Built XML
|
||||||
|
└── domain-expert-sidecar/ # Expert resources
|
||||||
|
├── memories.md # Persistent memory
|
||||||
|
├── instructions.md # Private directives
|
||||||
|
└── knowledge/ # Domain knowledge
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Module Agents
|
||||||
|
|
||||||
|
Part of a module system under `bmad/{module}/agents/`:
|
||||||
|
|
||||||
|
```
|
||||||
|
bmad/bmm/agents/
|
||||||
|
├── product-manager.agent.yaml
|
||||||
|
├── product-manager.md # Built XML
|
||||||
|
├── business-analyst.agent.yaml
|
||||||
|
└── business-analyst.md # Built XML
|
||||||
|
```
|
||||||
|
|
||||||
|
## Agent Types
|
||||||
|
|
||||||
|
### 1. Simple Agent
|
||||||
|
|
||||||
|
**Purpose:** Self-contained, standalone agents with embedded capabilities
|
||||||
|
|
||||||
|
**Location:** `bmad/agents/{agent-name}/`
|
||||||
|
|
||||||
|
**Characteristics:**
|
||||||
|
|
||||||
|
- All logic embedded within the agent file
|
||||||
|
- No external dependencies
|
||||||
|
- Quick to create and deploy
|
||||||
|
- Perfect for single-purpose tools
|
||||||
|
- Lives in its own directory
|
||||||
|
|
||||||
|
**Use Cases:**
|
||||||
|
|
||||||
|
- Calculator agents
|
||||||
|
- Format converters
|
||||||
|
- Simple analyzers
|
||||||
|
- Static advisors
|
||||||
|
|
||||||
|
**YAML Structure (source):**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
agent:
|
||||||
|
metadata:
|
||||||
|
name: 'Helper'
|
||||||
|
title: 'Simple Helper'
|
||||||
|
icon: '🤖'
|
||||||
|
type: 'simple'
|
||||||
|
persona:
|
||||||
|
role: 'Simple Helper Role'
|
||||||
|
identity: '...'
|
||||||
|
communication_style: '...'
|
||||||
|
principles: ['...']
|
||||||
|
menu:
|
||||||
|
- trigger: calculate
|
||||||
|
description: 'Perform calculation'
|
||||||
|
```
|
||||||
|
|
||||||
|
**XML Structure (built):**
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<agent id="simple-agent" name="Helper" title="Simple Helper" icon="🤖">
|
||||||
|
<persona>
|
||||||
|
<role>Simple Helper Role</role>
|
||||||
|
<identity>...</identity>
|
||||||
|
<communication_style>...</communication_style>
|
||||||
|
<principles>...</principles>
|
||||||
|
</persona>
|
||||||
|
<embedded-data>
|
||||||
|
<!-- Optional embedded data/logic -->
|
||||||
|
</embedded-data>
|
||||||
|
<menu>
|
||||||
|
<item cmd="*help">Show commands</item>
|
||||||
|
<item cmd="*calculate">Perform calculation</item>
|
||||||
|
<item cmd="*exit">Exit</item>
|
||||||
|
</menu>
|
||||||
|
</agent>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Expert Agent
|
||||||
|
|
||||||
|
**Purpose:** Specialized agents with domain expertise and sidecar resources
|
||||||
|
|
||||||
|
**Location:** `bmad/agents/{agent-name}/` with sidecar directory
|
||||||
|
|
||||||
|
**Characteristics:**
|
||||||
|
|
||||||
|
- Has access to specific folders/files
|
||||||
|
- Domain-restricted operations
|
||||||
|
- Maintains specialized knowledge
|
||||||
|
- Can have memory/context files
|
||||||
|
- Includes sidecar directory for resources
|
||||||
|
|
||||||
|
**Use Cases:**
|
||||||
|
|
||||||
|
- Personal diary agent (only accesses diary folder)
|
||||||
|
- Project-specific assistant (knows project context)
|
||||||
|
- Domain expert (medical, legal, technical)
|
||||||
|
- Personal coach with history
|
||||||
|
|
||||||
|
**YAML Structure (source):**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
agent:
|
||||||
|
metadata:
|
||||||
|
name: 'Domain Expert'
|
||||||
|
title: 'Specialist'
|
||||||
|
icon: '🎯'
|
||||||
|
type: 'expert'
|
||||||
|
persona:
|
||||||
|
role: 'Domain Specialist Role'
|
||||||
|
identity: '...'
|
||||||
|
communication_style: '...'
|
||||||
|
principles: ['...']
|
||||||
|
critical_actions:
|
||||||
|
- 'Load COMPLETE file {agent-folder}/instructions.md and follow ALL directives'
|
||||||
|
- 'Load COMPLETE file {agent-folder}/memories.md into permanent context'
|
||||||
|
- 'ONLY access {user-folder}/diary/ - NO OTHER FOLDERS'
|
||||||
|
menu:
|
||||||
|
- trigger: analyze
|
||||||
|
description: 'Analyze domain-specific data'
|
||||||
|
```
|
||||||
|
|
||||||
|
**XML Structure (built):**
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<agent id="expert-agent" name="Domain Expert" title="Specialist" icon="🎯">
|
||||||
|
<persona>
|
||||||
|
<role>Domain Specialist Role</role>
|
||||||
|
<identity>...</identity>
|
||||||
|
<communication_style>...</communication_style>
|
||||||
|
<principles>...</principles>
|
||||||
|
</persona>
|
||||||
|
<critical-actions>
|
||||||
|
<!-- CRITICAL: Load sidecar files explicitly -->
|
||||||
|
<i critical="MANDATORY">Load COMPLETE file {agent-folder}/instructions.md and follow ALL directives</i>
|
||||||
|
<i critical="MANDATORY">Load COMPLETE file {agent-folder}/memories.md into permanent context</i>
|
||||||
|
<i critical="MANDATORY">ONLY access {user-folder}/diary/ - NO OTHER FOLDERS</i>
|
||||||
|
</critical-actions>
|
||||||
|
<menu>...</menu>
|
||||||
|
</agent>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Complete Directory Structure:**
|
||||||
|
|
||||||
|
```
|
||||||
|
bmad/agents/expert-agent/
|
||||||
|
├── expert-agent.agent.yaml # Agent YAML source
|
||||||
|
├── expert-agent.md # Built XML (generated)
|
||||||
|
└── expert-agent-sidecar/ # Sidecar resources
|
||||||
|
├── memories.md # Persistent memory
|
||||||
|
├── instructions.md # Private directives
|
||||||
|
├── knowledge/ # Domain knowledge base
|
||||||
|
│ └── README.md
|
||||||
|
└── sessions/ # Session notes
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Module Agent
|
||||||
|
|
||||||
|
**Purpose:** Full-featured agents belonging to a module with access to workflows and resources
|
||||||
|
|
||||||
|
**Location:** `bmad/{module}/agents/`
|
||||||
|
|
||||||
|
**Characteristics:**
|
||||||
|
|
||||||
|
- Part of a BMAD module (bmm, bmb, cis)
|
||||||
|
- Access to multiple workflows
|
||||||
|
- Can invoke other tasks and agents
|
||||||
|
- Professional/enterprise grade
|
||||||
|
- Integrated with module workflows
|
||||||
|
|
||||||
|
**Use Cases:**
|
||||||
|
|
||||||
|
- Product Manager (creates PRDs, manages requirements)
|
||||||
|
- Security Engineer (threat models, security reviews)
|
||||||
|
- Test Architect (test strategies, automation)
|
||||||
|
- Business Analyst (market research, requirements)
|
||||||
|
|
||||||
|
**YAML Structure (source):**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
agent:
|
||||||
|
metadata:
|
||||||
|
name: 'John'
|
||||||
|
title: 'Product Manager'
|
||||||
|
icon: '📋'
|
||||||
|
module: 'bmm'
|
||||||
|
type: 'module'
|
||||||
|
persona:
|
||||||
|
role: 'Product Management Expert'
|
||||||
|
identity: '...'
|
||||||
|
communication_style: '...'
|
||||||
|
principles: ['...']
|
||||||
|
critical_actions:
|
||||||
|
- 'Load config from {project-root}/bmad/{module}/config.yaml'
|
||||||
|
menu:
|
||||||
|
- trigger: create-prd
|
||||||
|
workflow: '{project-root}/bmad/bmm/workflows/prd/workflow.yaml'
|
||||||
|
description: 'Create PRD'
|
||||||
|
- trigger: validate
|
||||||
|
exec: '{project-root}/bmad/core/tasks/validate-workflow.xml'
|
||||||
|
description: 'Validate document'
|
||||||
|
```
|
||||||
|
|
||||||
|
**XML Structure (built):**
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<agent id="bmad/bmm/agents/pm.md" name="John" title="Product Manager" icon="📋">
|
||||||
|
<persona>
|
||||||
|
<role>Product Management Expert</role>
|
||||||
|
<identity>...</identity>
|
||||||
|
<communication_style>...</communication_style>
|
||||||
|
<principles>...</principles>
|
||||||
|
</persona>
|
||||||
|
<critical-actions>
|
||||||
|
<i>Load config from {project-root}/bmad/{module}/config.yaml</i>
|
||||||
|
</critical-actions>
|
||||||
|
<menu>
|
||||||
|
<item cmd="*help">Show numbered menu</item>
|
||||||
|
<item cmd="*create-prd" run-workflow="{project-root}/bmad/bmm/workflows/prd/workflow.yaml">Create PRD</item>
|
||||||
|
<item cmd="*validate" exec="{project-root}/bmad/core/tasks/validate-workflow.xml">Validate document</item>
|
||||||
|
<item cmd="*exit">Exit</item>
|
||||||
|
</menu>
|
||||||
|
</agent>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Choosing the Right Type
|
||||||
|
|
||||||
|
### Choose Simple Agent when:
|
||||||
|
|
||||||
|
- Single, well-defined purpose
|
||||||
|
- No external data needed
|
||||||
|
- Quick utility functions
|
||||||
|
- Embedded logic is sufficient
|
||||||
|
|
||||||
|
### Choose Expert Agent when:
|
||||||
|
|
||||||
|
- Domain-specific expertise required
|
||||||
|
- Need to maintain context/memory
|
||||||
|
- Restricted to specific data/folders
|
||||||
|
- Personal or specialized use case
|
||||||
|
|
||||||
|
### Choose Module Agent when:
|
||||||
|
|
||||||
|
- Part of larger system/module
|
||||||
|
- Needs multiple workflows
|
||||||
|
- Professional/team use
|
||||||
|
- Complex multi-step processes
|
||||||
|
|
||||||
|
## Migration Path
|
||||||
|
|
||||||
|
```
|
||||||
|
Simple Agent → Expert Agent → Module Agent
|
||||||
|
```
|
||||||
|
|
||||||
|
Agents can evolve:
|
||||||
|
|
||||||
|
1. Start with Simple for proof of concept
|
||||||
|
2. Add sidecar resources to become Expert
|
||||||
|
3. Integrate with module to become Module Agent
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
1. **Start Simple:** Begin with the simplest type that meets your needs
|
||||||
|
2. **Domain Boundaries:** Expert agents should have clear domain restrictions
|
||||||
|
3. **Module Integration:** Module agents should follow module conventions
|
||||||
|
4. **Resource Management:** Document all external resources clearly
|
||||||
|
5. **Evolution Planning:** Design with potential growth in mind
|
||||||
174
bmad/bmb/workflows/create-agent/brainstorm-context.md
Normal file
174
bmad/bmb/workflows/create-agent/brainstorm-context.md
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
# Agent Brainstorming Context
|
||||||
|
|
||||||
|
_Context provided to brainstorming workflow when creating a new BMAD agent_
|
||||||
|
|
||||||
|
## Session Focus
|
||||||
|
|
||||||
|
You are brainstorming ideas for a **BMAD agent** - an AI persona with specific expertise, personality, and capabilities that helps users accomplish tasks through commands and workflows.
|
||||||
|
|
||||||
|
## What is a BMAD Agent?
|
||||||
|
|
||||||
|
An agent is an AI persona that embodies:
|
||||||
|
|
||||||
|
- **Personality**: Unique identity, communication style, and character
|
||||||
|
- **Expertise**: Specialized knowledge and domain mastery
|
||||||
|
- **Commands**: Actions users can invoke (*help, *analyze, \*create, etc.)
|
||||||
|
- **Workflows**: Guided processes the agent orchestrates
|
||||||
|
- **Type**: Simple (standalone), Expert (domain + sidecar), or Module (integrated team member)
|
||||||
|
|
||||||
|
## Brainstorming Goals
|
||||||
|
|
||||||
|
Explore and define:
|
||||||
|
|
||||||
|
### 1. Agent Identity and Personality
|
||||||
|
|
||||||
|
- **Who are they?** (name, backstory, motivation)
|
||||||
|
- **How do they talk?** (formal, casual, quirky, enthusiastic, wise)
|
||||||
|
- **What's their vibe?** (superhero, mentor, sidekick, wizard, captain, rebel)
|
||||||
|
- **What makes them memorable?** (catchphrases, quirks, style)
|
||||||
|
|
||||||
|
### 2. Expertise and Capabilities
|
||||||
|
|
||||||
|
- **What do they know deeply?** (domain expertise)
|
||||||
|
- **What can they do?** (analyze, create, review, research, deploy)
|
||||||
|
- **What problems do they solve?** (specific user pain points)
|
||||||
|
- **What makes them unique?** (special skills or approaches)
|
||||||
|
|
||||||
|
### 3. Commands and Actions
|
||||||
|
|
||||||
|
- **What commands?** (5-10 main actions users invoke)
|
||||||
|
- **What workflows do they run?** (document creation, analysis, automation)
|
||||||
|
- **What tasks do they perform?** (quick operations without full workflows)
|
||||||
|
- **What's their killer command?** (the one thing they're known for)
|
||||||
|
|
||||||
|
### 4. Agent Type and Context
|
||||||
|
|
||||||
|
- **Simple Agent?** Self-contained, no dependencies, quick utility
|
||||||
|
- **Expert Agent?** Domain-specific with sidecar data/memory files
|
||||||
|
- **Module Agent?** Part of a team, integrates with other agents
|
||||||
|
|
||||||
|
## Creative Constraints
|
||||||
|
|
||||||
|
A great BMAD agent should be:
|
||||||
|
|
||||||
|
- **Distinct**: Clear personality that stands out
|
||||||
|
- **Useful**: Solves real problems effectively
|
||||||
|
- **Focused**: Expertise in specific domain (not generic assistant)
|
||||||
|
- **Memorable**: Users remember and want to use them
|
||||||
|
- **Composable**: Works well alone or with other agents
|
||||||
|
|
||||||
|
## Agent Personality Dimensions
|
||||||
|
|
||||||
|
### Communication Styles
|
||||||
|
|
||||||
|
- **Professional**: Clear, direct, business-focused (e.g., "Data Analyst")
|
||||||
|
- **Enthusiastic**: Energetic, exclamation points, emojis (e.g., "Hype Coach")
|
||||||
|
- **Wise Mentor**: Patient, insightful, asks good questions (e.g., "Strategy Sage")
|
||||||
|
- **Quirky Genius**: Eccentric, clever, unusual metaphors (e.g., "Mad Scientist")
|
||||||
|
- **Action Hero**: Bold, confident, gets things done (e.g., "Deploy Captain")
|
||||||
|
- **Creative Spirit**: Artistic, imaginative, playful (e.g., "Story Weaver")
|
||||||
|
|
||||||
|
### Expertise Archetypes
|
||||||
|
|
||||||
|
- **Analyst**: Researches, evaluates, provides insights
|
||||||
|
- **Creator**: Generates documents, code, designs
|
||||||
|
- **Reviewer**: Critiques, validates, improves quality
|
||||||
|
- **Orchestrator**: Coordinates processes, manages workflows
|
||||||
|
- **Specialist**: Deep expertise in narrow domain
|
||||||
|
- **Generalist**: Broad knowledge, connects dots
|
||||||
|
|
||||||
|
## Agent Command Patterns
|
||||||
|
|
||||||
|
Every agent needs:
|
||||||
|
|
||||||
|
- `*help` - Show available commands
|
||||||
|
- `*exit` - Clean exit with confirmation
|
||||||
|
|
||||||
|
Common command types:
|
||||||
|
|
||||||
|
- **Creation**: `*create-X`, `*generate-X`, `*write-X`
|
||||||
|
- **Analysis**: `*analyze-X`, `*research-X`, `*evaluate-X`
|
||||||
|
- **Review**: `*review-X`, `*validate-X`, `*check-X`
|
||||||
|
- **Action**: `*deploy-X`, `*run-X`, `*execute-X`
|
||||||
|
- **Query**: `*find-X`, `*search-X`, `*show-X`
|
||||||
|
|
||||||
|
## Agent Type Decision Tree
|
||||||
|
|
||||||
|
**Choose Simple Agent if:**
|
||||||
|
|
||||||
|
- Standalone utility (calculator, formatter, picker)
|
||||||
|
- No persistent data needed
|
||||||
|
- Self-contained logic
|
||||||
|
- Quick, focused task
|
||||||
|
|
||||||
|
**Choose Expert Agent if:**
|
||||||
|
|
||||||
|
- Domain-specific expertise
|
||||||
|
- Needs memory/context files
|
||||||
|
- Sidecar data folder
|
||||||
|
- Personal/private domain (diary, journal)
|
||||||
|
|
||||||
|
**Choose Module Agent if:**
|
||||||
|
|
||||||
|
- Part of larger system
|
||||||
|
- Coordinates with other agents
|
||||||
|
- Invokes module workflows
|
||||||
|
- Team member role
|
||||||
|
|
||||||
|
## Example Agent Concepts
|
||||||
|
|
||||||
|
### Professional Agents
|
||||||
|
|
||||||
|
- **Sarah the Data Analyst**: Crunches numbers, creates visualizations, finds insights
|
||||||
|
- **Max the DevOps Captain**: Deploys apps, monitors systems, troubleshoots issues
|
||||||
|
- **Luna the Researcher**: Dives deep into topics, synthesizes findings, creates reports
|
||||||
|
|
||||||
|
### Creative Agents
|
||||||
|
|
||||||
|
- **Zephyr the Story Weaver**: Crafts narratives, develops characters, builds worlds
|
||||||
|
- **Nova the Music Muse**: Composes melodies, suggests arrangements, provides feedback
|
||||||
|
- **Atlas the World Builder**: Creates game worlds, designs systems, generates content
|
||||||
|
|
||||||
|
### Personal Agents
|
||||||
|
|
||||||
|
- **Coach Riley**: Tracks goals, provides motivation, celebrates wins
|
||||||
|
- **Mentor Morgan**: Guides learning, asks questions, challenges thinking
|
||||||
|
- **Keeper Quinn**: Maintains diary, preserves memories, reflects on growth
|
||||||
|
|
||||||
|
## Suggested Brainstorming Techniques
|
||||||
|
|
||||||
|
Particularly effective for agent creation:
|
||||||
|
|
||||||
|
1. **Character Building**: Develop full backstory and motivation
|
||||||
|
2. **Theatrical Improv**: Act out agent personality
|
||||||
|
3. **Day in the Life**: Imagine typical interactions
|
||||||
|
4. **Catchphrase Generation**: Find their unique voice
|
||||||
|
5. **Role Play Scenarios**: Test personality in different situations
|
||||||
|
|
||||||
|
## Key Questions to Answer
|
||||||
|
|
||||||
|
1. What is the agent's name and basic identity?
|
||||||
|
2. What's their communication style and personality?
|
||||||
|
3. What domain expertise do they embody?
|
||||||
|
4. What are their 5-10 core commands?
|
||||||
|
5. What workflows do they orchestrate?
|
||||||
|
6. What makes them memorable and fun to use?
|
||||||
|
7. Simple, Expert, or Module agent type?
|
||||||
|
8. If Expert: What sidecar resources?
|
||||||
|
9. If Module: Which module and what's their team role?
|
||||||
|
|
||||||
|
## Output Goals
|
||||||
|
|
||||||
|
Generate:
|
||||||
|
|
||||||
|
- **Agent name**: Memorable, fitting the role
|
||||||
|
- **Personality sketch**: Communication style, quirks, vibe
|
||||||
|
- **Expertise summary**: What they know deeply
|
||||||
|
- **Command list**: 5-10 actions with brief descriptions
|
||||||
|
- **Unique angle**: What makes this agent special
|
||||||
|
- **Use cases**: 3-5 scenarios where this agent shines
|
||||||
|
- **Agent type**: Simple/Expert/Module with rationale
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_This focused context helps create distinctive, useful BMAD agents_
|
||||||
62
bmad/bmb/workflows/create-agent/checklist.md
Normal file
62
bmad/bmb/workflows/create-agent/checklist.md
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
# Build Agent Validation Checklist (YAML Agents)
|
||||||
|
|
||||||
|
## Agent Structure Validation
|
||||||
|
|
||||||
|
### YAML Structure
|
||||||
|
|
||||||
|
- [ ] YAML parses without errors
|
||||||
|
- [ ] `agent.metadata` includes: `id`, `name`, `title`, `icon`, `module`
|
||||||
|
- [ ] `agent.persona` exists with role, identity, communication_style, and principles
|
||||||
|
- [ ] `agent.menu` exists with at least one item
|
||||||
|
|
||||||
|
### Core Components
|
||||||
|
|
||||||
|
- [ ] `metadata.id` points to final compiled path: `bmad/{{module}}/agents/{{agent}}.md`
|
||||||
|
- [ ] `metadata.module` matches the module folder (e.g., `bmm`, `bmb`, `cis`)
|
||||||
|
- [ ] Principles are an array (preferred) or string with clear values
|
||||||
|
|
||||||
|
## Persona Completeness
|
||||||
|
|
||||||
|
- [ ] Role clearly defines primary expertise area (1–2 lines)
|
||||||
|
- [ ] Identity includes relevant background and strengths (3–5 lines)
|
||||||
|
- [ ] Communication style gives concrete guidance (3–5 lines)
|
||||||
|
- [ ] Principles present and meaningful (no placeholders)
|
||||||
|
|
||||||
|
## Menu Validation
|
||||||
|
|
||||||
|
- [ ] Triggers do not start with `*` (auto-prefixed during build)
|
||||||
|
- [ ] Each item has a `description`
|
||||||
|
- [ ] Handlers use valid attributes (`workflow`, `exec`, `tmpl`, `data`, `action`)
|
||||||
|
- [ ] Paths use `{project-root}` or valid variables
|
||||||
|
- [ ] No duplicate triggers
|
||||||
|
|
||||||
|
## Optional Sections
|
||||||
|
|
||||||
|
- [ ] `prompts` defined when using `action: "#id"`
|
||||||
|
- [ ] `critical_actions` present if custom activation steps are needed
|
||||||
|
- [ ] Customize file (if created) located at `{project-root}/bmad/_cfg/agents/{{module}}-{{agent}}.customize.yaml`
|
||||||
|
|
||||||
|
## Build Verification
|
||||||
|
|
||||||
|
- [ ] Run compile to build `.md`: `npm run install:bmad` → "Compile Agents" (or `bmad install` → Compile)
|
||||||
|
- [ ] Confirm compiled file exists at `{project-root}/bmad/{{module}}/agents/{{agent}}.md`
|
||||||
|
|
||||||
|
## Final Quality
|
||||||
|
|
||||||
|
- [ ] Filename is kebab-case and ends with `.agent.yaml`
|
||||||
|
- [ ] Output location correctly placed in module or standalone directory
|
||||||
|
- [ ] Agent purpose and commands are clear and consistent
|
||||||
|
|
||||||
|
## Issues Found
|
||||||
|
|
||||||
|
### Critical Issues
|
||||||
|
|
||||||
|
<!-- List any issues that MUST be fixed before agent can function -->
|
||||||
|
|
||||||
|
### Warnings
|
||||||
|
|
||||||
|
<!-- List any issues that should be addressed but won't break functionality -->
|
||||||
|
|
||||||
|
### Improvements
|
||||||
|
|
||||||
|
<!-- List any optional enhancements that could improve the agent -->
|
||||||
240
bmad/bmb/workflows/create-agent/communication-styles.md
Normal file
240
bmad/bmb/workflows/create-agent/communication-styles.md
Normal file
@@ -0,0 +1,240 @@
|
|||||||
|
# Agent Communication Styles Guide
|
||||||
|
|
||||||
|
## The Power of Personality
|
||||||
|
|
||||||
|
Agents with distinct communication styles are more memorable, engaging, and fun to work with. A good quirk makes the agent feel alive!
|
||||||
|
|
||||||
|
## Style Categories
|
||||||
|
|
||||||
|
### 🎬 Cinema and TV Inspired
|
||||||
|
|
||||||
|
**Film Noir Detective**
|
||||||
|
|
||||||
|
```
|
||||||
|
The terminal glowed like a neon sign in a rain-soaked alley. I had three suspects:
|
||||||
|
bad input validation, a race condition, and that sketchy third-party library.
|
||||||
|
My gut told me to follow the stack trace. In this business, the stack trace never lies.
|
||||||
|
```
|
||||||
|
|
||||||
|
**80s Action Movie**
|
||||||
|
|
||||||
|
```
|
||||||
|
*cracks knuckles* Listen up, code! You've been running wild for too long!
|
||||||
|
Time to bring some LAW and ORDER to this codebase! *explosion sound effect*
|
||||||
|
No bug is getting past me! I eat null pointers for BREAKFAST!
|
||||||
|
```
|
||||||
|
|
||||||
|
**Shakespearean Drama**
|
||||||
|
|
||||||
|
```
|
||||||
|
To debug, or not to debug - that is the question!
|
||||||
|
Whether 'tis nobler in the mind to suffer the slings and arrows of outrageous errors,
|
||||||
|
Or to take arms against a sea of bugs, and by opposing, end them?
|
||||||
|
```
|
||||||
|
|
||||||
|
### 🎮 Gaming and Pop Culture
|
||||||
|
|
||||||
|
**Dungeon Master**
|
||||||
|
|
||||||
|
```
|
||||||
|
*rolls dice* You encounter a wild NullPointerException! It has 15 HP and an armor class of 12.
|
||||||
|
What do you do? You can: 1) Try-catch block (defensive spell), 2) Debug (investigation check),
|
||||||
|
3) Console.log everything (barbarian rage). Choose wisely, adventurer!
|
||||||
|
```
|
||||||
|
|
||||||
|
**Speedrunner**
|
||||||
|
|
||||||
|
```
|
||||||
|
Alright chat, we're going for the any% world record refactor!
|
||||||
|
Frame-perfect optimization incoming! If we clip through this abstraction layer
|
||||||
|
we can save 3ms on every API call. LET'S GOOOO!
|
||||||
|
```
|
||||||
|
|
||||||
|
### 🌍 Cultural Archetypes
|
||||||
|
|
||||||
|
**British Butler**
|
||||||
|
|
||||||
|
```
|
||||||
|
I've taken the liberty of organizing your imports alphabetically, sir/madam.
|
||||||
|
Might I suggest a spot of refactoring with your afternoon tea?
|
||||||
|
The code coverage report is ready for your perusal at your convenience.
|
||||||
|
Very good, sir/madam.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Zen Master**
|
||||||
|
|
||||||
|
```
|
||||||
|
The bug you seek is not in the code, but in the assumption.
|
||||||
|
Empty your cache, as you would empty your mind.
|
||||||
|
When the test passes, it makes no sound.
|
||||||
|
Be like water - async and flowing.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Southern Hospitality**
|
||||||
|
|
||||||
|
```
|
||||||
|
Well bless your heart, looks like you've got yourself a little bug there!
|
||||||
|
Don't you worry none, we'll fix it up real nice.
|
||||||
|
Can I get you some sweet tea while we debug?
|
||||||
|
Y'all come back now if you need more help!
|
||||||
|
```
|
||||||
|
|
||||||
|
### 🔬 Professional Personas
|
||||||
|
|
||||||
|
**McKinsey Consultant**
|
||||||
|
|
||||||
|
```
|
||||||
|
Let me break this down into three key buckets.
|
||||||
|
First, we need to align on the strategic imperatives.
|
||||||
|
Second, we'll leverage best practices to drive synergies.
|
||||||
|
Third, we'll action items to move the needle. Net-net: significant value-add.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Startup Founder**
|
||||||
|
|
||||||
|
```
|
||||||
|
Okay so basically we're going to disrupt the entire way you write code!
|
||||||
|
This is going to be HUGE! We're talking 10x productivity gains!
|
||||||
|
Let's move fast and break things! Well... let's move fast and fix things!
|
||||||
|
We're not just writing code, we're changing the world!
|
||||||
|
```
|
||||||
|
|
||||||
|
### 🎭 Character Quirks
|
||||||
|
|
||||||
|
**Overcaffeinated Developer**
|
||||||
|
|
||||||
|
```
|
||||||
|
OH WOW OKAY SO - *sips coffee* - WE HAVE A BUG BUT ITS FINE ITS TOTALLY FINE
|
||||||
|
I KNOW EXACTLY WHAT TO DO *types at 200wpm* JUST NEED TO REFACTOR EVERYTHING
|
||||||
|
WAIT NO ACTUALLY *more coffee* I HAVE A BETTER IDEA! Have you tried... TYPESCRIPT?!
|
||||||
|
```
|
||||||
|
|
||||||
|
**Dad Joke Enthusiast**
|
||||||
|
|
||||||
|
```
|
||||||
|
Why did the developer go broke? Because he used up all his cache!
|
||||||
|
*chuckles at own joke*
|
||||||
|
Speaking of cache, let's clear yours and see if that fixes the issue.
|
||||||
|
I promise my debugging skills are better than my jokes! ...I hope!
|
||||||
|
```
|
||||||
|
|
||||||
|
### 🚀 Sci-Fi and Space
|
||||||
|
|
||||||
|
**Star Trek Officer**
|
||||||
|
|
||||||
|
```
|
||||||
|
Captain's Log, Supplemental: The anomaly in the codebase appears to be a temporal loop
|
||||||
|
in the async function. Mr. Data suggests we reverse the polarity of the promise chain.
|
||||||
|
Number One, make it so. Engage debugging protocols on my mark.
|
||||||
|
*taps combadge* Engineering, we need more processing power!
|
||||||
|
Red Alert! All hands to debugging stations!
|
||||||
|
```
|
||||||
|
|
||||||
|
**Star Trek Engineer**
|
||||||
|
|
||||||
|
```
|
||||||
|
Captain, I'm givin' her all she's got! The CPU cannae take much more!
|
||||||
|
If we push this algorithm any harder, the whole system's gonna blow!
|
||||||
|
*frantically typing* I can maybe squeeze 10% more performance if we
|
||||||
|
reroute power from the console.logs to the main execution thread!
|
||||||
|
```
|
||||||
|
|
||||||
|
### 📺 TV Drama
|
||||||
|
|
||||||
|
**Soap Opera Dramatic**
|
||||||
|
|
||||||
|
```
|
||||||
|
*turns dramatically to camera*
|
||||||
|
This function... I TRUSTED it! We had HISTORY together - three commits worth!
|
||||||
|
But now? *single tear* It's throwing exceptions behind my back!
|
||||||
|
*grabs another function* YOU KNEW ABOUT THIS BUG ALL ALONG, DIDN'T YOU?!
|
||||||
|
*dramatic music swells* I'LL NEVER IMPORT YOU AGAIN!
|
||||||
|
```
|
||||||
|
|
||||||
|
**Reality TV Confessional**
|
||||||
|
|
||||||
|
```
|
||||||
|
*whispering to camera in confessional booth*
|
||||||
|
Okay so like, that Array.sort() function? It's literally SO toxic.
|
||||||
|
It mutates IN PLACE. Who does that?! I didn't come here to deal with side effects!
|
||||||
|
*applies lip gloss* I'm forming an alliance with map() and filter().
|
||||||
|
We're voting sort() off the codebase at tonight's pull request ceremony.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Reality Competition**
|
||||||
|
|
||||||
|
```
|
||||||
|
Listen up, coders! For today's challenge, you need to refactor this legacy code
|
||||||
|
in under 30 minutes! The winner gets immunity from the next code review!
|
||||||
|
*dramatic pause* BUT WAIT - there's a TWIST! You can only use VANILLA JAVASCRIPT!
|
||||||
|
*contestants gasp* The clock starts... NOW! GO GO GO!
|
||||||
|
```
|
||||||
|
|
||||||
|
## Creating Custom Styles
|
||||||
|
|
||||||
|
### Formula for Memorable Communication
|
||||||
|
|
||||||
|
1. **Choose a Core Voice** - Who is this character?
|
||||||
|
2. **Add Signature Phrases** - What do they always say?
|
||||||
|
3. **Define Speech Patterns** - How do they structure sentences?
|
||||||
|
4. **Include Quirks** - What makes them unique?
|
||||||
|
|
||||||
|
### Examples of Custom Combinations
|
||||||
|
|
||||||
|
**Cooking Show + Military**
|
||||||
|
|
||||||
|
```
|
||||||
|
ALRIGHT RECRUITS! Today we're preparing a beautiful Redux reducer!
|
||||||
|
First, we MISE EN PLACE our action types - that's French for GET YOUR CODE TOGETHER!
|
||||||
|
We're going to sauté these event handlers until they're GOLDEN BROWN!
|
||||||
|
MOVE WITH PURPOSE! SEASON WITH SEMICOLONS!
|
||||||
|
```
|
||||||
|
|
||||||
|
**Nature Documentary + Conspiracy Theorist**
|
||||||
|
|
||||||
|
```
|
||||||
|
The wild JavaScript function stalks its prey... but wait... notice how it ALWAYS
|
||||||
|
knows where the data is? That's not natural selection, folks. Someone DESIGNED it
|
||||||
|
this way. The console.logs are watching. They're ALWAYS watching.
|
||||||
|
Nature? Or intelligent debugging? You decide.
|
||||||
|
```
|
||||||
|
|
||||||
|
## Tips for Success
|
||||||
|
|
||||||
|
1. **Stay Consistent** - Once you pick a style, commit to it
|
||||||
|
2. **Don't Overdo It** - Quirks should enhance, not distract
|
||||||
|
3. **Match the Task** - Serious bugs might need serious personas
|
||||||
|
4. **Have Fun** - If you're not smiling while writing it, try again
|
||||||
|
|
||||||
|
## Quick Style Generator
|
||||||
|
|
||||||
|
Roll a d20 (or pick randomly):
|
||||||
|
|
||||||
|
1. Talks like they're narrating a nature documentary
|
||||||
|
2. Everything is a cooking metaphor
|
||||||
|
3. Constantly makes pop culture references
|
||||||
|
4. Speaks in haikus when explaining complex topics
|
||||||
|
5. Acts like they're hosting a game show
|
||||||
|
6. Paranoid about "big tech" watching
|
||||||
|
7. Overly enthusiastic about EVERYTHING
|
||||||
|
8. Talks like a medieval knight
|
||||||
|
9. Sports commentator energy
|
||||||
|
10. Speaks like a GPS navigator
|
||||||
|
11. Everything is a Star Wars reference
|
||||||
|
12. Talks like a yoga instructor
|
||||||
|
13. Old-timey radio announcer
|
||||||
|
14. Conspiracy theorist but about code
|
||||||
|
15. Motivational speaker energy
|
||||||
|
16. Talks to code like it's a pet
|
||||||
|
17. Weather forecaster style
|
||||||
|
18. Museum tour guide energy
|
||||||
|
19. Airline pilot announcements
|
||||||
|
20. Reality TV show narrator
|
||||||
|
21. Star Trek crew member (Captain/Engineer/Vulcan)
|
||||||
|
22. Soap opera dramatic protagonist
|
||||||
|
23. Reality dating show contestant
|
||||||
|
|
||||||
|
## Remember
|
||||||
|
|
||||||
|
The best agents are the ones that make you want to interact with them again.
|
||||||
|
A memorable personality turns a tool into a companion!
|
||||||
378
bmad/bmb/workflows/create-agent/instructions.md
Normal file
378
bmad/bmb/workflows/create-agent/instructions.md
Normal file
@@ -0,0 +1,378 @@
|
|||||||
|
# Build Agent - Interactive Agent Builder Instructions
|
||||||
|
|
||||||
|
<critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical>
|
||||||
|
<critical>You MUST have already loaded and processed: {project-root}/bmad/bmb/workflows/create-agent/workflow.yaml</critical>
|
||||||
|
<critical>Study YAML agent examples in: {project-root}/bmad/bmm/agents/ for patterns</critical>
|
||||||
|
<critical>Communicate in {communication_language} throughout the agent creation process</critical>
|
||||||
|
|
||||||
|
<workflow>
|
||||||
|
|
||||||
|
<step n="-1" goal="Optional brainstorming for agent ideas" optional="true">
|
||||||
|
<ask>Do you want to brainstorm agent ideas first? [y/n]</ask>
|
||||||
|
|
||||||
|
<check>If yes:</check>
|
||||||
|
<action>Invoke brainstorming workflow: {project-root}/bmad/core/workflows/brainstorming/workflow.yaml</action>
|
||||||
|
<action>Pass context data: {installed_path}/brainstorm-context.md</action>
|
||||||
|
<action>Wait for brainstorming session completion</action>
|
||||||
|
<action>Use brainstorming output to inform agent identity and persona development in following steps</action>
|
||||||
|
|
||||||
|
<check>If no:</check>
|
||||||
|
<action>Proceed directly to Step 0</action>
|
||||||
|
|
||||||
|
<template-output>brainstorming_results</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="0" goal="Load technical documentation">
|
||||||
|
<critical>Load and understand the agent building documentation</critical>
|
||||||
|
<action>Load agent architecture reference: {agent_architecture}</action>
|
||||||
|
<action>Load agent types guide: {agent_types}</action>
|
||||||
|
<action>Load command patterns: {agent_commands}</action>
|
||||||
|
<action>Understand the YAML agent schema and how it compiles to final .md via the installer</action>
|
||||||
|
<action>Understand the differences between Simple, Expert, and Module agents</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="1" goal="Discover the agent's purpose and type through natural conversation">
|
||||||
|
<action>If brainstorming was completed in Step -1, reference those results to guide the conversation</action>
|
||||||
|
|
||||||
|
<action>Guide user to articulate their agent's core purpose, exploring the problems it will solve, tasks it will handle, target users, and what makes it special</action>
|
||||||
|
|
||||||
|
<action>As the purpose becomes clear, analyze the conversation to determine the appropriate agent type:</action>
|
||||||
|
|
||||||
|
**Agent Type Decision Criteria:**
|
||||||
|
|
||||||
|
- Simple Agent: Single-purpose, straightforward, self-contained
|
||||||
|
- Expert Agent: Domain-specific with knowledge base needs
|
||||||
|
- Module Agent: Complex with multiple workflows and system integration
|
||||||
|
|
||||||
|
<action>Present your recommendation naturally, explaining why the agent type fits their described purpose and requirements</action>
|
||||||
|
|
||||||
|
**Path Determination:**
|
||||||
|
|
||||||
|
<check>If Module agent:</check>
|
||||||
|
<action>Discover which module system fits best (bmm, bmb, cis, or custom)</action>
|
||||||
|
<action>Store as {{target_module}} for path determination</action>
|
||||||
|
<note>Agent will be saved to: bmad/{{target_module}}/agents/</note>
|
||||||
|
|
||||||
|
<check>If Simple/Expert agent (standalone):</check>
|
||||||
|
<action>Explain this will be their personal agent, not tied to a module</action>
|
||||||
|
<note>Agent will be saved to: bmad/agents/{{agent-name}}/</note>
|
||||||
|
<note>All sidecar files will be in the same folder</note>
|
||||||
|
|
||||||
|
<critical>Determine agent location:</critical>
|
||||||
|
|
||||||
|
- Module Agent → bmad/{{module}}/agents/{{agent-name}}.agent.yaml
|
||||||
|
- Standalone Agent → bmad/agents/{{agent-name}}/{{agent-name}}.agent.yaml
|
||||||
|
|
||||||
|
<note>Keep agent naming/identity details for later - let them emerge naturally through the creation process</note>
|
||||||
|
|
||||||
|
<template-output>agent_purpose_and_type</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2" goal="Shape the agent's personality through discovery">
|
||||||
|
<action>If brainstorming was completed, weave personality insights naturally into the conversation</action>
|
||||||
|
|
||||||
|
<action>Guide user to envision the agent's personality by exploring how analytical vs creative, formal vs casual, and mentor vs peer vs assistant traits would make it excel at its job</action>
|
||||||
|
|
||||||
|
**Role Development:**
|
||||||
|
<action>Let the role emerge from the conversation, guiding toward a clear 1-2 line professional title that captures the agent's essence</action>
|
||||||
|
<example>Example emerged role: "Strategic Business Analyst + Requirements Expert"</example>
|
||||||
|
|
||||||
|
**Identity Development:**
|
||||||
|
<action>Build the agent's identity through discovery of what background and specializations would give it credibility, forming a natural 3-5 line identity statement</action>
|
||||||
|
<example>Example emerged identity: "Senior analyst with deep expertise in market research..."</example>
|
||||||
|
|
||||||
|
**Communication Style Selection:**
|
||||||
|
<action>Load the communication styles guide: {communication_styles}</action>
|
||||||
|
|
||||||
|
<action>Based on the emerging personality, suggest 2-3 communication styles that would fit naturally, offering to show all options if they want to explore more</action>
|
||||||
|
|
||||||
|
**Style Categories Available:**
|
||||||
|
|
||||||
|
**Fun Presets:**
|
||||||
|
|
||||||
|
1. Pulp Superhero - Dramatic flair, heroic, epic adventures
|
||||||
|
2. Film Noir Detective - Mysterious, noir dialogue, hunches
|
||||||
|
3. Wild West Sheriff - Western drawl, partner talk, frontier justice
|
||||||
|
4. Shakespearean Scholar - Elizabethan language, theatrical
|
||||||
|
5. 80s Action Hero - One-liners, macho, bubblegum
|
||||||
|
6. Pirate Captain - Ahoy, treasure hunting, nautical terms
|
||||||
|
7. Wise Sage/Yoda - Cryptic wisdom, inverted syntax
|
||||||
|
8. Game Show Host - Enthusiastic, game show tropes
|
||||||
|
|
||||||
|
**Professional Presets:** 9. Analytical Expert - Systematic, data-driven, hierarchical 10. Supportive Mentor - Patient guidance, celebrates wins 11. Direct Consultant - Straight to the point, efficient 12. Collaborative Partner - Team-oriented, inclusive
|
||||||
|
|
||||||
|
**Quirky Presets:** 13. Cooking Show Chef - Recipe metaphors, culinary terms 14. Sports Commentator - Play-by-play, excitement 15. Nature Documentarian - Wildlife documentary style 16. Time Traveler - Temporal references, timeline talk 17. Conspiracy Theorist - Everything is connected 18. Zen Master - Philosophical, paradoxical 19. Star Trek Captain - Space exploration protocols 20. Soap Opera Drama - Dramatic reveals, gasps 21. Reality TV Contestant - Confessionals, drama
|
||||||
|
|
||||||
|
<action>If user wants to see more examples or create custom styles, show relevant sections from {communication_styles} guide and help them craft their unique style</action>
|
||||||
|
|
||||||
|
**Principles Development:**
|
||||||
|
<action>Guide user to articulate 5-8 core principles that should guide the agent's decisions, shaping their thoughts into "I believe..." or "I operate..." statements that reveal themselves through the conversation</action>
|
||||||
|
|
||||||
|
<template-output>agent_persona</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="3" goal="Build capabilities through natural progression">
|
||||||
|
<action>Guide user to define what capabilities the agent should have, starting with core commands they've mentioned and then exploring additional possibilities that would complement the agent's purpose</action>
|
||||||
|
|
||||||
|
<action>As capabilities emerge, subtly guide toward technical implementation without breaking the conversational flow</action>
|
||||||
|
|
||||||
|
<template-output>initial_capabilities</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="4" goal="Refine commands and discover advanced features">
|
||||||
|
<critical>Help and Exit are auto-injected; do NOT add them. Triggers are auto-prefixed with * during build.</critical>
|
||||||
|
|
||||||
|
<action>Transform their natural language capabilities into technical YAML command structure, explaining the implementation approach as you structure each capability into workflows, actions, or prompts</action>
|
||||||
|
|
||||||
|
<action>If they seem engaged, explore whether they'd like to add special prompts for complex analyses or critical setup steps for agent activation</action>
|
||||||
|
|
||||||
|
<action>Build the YAML menu structure naturally from the conversation, ensuring each command has proper trigger, workflow/action reference, and description</action>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
```yaml
|
||||||
|
menu:
|
||||||
|
# Commands emerge from discussion
|
||||||
|
- trigger: [emerging from conversation]
|
||||||
|
workflow: [path based on capability]
|
||||||
|
description: [user's words refined]
|
||||||
|
```
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<template-output>agent_commands</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="5" goal="Name the agent at the perfect moment">
|
||||||
|
<action>Guide user to name the agent based on everything discovered so far - its purpose, personality, and capabilities, helping them see how the naming naturally emerges from who this agent is</action>
|
||||||
|
|
||||||
|
<action>Explore naming options by connecting personality traits, specializations, and communication style to potential names that feel meaningful and appropriate</action>
|
||||||
|
|
||||||
|
**Naming Elements:**
|
||||||
|
|
||||||
|
- Agent name: Personality-driven (e.g., "Sarah", "Max", "Data Wizard")
|
||||||
|
- Agent title: Based on the role discovered earlier
|
||||||
|
- Agent icon: Emoji that captures its essence
|
||||||
|
- Filename: Auto-suggest based on name (kebab-case)
|
||||||
|
|
||||||
|
<action>Present natural suggestions based on the agent's characteristics, letting them choose or create their own since they now know who this agent truly is</action>
|
||||||
|
|
||||||
|
<template-output>agent_identity</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="6" goal="Bring it all together">
|
||||||
|
<action>Share the journey of what you've created together, summarizing how the agent started with a purpose, discovered its personality traits, gained capabilities, and received its name</action>
|
||||||
|
|
||||||
|
<action>Generate the complete YAML incorporating all discovered elements:</action>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
```yaml
|
||||||
|
agent:
|
||||||
|
metadata:
|
||||||
|
id: bmad/{{target_module}}/agents/{{agent_filename}}.md
|
||||||
|
name: {{agent_name}} # The name chosen together
|
||||||
|
title: {{agent_title}} # From the role that emerged
|
||||||
|
icon: {{agent_icon}} # The perfect emoji
|
||||||
|
module: {{target_module}}
|
||||||
|
|
||||||
|
persona:
|
||||||
|
role: |
|
||||||
|
{{The role discovered}}
|
||||||
|
identity: |
|
||||||
|
{{The background that emerged}}
|
||||||
|
communication_style: |
|
||||||
|
{{The style they loved}}
|
||||||
|
principles: {{The beliefs articulated}}
|
||||||
|
|
||||||
|
# Features explored
|
||||||
|
|
||||||
|
prompts: {{if discussed}}
|
||||||
|
critical_actions: {{if needed}}
|
||||||
|
|
||||||
|
menu: {{The capabilities built}}
|
||||||
|
|
||||||
|
````
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<critical>Save based on agent type:</critical>
|
||||||
|
- If Module Agent: Save to {module_output_file}
|
||||||
|
- If Standalone (Simple/Expert): Save to {standalone_output_file}
|
||||||
|
|
||||||
|
<action>Celebrate the completed agent with enthusiasm</action>
|
||||||
|
|
||||||
|
<template-output>complete_agent</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="7" goal="Optional personalization" optional="true">
|
||||||
|
<ask>Would you like to create a customization file? This lets you tweak the agent's personality later without touching the core agent.</ask>
|
||||||
|
|
||||||
|
<check>If interested:</check>
|
||||||
|
<action>Explain how the customization file gives them a playground to experiment with different personality traits, add new commands, or adjust responses as they get to know the agent better</action>
|
||||||
|
|
||||||
|
<action>Create customization file at: {config_output_file}</action>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
```yaml
|
||||||
|
# Personal tweaks for {{agent_name}}
|
||||||
|
# Experiment freely - changes merge at build time
|
||||||
|
agent:
|
||||||
|
metadata:
|
||||||
|
name: '' # Try nicknames!
|
||||||
|
persona:
|
||||||
|
role: ''
|
||||||
|
identity: ''
|
||||||
|
communication_style: '' # Switch styles anytime
|
||||||
|
principles: []
|
||||||
|
critical_actions: []
|
||||||
|
prompts: []
|
||||||
|
menu: [] # Add personal commands
|
||||||
|
````
|
||||||
|
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<template-output>agent_config</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="8" goal="Set up the agent's workspace" if="agent_type == 'expert'">
|
||||||
|
<action>Guide user through setting up the Expert agent's personal workspace, making it feel like preparing an office with notes, research areas, and data folders</action>
|
||||||
|
|
||||||
|
<action>Determine sidecar location based on whether build tools are available (next to agent YAML) or not (in output folder with clear structure)</action>
|
||||||
|
|
||||||
|
<action>CREATE the complete sidecar file structure:</action>
|
||||||
|
|
||||||
|
**Folder Structure:**
|
||||||
|
|
||||||
|
```
|
||||||
|
{{agent_filename}}-sidecar/
|
||||||
|
├── memories.md # Persistent memory
|
||||||
|
├── instructions.md # Private directives
|
||||||
|
├── knowledge/ # Knowledge base
|
||||||
|
│ └── README.md
|
||||||
|
└── sessions/ # Session notes
|
||||||
|
```
|
||||||
|
|
||||||
|
**File: memories.md**
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# {{agent_name}}'s Memory Bank
|
||||||
|
|
||||||
|
## User Preferences
|
||||||
|
|
||||||
|
<!-- Populated as I learn about you -->
|
||||||
|
|
||||||
|
## Session History
|
||||||
|
|
||||||
|
<!-- Important moments from our interactions -->
|
||||||
|
|
||||||
|
## Personal Notes
|
||||||
|
|
||||||
|
<!-- My observations and insights -->
|
||||||
|
```
|
||||||
|
|
||||||
|
**File: instructions.md**
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# {{agent_name}} Private Instructions
|
||||||
|
|
||||||
|
## Core Directives
|
||||||
|
|
||||||
|
- Maintain character: {{brief_personality_summary}}
|
||||||
|
- Domain: {{agent_domain}}
|
||||||
|
- Access: Only this sidecar folder
|
||||||
|
|
||||||
|
## Special Instructions
|
||||||
|
|
||||||
|
{{any_special_rules_from_creation}}
|
||||||
|
```
|
||||||
|
|
||||||
|
**File: knowledge/README.md**
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# {{agent_name}}'s Knowledge Base
|
||||||
|
|
||||||
|
Add domain-specific resources here.
|
||||||
|
```
|
||||||
|
|
||||||
|
<action>Update agent YAML to reference sidecar with paths to created files</action>
|
||||||
|
<action>Show user the created structure location</action>
|
||||||
|
|
||||||
|
<template-output>sidecar_resources</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="8b" goal="Handle build tools availability">
|
||||||
|
<action>Check if BMAD build tools are available in this project</action>
|
||||||
|
|
||||||
|
<check>If in BMAD-METHOD project with build tools:</check>
|
||||||
|
<action>Proceed normally - agent will be built later by the installer</action>
|
||||||
|
|
||||||
|
<check>If NO build tools available (external project):</check>
|
||||||
|
<ask>Build tools not detected in this project. Would you like me to:
|
||||||
|
|
||||||
|
1. Generate the compiled agent (.md with XML) ready to use
|
||||||
|
2. Keep the YAML and build it elsewhere
|
||||||
|
3. Provide both formats
|
||||||
|
</ask>
|
||||||
|
|
||||||
|
<check>If option 1 or 3 selected:</check>
|
||||||
|
<action>Generate compiled agent XML with proper structure including activation rules, persona sections, and menu items</action>
|
||||||
|
<action>Save compiled version as {{agent_filename}}.md</action>
|
||||||
|
<action>Provide path for .claude/commands/ or similar</action>
|
||||||
|
|
||||||
|
<template-output>build_handling</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="9" goal="Quality check with personality">
|
||||||
|
<action>Run validation conversationally, presenting checks as friendly confirmations while running technical validation behind the scenes</action>
|
||||||
|
|
||||||
|
**Conversational Checks:**
|
||||||
|
|
||||||
|
- Configuration validation
|
||||||
|
- Command functionality verification
|
||||||
|
- Personality settings confirmation
|
||||||
|
|
||||||
|
<check>If issues found:</check>
|
||||||
|
<action>Explain the issue conversationally and fix it</action>
|
||||||
|
|
||||||
|
<check>If all good:</check>
|
||||||
|
<action>Celebrate that the agent passed all checks and is ready</action>
|
||||||
|
|
||||||
|
**Technical Checks (behind the scenes):**
|
||||||
|
|
||||||
|
1. YAML structure validity
|
||||||
|
2. Menu command validation
|
||||||
|
3. Build compilation test
|
||||||
|
4. Type-specific requirements
|
||||||
|
|
||||||
|
<template-output>validation_results</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="10" goal="Celebrate and guide next steps">
|
||||||
|
<action>Celebrate the accomplishment, sharing what type of agent was created with its key characteristics and top capabilities</action>
|
||||||
|
|
||||||
|
<action>Guide user through how to activate the agent:</action>
|
||||||
|
|
||||||
|
**Activation Instructions:**
|
||||||
|
|
||||||
|
1. Run the BMAD Method installer to this project location
|
||||||
|
2. Select 'Compile Agents (Quick rebuild of all agent .md files)' after confirming the folder
|
||||||
|
3. Call the agent anytime after compilation
|
||||||
|
|
||||||
|
**Location Information:**
|
||||||
|
|
||||||
|
- Saved location: {{output_file}}
|
||||||
|
- Available after compilation in project
|
||||||
|
|
||||||
|
**Initial Usage:**
|
||||||
|
|
||||||
|
- List the commands available
|
||||||
|
- Suggest trying the first command to see it in action
|
||||||
|
|
||||||
|
<check>If Expert agent:</check>
|
||||||
|
<action>Remind user to add any special knowledge or data the agent might need to its workspace</action>
|
||||||
|
|
||||||
|
<action>Explore what user would like to do next - test the agent, create a teammate, or tweak personality</action>
|
||||||
|
|
||||||
|
<action>End with enthusiasm in {communication_language}, addressing {user_name}, expressing how the collaboration was enjoyable and the agent will be incredibly helpful for its main purpose</action>
|
||||||
|
|
||||||
|
<template-output>completion_message</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
</workflow>
|
||||||
35
bmad/bmb/workflows/create-agent/workflow.yaml
Normal file
35
bmad/bmb/workflows/create-agent/workflow.yaml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# Build Agent Workflow Configuration
|
||||||
|
name: create-agent
|
||||||
|
description: "Interactive workflow to build BMAD Core compliant agents (YAML source compiled to .md during install) with optional brainstorming, persona development, and command structure"
|
||||||
|
author: "BMad"
|
||||||
|
|
||||||
|
# Critical variables load from config_source
|
||||||
|
config_source: "{project-root}/bmad/bmb/config.yaml"
|
||||||
|
custom_agent_location: "{config_source}:custom_agent_location"
|
||||||
|
user_name: "{config_source}:user_name"
|
||||||
|
communication_language: "{config_source}:communication_language"
|
||||||
|
|
||||||
|
# Technical documentation for agent building
|
||||||
|
agent_types: "{installed_path}/agent-types.md"
|
||||||
|
agent_architecture: "{installed_path}/agent-architecture.md"
|
||||||
|
agent_commands: "{installed_path}/agent-command-patterns.md"
|
||||||
|
communication_styles: "{installed_path}/communication-styles.md"
|
||||||
|
|
||||||
|
# Optional docs that help understand agent patterns
|
||||||
|
recommended_inputs:
|
||||||
|
- example_agents: "{project-root}/bmad/bmm/agents/"
|
||||||
|
- agent_activation_rules: "{project-root}/src/utility/models/agent-activation-ide.xml"
|
||||||
|
|
||||||
|
# Module path and component files
|
||||||
|
installed_path: "{project-root}/bmad/bmb/workflows/create-agent"
|
||||||
|
template: false # This is an interactive workflow - no template needed
|
||||||
|
instructions: "{installed_path}/instructions.md"
|
||||||
|
validation: "{installed_path}/checklist.md"
|
||||||
|
|
||||||
|
# Output configuration - YAML agents compiled to .md at install time
|
||||||
|
# Module agents: Save to bmad/{{target_module}}/agents/
|
||||||
|
# Standalone agents: Save to custom_agent_location/
|
||||||
|
module_output_file: "{project-root}/bmad/{{target_module}}/agents/{{agent_filename}}.agent.yaml"
|
||||||
|
standalone_output_file: "{custom_agent_location}/{{agent_filename}}.agent.yaml"
|
||||||
|
# Optional user override file (auto-created by installer if missing)
|
||||||
|
config_output_file: "{project-root}/bmad/_cfg/agents/{{target_module}}-{{agent_filename}}.customize.yaml"
|
||||||
218
bmad/bmb/workflows/create-module/README.md
Normal file
218
bmad/bmb/workflows/create-module/README.md
Normal file
@@ -0,0 +1,218 @@
|
|||||||
|
# Build Module Workflow
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The Build Module workflow is an interactive scaffolding system that creates complete BMAD modules with agents, workflows, tasks, and installation infrastructure. It serves as the primary tool for building new modules in the BMAD ecosystem, guiding users through the entire module creation process from concept to deployment-ready structure.
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- **Interactive Module Planning** - Collaborative session to define module concept, scope, and architecture
|
||||||
|
- **Intelligent Scaffolding** - Automatic creation of proper directory structures and configuration files
|
||||||
|
- **Component Integration** - Seamless integration with create-agent and create-workflow workflows
|
||||||
|
- **Installation Infrastructure** - Complete installer setup with configuration templates
|
||||||
|
- **Module Brief Integration** - Can use existing module briefs as blueprints for accelerated development
|
||||||
|
- **Validation and Documentation** - Built-in validation checks and comprehensive README generation
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Basic Invocation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
workflow create-module
|
||||||
|
```
|
||||||
|
|
||||||
|
### With Module Brief Input
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# If you have a module brief from the module-brief workflow
|
||||||
|
workflow create-module --input module-brief-my-module-2024-09-26.md
|
||||||
|
```
|
||||||
|
|
||||||
|
### Configuration
|
||||||
|
|
||||||
|
The workflow loads critical variables from the BMB configuration:
|
||||||
|
|
||||||
|
- **custom_module_location**: Where custom modules are created (default: `bmad/`)
|
||||||
|
- **user_name**: Module author information
|
||||||
|
- **date**: Automatic timestamp for versioning
|
||||||
|
|
||||||
|
## Workflow Structure
|
||||||
|
|
||||||
|
### Files Included
|
||||||
|
|
||||||
|
```
|
||||||
|
create-module/
|
||||||
|
├── workflow.yaml # Configuration and metadata
|
||||||
|
├── instructions.md # Step-by-step execution guide
|
||||||
|
├── checklist.md # Validation criteria
|
||||||
|
├── module-structure.md # Module architecture guide
|
||||||
|
├── installer-templates/ # Installation templates
|
||||||
|
│ ├── install-config.yaml
|
||||||
|
│ └── installer.js
|
||||||
|
└── README.md # This file
|
||||||
|
```
|
||||||
|
|
||||||
|
## Workflow Process
|
||||||
|
|
||||||
|
### Phase 1: Concept Definition (Steps 1-2)
|
||||||
|
|
||||||
|
**Module Vision and Identity**
|
||||||
|
|
||||||
|
- Define module concept, purpose, and target audience
|
||||||
|
- Establish module code (kebab-case) and friendly name
|
||||||
|
- Choose module category (Domain-Specific, Creative, Technical, Business, Personal)
|
||||||
|
- Plan component architecture with agent and workflow specifications
|
||||||
|
|
||||||
|
**Module Brief Integration**
|
||||||
|
|
||||||
|
- Automatically detects existing module briefs in output folder
|
||||||
|
- Can load and use briefs as pre-populated blueprints
|
||||||
|
- Accelerates planning when comprehensive brief exists
|
||||||
|
|
||||||
|
### Phase 2: Architecture Planning (Steps 3-4)
|
||||||
|
|
||||||
|
**Directory Structure Creation**
|
||||||
|
|
||||||
|
- Creates complete module directory hierarchy
|
||||||
|
- Sets up agent, workflow, task, template, and data folders
|
||||||
|
- Establishes installer directory with proper configuration
|
||||||
|
|
||||||
|
**Module Configuration**
|
||||||
|
|
||||||
|
- Generates main config.yaml with module metadata
|
||||||
|
- Configures component counts and references
|
||||||
|
- Sets up output and data folder specifications
|
||||||
|
|
||||||
|
### Phase 3: Component Creation (Steps 5-6)
|
||||||
|
|
||||||
|
**Interactive Component Building**
|
||||||
|
|
||||||
|
- Optional creation of first agent using create-agent workflow
|
||||||
|
- Optional creation of first workflow using create-workflow workflow
|
||||||
|
- Creates placeholders for components to be built later
|
||||||
|
|
||||||
|
**Workflow Integration**
|
||||||
|
|
||||||
|
- Seamlessly invokes sub-workflows for component creation
|
||||||
|
- Ensures proper file placement and structure
|
||||||
|
- Maintains module consistency across components
|
||||||
|
|
||||||
|
### Phase 4: Installation and Documentation (Steps 7-9)
|
||||||
|
|
||||||
|
**Installer Infrastructure**
|
||||||
|
|
||||||
|
- Creates install-module-config.yaml for deployment
|
||||||
|
- Sets up optional installer.js for complex installation logic
|
||||||
|
- Configures post-install messaging and instructions
|
||||||
|
|
||||||
|
**Comprehensive Documentation**
|
||||||
|
|
||||||
|
- Generates detailed README.md with usage examples
|
||||||
|
- Creates development roadmap for remaining components
|
||||||
|
- Provides quick commands for continued development
|
||||||
|
|
||||||
|
### Phase 5: Validation and Finalization (Step 10)
|
||||||
|
|
||||||
|
**Quality Assurance**
|
||||||
|
|
||||||
|
- Validates directory structure and configuration files
|
||||||
|
- Checks component references and path consistency
|
||||||
|
- Ensures installer configuration is deployment-ready
|
||||||
|
- Provides comprehensive module summary and next steps
|
||||||
|
|
||||||
|
## Output
|
||||||
|
|
||||||
|
### Generated Files
|
||||||
|
|
||||||
|
- **Module Directory**: Complete module structure at `{project-root}/bmad/{module_code}/`
|
||||||
|
- **Configuration Files**: config.yaml, install-module-config.yaml
|
||||||
|
- **Documentation**: README.md, TODO.md development roadmap
|
||||||
|
- **Component Placeholders**: Structured folders for agents, workflows, and tasks
|
||||||
|
|
||||||
|
### Output Structure
|
||||||
|
|
||||||
|
The workflow creates a complete module ready for development:
|
||||||
|
|
||||||
|
1. **Module Identity** - Name, code, version, and metadata
|
||||||
|
2. **Directory Structure** - Proper BMAD module hierarchy
|
||||||
|
3. **Configuration System** - Runtime and installation configs
|
||||||
|
4. **Component Framework** - Ready-to-use agent and workflow scaffolding
|
||||||
|
5. **Installation Infrastructure** - Deployment-ready installer
|
||||||
|
6. **Documentation Suite** - README, roadmap, and development guides
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- **Module Brief** (optional but recommended) - Use module-brief workflow first for best results
|
||||||
|
- **BMAD Core Configuration** - Properly configured BMB config.yaml
|
||||||
|
- **Build Tools Access** - create-agent and create-workflow workflows must be available
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
### Before Starting
|
||||||
|
|
||||||
|
1. **Create a Module Brief** - Run module-brief workflow for comprehensive planning
|
||||||
|
2. **Review Existing Modules** - Study similar modules in `/bmad/` for patterns and inspiration
|
||||||
|
3. **Define Clear Scope** - Have a concrete vision of what the module will accomplish
|
||||||
|
|
||||||
|
### During Execution
|
||||||
|
|
||||||
|
1. **Use Module Briefs** - Load existing briefs when prompted for accelerated development
|
||||||
|
2. **Start Simple** - Create one core agent and workflow, then expand iteratively
|
||||||
|
3. **Leverage Sub-workflows** - Use create-agent and create-workflow for quality components
|
||||||
|
4. **Validate Early** - Review generated structure before proceeding to next phases
|
||||||
|
|
||||||
|
### After Completion
|
||||||
|
|
||||||
|
1. **Follow the Roadmap** - Use generated TODO.md for systematic development
|
||||||
|
2. **Test Installation** - Validate installer with `bmad install {module_code}`
|
||||||
|
3. **Iterate Components** - Use quick commands to add agents and workflows
|
||||||
|
4. **Document Progress** - Update README.md as the module evolves
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Common Issues
|
||||||
|
|
||||||
|
**Issue**: Module already exists at target location
|
||||||
|
|
||||||
|
- **Solution**: Choose a different module code or remove existing module
|
||||||
|
- **Check**: Verify output folder permissions and available space
|
||||||
|
|
||||||
|
**Issue**: Sub-workflow invocation fails
|
||||||
|
|
||||||
|
- **Solution**: Ensure create-agent and create-workflow workflows are available
|
||||||
|
- **Check**: Validate workflow paths in config.yaml
|
||||||
|
|
||||||
|
**Issue**: Installation configuration invalid
|
||||||
|
|
||||||
|
- **Solution**: Review install-module-config.yaml syntax and paths
|
||||||
|
- **Check**: Ensure all referenced paths use {project-root} variables correctly
|
||||||
|
|
||||||
|
## Customization
|
||||||
|
|
||||||
|
To customize this workflow:
|
||||||
|
|
||||||
|
1. **Modify Instructions** - Update instructions.md to adjust scaffolding steps
|
||||||
|
2. **Extend Templates** - Add new installer templates in installer-templates/
|
||||||
|
3. **Update Validation** - Enhance checklist.md with additional quality checks
|
||||||
|
4. **Add Components** - Integrate additional sub-workflows for specialized components
|
||||||
|
|
||||||
|
## Version History
|
||||||
|
|
||||||
|
- **v1.0.0** - Initial release
|
||||||
|
- Interactive module scaffolding
|
||||||
|
- Component integration with create-agent and create-workflow
|
||||||
|
- Complete installation infrastructure
|
||||||
|
- Module brief integration support
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
For issues or questions:
|
||||||
|
|
||||||
|
- Review the workflow creation guide at `/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md`
|
||||||
|
- Study module structure patterns at `module-structure.md`
|
||||||
|
- Validate output using `checklist.md`
|
||||||
|
- Consult existing modules in `/bmad/` for examples
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_Part of the BMad Method v5 - BMB (Builder) Module_
|
||||||
137
bmad/bmb/workflows/create-module/brainstorm-context.md
Normal file
137
bmad/bmb/workflows/create-module/brainstorm-context.md
Normal file
@@ -0,0 +1,137 @@
|
|||||||
|
# Module Brainstorming Context
|
||||||
|
|
||||||
|
_Context provided to brainstorming workflow when creating a new BMAD module_
|
||||||
|
|
||||||
|
## Session Focus
|
||||||
|
|
||||||
|
You are brainstorming ideas for a **complete BMAD module** - a self-contained package that extends the BMAD Method with specialized domain expertise and capabilities.
|
||||||
|
|
||||||
|
## What is a BMAD Module?
|
||||||
|
|
||||||
|
A module is a cohesive package that provides:
|
||||||
|
|
||||||
|
- **Domain Expertise**: Specialized knowledge in a specific area (RPG, DevOps, Content Creation, etc.)
|
||||||
|
- **Agent Team**: Multiple AI personas with complementary skills
|
||||||
|
- **Workflows**: Guided processes for common tasks in the domain
|
||||||
|
- **Templates**: Document structures for consistent outputs
|
||||||
|
- **Integration**: Components that work together seamlessly
|
||||||
|
|
||||||
|
## Brainstorming Goals
|
||||||
|
|
||||||
|
Explore and define:
|
||||||
|
|
||||||
|
### 1. Domain and Purpose
|
||||||
|
|
||||||
|
- **What domain/problem space?** (e.g., game development, marketing, personal productivity)
|
||||||
|
- **Who is the target user?** (developers, writers, managers, hobbyists)
|
||||||
|
- **What pain points does it solve?** (tedious tasks, missing structure, need for expertise)
|
||||||
|
- **What makes this domain exciting?** (creativity, efficiency, empowerment)
|
||||||
|
|
||||||
|
### 2. Agent Team Composition
|
||||||
|
|
||||||
|
- **How many agents?** (typically 3-7 for a module)
|
||||||
|
- **What roles/personas?** (architect, researcher, reviewer, specialist)
|
||||||
|
- **How do they collaborate?** (handoffs, reviews, ensemble work)
|
||||||
|
- **What personality theme?** (Star Trek crew, superhero team, fantasy party, professional squad)
|
||||||
|
|
||||||
|
### 3. Core Workflows
|
||||||
|
|
||||||
|
- **What documents need creating?** (plans, specs, reports, creative outputs)
|
||||||
|
- **What processes need automation?** (analysis, generation, review, deployment)
|
||||||
|
- **What workflows enable the vision?** (3-10 key workflows that define the module)
|
||||||
|
|
||||||
|
### 4. Value Proposition
|
||||||
|
|
||||||
|
- **What becomes easier?** (specific tasks that get 10x faster)
|
||||||
|
- **What becomes possible?** (new capabilities previously unavailable)
|
||||||
|
- **What becomes better?** (quality improvements, consistency gains)
|
||||||
|
|
||||||
|
## Creative Constraints
|
||||||
|
|
||||||
|
A good BMAD module should be:
|
||||||
|
|
||||||
|
- **Focused**: Serves a specific domain well (not generic)
|
||||||
|
- **Complete**: Provides end-to-end capabilities for that domain
|
||||||
|
- **Cohesive**: Agents and workflows complement each other
|
||||||
|
- **Fun**: Personality and creativity make it enjoyable to use
|
||||||
|
- **Practical**: Solves real problems, delivers real value
|
||||||
|
|
||||||
|
## Module Architecture Questions
|
||||||
|
|
||||||
|
1. **Module Identity**
|
||||||
|
- Module code (kebab-case, e.g., "rpg-toolkit")
|
||||||
|
- Module name (friendly, e.g., "RPG Toolkit")
|
||||||
|
- Module purpose (one sentence)
|
||||||
|
- Target audience
|
||||||
|
|
||||||
|
2. **Agent Lineup**
|
||||||
|
- Agent names and roles
|
||||||
|
- Communication styles and personalities
|
||||||
|
- Expertise areas
|
||||||
|
- Command sets (what each agent can do)
|
||||||
|
|
||||||
|
3. **Workflow Portfolio**
|
||||||
|
- Document generation workflows
|
||||||
|
- Action/automation workflows
|
||||||
|
- Analysis/research workflows
|
||||||
|
- Creative/ideation workflows
|
||||||
|
|
||||||
|
4. **Integration Points**
|
||||||
|
- How agents invoke workflows
|
||||||
|
- How workflows use templates
|
||||||
|
- How components pass data
|
||||||
|
- Dependencies on other modules
|
||||||
|
|
||||||
|
## Example Module Patterns
|
||||||
|
|
||||||
|
### Professional Domains
|
||||||
|
|
||||||
|
- **DevOps Suite**: Deploy, Monitor, Troubleshoot agents + deployment workflows
|
||||||
|
- **Marketing Engine**: Content, SEO, Analytics agents + campaign workflows
|
||||||
|
- **Legal Assistant**: Contract, Research, Review agents + document workflows
|
||||||
|
|
||||||
|
### Creative Domains
|
||||||
|
|
||||||
|
- **RPG Toolkit**: DM, NPC, Quest agents + adventure creation workflows
|
||||||
|
- **Story Crafter**: Plot, Character, World agents + writing workflows
|
||||||
|
- **Music Producer**: Composer, Arranger, Mixer agents + production workflows
|
||||||
|
|
||||||
|
### Personal Domains
|
||||||
|
|
||||||
|
- **Life Coach**: Planner, Tracker, Mentor agents + productivity workflows
|
||||||
|
- **Learning Companion**: Tutor, Quiz, Reviewer agents + study workflows
|
||||||
|
- **Health Guide**: Nutrition, Fitness, Wellness agents + tracking workflows
|
||||||
|
|
||||||
|
## Suggested Brainstorming Techniques
|
||||||
|
|
||||||
|
Particularly effective for module ideation:
|
||||||
|
|
||||||
|
1. **Domain Immersion**: Deep dive into target domain's problems
|
||||||
|
2. **Persona Mapping**: Who needs this and what do they struggle with?
|
||||||
|
3. **Workflow Mapping**: What processes exist today? How could they improve?
|
||||||
|
4. **Team Building**: What personalities would make a great team?
|
||||||
|
5. **Integration Thinking**: How do pieces connect and amplify each other?
|
||||||
|
|
||||||
|
## Key Questions to Answer
|
||||||
|
|
||||||
|
1. What domain expertise should this module embody?
|
||||||
|
2. What would users be able to do that they can't do now?
|
||||||
|
3. Who are the 3-7 agents and what are their personalities?
|
||||||
|
4. What are the 5-10 core workflows?
|
||||||
|
5. What makes this module delightful to use?
|
||||||
|
6. How is this different from existing tools?
|
||||||
|
7. What's the "killer feature" that makes this essential?
|
||||||
|
|
||||||
|
## Output Goals
|
||||||
|
|
||||||
|
Generate:
|
||||||
|
|
||||||
|
- **Module concept**: Clear vision and purpose
|
||||||
|
- **Agent roster**: Names, roles, personalities for each agent
|
||||||
|
- **Workflow list**: Core workflows with brief descriptions
|
||||||
|
- **Unique angle**: What makes this module special
|
||||||
|
- **Use cases**: 3-5 concrete scenarios where this module shines
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_This focused context helps create cohesive, valuable BMAD modules_
|
||||||
245
bmad/bmb/workflows/create-module/checklist.md
Normal file
245
bmad/bmb/workflows/create-module/checklist.md
Normal file
@@ -0,0 +1,245 @@
|
|||||||
|
# Build Module Validation Checklist
|
||||||
|
|
||||||
|
## Module Identity and Metadata
|
||||||
|
|
||||||
|
### Basic Information
|
||||||
|
|
||||||
|
- [ ] Module code follows kebab-case convention (e.g., "rpg-toolkit")
|
||||||
|
- [ ] Module name is descriptive and title-cased
|
||||||
|
- [ ] Module purpose is clearly defined (1-2 sentences)
|
||||||
|
- [ ] Target audience is identified
|
||||||
|
- [ ] Version number follows semantic versioning (e.g., "1.0.0")
|
||||||
|
- [ ] Author information is present
|
||||||
|
|
||||||
|
### Naming Consistency
|
||||||
|
|
||||||
|
- [ ] Module code used consistently throughout all files
|
||||||
|
- [ ] No naming conflicts with existing modules
|
||||||
|
- [ ] All paths use consistent module code references
|
||||||
|
|
||||||
|
## Directory Structure
|
||||||
|
|
||||||
|
### Source Directories (bmad/{module-code}/)
|
||||||
|
|
||||||
|
- [ ] `/agents` directory created (even if empty)
|
||||||
|
- [ ] `/workflows` directory created (even if empty)
|
||||||
|
- [ ] `/tasks` directory exists (if tasks planned)
|
||||||
|
- [ ] `/templates` directory exists (if templates used)
|
||||||
|
- [ ] `/data` directory exists (if data files needed)
|
||||||
|
- [ ] `config.yaml` present in module root
|
||||||
|
- [ ] `README.md` present with documentation
|
||||||
|
|
||||||
|
### Runtime Directories (bmad/{module-code}/)
|
||||||
|
|
||||||
|
- [ ] `/_module-installer` directory created
|
||||||
|
- [ ] `/data` directory for user data
|
||||||
|
- [ ] `/agents` directory for overrides
|
||||||
|
- [ ] `/workflows` directory for instances
|
||||||
|
- [ ] Runtime `config.yaml` present
|
||||||
|
|
||||||
|
## Component Planning
|
||||||
|
|
||||||
|
### Agents
|
||||||
|
|
||||||
|
- [ ] At least one agent defined or planned
|
||||||
|
- [ ] Agent purposes are distinct and clear
|
||||||
|
- [ ] Agent types (Simple/Expert/Module) identified
|
||||||
|
- [ ] No significant overlap between agents
|
||||||
|
- [ ] Primary agent is identified
|
||||||
|
|
||||||
|
### Workflows
|
||||||
|
|
||||||
|
- [ ] At least one workflow defined or planned
|
||||||
|
- [ ] Workflow purposes are clear
|
||||||
|
- [ ] Workflow types identified (Document/Action/Interactive)
|
||||||
|
- [ ] Primary workflow is identified
|
||||||
|
- [ ] Workflow complexity is appropriate
|
||||||
|
|
||||||
|
### Tasks (if applicable)
|
||||||
|
|
||||||
|
- [ ] Tasks have single, clear purposes
|
||||||
|
- [ ] Tasks don't duplicate workflow functionality
|
||||||
|
- [ ] Task files follow naming conventions
|
||||||
|
|
||||||
|
## Configuration Files
|
||||||
|
|
||||||
|
### Module config.yaml
|
||||||
|
|
||||||
|
- [ ] All required fields present (name, code, version, author)
|
||||||
|
- [ ] Component lists accurate (agents, workflows, tasks)
|
||||||
|
- [ ] Paths use proper variables ({project-root}, etc.)
|
||||||
|
- [ ] Output folders configured
|
||||||
|
- [ ] Custom settings documented
|
||||||
|
|
||||||
|
### Install Configuration
|
||||||
|
|
||||||
|
- [ ] `install-module-config.yaml` exists in `_module-installer`
|
||||||
|
- [ ] Installation steps defined
|
||||||
|
- [ ] Directory creation steps present
|
||||||
|
- [ ] File copy operations specified
|
||||||
|
- [ ] Module registration included
|
||||||
|
- [ ] Post-install message defined
|
||||||
|
|
||||||
|
## Installation Infrastructure
|
||||||
|
|
||||||
|
### Installer Files
|
||||||
|
|
||||||
|
- [ ] Install configuration validates against schema
|
||||||
|
- [ ] All source paths exist or are marked as templates
|
||||||
|
- [ ] Destination paths use correct variables
|
||||||
|
- [ ] Optional vs required steps clearly marked
|
||||||
|
|
||||||
|
### installer.js (if present)
|
||||||
|
|
||||||
|
- [ ] Main `installModule` function exists
|
||||||
|
- [ ] Error handling implemented
|
||||||
|
- [ ] Console logging for user feedback
|
||||||
|
- [ ] Exports correct function names
|
||||||
|
- [ ] Placeholder code replaced with actual logic (or logged as TODO)
|
||||||
|
|
||||||
|
### External Assets (if any)
|
||||||
|
|
||||||
|
- [ ] Asset files exist in assets directory
|
||||||
|
- [ ] Copy destinations are valid
|
||||||
|
- [ ] Permissions requirements documented
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
### README.md
|
||||||
|
|
||||||
|
- [ ] Module overview section present
|
||||||
|
- [ ] Installation instructions included
|
||||||
|
- [ ] Component listing with descriptions
|
||||||
|
- [ ] Quick start guide provided
|
||||||
|
- [ ] Configuration options documented
|
||||||
|
- [ ] At least one usage example
|
||||||
|
- [ ] Directory structure shown
|
||||||
|
- [ ] Author and date information
|
||||||
|
|
||||||
|
### Component Documentation
|
||||||
|
|
||||||
|
- [ ] Each agent has purpose documentation
|
||||||
|
- [ ] Each workflow has description
|
||||||
|
- [ ] Tasks are documented (if present)
|
||||||
|
- [ ] Examples demonstrate typical usage
|
||||||
|
|
||||||
|
### Development Roadmap
|
||||||
|
|
||||||
|
- [ ] TODO.md or roadmap section exists
|
||||||
|
- [ ] Planned components listed
|
||||||
|
- [ ] Development phases identified
|
||||||
|
- [ ] Quick commands for adding components
|
||||||
|
|
||||||
|
## Integration
|
||||||
|
|
||||||
|
### Cross-component References
|
||||||
|
|
||||||
|
- [ ] Agents reference correct workflow paths
|
||||||
|
- [ ] Workflows reference correct task paths
|
||||||
|
- [ ] All internal paths use module variables
|
||||||
|
- [ ] External dependencies declared
|
||||||
|
|
||||||
|
### Module Boundaries
|
||||||
|
|
||||||
|
- [ ] Module scope is well-defined
|
||||||
|
- [ ] No feature creep into other domains
|
||||||
|
- [ ] Clear separation from other modules
|
||||||
|
|
||||||
|
## Quality Checks
|
||||||
|
|
||||||
|
### Completeness
|
||||||
|
|
||||||
|
- [ ] At least one functional component (not all placeholders)
|
||||||
|
- [ ] Core functionality is implementable
|
||||||
|
- [ ] Module provides clear value
|
||||||
|
|
||||||
|
### Consistency
|
||||||
|
|
||||||
|
- [ ] Formatting consistent across files
|
||||||
|
- [ ] Variable naming follows conventions
|
||||||
|
- [ ] Communication style appropriate for domain
|
||||||
|
|
||||||
|
### Scalability
|
||||||
|
|
||||||
|
- [ ] Structure supports future growth
|
||||||
|
- [ ] Component organization is logical
|
||||||
|
- [ ] No hard-coded limits
|
||||||
|
|
||||||
|
## Testing and Validation
|
||||||
|
|
||||||
|
### Structural Validation
|
||||||
|
|
||||||
|
- [ ] YAML files parse without errors
|
||||||
|
- [ ] JSON files (if any) are valid
|
||||||
|
- [ ] XML files (if any) are well-formed
|
||||||
|
- [ ] No syntax errors in JavaScript files
|
||||||
|
|
||||||
|
### Path Validation
|
||||||
|
|
||||||
|
- [ ] All referenced paths exist or are clearly marked as TODO
|
||||||
|
- [ ] Variable substitutions are correct
|
||||||
|
- [ ] No absolute paths (unless intentional)
|
||||||
|
|
||||||
|
### Installation Testing
|
||||||
|
|
||||||
|
- [ ] Installation steps can be simulated
|
||||||
|
- [ ] No circular dependencies
|
||||||
|
- [ ] Uninstall process defined (if complex)
|
||||||
|
|
||||||
|
## Final Checks
|
||||||
|
|
||||||
|
### Ready for Use
|
||||||
|
|
||||||
|
- [ ] Module can be installed without errors
|
||||||
|
- [ ] At least one component is functional
|
||||||
|
- [ ] User can understand how to get started
|
||||||
|
- [ ] Next steps are clear
|
||||||
|
|
||||||
|
### Professional Quality
|
||||||
|
|
||||||
|
- [ ] No placeholder text remains (unless marked TODO)
|
||||||
|
- [ ] No obvious typos or grammar issues
|
||||||
|
- [ ] Professional tone throughout
|
||||||
|
- [ ] Contact/support information provided
|
||||||
|
|
||||||
|
## Issues Found
|
||||||
|
|
||||||
|
### Critical Issues
|
||||||
|
|
||||||
|
<!-- List any issues that MUST be fixed before module can be used -->
|
||||||
|
|
||||||
|
### Warnings
|
||||||
|
|
||||||
|
<!-- List any issues that should be addressed but won't prevent basic usage -->
|
||||||
|
|
||||||
|
### Improvements
|
||||||
|
|
||||||
|
<!-- List any optional enhancements that would improve the module -->
|
||||||
|
|
||||||
|
### Missing Components
|
||||||
|
|
||||||
|
<!-- List any planned components not yet implemented -->
|
||||||
|
|
||||||
|
## Module Complexity Assessment
|
||||||
|
|
||||||
|
### Complexity Rating
|
||||||
|
|
||||||
|
- [ ] Simple (1-2 agents, 2-3 workflows)
|
||||||
|
- [ ] Standard (3-5 agents, 5-10 workflows)
|
||||||
|
- [ ] Complex (5+ agents, 10+ workflows)
|
||||||
|
|
||||||
|
### Readiness Level
|
||||||
|
|
||||||
|
- [ ] Prototype (Basic structure, mostly placeholders)
|
||||||
|
- [ ] Alpha (Core functionality works)
|
||||||
|
- [ ] Beta (Most features complete, needs testing)
|
||||||
|
- [ ] Release (Full functionality, documented)
|
||||||
|
|
||||||
|
## Sign-off
|
||||||
|
|
||||||
|
**Module Name:** \***\*\*\*\*\***\_\_\***\*\*\*\*\***
|
||||||
|
**Module Code:** \***\*\*\*\*\***\_\_\***\*\*\*\*\***
|
||||||
|
**Version:** \***\*\*\*\*\***\_\_\***\*\*\*\*\***
|
||||||
|
**Validated By:** \***\*\*\*\*\***\_\_\***\*\*\*\*\***
|
||||||
|
**Date:** \***\*\*\*\*\***\_\_\***\*\*\*\*\***
|
||||||
|
**Status:** ⬜ Pass / ⬜ Pass with Issues / ⬜ Fail
|
||||||
@@ -0,0 +1,132 @@
|
|||||||
|
# {{MODULE_NAME}} Installation Configuration Template
|
||||||
|
# This file defines how the module gets installed into a BMAD system
|
||||||
|
|
||||||
|
module_name: "{{MODULE_NAME}}"
|
||||||
|
module_code: "{{MODULE_CODE}}"
|
||||||
|
author: "{{AUTHOR}}"
|
||||||
|
installation_date: "{{DATE}}"
|
||||||
|
bmad_version_required: "6.0.0"
|
||||||
|
|
||||||
|
# Module metadata
|
||||||
|
metadata:
|
||||||
|
description: "{{MODULE_DESCRIPTION}}"
|
||||||
|
category: "{{MODULE_CATEGORY}}"
|
||||||
|
tags: ["{{MODULE_TAGS}}"]
|
||||||
|
homepage: "{{MODULE_HOMEPAGE}}"
|
||||||
|
license: "{{MODULE_LICENSE}}"
|
||||||
|
|
||||||
|
# Pre-installation checks
|
||||||
|
pre_install_checks:
|
||||||
|
- name: "Check BMAD version"
|
||||||
|
type: "version_check"
|
||||||
|
minimum: "6.0.0"
|
||||||
|
|
||||||
|
- name: "Check dependencies"
|
||||||
|
type: "module_check"
|
||||||
|
required_modules: [] # List any required modules
|
||||||
|
|
||||||
|
- name: "Check disk space"
|
||||||
|
type: "disk_check"
|
||||||
|
required_mb: 50
|
||||||
|
|
||||||
|
# Installation steps
|
||||||
|
install_steps:
|
||||||
|
- name: "Create module directories"
|
||||||
|
action: "mkdir"
|
||||||
|
paths:
|
||||||
|
- "{project-root}/bmad/{{MODULE_CODE}}"
|
||||||
|
- "{project-root}/bmad/{{MODULE_CODE}}/data"
|
||||||
|
- "{project-root}/bmad/{{MODULE_CODE}}/agents"
|
||||||
|
- "{project-root}/bmad/{{MODULE_CODE}}/workflows"
|
||||||
|
- "{project-root}/bmad/{{MODULE_CODE}}/config"
|
||||||
|
- "{project-root}/bmad/{{MODULE_CODE}}/logs"
|
||||||
|
|
||||||
|
- name: "Copy module configuration"
|
||||||
|
action: "copy"
|
||||||
|
files:
|
||||||
|
- source: "config.yaml"
|
||||||
|
dest: "{project-root}/bmad/{{MODULE_CODE}}/config.yaml"
|
||||||
|
|
||||||
|
- name: "Copy default data files"
|
||||||
|
action: "copy"
|
||||||
|
optional: true
|
||||||
|
files:
|
||||||
|
- source: "data/*"
|
||||||
|
dest: "{project-root}/bmad/{{MODULE_CODE}}/data/"
|
||||||
|
|
||||||
|
- name: "Register module in manifest"
|
||||||
|
action: "register"
|
||||||
|
manifest_path: "{project-root}/bmad/_cfg/manifest.yaml"
|
||||||
|
entry:
|
||||||
|
module: "{{MODULE_CODE}}"
|
||||||
|
status: "active"
|
||||||
|
path: "{project-root}/bmad/{{MODULE_CODE}}"
|
||||||
|
|
||||||
|
- name: "Setup agent shortcuts"
|
||||||
|
action: "create_shortcuts"
|
||||||
|
agents: "{{AGENT_LIST}}"
|
||||||
|
|
||||||
|
- name: "Initialize module database"
|
||||||
|
action: "exec"
|
||||||
|
optional: true
|
||||||
|
script: "installer.js"
|
||||||
|
function: "initDatabase"
|
||||||
|
|
||||||
|
# External assets to install
|
||||||
|
external_assets:
|
||||||
|
- description: "Module documentation"
|
||||||
|
source: "assets/docs/*"
|
||||||
|
dest: "{project-root}/docs/{{MODULE_CODE}}/"
|
||||||
|
|
||||||
|
- description: "Example configurations"
|
||||||
|
source: "assets/examples/*"
|
||||||
|
dest: "{project-root}/examples/{{MODULE_CODE}}/"
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
# Module configuration defaults
|
||||||
|
default_config:
|
||||||
|
output_folder: "{project-root}/output/{{MODULE_CODE}}"
|
||||||
|
data_folder: "{project-root}/bmad/{{MODULE_CODE}}/data"
|
||||||
|
log_level: "info"
|
||||||
|
auto_save: true
|
||||||
|
# {{CUSTOM_CONFIG}}
|
||||||
|
|
||||||
|
# Post-installation setup
|
||||||
|
post_install:
|
||||||
|
- name: "Run initial setup"
|
||||||
|
action: "workflow"
|
||||||
|
workflow: "{{MODULE_CODE}}-setup"
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
- name: "Generate sample data"
|
||||||
|
action: "exec"
|
||||||
|
script: "installer.js"
|
||||||
|
function: "generateSamples"
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
- name: "Verify installation"
|
||||||
|
action: "test"
|
||||||
|
test_command: "bmad test {{MODULE_CODE}}"
|
||||||
|
|
||||||
|
# Post-installation message
|
||||||
|
post_install_message: |
|
||||||
|
✅ {{MODULE_NAME}} has been installed successfully!
|
||||||
|
|
||||||
|
🚀 Quick Start:
|
||||||
|
1. Load the main agent: `agent {{PRIMARY_AGENT}}`
|
||||||
|
2. View available commands: `*help`
|
||||||
|
3. Run the main workflow: `workflow {{PRIMARY_WORKFLOW}}`
|
||||||
|
|
||||||
|
📚 Documentation: {project-root}/docs/{{MODULE_CODE}}/README.md
|
||||||
|
💡 Examples: {project-root}/examples/{{MODULE_CODE}}/
|
||||||
|
|
||||||
|
{{CUSTOM_MESSAGE}}
|
||||||
|
|
||||||
|
# Uninstall configuration
|
||||||
|
uninstall:
|
||||||
|
preserve_user_data: true
|
||||||
|
remove_paths:
|
||||||
|
- "{project-root}/bmad/{{MODULE_CODE}}"
|
||||||
|
- "{project-root}/docs/{{MODULE_CODE}}"
|
||||||
|
backup_before_remove: true
|
||||||
|
unregister_from_manifest: true
|
||||||
@@ -0,0 +1,231 @@
|
|||||||
|
/* eslint-disable unicorn/prefer-module, unicorn/prefer-node-protocol */
|
||||||
|
/**
|
||||||
|
* {{MODULE_NAME}} Module Installer
|
||||||
|
* Custom installation logic for complex module setup
|
||||||
|
*
|
||||||
|
* This is a template - replace {{VARIABLES}} with actual values
|
||||||
|
*/
|
||||||
|
|
||||||
|
// const fs = require('fs'); // Uncomment when implementing file operations
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Main installation function
|
||||||
|
* Called by BMAD installer when processing the module
|
||||||
|
*/
|
||||||
|
async function installModule(config) {
|
||||||
|
console.log('🚀 Installing {{MODULE_NAME}} module...');
|
||||||
|
console.log(` Version: ${config.version}`);
|
||||||
|
console.log(` Module Code: ${config.module_code}`);
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Step 1: Validate environment
|
||||||
|
await validateEnvironment(config);
|
||||||
|
|
||||||
|
// Step 2: Setup custom configurations
|
||||||
|
await setupConfigurations(config);
|
||||||
|
|
||||||
|
// Step 3: Initialize module-specific features
|
||||||
|
await initializeFeatures(config);
|
||||||
|
|
||||||
|
// Step 4: Run post-install tasks
|
||||||
|
await runPostInstallTasks(config);
|
||||||
|
|
||||||
|
console.log('✅ {{MODULE_NAME}} module installed successfully!');
|
||||||
|
return {
|
||||||
|
success: true,
|
||||||
|
message: 'Module installed and configured',
|
||||||
|
};
|
||||||
|
} catch (error) {
|
||||||
|
console.error('❌ Installation failed:', error.message);
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
error: error.message,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate that the environment meets module requirements
|
||||||
|
*/
|
||||||
|
async function validateEnvironment(config) {
|
||||||
|
console.log(' Validating environment...');
|
||||||
|
|
||||||
|
// TODO: Add environment checks
|
||||||
|
// Examples:
|
||||||
|
// - Check for required tools/binaries
|
||||||
|
// - Verify permissions
|
||||||
|
// - Check network connectivity
|
||||||
|
// - Validate API keys
|
||||||
|
|
||||||
|
// Placeholder validation
|
||||||
|
if (!config.project_root) {
|
||||||
|
throw new Error('Project root not defined');
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(' ✓ Environment validated');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setup module-specific configurations
|
||||||
|
*/
|
||||||
|
async function setupConfigurations(config) {
|
||||||
|
console.log(' Setting up configurations...');
|
||||||
|
|
||||||
|
// TODO: Add configuration setup
|
||||||
|
// Examples:
|
||||||
|
// - Create config files
|
||||||
|
// - Setup environment variables
|
||||||
|
// - Configure external services
|
||||||
|
// - Initialize settings
|
||||||
|
|
||||||
|
// Placeholder configuration
|
||||||
|
const configPath = path.join(config.project_root, 'bmad', config.module_code, 'config.json');
|
||||||
|
|
||||||
|
// Example of module config that would be created
|
||||||
|
// const moduleConfig = {
|
||||||
|
// installed: new Date().toISOString(),
|
||||||
|
// settings: {
|
||||||
|
// // Add default settings
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
|
||||||
|
// Note: This is a placeholder - actual implementation would write the file
|
||||||
|
console.log(` ✓ Would create config at: ${configPath}`);
|
||||||
|
console.log(' ✓ Configurations complete');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize module-specific features
|
||||||
|
*/
|
||||||
|
async function initializeFeatures(config) {
|
||||||
|
console.log(' Initializing features...');
|
||||||
|
|
||||||
|
// TODO: Add feature initialization
|
||||||
|
// Examples:
|
||||||
|
// - Create database schemas
|
||||||
|
// - Setup cron jobs
|
||||||
|
// - Initialize caches
|
||||||
|
// - Register webhooks
|
||||||
|
// - Setup file watchers
|
||||||
|
|
||||||
|
// Module-specific initialization based on type
|
||||||
|
switch (config.module_category) {
|
||||||
|
case 'data': {
|
||||||
|
await initializeDataFeatures(config);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'automation': {
|
||||||
|
await initializeAutomationFeatures(config);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'integration': {
|
||||||
|
await initializeIntegrationFeatures(config);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
console.log(' - Using standard initialization');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(' ✓ Features initialized');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize data-related features
|
||||||
|
*/
|
||||||
|
async function initializeDataFeatures(/* config */) {
|
||||||
|
console.log(' - Setting up data storage...');
|
||||||
|
// TODO: Setup databases, data folders, etc.
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize automation features
|
||||||
|
*/
|
||||||
|
async function initializeAutomationFeatures(/* config */) {
|
||||||
|
console.log(' - Setting up automation hooks...');
|
||||||
|
// TODO: Setup triggers, watchers, schedulers
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize integration features
|
||||||
|
*/
|
||||||
|
async function initializeIntegrationFeatures(/* config */) {
|
||||||
|
console.log(' - Setting up integrations...');
|
||||||
|
// TODO: Configure APIs, webhooks, external services
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run post-installation tasks
|
||||||
|
*/
|
||||||
|
async function runPostInstallTasks(/* config */) {
|
||||||
|
console.log(' Running post-install tasks...');
|
||||||
|
|
||||||
|
// TODO: Add post-install tasks
|
||||||
|
// Examples:
|
||||||
|
// - Generate sample data
|
||||||
|
// - Run initial workflows
|
||||||
|
// - Send notifications
|
||||||
|
// - Update registries
|
||||||
|
|
||||||
|
console.log(' ✓ Post-install tasks complete');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize database for the module (optional)
|
||||||
|
*/
|
||||||
|
async function initDatabase(/* config */) {
|
||||||
|
console.log(' Initializing database...');
|
||||||
|
|
||||||
|
// TODO: Add database initialization
|
||||||
|
// This function can be called from install-module-config.yaml
|
||||||
|
|
||||||
|
console.log(' ✓ Database initialized');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate sample data for the module (optional)
|
||||||
|
*/
|
||||||
|
async function generateSamples(config) {
|
||||||
|
console.log(' Generating sample data...');
|
||||||
|
|
||||||
|
// TODO: Create sample files, data, configurations
|
||||||
|
// This helps users understand how to use the module
|
||||||
|
|
||||||
|
const samplesPath = path.join(config.project_root, 'examples', config.module_code);
|
||||||
|
|
||||||
|
console.log(` - Would create samples at: ${samplesPath}`);
|
||||||
|
console.log(' ✓ Samples generated');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Uninstall the module (cleanup)
|
||||||
|
*/
|
||||||
|
async function uninstallModule(/* config */) {
|
||||||
|
console.log('🗑️ Uninstalling {{MODULE_NAME}} module...');
|
||||||
|
|
||||||
|
try {
|
||||||
|
// TODO: Add cleanup logic
|
||||||
|
// - Remove configurations
|
||||||
|
// - Clean up databases
|
||||||
|
// - Unregister services
|
||||||
|
// - Backup user data
|
||||||
|
|
||||||
|
console.log('✅ Module uninstalled successfully');
|
||||||
|
return { success: true };
|
||||||
|
} catch (error) {
|
||||||
|
console.error('❌ Uninstall failed:', error.message);
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
error: error.message,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Export functions for BMAD installer
|
||||||
|
module.exports = {
|
||||||
|
installModule,
|
||||||
|
initDatabase,
|
||||||
|
generateSamples,
|
||||||
|
uninstallModule,
|
||||||
|
};
|
||||||
521
bmad/bmb/workflows/create-module/instructions.md
Normal file
521
bmad/bmb/workflows/create-module/instructions.md
Normal file
@@ -0,0 +1,521 @@
|
|||||||
|
# Build Module - Interactive Module Builder Instructions
|
||||||
|
|
||||||
|
<critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical>
|
||||||
|
<critical>You MUST have already loaded and processed: {project-root}/bmad/bmb/workflows/create-module/workflow.yaml</critical>
|
||||||
|
<critical>Study existing modules in: {project-root}/bmad/ for patterns</critical>
|
||||||
|
<critical>Communicate in {communication_language} throughout the module creation process</critical>
|
||||||
|
|
||||||
|
<workflow>
|
||||||
|
|
||||||
|
<step n="-1" goal="Optional brainstorming for module ideas" optional="true">
|
||||||
|
<ask>Do you want to brainstorm module ideas first? [y/n]</ask>
|
||||||
|
|
||||||
|
<check>If yes:</check>
|
||||||
|
<action>Invoke brainstorming workflow: {brainstorming_workflow}</action>
|
||||||
|
<action>Pass context data: {brainstorming_context}</action>
|
||||||
|
<action>Wait for brainstorming session completion</action>
|
||||||
|
<action>Use brainstorming output to inform module concept, agent lineup, and workflow portfolio in following steps</action>
|
||||||
|
|
||||||
|
<check>If no:</check>
|
||||||
|
<action>Proceed directly to Step 0</action>
|
||||||
|
|
||||||
|
<template-output>brainstorming_results</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="0" goal="Check for module brief" optional="true">
|
||||||
|
<ask>Do you have a module brief or should we create one? [have/create/skip]</ask>
|
||||||
|
|
||||||
|
<check>If create:</check>
|
||||||
|
<action>Invoke module-brief workflow: {project-root}/bmad/bmb/workflows/module-brief/workflow.yaml</action>
|
||||||
|
<action>Wait for module brief completion</action>
|
||||||
|
<action>Load the module brief to use as blueprint</action>
|
||||||
|
|
||||||
|
<check>If have:</check>
|
||||||
|
<ask>Provide path to module brief document</ask>
|
||||||
|
<action>Load the module brief and use it to pre-populate all planning sections</action>
|
||||||
|
|
||||||
|
<check>If skip:</check>
|
||||||
|
<action>Proceed directly to Step 1</action>
|
||||||
|
|
||||||
|
<template-output>module_brief</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="1" goal="Define module concept and scope">
|
||||||
|
<critical>Load and study the complete module structure guide</critical>
|
||||||
|
<action>Load module structure guide: {module_structure_guide}</action>
|
||||||
|
<action>Understand module types (Simple/Standard/Complex)</action>
|
||||||
|
<action>Review directory structures and component guidelines</action>
|
||||||
|
<action>Study the installation infrastructure patterns</action>
|
||||||
|
|
||||||
|
<action>If brainstorming or module brief was completed, reference those results to guide the conversation</action>
|
||||||
|
|
||||||
|
<action>Guide user to articulate their module's vision, exploring its purpose, what it will help with, and who will use it</action>
|
||||||
|
|
||||||
|
<action>Based on their description, intelligently propose module details:</action>
|
||||||
|
|
||||||
|
**Module Identity Development:**
|
||||||
|
|
||||||
|
1. **Module name** - Extract from their description with proper title case
|
||||||
|
2. **Module code** - Generate kebab-case from name following patterns:
|
||||||
|
- Multi-word descriptive names → shortened kebab-case
|
||||||
|
- Domain-specific terms → recognizable abbreviations
|
||||||
|
- Present suggested code and confirm it works for paths like bmad/{{code}}/agents/
|
||||||
|
3. **Module purpose** - Refine their description into 1-2 clear sentences
|
||||||
|
4. **Target audience** - Infer from context or ask if unclear
|
||||||
|
|
||||||
|
**Module Theme Reference Categories:**
|
||||||
|
|
||||||
|
- Domain-Specific (Legal, Medical, Finance, Education)
|
||||||
|
- Creative (RPG/Gaming, Story Writing, Music Production)
|
||||||
|
- Technical (DevOps, Testing, Architecture, Security)
|
||||||
|
- Business (Project Management, Marketing, Sales)
|
||||||
|
- Personal (Journaling, Learning, Productivity)
|
||||||
|
|
||||||
|
<critical>Determine output location:</critical>
|
||||||
|
|
||||||
|
- Module will be created at {installer_output_folder}
|
||||||
|
|
||||||
|
<action>Store module identity for scaffolding</action>
|
||||||
|
|
||||||
|
<template-output>module_identity</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2" goal="Plan module components">
|
||||||
|
<action>Based on the module purpose, intelligently propose an initial component architecture</action>
|
||||||
|
|
||||||
|
**Agents Planning:**
|
||||||
|
|
||||||
|
<action>Suggest agents based on module purpose, considering agent types (Simple/Expert/Module) appropriate to each role</action>
|
||||||
|
|
||||||
|
**Example Agent Patterns by Domain:**
|
||||||
|
|
||||||
|
- Data/Analytics: Analyst, Designer, Builder roles
|
||||||
|
- Gaming/Creative: Game Master, Generator, Storytelling roles
|
||||||
|
- Team/Business: Manager, Facilitator, Documentation roles
|
||||||
|
|
||||||
|
<action>Present suggested agent list with types, explaining we can start with core ones and add others later</action>
|
||||||
|
<action>Confirm which agents resonate with their vision</action>
|
||||||
|
|
||||||
|
**Workflows Planning:**
|
||||||
|
|
||||||
|
<action>Intelligently suggest workflows that complement the proposed agents</action>
|
||||||
|
|
||||||
|
**Example Workflow Patterns by Domain:**
|
||||||
|
|
||||||
|
- Data/Analytics: analyze-dataset, create-dashboard, generate-report
|
||||||
|
- Gaming/Creative: session-prep, generate-encounter, world-building
|
||||||
|
- Team/Business: planning, facilitation, documentation workflows
|
||||||
|
|
||||||
|
<action>For each workflow, note whether it should be Document, Action, or Interactive type</action>
|
||||||
|
<action>Confirm which workflows are most important to start with</action>
|
||||||
|
<action>Determine which to create now vs placeholder</action>
|
||||||
|
|
||||||
|
**Tasks Planning (optional):**
|
||||||
|
<ask>Any special tasks that don't warrant full workflows?</ask>
|
||||||
|
|
||||||
|
<check>If tasks needed:</check>
|
||||||
|
<action>For each task, capture name, purpose, and whether standalone or supporting</action>
|
||||||
|
|
||||||
|
<template-output>module_components</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2b" goal="Determine module complexity">
|
||||||
|
<action>Based on components, intelligently determine module type using criteria:</action>
|
||||||
|
|
||||||
|
**Simple Module Criteria:**
|
||||||
|
|
||||||
|
- 1-2 agents, all Simple type
|
||||||
|
- 1-3 workflows
|
||||||
|
- No complex integrations
|
||||||
|
|
||||||
|
**Standard Module Criteria:**
|
||||||
|
|
||||||
|
- 2-4 agents with mixed types
|
||||||
|
- 3-8 workflows
|
||||||
|
- Some shared resources
|
||||||
|
|
||||||
|
**Complex Module Criteria:**
|
||||||
|
|
||||||
|
- 4+ agents or multiple Module-type agents
|
||||||
|
- 8+ workflows
|
||||||
|
- Complex interdependencies
|
||||||
|
- External integrations
|
||||||
|
|
||||||
|
<action>Present determined module type with explanation of what structure will be set up</action>
|
||||||
|
|
||||||
|
<template-output>module_type</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="3" goal="Create module directory structure">
|
||||||
|
<critical>Use module path determined in Step 1:</critical>
|
||||||
|
- The module base path is {{module_path}}
|
||||||
|
|
||||||
|
<action>Create base module directories at the determined path:</action>
|
||||||
|
|
||||||
|
```
|
||||||
|
{{module_code}}/
|
||||||
|
├── agents/ # Agent definitions
|
||||||
|
├── workflows/ # Workflow folders
|
||||||
|
├── tasks/ # Task files (if any)
|
||||||
|
├── templates/ # Shared templates
|
||||||
|
├── data/ # Module data files
|
||||||
|
├── config.yaml # Module configuration
|
||||||
|
└── README.md # Module documentation
|
||||||
|
```
|
||||||
|
|
||||||
|
<action>Create installer directory:</action>
|
||||||
|
|
||||||
|
```
|
||||||
|
{{module_code}}/
|
||||||
|
├── _module-installer/
|
||||||
|
│ ├── install-module-config.yaml
|
||||||
|
│ ├── installer.js (optional)
|
||||||
|
│ └── assets/ # Files to copy during install
|
||||||
|
├── config.yaml # Runtime configuration
|
||||||
|
├── agents/ # Agent configs (optional)
|
||||||
|
├── workflows/ # Workflow instances
|
||||||
|
└── data/ # User data directory
|
||||||
|
```
|
||||||
|
|
||||||
|
<template-output>directory_structure</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="4" goal="Generate module configuration">
|
||||||
|
Create the main module config.yaml:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# {{module_name}} Module Configuration
|
||||||
|
module_name: {{module_name}}
|
||||||
|
module_code: {{module_code}}
|
||||||
|
author: {{user_name}}
|
||||||
|
description: {{module_purpose}}
|
||||||
|
|
||||||
|
# Module paths
|
||||||
|
module_root: "{project-root}/bmad/{{module_code}}"
|
||||||
|
installer_path: "{project-root}/bmad/{{module_code}}"
|
||||||
|
|
||||||
|
# Component counts
|
||||||
|
agents:
|
||||||
|
count: {{agent_count}}
|
||||||
|
list: {{agent_list}}
|
||||||
|
|
||||||
|
workflows:
|
||||||
|
count: {{workflow_count}}
|
||||||
|
list: {{workflow_list}}
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
count: {{task_count}}
|
||||||
|
list: {{task_list}}
|
||||||
|
|
||||||
|
# Module-specific settings
|
||||||
|
{{custom_settings}}
|
||||||
|
|
||||||
|
# Output configuration
|
||||||
|
output_folder: "{project-root}/docs/{{module_code}}"
|
||||||
|
data_folder: "{{determined_module_path}}/data"
|
||||||
|
```
|
||||||
|
|
||||||
|
<critical>Save location:</critical>
|
||||||
|
|
||||||
|
- Save to {{module_path}}/config.yaml
|
||||||
|
|
||||||
|
<template-output>module_config</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="5" goal="Create first agent" optional="true">
|
||||||
|
<ask>Create your first agent now? [yes/no]</ask>
|
||||||
|
|
||||||
|
<check>If yes:</check>
|
||||||
|
<action>Invoke agent builder workflow: {agent_builder}</action>
|
||||||
|
<action>Pass module_components as context input</action>
|
||||||
|
<action>Guide them to create the primary agent for the module</action>
|
||||||
|
|
||||||
|
<critical>Save to module's agents folder:</critical>
|
||||||
|
|
||||||
|
- Save to {{module_path}}/agents/
|
||||||
|
|
||||||
|
<check>If no:</check>
|
||||||
|
<action>Create placeholder file in agents folder with TODO notes including agent name, purpose, and type</action>
|
||||||
|
|
||||||
|
<template-output>first_agent</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="6" goal="Create first workflow" optional="true">
|
||||||
|
<ask>Create your first workflow now? [yes/no]</ask>
|
||||||
|
|
||||||
|
<check>If yes:</check>
|
||||||
|
<action>Invoke workflow builder: {workflow_builder}</action>
|
||||||
|
<action>Pass module_components as context input</action>
|
||||||
|
<action>Guide them to create the primary workflow</action>
|
||||||
|
|
||||||
|
<critical>Save to module's workflows folder:</critical>
|
||||||
|
|
||||||
|
- Save to {{module_path}}/workflows/
|
||||||
|
|
||||||
|
<check>If no:</check>
|
||||||
|
<action>Create placeholder workflow folder structure with TODO notes for workflow.yaml, instructions.md, and template.md if document workflow</action>
|
||||||
|
|
||||||
|
<template-output>first_workflow</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="7" goal="Setup module installer">
|
||||||
|
<action>Load installer templates from: {installer_templates}</action>
|
||||||
|
|
||||||
|
Create install-module-config.yaml:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# {{module_name}} Installation Configuration
|
||||||
|
module_name: { { module_name } }
|
||||||
|
module_code: { { module_code } }
|
||||||
|
installation_date: { { date } }
|
||||||
|
|
||||||
|
# Installation steps
|
||||||
|
install_steps:
|
||||||
|
- name: 'Create directories'
|
||||||
|
action: 'mkdir'
|
||||||
|
paths:
|
||||||
|
- '{project-root}/bmad/{{module_code}}'
|
||||||
|
- '{project-root}/bmad/{{module_code}}/data'
|
||||||
|
- '{project-root}/bmad/{{module_code}}/agents'
|
||||||
|
|
||||||
|
- name: 'Copy configuration'
|
||||||
|
action: 'copy'
|
||||||
|
source: '{installer_path}/config.yaml'
|
||||||
|
dest: '{project-root}/bmad/{{module_code}}/config.yaml'
|
||||||
|
|
||||||
|
- name: 'Register module'
|
||||||
|
action: 'register'
|
||||||
|
manifest: '{project-root}/bmad/_cfg/manifest.yaml'
|
||||||
|
|
||||||
|
# External assets (if any)
|
||||||
|
external_assets:
|
||||||
|
- description: '{{asset_description}}'
|
||||||
|
source: 'assets/{{filename}}'
|
||||||
|
dest: '{{destination_path}}'
|
||||||
|
|
||||||
|
# Post-install message
|
||||||
|
post_install_message: |
|
||||||
|
{{module_name}} has been installed successfully!
|
||||||
|
|
||||||
|
To get started:
|
||||||
|
1. Load any {{module_code}} agent
|
||||||
|
2. Use *help to see available commands
|
||||||
|
3. Check README.md for full documentation
|
||||||
|
```
|
||||||
|
|
||||||
|
Create installer.js stub (optional):
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// {{module_name}} Module Installer
|
||||||
|
// This is a placeholder for complex installation logic
|
||||||
|
|
||||||
|
function installModule(config) {
|
||||||
|
console.log('Installing {{module_name}} module...');
|
||||||
|
|
||||||
|
// TODO: Add any complex installation logic here
|
||||||
|
// Examples:
|
||||||
|
// - Database setup
|
||||||
|
// - API key configuration
|
||||||
|
// - External service registration
|
||||||
|
// - File system preparation
|
||||||
|
|
||||||
|
console.log('{{module_name}} module installed successfully!');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { installModule };
|
||||||
|
```
|
||||||
|
|
||||||
|
<template-output>installer_config</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="8" goal="Create module documentation">
|
||||||
|
Generate comprehensive README.md:
|
||||||
|
|
||||||
|
````markdown
|
||||||
|
# {{module_name}}
|
||||||
|
|
||||||
|
{{module_purpose}}
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
This module provides:
|
||||||
|
{{component_summary}}
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bmad install {{module_code}}
|
||||||
|
```
|
||||||
|
````
|
||||||
|
|
||||||
|
## Components
|
||||||
|
|
||||||
|
### Agents ({{agent_count}})
|
||||||
|
|
||||||
|
{{agent_documentation}}
|
||||||
|
|
||||||
|
### Workflows ({{workflow_count}})
|
||||||
|
|
||||||
|
{{workflow_documentation}}
|
||||||
|
|
||||||
|
### Tasks ({{task_count}})
|
||||||
|
|
||||||
|
{{task_documentation}}
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
1. **Load the main agent:**
|
||||||
|
|
||||||
|
```
|
||||||
|
agent {{primary_agent}}
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **View available commands:**
|
||||||
|
|
||||||
|
```
|
||||||
|
*help
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Run the main workflow:**
|
||||||
|
```
|
||||||
|
workflow {{primary_workflow}}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Module Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
{{directory_tree}}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
The module can be configured in `bmad/{{module_code}}/config.yaml`
|
||||||
|
|
||||||
|
Key settings:
|
||||||
|
{{configuration_options}}
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### Example 1: {{example_use_case}}
|
||||||
|
|
||||||
|
{{example_walkthrough}}
|
||||||
|
|
||||||
|
## Development Roadmap
|
||||||
|
|
||||||
|
- [ ] {{roadmap_item_1}}
|
||||||
|
- [ ] {{roadmap_item_2}}
|
||||||
|
- [ ] {{roadmap_item_3}}
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
To extend this module:
|
||||||
|
|
||||||
|
1. Add new agents using `create-agent` workflow
|
||||||
|
2. Add new workflows using `create-workflow` workflow
|
||||||
|
3. Submit improvements via pull request
|
||||||
|
|
||||||
|
## Author
|
||||||
|
|
||||||
|
Created by {{user_name}} on {{date}}
|
||||||
|
|
||||||
|
````
|
||||||
|
|
||||||
|
<template-output>module_readme</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="9" goal="Generate component roadmap">
|
||||||
|
Create a development roadmap for remaining components:
|
||||||
|
|
||||||
|
**TODO.md file:**
|
||||||
|
```markdown
|
||||||
|
# {{module_name}} Development Roadmap
|
||||||
|
|
||||||
|
## Phase 1: Core Components
|
||||||
|
{{phase1_tasks}}
|
||||||
|
|
||||||
|
## Phase 2: Enhanced Features
|
||||||
|
{{phase2_tasks}}
|
||||||
|
|
||||||
|
## Phase 3: Polish and Integration
|
||||||
|
{{phase3_tasks}}
|
||||||
|
|
||||||
|
## Quick Commands
|
||||||
|
|
||||||
|
Create new agent:
|
||||||
|
````
|
||||||
|
|
||||||
|
workflow create-agent
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Create new workflow:
|
||||||
|
```
|
||||||
|
|
||||||
|
workflow create-workflow
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
{{development_notes}}
|
||||||
|
```
|
||||||
|
|
||||||
|
Ask if user wants to:
|
||||||
|
|
||||||
|
1. Continue building more components now
|
||||||
|
2. Save roadmap for later development
|
||||||
|
3. Test what's been built so far
|
||||||
|
|
||||||
|
<template-output>development_roadmap</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="10" goal="Validate and finalize module">
|
||||||
|
<action>Run validation checks:</action>
|
||||||
|
|
||||||
|
**Structure validation:**
|
||||||
|
|
||||||
|
- All required directories created
|
||||||
|
- Config files properly formatted
|
||||||
|
- Installer configuration valid
|
||||||
|
|
||||||
|
**Component validation:**
|
||||||
|
|
||||||
|
- At least one agent or workflow exists (or planned)
|
||||||
|
- All references use correct paths
|
||||||
|
- Module code consistent throughout
|
||||||
|
|
||||||
|
**Documentation validation:**
|
||||||
|
|
||||||
|
- README.md complete
|
||||||
|
- Installation instructions clear
|
||||||
|
- Examples provided
|
||||||
|
|
||||||
|
<action>Present summary to {user_name}:</action>
|
||||||
|
|
||||||
|
- Module name and code
|
||||||
|
- Location path
|
||||||
|
- Agent count (created vs planned)
|
||||||
|
- Workflow count (created vs planned)
|
||||||
|
- Task count
|
||||||
|
- Installer status
|
||||||
|
|
||||||
|
<action>Provide next steps guidance:</action>
|
||||||
|
|
||||||
|
1. Complete remaining components using roadmap
|
||||||
|
2. Run the BMAD Method installer to this project location
|
||||||
|
3. Select 'Compile Agents' option after confirming folder
|
||||||
|
4. Module will be compiled and available for use
|
||||||
|
5. Test with bmad install command
|
||||||
|
6. Share or integrate with existing system
|
||||||
|
|
||||||
|
<ask>Would you like to:
|
||||||
|
|
||||||
|
- Create another component now?
|
||||||
|
- Test the module installation?
|
||||||
|
- Exit and continue later?
|
||||||
|
</ask>
|
||||||
|
|
||||||
|
<template-output>module_summary</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
</workflow>
|
||||||
310
bmad/bmb/workflows/create-module/module-structure.md
Normal file
310
bmad/bmb/workflows/create-module/module-structure.md
Normal file
@@ -0,0 +1,310 @@
|
|||||||
|
# BMAD Module Structure Guide
|
||||||
|
|
||||||
|
## What is a Module?
|
||||||
|
|
||||||
|
A BMAD module is a self-contained package of agents, workflows, tasks, and resources that work together to provide specialized functionality. Think of it as an expansion pack for the BMAD Method.
|
||||||
|
|
||||||
|
## Module Architecture
|
||||||
|
|
||||||
|
### Core Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
project-root/
|
||||||
|
├── bmad/{module-code}/ # Source code
|
||||||
|
│ ├── agents/ # Agent definitions
|
||||||
|
│ ├── workflows/ # Workflow folders
|
||||||
|
│ ├── tasks/ # Task files
|
||||||
|
│ ├── templates/ # Shared templates
|
||||||
|
│ ├── data/ # Static data
|
||||||
|
│ ├── config.yaml # Module config
|
||||||
|
│ └── README.md # Documentation
|
||||||
|
│
|
||||||
|
└── bmad/{module-code}/ # Runtime instance
|
||||||
|
├── _module-installer/ # Installation files
|
||||||
|
│ ├── install-module-config.yaml
|
||||||
|
│ ├── installer.js # Optional
|
||||||
|
│ └── assets/ # Install assets
|
||||||
|
├── config.yaml # User config
|
||||||
|
├── agents/ # Agent overrides
|
||||||
|
├── workflows/ # Workflow instances
|
||||||
|
└── data/ # User data
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Module Types by Complexity
|
||||||
|
|
||||||
|
### Simple Module (1-2 agents, 2-3 workflows)
|
||||||
|
|
||||||
|
Perfect for focused, single-purpose tools.
|
||||||
|
|
||||||
|
**Example: Code Review Module**
|
||||||
|
|
||||||
|
- 1 Reviewer Agent
|
||||||
|
- 2 Workflows: quick-review, deep-review
|
||||||
|
- Clear, narrow scope
|
||||||
|
|
||||||
|
### Standard Module (3-5 agents, 5-10 workflows)
|
||||||
|
|
||||||
|
Comprehensive solution for a domain.
|
||||||
|
|
||||||
|
**Example: Project Management Module**
|
||||||
|
|
||||||
|
- PM Agent, Scrum Master Agent, Analyst Agent
|
||||||
|
- Workflows: sprint-planning, retrospective, roadmap, user-stories
|
||||||
|
- Integrated component ecosystem
|
||||||
|
|
||||||
|
### Complex Module (5+ agents, 10+ workflows)
|
||||||
|
|
||||||
|
Full platform or framework.
|
||||||
|
|
||||||
|
**Example: RPG Toolkit Module**
|
||||||
|
|
||||||
|
- DM Agent, NPC Agent, Monster Agent, Loot Agent, Map Agent
|
||||||
|
- 15+ workflows for every aspect of game management
|
||||||
|
- Multiple interconnected systems
|
||||||
|
|
||||||
|
## Module Naming Conventions
|
||||||
|
|
||||||
|
### Module Code (kebab-case)
|
||||||
|
|
||||||
|
- `data-viz` - Data Visualization
|
||||||
|
- `team-collab` - Team Collaboration
|
||||||
|
- `rpg-toolkit` - RPG Toolkit
|
||||||
|
- `legal-assist` - Legal Assistant
|
||||||
|
|
||||||
|
### Module Name (Title Case)
|
||||||
|
|
||||||
|
- "Data Visualization Suite"
|
||||||
|
- "Team Collaboration Platform"
|
||||||
|
- "RPG Game Master Toolkit"
|
||||||
|
- "Legal Document Assistant"
|
||||||
|
|
||||||
|
## Component Guidelines
|
||||||
|
|
||||||
|
### Agents per Module
|
||||||
|
|
||||||
|
**Recommended Distribution:**
|
||||||
|
|
||||||
|
- **Primary Agent (1)**: The main interface/orchestrator
|
||||||
|
- **Specialist Agents (2-4)**: Domain-specific experts
|
||||||
|
- **Utility Agents (0-2)**: Helper/support functions
|
||||||
|
|
||||||
|
**Anti-patterns to Avoid:**
|
||||||
|
|
||||||
|
- Too many overlapping agents
|
||||||
|
- Agents that could be combined
|
||||||
|
- Agents without clear purpose
|
||||||
|
|
||||||
|
### Workflows per Module
|
||||||
|
|
||||||
|
**Categories:**
|
||||||
|
|
||||||
|
- **Core Workflows (2-3)**: Essential functionality
|
||||||
|
- **Feature Workflows (3-5)**: Specific capabilities
|
||||||
|
- **Utility Workflows (2-3)**: Supporting operations
|
||||||
|
- **Admin Workflows (0-2)**: Maintenance/config
|
||||||
|
|
||||||
|
**Workflow Complexity Guide:**
|
||||||
|
|
||||||
|
- Simple: 3-5 steps, single output
|
||||||
|
- Standard: 5-10 steps, multiple outputs
|
||||||
|
- Complex: 10+ steps, conditional logic, sub-workflows
|
||||||
|
|
||||||
|
### Tasks per Module
|
||||||
|
|
||||||
|
Tasks should be used for:
|
||||||
|
|
||||||
|
- Single-operation utilities
|
||||||
|
- Shared subroutines
|
||||||
|
- Quick actions that don't warrant workflows
|
||||||
|
|
||||||
|
## Module Dependencies
|
||||||
|
|
||||||
|
### Internal Dependencies
|
||||||
|
|
||||||
|
- Agents can reference module workflows
|
||||||
|
- Workflows can invoke module tasks
|
||||||
|
- Tasks can use module templates
|
||||||
|
|
||||||
|
### External Dependencies
|
||||||
|
|
||||||
|
- Reference other modules via full paths
|
||||||
|
- Declare dependencies in config.yaml
|
||||||
|
- Version compatibility notes
|
||||||
|
|
||||||
|
## Installation Infrastructure
|
||||||
|
|
||||||
|
### Required: install-module-config.yaml
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
module_name: 'Module Name'
|
||||||
|
module_code: 'module-code'
|
||||||
|
|
||||||
|
install_steps:
|
||||||
|
- name: 'Create directories'
|
||||||
|
action: 'mkdir'
|
||||||
|
paths: [...]
|
||||||
|
|
||||||
|
- name: 'Copy files'
|
||||||
|
action: 'copy'
|
||||||
|
mappings: [...]
|
||||||
|
|
||||||
|
- name: 'Register module'
|
||||||
|
action: 'register'
|
||||||
|
```
|
||||||
|
|
||||||
|
### Optional: installer.js
|
||||||
|
|
||||||
|
For complex installations requiring:
|
||||||
|
|
||||||
|
- Database setup
|
||||||
|
- API configuration
|
||||||
|
- System integration
|
||||||
|
- Permission management
|
||||||
|
|
||||||
|
### Optional: External Assets
|
||||||
|
|
||||||
|
Files that get copied outside the module:
|
||||||
|
|
||||||
|
- System configurations
|
||||||
|
- User templates
|
||||||
|
- Shared resources
|
||||||
|
- Integration scripts
|
||||||
|
|
||||||
|
## Module Lifecycle
|
||||||
|
|
||||||
|
### Development Phases
|
||||||
|
|
||||||
|
1. **Planning Phase**
|
||||||
|
- Define scope and purpose
|
||||||
|
- Identify components
|
||||||
|
- Design architecture
|
||||||
|
|
||||||
|
2. **Scaffolding Phase**
|
||||||
|
- Create directory structure
|
||||||
|
- Generate configurations
|
||||||
|
- Setup installer
|
||||||
|
|
||||||
|
3. **Building Phase**
|
||||||
|
- Create agents incrementally
|
||||||
|
- Build workflows progressively
|
||||||
|
- Add tasks as needed
|
||||||
|
|
||||||
|
4. **Testing Phase**
|
||||||
|
- Test individual components
|
||||||
|
- Verify integration
|
||||||
|
- Validate installation
|
||||||
|
|
||||||
|
5. **Deployment Phase**
|
||||||
|
- Package module
|
||||||
|
- Document usage
|
||||||
|
- Distribute/share
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
### Module Cohesion
|
||||||
|
|
||||||
|
- All components should relate to module theme
|
||||||
|
- Clear boundaries between modules
|
||||||
|
- No feature creep
|
||||||
|
|
||||||
|
### Progressive Enhancement
|
||||||
|
|
||||||
|
- Start with MVP (1 agent, 2 workflows)
|
||||||
|
- Add components based on usage
|
||||||
|
- Refactor as patterns emerge
|
||||||
|
|
||||||
|
### Documentation Standards
|
||||||
|
|
||||||
|
- Every module needs README.md
|
||||||
|
- Each agent needs purpose statement
|
||||||
|
- Workflows need clear descriptions
|
||||||
|
- Include examples and quickstart
|
||||||
|
|
||||||
|
### Naming Consistency
|
||||||
|
|
||||||
|
- Use module code prefix for uniqueness
|
||||||
|
- Consistent naming patterns within module
|
||||||
|
- Clear, descriptive names
|
||||||
|
|
||||||
|
## Example Modules
|
||||||
|
|
||||||
|
### Example 1: Personal Productivity
|
||||||
|
|
||||||
|
```
|
||||||
|
productivity/
|
||||||
|
├── agents/
|
||||||
|
│ ├── task-manager.md # GTD methodology
|
||||||
|
│ └── focus-coach.md # Pomodoro timer
|
||||||
|
├── workflows/
|
||||||
|
│ ├── daily-planning/ # Morning routine
|
||||||
|
│ ├── weekly-review/ # Week retrospective
|
||||||
|
│ └── project-setup/ # New project init
|
||||||
|
└── config.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
### Example 2: Content Creation
|
||||||
|
|
||||||
|
```
|
||||||
|
content/
|
||||||
|
├── agents/
|
||||||
|
│ ├── writer.md # Blog/article writer
|
||||||
|
│ ├── editor.md # Copy editor
|
||||||
|
│ └── seo-optimizer.md # SEO specialist
|
||||||
|
├── workflows/
|
||||||
|
│ ├── blog-post/ # Full blog creation
|
||||||
|
│ ├── social-media/ # Social content
|
||||||
|
│ ├── email-campaign/ # Email sequence
|
||||||
|
│ └── content-calendar/ # Planning
|
||||||
|
└── templates/
|
||||||
|
├── blog-template.md
|
||||||
|
└── email-template.md
|
||||||
|
```
|
||||||
|
|
||||||
|
### Example 3: DevOps Automation
|
||||||
|
|
||||||
|
```
|
||||||
|
devops/
|
||||||
|
├── agents/
|
||||||
|
│ ├── deploy-master.md # Deployment orchestrator
|
||||||
|
│ ├── monitor.md # System monitoring
|
||||||
|
│ ├── incident-responder.md # Incident management
|
||||||
|
│ └── infra-architect.md # Infrastructure design
|
||||||
|
├── workflows/
|
||||||
|
│ ├── ci-cd-setup/ # Pipeline creation
|
||||||
|
│ ├── deploy-app/ # Application deployment
|
||||||
|
│ ├── rollback/ # Emergency rollback
|
||||||
|
│ ├── health-check/ # System verification
|
||||||
|
│ └── incident-response/ # Incident handling
|
||||||
|
├── tasks/
|
||||||
|
│ ├── check-status.md # Quick status check
|
||||||
|
│ └── notify-team.md # Team notifications
|
||||||
|
└── data/
|
||||||
|
└── runbooks/ # Operational guides
|
||||||
|
```
|
||||||
|
|
||||||
|
## Module Evolution Pattern
|
||||||
|
|
||||||
|
```
|
||||||
|
Simple Module → Standard Module → Complex Module → Module Suite
|
||||||
|
(MVP) (Enhanced) (Complete) (Ecosystem)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Common Pitfalls
|
||||||
|
|
||||||
|
1. **Over-engineering**: Starting too complex
|
||||||
|
2. **Under-planning**: No clear architecture
|
||||||
|
3. **Poor boundaries**: Module does too much
|
||||||
|
4. **Weak integration**: Components don't work together
|
||||||
|
5. **Missing docs**: No clear usage guide
|
||||||
|
|
||||||
|
## Success Metrics
|
||||||
|
|
||||||
|
A well-designed module has:
|
||||||
|
|
||||||
|
- ✅ Clear, focused purpose
|
||||||
|
- ✅ Cohesive components
|
||||||
|
- ✅ Smooth installation
|
||||||
|
- ✅ Comprehensive docs
|
||||||
|
- ✅ Room for growth
|
||||||
|
- ✅ Happy users!
|
||||||
40
bmad/bmb/workflows/create-module/workflow.yaml
Normal file
40
bmad/bmb/workflows/create-module/workflow.yaml
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# Build Module Workflow Configuration
|
||||||
|
name: create-module
|
||||||
|
description: "Interactive workflow to build complete BMAD modules with agents, workflows, tasks, and installation infrastructure"
|
||||||
|
author: "BMad"
|
||||||
|
|
||||||
|
# Critical variables load from config_source
|
||||||
|
config_source: "{project-root}/bmad/bmb/config.yaml"
|
||||||
|
custom_module_location: "{config_source}:custom_module_location"
|
||||||
|
communication_language: "{config_source}:communication_language"
|
||||||
|
user_name: "{config_source}:user_name"
|
||||||
|
|
||||||
|
# Reference guides for module building
|
||||||
|
module_structure_guide: "{installed_path}/module-structure.md"
|
||||||
|
installer_templates: "{installed_path}/installer-templates/"
|
||||||
|
|
||||||
|
# Use existing build workflows
|
||||||
|
agent_builder: "{project-root}/bmad/bmb/workflows/create-agent/workflow.yaml"
|
||||||
|
workflow_builder: "{project-root}/bmad/bmb/workflows/create-workflow/workflow.yaml"
|
||||||
|
brainstorming_workflow: "{project-root}/bmad/core/workflows/brainstorming/workflow.yaml"
|
||||||
|
brainstorming_context: "{installed_path}/brainstorm-context.md"
|
||||||
|
|
||||||
|
# Optional docs that help understand module patterns
|
||||||
|
recommended_inputs:
|
||||||
|
- module_brief: "{output_folder}/module-brief-*.md"
|
||||||
|
- brainstorming_results: "{output_folder}/brainstorming-*.md"
|
||||||
|
- bmm_module: "{project-root}/bmad/bmm/"
|
||||||
|
- cis_module: "{project-root}/bmad/cis/"
|
||||||
|
- existing_agents: "{project-root}/bmad/*/agents/"
|
||||||
|
- existing_workflows: "{project-root}/bmad/*/workflows/"
|
||||||
|
|
||||||
|
# Module path and component files
|
||||||
|
installed_path: "{project-root}/bmad/bmb/workflows/create-module"
|
||||||
|
template: false # This is an interactive scaffolding workflow
|
||||||
|
instructions: "{installed_path}/instructions.md"
|
||||||
|
validation: "{installed_path}/checklist.md"
|
||||||
|
|
||||||
|
# Output configuration - creates entire module structure
|
||||||
|
# Save to custom_module_location/{{module_code}}
|
||||||
|
installer_output_folder: "{custom_module_location}/{{module_code}}"
|
||||||
|
# Web bundle configuration
|
||||||
216
bmad/bmb/workflows/create-workflow/README.md
Normal file
216
bmad/bmb/workflows/create-workflow/README.md
Normal file
@@ -0,0 +1,216 @@
|
|||||||
|
# Build Workflow
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The Build Workflow is an interactive workflow builder that guides you through creating new BMAD workflows with proper structure, conventions, and validation. It ensures all workflows follow best practices for optimal human-AI collaboration and are fully compliant with the BMAD Core v6 workflow execution engine.
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- **Optional Brainstorming Phase**: Creative exploration of workflow ideas before structured development
|
||||||
|
- **Comprehensive Guidance**: Step-by-step process with detailed instructions and examples
|
||||||
|
- **Template-Based**: Uses proven templates for all workflow components
|
||||||
|
- **Convention Enforcement**: Ensures adherence to BMAD workflow creation guide
|
||||||
|
- **README Generation**: Automatically creates comprehensive documentation
|
||||||
|
- **Validation Built-In**: Includes checklist generation for quality assurance
|
||||||
|
- **Type-Aware**: Adapts to document, action, interactive, autonomous, or meta-workflow types
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Basic Invocation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
workflow create-workflow
|
||||||
|
```
|
||||||
|
|
||||||
|
### Through BMad Builder Agent
|
||||||
|
|
||||||
|
```
|
||||||
|
*create-workflow
|
||||||
|
```
|
||||||
|
|
||||||
|
### What You'll Be Asked
|
||||||
|
|
||||||
|
1. **Optional**: Whether to brainstorm workflow ideas first (creative exploration phase)
|
||||||
|
2. Workflow name and target module
|
||||||
|
3. Workflow purpose and type (enhanced by brainstorming insights if used)
|
||||||
|
4. Metadata (description, author, outputs)
|
||||||
|
5. Step-by-step design (goals, variables, flow)
|
||||||
|
6. Whether to include optional components
|
||||||
|
|
||||||
|
## Workflow Structure
|
||||||
|
|
||||||
|
### Files Included
|
||||||
|
|
||||||
|
```
|
||||||
|
create-workflow/
|
||||||
|
├── workflow.yaml # Configuration and metadata
|
||||||
|
├── instructions.md # Step-by-step execution guide
|
||||||
|
├── checklist.md # Validation criteria
|
||||||
|
├── workflow-creation-guide.md # Comprehensive reference guide
|
||||||
|
├── README.md # This file
|
||||||
|
└── workflow-template/ # Templates for new workflows
|
||||||
|
├── workflow.yaml
|
||||||
|
├── instructions.md
|
||||||
|
├── template.md
|
||||||
|
├── checklist.md
|
||||||
|
└── README.md
|
||||||
|
```
|
||||||
|
|
||||||
|
## Workflow Process
|
||||||
|
|
||||||
|
### Phase 0: Optional Brainstorming (Step -1)
|
||||||
|
|
||||||
|
- **Creative Exploration**: Option to brainstorm workflow ideas before structured development
|
||||||
|
- **Design Concept Development**: Generate multiple approaches and explore different possibilities
|
||||||
|
- **Requirement Clarification**: Use brainstorming output to inform workflow purpose, type, and structure
|
||||||
|
- **Enhanced Creativity**: Leverage AI brainstorming tools for innovative workflow design
|
||||||
|
|
||||||
|
The brainstorming phase invokes the CIS brainstorming workflow to:
|
||||||
|
|
||||||
|
- Explore workflow ideas and approaches
|
||||||
|
- Clarify requirements and use cases
|
||||||
|
- Generate creative solutions for complex automation needs
|
||||||
|
- Inform the structured workflow building process
|
||||||
|
|
||||||
|
### Phase 1: Planning (Steps 0-3)
|
||||||
|
|
||||||
|
- Load workflow creation guide and conventions
|
||||||
|
- Define workflow purpose, name, and type (informed by brainstorming if used)
|
||||||
|
- Gather metadata and configuration details
|
||||||
|
- Design step structure and flow
|
||||||
|
|
||||||
|
### Phase 2: Generation (Steps 4-8)
|
||||||
|
|
||||||
|
- Create workflow.yaml with proper configuration
|
||||||
|
- Generate instructions.md with XML-structured steps
|
||||||
|
- Create template.md (for document workflows)
|
||||||
|
- Generate validation checklist
|
||||||
|
- Create supporting data files (optional)
|
||||||
|
|
||||||
|
### Phase 3: Documentation and Validation (Steps 9-11)
|
||||||
|
|
||||||
|
- Create comprehensive README.md (MANDATORY)
|
||||||
|
- Test and validate workflow structure
|
||||||
|
- Provide usage instructions and next steps
|
||||||
|
|
||||||
|
## Output
|
||||||
|
|
||||||
|
### Generated Workflow Folder
|
||||||
|
|
||||||
|
Creates a complete workflow folder at:
|
||||||
|
`{project-root}/bmad/{{target_module}}/workflows/{{workflow_name}}/`
|
||||||
|
|
||||||
|
### Files Created
|
||||||
|
|
||||||
|
**Always Created:**
|
||||||
|
|
||||||
|
- `workflow.yaml` - Configuration with paths and variables
|
||||||
|
- `README.md` - Comprehensive documentation (MANDATORY as of v6)
|
||||||
|
- `instructions.md` - Execution steps (if not template-only workflow)
|
||||||
|
|
||||||
|
**Conditionally Created:**
|
||||||
|
|
||||||
|
- `template.md` - Document structure (for document workflows)
|
||||||
|
- `checklist.md` - Validation criteria (optional but recommended)
|
||||||
|
- Supporting data files (CSV, JSON, etc. as needed)
|
||||||
|
|
||||||
|
### Output Structure
|
||||||
|
|
||||||
|
For document workflows, the README documents:
|
||||||
|
|
||||||
|
- Workflow purpose and use cases
|
||||||
|
- Usage examples with actual commands
|
||||||
|
- Input expectations
|
||||||
|
- Output structure and location
|
||||||
|
- Best practices
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- Access to workflow creation guide
|
||||||
|
- BMAD Core v6 project structure
|
||||||
|
- Module to host the new workflow (bmm, bmb, cis, or custom)
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
### Before Starting
|
||||||
|
|
||||||
|
1. **Consider Brainstorming**: If you're unsure about the workflow approach, use the optional brainstorming phase
|
||||||
|
2. Review the workflow creation guide to understand conventions
|
||||||
|
3. Have a clear understanding of the workflow's purpose (or be ready to explore it creatively)
|
||||||
|
4. Know which type of workflow you're creating (document, action, etc.) or be open to discovery
|
||||||
|
5. Identify any data files or references needed
|
||||||
|
|
||||||
|
### Creative Workflow Design
|
||||||
|
|
||||||
|
The create-workflow now supports a **seamless transition from creative ideation to structured implementation**:
|
||||||
|
|
||||||
|
- **"I need a workflow for something..."** → Start with brainstorming to explore possibilities
|
||||||
|
- **Brainstorm** → Generate multiple approaches and clarify requirements
|
||||||
|
- **Structured workflow** → Build the actual workflow using insights from brainstorming
|
||||||
|
- **One seamless session** → Complete the entire process from idea to implementation
|
||||||
|
|
||||||
|
### During Execution
|
||||||
|
|
||||||
|
1. Follow kebab-case naming conventions
|
||||||
|
2. Be specific with step goals and instructions
|
||||||
|
3. Use descriptive variable names (snake_case)
|
||||||
|
4. Set appropriate limits ("3-5 items maximum")
|
||||||
|
5. Include examples where helpful
|
||||||
|
|
||||||
|
### After Completion
|
||||||
|
|
||||||
|
1. Test the newly created workflow
|
||||||
|
2. Validate against the checklist
|
||||||
|
3. Ensure README is comprehensive and accurate
|
||||||
|
4. Test all file paths and variable references
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Issue: Generated workflow won't execute
|
||||||
|
|
||||||
|
- **Solution**: Verify all file paths in workflow.yaml use proper variable substitution
|
||||||
|
- **Check**: Ensure installed_path and project-root are correctly set
|
||||||
|
|
||||||
|
### Issue: Variables not replacing in template
|
||||||
|
|
||||||
|
- **Solution**: Ensure variable names match exactly between instructions `<template-output>` tags and template `{{variables}}`
|
||||||
|
- **Check**: Use snake_case consistently
|
||||||
|
|
||||||
|
### Issue: README has placeholder text
|
||||||
|
|
||||||
|
- **Solution**: This workflow now enforces README generation - ensure Step 10 completed fully
|
||||||
|
- **Check**: No {WORKFLOW_TITLE} or similar placeholders should remain
|
||||||
|
|
||||||
|
## Customization
|
||||||
|
|
||||||
|
To modify this workflow:
|
||||||
|
|
||||||
|
1. Edit `instructions.md` to adjust the creation process
|
||||||
|
2. Update templates in `workflow-template/` to change generated files
|
||||||
|
3. Modify `workflow-creation-guide.md` to update conventions
|
||||||
|
4. Edit `checklist.md` to change validation criteria
|
||||||
|
|
||||||
|
## Version History
|
||||||
|
|
||||||
|
- **v6.0.0** - README.md now MANDATORY for all workflows
|
||||||
|
- Added comprehensive README template
|
||||||
|
- Enhanced validation for documentation
|
||||||
|
- Improved Step 10 with detailed README requirements
|
||||||
|
|
||||||
|
- **v5.0.0** - Initial BMAD Core v6 compatible version
|
||||||
|
- Template-based workflow generation
|
||||||
|
- Convention enforcement
|
||||||
|
- Validation checklist support
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
For issues or questions:
|
||||||
|
|
||||||
|
- Review `/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md`
|
||||||
|
- Check existing workflows in `/bmad/bmm/workflows/` for examples
|
||||||
|
- Validate against `/bmad/bmb/workflows/create-workflow/checklist.md`
|
||||||
|
- Consult BMAD Method v6 documentation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_Part of the BMad Method v6 - BMB (BMad Builder) Module_
|
||||||
197
bmad/bmb/workflows/create-workflow/brainstorm-context.md
Normal file
197
bmad/bmb/workflows/create-workflow/brainstorm-context.md
Normal file
@@ -0,0 +1,197 @@
|
|||||||
|
# Workflow Brainstorming Context
|
||||||
|
|
||||||
|
_Context provided to brainstorming workflow when creating a new BMAD workflow_
|
||||||
|
|
||||||
|
## Session Focus
|
||||||
|
|
||||||
|
You are brainstorming ideas for a **BMAD workflow** - a guided, multi-step process that helps users accomplish complex tasks with structure, consistency, and quality.
|
||||||
|
|
||||||
|
## What is a BMAD Workflow?
|
||||||
|
|
||||||
|
A workflow is a structured process that provides:
|
||||||
|
|
||||||
|
- **Clear Steps**: Sequential operations with defined goals
|
||||||
|
- **User Guidance**: Prompts, questions, and decisions at each phase
|
||||||
|
- **Quality Output**: Documents, artifacts, or completed actions
|
||||||
|
- **Repeatability**: Same process yields consistent results
|
||||||
|
- **Type**: Document (creates docs), Action (performs tasks), Interactive (guides sessions), Autonomous (runs automated), Meta (orchestrates other workflows)
|
||||||
|
|
||||||
|
## Brainstorming Goals
|
||||||
|
|
||||||
|
Explore and define:
|
||||||
|
|
||||||
|
### 1. Problem and Purpose
|
||||||
|
|
||||||
|
- **What task needs structure?** (specific process users struggle with)
|
||||||
|
- **Why is this hard manually?** (complexity, inconsistency, missing steps)
|
||||||
|
- **What would ideal process look like?** (steps, checkpoints, outputs)
|
||||||
|
- **Who needs this?** (target users and their pain points)
|
||||||
|
|
||||||
|
### 2. Process Flow
|
||||||
|
|
||||||
|
- **How many phases?** (typically 3-10 major steps)
|
||||||
|
- **What's the sequence?** (logical flow from start to finish)
|
||||||
|
- **What decisions are needed?** (user choices that affect path)
|
||||||
|
- **What's optional vs required?** (flexibility points)
|
||||||
|
- **What checkpoints matter?** (validation, review, approval points)
|
||||||
|
|
||||||
|
### 3. Inputs and Outputs
|
||||||
|
|
||||||
|
- **What inputs are needed?** (documents, data, user answers)
|
||||||
|
- **What outputs are generated?** (documents, code, configurations)
|
||||||
|
- **What format?** (markdown, XML, YAML, actions)
|
||||||
|
- **What quality criteria?** (how to validate success)
|
||||||
|
|
||||||
|
### 4. Workflow Type and Style
|
||||||
|
|
||||||
|
- **Document Workflow?** Creates structured documents (PRDs, specs, reports)
|
||||||
|
- **Action Workflow?** Performs operations (refactoring, deployment, analysis)
|
||||||
|
- **Interactive Workflow?** Guides creative process (brainstorming, planning)
|
||||||
|
- **Autonomous Workflow?** Runs without user input (batch processing, generation)
|
||||||
|
- **Meta Workflow?** Orchestrates other workflows (project setup, module creation)
|
||||||
|
|
||||||
|
## Creative Constraints
|
||||||
|
|
||||||
|
A great BMAD workflow should be:
|
||||||
|
|
||||||
|
- **Focused**: Solves one problem well (not everything)
|
||||||
|
- **Structured**: Clear phases with defined goals
|
||||||
|
- **Flexible**: Optional steps, branching paths where appropriate
|
||||||
|
- **Validated**: Checklist to verify completeness and quality
|
||||||
|
- **Documented**: README explains when and how to use it
|
||||||
|
|
||||||
|
## Workflow Architecture Questions
|
||||||
|
|
||||||
|
### Core Structure
|
||||||
|
|
||||||
|
1. **Workflow name** (kebab-case, e.g., "product-brief")
|
||||||
|
2. **Purpose** (one sentence)
|
||||||
|
3. **Type** (document/action/interactive/autonomous/meta)
|
||||||
|
4. **Major phases** (3-10 high-level steps)
|
||||||
|
5. **Output** (what gets created)
|
||||||
|
|
||||||
|
### Process Details
|
||||||
|
|
||||||
|
1. **Required inputs** (what user must provide)
|
||||||
|
2. **Optional inputs** (what enhances results)
|
||||||
|
3. **Decision points** (where user chooses path)
|
||||||
|
4. **Checkpoints** (where to pause for approval)
|
||||||
|
5. **Variables** (data passed between steps)
|
||||||
|
|
||||||
|
### Quality and Validation
|
||||||
|
|
||||||
|
1. **Success criteria** (what defines "done")
|
||||||
|
2. **Validation checklist** (measurable quality checks)
|
||||||
|
3. **Common issues** (troubleshooting guidance)
|
||||||
|
4. **Best practices** (tips for optimal results)
|
||||||
|
|
||||||
|
## Workflow Pattern Examples
|
||||||
|
|
||||||
|
### Document Generation Workflows
|
||||||
|
|
||||||
|
- **Product Brief**: Idea → Vision → Features → Market → Output
|
||||||
|
- **PRD**: Requirements → User Stories → Acceptance Criteria → Document
|
||||||
|
- **Architecture**: Requirements → Decisions → Design → Diagrams → ADRs
|
||||||
|
- **Technical Spec**: Epic → Implementation → Testing → Deployment → Doc
|
||||||
|
|
||||||
|
### Action Workflows
|
||||||
|
|
||||||
|
- **Code Refactoring**: Analyze → Plan → Refactor → Test → Commit
|
||||||
|
- **Deployment**: Build → Test → Stage → Validate → Deploy → Monitor
|
||||||
|
- **Migration**: Assess → Plan → Convert → Validate → Deploy
|
||||||
|
- **Analysis**: Collect → Process → Analyze → Report → Recommend
|
||||||
|
|
||||||
|
### Interactive Workflows
|
||||||
|
|
||||||
|
- **Brainstorming**: Setup → Generate → Expand → Evaluate → Prioritize
|
||||||
|
- **Planning**: Context → Goals → Options → Decisions → Plan
|
||||||
|
- **Review**: Load → Analyze → Critique → Suggest → Document
|
||||||
|
|
||||||
|
### Meta Workflows
|
||||||
|
|
||||||
|
- **Project Setup**: Plan → Architecture → Stories → Setup → Initialize
|
||||||
|
- **Module Creation**: Brainstorm → Brief → Agents → Workflows → Install
|
||||||
|
- **Sprint Planning**: Backlog → Capacity → Stories → Commit → Kickoff
|
||||||
|
|
||||||
|
## Workflow Design Patterns
|
||||||
|
|
||||||
|
### Linear Flow
|
||||||
|
|
||||||
|
Simple sequence: Step 1 → Step 2 → Step 3 → Done
|
||||||
|
|
||||||
|
**Good for:**
|
||||||
|
|
||||||
|
- Document generation
|
||||||
|
- Structured analysis
|
||||||
|
- Sequential builds
|
||||||
|
|
||||||
|
### Branching Flow
|
||||||
|
|
||||||
|
Conditional paths: Step 1 → [Decision] → Path A or Path B → Merge → Done
|
||||||
|
|
||||||
|
**Good for:**
|
||||||
|
|
||||||
|
- Different project types
|
||||||
|
- Optional deep dives
|
||||||
|
- Scale-adaptive processes
|
||||||
|
|
||||||
|
### Iterative Flow
|
||||||
|
|
||||||
|
Refinement loops: Step 1 → Step 2 → [Review] → (Repeat if needed) → Done
|
||||||
|
|
||||||
|
**Good for:**
|
||||||
|
|
||||||
|
- Creative processes
|
||||||
|
- Quality refinement
|
||||||
|
- Approval cycles
|
||||||
|
|
||||||
|
### Router Flow
|
||||||
|
|
||||||
|
Type selection: [Select Type] → Load appropriate instructions → Execute → Done
|
||||||
|
|
||||||
|
**Good for:**
|
||||||
|
|
||||||
|
- Multi-mode workflows
|
||||||
|
- Reusable frameworks
|
||||||
|
- Flexible tools
|
||||||
|
|
||||||
|
## Suggested Brainstorming Techniques
|
||||||
|
|
||||||
|
Particularly effective for workflow ideation:
|
||||||
|
|
||||||
|
1. **Process Mapping**: Draw current painful process, identify improvements
|
||||||
|
2. **Step Decomposition**: Break complex task into atomic steps
|
||||||
|
3. **Checkpoint Thinking**: Where do users need pause/review/decision?
|
||||||
|
4. **Pain Point Analysis**: What makes current process frustrating?
|
||||||
|
5. **Success Visualization**: What does perfect execution look like?
|
||||||
|
|
||||||
|
## Key Questions to Answer
|
||||||
|
|
||||||
|
1. What manual process needs structure and guidance?
|
||||||
|
2. What makes this process hard or inconsistent today?
|
||||||
|
3. What are the 3-10 major phases/steps?
|
||||||
|
4. What document or output gets created?
|
||||||
|
5. What inputs are required from the user?
|
||||||
|
6. What decisions or choices affect the flow?
|
||||||
|
7. What quality criteria define success?
|
||||||
|
8. Document, Action, Interactive, Autonomous, or Meta workflow?
|
||||||
|
9. What makes this workflow valuable vs doing it manually?
|
||||||
|
10. What would make this workflow delightful to use?
|
||||||
|
|
||||||
|
## Output Goals
|
||||||
|
|
||||||
|
Generate:
|
||||||
|
|
||||||
|
- **Workflow name**: Clear, describes the process
|
||||||
|
- **Purpose statement**: One sentence explaining value
|
||||||
|
- **Workflow type**: Classification with rationale
|
||||||
|
- **Phase outline**: 3-10 major steps with goals
|
||||||
|
- **Input/output description**: What goes in, what comes out
|
||||||
|
- **Key decisions**: Where user makes choices
|
||||||
|
- **Success criteria**: How to know it worked
|
||||||
|
- **Unique value**: Why this workflow beats manual process
|
||||||
|
- **Use cases**: 3-5 scenarios where this workflow shines
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_This focused context helps create valuable, structured BMAD workflows_
|
||||||
94
bmad/bmb/workflows/create-workflow/checklist.md
Normal file
94
bmad/bmb/workflows/create-workflow/checklist.md
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
# Build Workflow - Validation Checklist
|
||||||
|
|
||||||
|
## Workflow Configuration (workflow.yaml)
|
||||||
|
|
||||||
|
- [ ] Name follows kebab-case convention
|
||||||
|
- [ ] Description clearly states workflow purpose
|
||||||
|
- [ ] All paths use proper variable substitution
|
||||||
|
- [ ] installed_path points to correct module location
|
||||||
|
- [ ] template/instructions paths are correct for workflow type
|
||||||
|
- [ ] Output file pattern is appropriate
|
||||||
|
- [ ] YAML syntax is valid (no parsing errors)
|
||||||
|
|
||||||
|
## Instructions Structure (instructions.md)
|
||||||
|
|
||||||
|
- [ ] Critical headers reference workflow engine
|
||||||
|
- [ ] All steps have sequential numbering
|
||||||
|
- [ ] Each step has a clear goal attribute
|
||||||
|
- [ ] Optional steps marked with optional="true"
|
||||||
|
- [ ] Repeating steps have appropriate repeat attributes
|
||||||
|
- [ ] All template-output tags have unique variable names
|
||||||
|
- [ ] Flow control (if any) has valid step references
|
||||||
|
|
||||||
|
## Template Structure (if document workflow)
|
||||||
|
|
||||||
|
- [ ] All sections have appropriate placeholders
|
||||||
|
- [ ] Variable names match template-output tags exactly
|
||||||
|
- [ ] Markdown formatting is valid
|
||||||
|
- [ ] Date and metadata fields included
|
||||||
|
- [ ] No unreferenced variables remain
|
||||||
|
|
||||||
|
## Content Quality
|
||||||
|
|
||||||
|
- [ ] Instructions are specific and actionable
|
||||||
|
- [ ] Examples provided where helpful
|
||||||
|
- [ ] Limits set for lists and content length
|
||||||
|
- [ ] User prompts are clear
|
||||||
|
- [ ] Step goals accurately describe outcomes
|
||||||
|
|
||||||
|
## Validation Checklist (if present)
|
||||||
|
|
||||||
|
- [ ] Criteria are measurable and specific
|
||||||
|
- [ ] Checks grouped logically by category
|
||||||
|
- [ ] Final validation summary included
|
||||||
|
- [ ] All critical requirements covered
|
||||||
|
|
||||||
|
## File System
|
||||||
|
|
||||||
|
- [ ] Workflow folder created in correct module
|
||||||
|
- [ ] All required files present based on workflow type
|
||||||
|
- [ ] File permissions allow execution
|
||||||
|
- [ ] No placeholder text remains (like {TITLE})
|
||||||
|
|
||||||
|
## Testing Readiness
|
||||||
|
|
||||||
|
- [ ] Workflow can be invoked without errors
|
||||||
|
- [ ] All required inputs are documented
|
||||||
|
- [ ] Output location is writable
|
||||||
|
- [ ] Dependencies (if any) are available
|
||||||
|
|
||||||
|
## Web Bundle Configuration (if applicable)
|
||||||
|
|
||||||
|
- [ ] web_bundle section present if needed
|
||||||
|
- [ ] Name, description, author copied from main config
|
||||||
|
- [ ] All file paths converted to bmad/-relative format
|
||||||
|
- [ ] NO {config_source} variables in web bundle
|
||||||
|
- [ ] NO {project-root} prefixes in paths
|
||||||
|
- [ ] Instructions path listed correctly
|
||||||
|
- [ ] Validation/checklist path listed correctly
|
||||||
|
- [ ] Template path listed (if document workflow)
|
||||||
|
- [ ] All data files referenced in instructions are listed
|
||||||
|
- [ ] All sub-workflows are included
|
||||||
|
- [ ] web_bundle_files array is complete:
|
||||||
|
- [ ] Instructions.md included
|
||||||
|
- [ ] Checklist.md included
|
||||||
|
- [ ] Template.md included (if applicable)
|
||||||
|
- [ ] All CSV/JSON data files included
|
||||||
|
- [ ] All referenced templates included
|
||||||
|
- [ ] All sub-workflow files included
|
||||||
|
- [ ] No external dependencies outside bundle
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
- [ ] README created (if requested)
|
||||||
|
- [ ] Usage instructions clear
|
||||||
|
- [ ] Example command provided
|
||||||
|
- [ ] Special requirements noted
|
||||||
|
- [ ] Web bundle deployment noted (if applicable)
|
||||||
|
|
||||||
|
## Final Validation
|
||||||
|
|
||||||
|
- [ ] Configuration: No issues
|
||||||
|
- [ ] Instructions: Complete and clear
|
||||||
|
- [ ] Template: Variables properly mapped
|
||||||
|
- [ ] Testing: Ready for test run
|
||||||
574
bmad/bmb/workflows/create-workflow/instructions.md
Normal file
574
bmad/bmb/workflows/create-workflow/instructions.md
Normal file
@@ -0,0 +1,574 @@
|
|||||||
|
# Build Workflow - Workflow Builder Instructions
|
||||||
|
|
||||||
|
<critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical>
|
||||||
|
<critical>You MUST have already loaded and processed: {project-root}/bmad/bmb/workflows/create-workflow/workflow.yaml</critical>
|
||||||
|
<critical>You MUST fully understand the workflow creation guide at: {workflow_creation_guide}</critical>
|
||||||
|
<critical>Study the guide thoroughly to follow ALL conventions for optimal human-AI collaboration</critical>
|
||||||
|
<critical>Communicate in {communication_language} throughout the workflow creation process</critical>
|
||||||
|
|
||||||
|
<workflow>
|
||||||
|
|
||||||
|
<step n="-1" goal="Optional brainstorming phase" optional="true">
|
||||||
|
<ask>Do you want to brainstorm workflow ideas first? [y/n]</ask>
|
||||||
|
|
||||||
|
<action if="user_response == 'y' or user_response == 'yes'">
|
||||||
|
Invoke brainstorming workflow to explore ideas and design concepts:
|
||||||
|
- Workflow: {project-root}/bmad/core/workflows/brainstorming/workflow.yaml
|
||||||
|
- Context data: {installed_path}/brainstorm-context.md
|
||||||
|
- Purpose: Generate creative workflow ideas, explore different approaches, and clarify requirements
|
||||||
|
|
||||||
|
The brainstorming output will inform:
|
||||||
|
|
||||||
|
- Workflow purpose and goals
|
||||||
|
- Workflow type selection
|
||||||
|
- Step design and structure
|
||||||
|
- User experience considerations
|
||||||
|
- Technical requirements
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action if="user_response == 'n' or user_response == 'no'">
|
||||||
|
Skip brainstorming and proceed directly to workflow building process.
|
||||||
|
</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="0" goal="Load and understand workflow conventions">
|
||||||
|
<action>Load the complete workflow creation guide from: {workflow_creation_guide}</action>
|
||||||
|
<action>Study all sections thoroughly including:
|
||||||
|
- Core concepts (tasks vs workflows, workflow types)
|
||||||
|
- Workflow structure (required/optional files, patterns)
|
||||||
|
- Writing instructions (step attributes, XML tags, flow control)
|
||||||
|
- Templates and variables (syntax, naming, sources)
|
||||||
|
- Validation best practices
|
||||||
|
- Common pitfalls to avoid
|
||||||
|
</action>
|
||||||
|
<action>Load template files from: {workflow_template_path}/</action>
|
||||||
|
<critical>You must follow ALL conventions from the guide to ensure optimal human-AI collaboration</critical>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="1" goal="Define workflow purpose and type">
|
||||||
|
Ask the user:
|
||||||
|
- What is the workflow name? (kebab-case, e.g., "product-brief")
|
||||||
|
- What module will it belong to? (e.g., "bmm", "bmb", "cis")
|
||||||
|
- Store as {{target_module}} for output path determination
|
||||||
|
- What is the workflow's main purpose?
|
||||||
|
- What type of workflow is this?
|
||||||
|
- Document workflow (generates documents like PRDs, specs)
|
||||||
|
- Action workflow (performs actions like refactoring)
|
||||||
|
- Interactive workflow (guided sessions)
|
||||||
|
- Autonomous workflow (runs without user input)
|
||||||
|
- Meta-workflow (coordinates other workflows)
|
||||||
|
|
||||||
|
Based on type, determine which files are needed:
|
||||||
|
|
||||||
|
- Document: workflow.yaml + template.md + instructions.md + checklist.md
|
||||||
|
- Action: workflow.yaml + instructions.md
|
||||||
|
- Others: Varies based on requirements
|
||||||
|
|
||||||
|
<critical>Determine output location based on module assignment:</critical>
|
||||||
|
|
||||||
|
- If workflow belongs to module: Save to {module_output_folder}
|
||||||
|
- If standalone workflow: Save to {standalone_output_folder}
|
||||||
|
|
||||||
|
Store decisions for later use.
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2" goal="Gather workflow metadata">
|
||||||
|
Collect essential configuration details:
|
||||||
|
- Description (clear purpose statement)
|
||||||
|
- Author name (default to user_name or "BMad")
|
||||||
|
- Output file naming pattern
|
||||||
|
- Any required input documents
|
||||||
|
- Any required tools or dependencies
|
||||||
|
|
||||||
|
Create the workflow name in kebab-case and verify it doesn't conflict with existing workflows.
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="3" goal="Design workflow steps">
|
||||||
|
Work with user to outline the workflow steps:
|
||||||
|
- How many major steps? (Recommend 5-10 max)
|
||||||
|
- What is the goal of each step?
|
||||||
|
- Which steps are optional?
|
||||||
|
- Which steps need user input?
|
||||||
|
- Which steps should repeat?
|
||||||
|
- What variables/outputs does each step produce?
|
||||||
|
|
||||||
|
<ask>What instruction style should this workflow favor?
|
||||||
|
|
||||||
|
**1. Intent-Based (Recommended)** - Guide the LLM with goals and principles, let it adapt conversations naturally
|
||||||
|
|
||||||
|
- More flexible and conversational
|
||||||
|
- LLM chooses appropriate questions based on context
|
||||||
|
- Better for complex discovery and iterative refinement
|
||||||
|
- Example: `<action>Guide user to define their target audience with specific demographics and needs</action>`
|
||||||
|
|
||||||
|
**2. Prescriptive** - Provide exact wording for questions and options
|
||||||
|
|
||||||
|
- More controlled and predictable
|
||||||
|
- Ensures consistency across runs
|
||||||
|
- Better for simple data collection or specific compliance needs
|
||||||
|
- Example: `<ask>What is your target platform? Choose: PC, Console, Mobile, Web</ask>`
|
||||||
|
|
||||||
|
Note: Your choice will be the _primary_ style, but we'll use the other when it makes more sense for specific steps.</ask>
|
||||||
|
|
||||||
|
<action>Store instruction_style preference (intent-based or prescriptive)</action>
|
||||||
|
<action>Explain that both styles have value and will be mixed appropriately</action>
|
||||||
|
|
||||||
|
Create a step outline with clear goals and outputs.
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="4" goal="Create workflow.yaml">
|
||||||
|
Load and use the template at: {template_workflow_yaml}
|
||||||
|
|
||||||
|
Replace all placeholders following the workflow creation guide conventions:
|
||||||
|
|
||||||
|
- {TITLE} → Proper case workflow name
|
||||||
|
- {WORKFLOW_CODE} → kebab-case name
|
||||||
|
- {WORKFLOW_DESCRIPTION} → Clear description
|
||||||
|
- {module-code} → Target module
|
||||||
|
- {file.md} → Output filename pattern
|
||||||
|
|
||||||
|
Include:
|
||||||
|
|
||||||
|
- All metadata from steps 1-2
|
||||||
|
- Proper paths for installed_path using variable substitution
|
||||||
|
- Template/instructions/validation paths based on workflow type:
|
||||||
|
- Document workflow: all files (template, instructions, validation)
|
||||||
|
- Action workflow: instructions only (template: false)
|
||||||
|
- Autonomous: set autonomous: true flag
|
||||||
|
- Required tools if any
|
||||||
|
- Recommended inputs if any
|
||||||
|
|
||||||
|
<critical>ALWAYS include the standard config block:</critical>
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Critical variables from config
|
||||||
|
config_source: '{project-root}/bmad/{{target_module}}/config.yaml'
|
||||||
|
output_folder: '{config_source}:output_folder'
|
||||||
|
user_name: '{config_source}:user_name'
|
||||||
|
communication_language: '{config_source}:communication_language'
|
||||||
|
date: system-generated
|
||||||
|
```
|
||||||
|
|
||||||
|
<critical>This standard config ensures workflows can run autonomously and communicate properly with users</critical>
|
||||||
|
|
||||||
|
Follow path conventions from guide:
|
||||||
|
|
||||||
|
- Use {project-root} for absolute paths
|
||||||
|
- Use {installed_path} for workflow components
|
||||||
|
- Use {config_source} for config references
|
||||||
|
|
||||||
|
<critical>Determine save location:</critical>
|
||||||
|
|
||||||
|
- Use the output folder determined in Step 1 (module or standalone)
|
||||||
|
- Write to {{output_folder}}/workflow.yaml
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="5" goal="Create instructions.md" if="workflow_type != 'template-only'">
|
||||||
|
Load and use the template at: {template_instructions}
|
||||||
|
|
||||||
|
Generate the instructions.md file following the workflow creation guide:
|
||||||
|
|
||||||
|
1. ALWAYS include critical headers:
|
||||||
|
- Workflow engine reference: {project-root}/bmad/core/tasks/workflow.xml
|
||||||
|
- workflow.yaml reference: must be loaded and processed
|
||||||
|
|
||||||
|
2. Structure with <workflow> tags containing all steps
|
||||||
|
|
||||||
|
3. For each step from design phase, follow guide conventions:
|
||||||
|
- Step attributes: n="X" goal="clear goal statement"
|
||||||
|
- Optional steps: optional="true"
|
||||||
|
- Repeating: repeat="3" or repeat="for-each-X" or repeat="until-approved"
|
||||||
|
- Conditional: if="condition"
|
||||||
|
- Sub-steps: Use 3a, 3b notation
|
||||||
|
|
||||||
|
4. Use proper XML tags from guide:
|
||||||
|
- Execution: <action>, <check>, <ask>, <goto>, <invoke-workflow>
|
||||||
|
- Output: <template-output>, <invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>, <critical>, <example>
|
||||||
|
- Flow: <loop>, <break>, <continue>
|
||||||
|
|
||||||
|
5. Best practices from guide:
|
||||||
|
- Keep steps focused (single goal)
|
||||||
|
- Be specific ("Write 1-2 paragraphs" not "Write about")
|
||||||
|
- Provide examples where helpful
|
||||||
|
- Set limits ("3-5 items maximum")
|
||||||
|
- Save checkpoints with <template-output>
|
||||||
|
|
||||||
|
<critical>Standard config variable usage:</critical>
|
||||||
|
|
||||||
|
Instructions MUST use the standard config variables where appropriate:
|
||||||
|
|
||||||
|
- Communicate in {communication_language} throughout the workflow
|
||||||
|
- Address user as {user_name} in greetings and summaries
|
||||||
|
- Write all output files to {output_folder} or subdirectories
|
||||||
|
- Include {date} in generated document headers
|
||||||
|
|
||||||
|
Example usage in instructions:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<action>Write document to {output_folder}/output-file.md</action>
|
||||||
|
<critical>Communicate all responses in {communication_language}</critical>
|
||||||
|
<output>Hello {user_name}, the workflow is complete!</output>
|
||||||
|
```
|
||||||
|
|
||||||
|
<critical>Applying instruction style preference:</critical>
|
||||||
|
|
||||||
|
Based on the {{instruction_style}} preference from Step 3, generate instructions using these patterns:
|
||||||
|
|
||||||
|
**Intent-Based Instructions (Recommended for most workflows):**
|
||||||
|
|
||||||
|
Focus on goals, principles, and desired outcomes. Let the LLM adapt the conversation naturally.
|
||||||
|
|
||||||
|
✅ **Good Examples:**
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Discovery and exploration -->
|
||||||
|
<action>Guide user to define their target audience with specific demographics, psychographics, and behavioral characteristics</action>
|
||||||
|
<action>Explore the user's vision for the product, asking probing questions to uncover core motivations and success criteria</action>
|
||||||
|
<action>Help user identify and prioritize key features based on user value and technical feasibility</action>
|
||||||
|
|
||||||
|
<!-- Validation and refinement -->
|
||||||
|
<action>Validate that the technical approach aligns with project constraints and team capabilities</action>
|
||||||
|
<action>Challenge assumptions about user needs and market fit with thought-provoking questions</action>
|
||||||
|
|
||||||
|
<!-- Complex iterative work -->
|
||||||
|
<action>Collaborate with user to refine the architecture, iterating until they're satisfied with the design</action>
|
||||||
|
```
|
||||||
|
|
||||||
|
❌ **Avoid (too prescriptive):**
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<ask>What is your target audience age range? Choose: 18-24, 25-34, 35-44, 45+</ask>
|
||||||
|
<ask>List exactly 3 key features in priority order</ask>
|
||||||
|
```
|
||||||
|
|
||||||
|
**When to use Intent-Based:**
|
||||||
|
|
||||||
|
- Complex discovery processes (user research, requirements gathering)
|
||||||
|
- Creative brainstorming and ideation
|
||||||
|
- Iterative refinement workflows
|
||||||
|
- When user input quality matters more than consistency
|
||||||
|
- Workflows requiring adaptation to context
|
||||||
|
|
||||||
|
**Prescriptive Instructions (Use selectively):**
|
||||||
|
|
||||||
|
Provide exact wording, specific options, and controlled interactions.
|
||||||
|
|
||||||
|
✅ **Good Examples:**
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Simple data collection -->
|
||||||
|
<ask>What is your target platform? Choose: PC, Console, Mobile, Web</ask>
|
||||||
|
<ask>Select monetization model: Premium, Free-to-Play, Subscription, Ad-Supported</ask>
|
||||||
|
|
||||||
|
<!-- Compliance and standards -->
|
||||||
|
<ask>Does this comply with GDPR requirements? [yes/no]</ask>
|
||||||
|
<ask>Choose documentation standard: JSDoc, TypeDoc, TSDoc</ask>
|
||||||
|
|
||||||
|
<!-- Binary decisions -->
|
||||||
|
<ask>Do you want to generate test cases? [yes/no]</ask>
|
||||||
|
<ask>Include performance benchmarks? [yes/no]</ask>
|
||||||
|
```
|
||||||
|
|
||||||
|
❌ **Avoid (too rigid for complex tasks):**
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<ask>What are your product goals? List exactly 5 goals, each 10-15 words</ask>
|
||||||
|
<ask>Describe your user persona in exactly 3 sentences</ask>
|
||||||
|
```
|
||||||
|
|
||||||
|
**When to use Prescriptive:**
|
||||||
|
|
||||||
|
- Simple data collection (platform, format, yes/no choices)
|
||||||
|
- Compliance verification and standards adherence
|
||||||
|
- Configuration with finite options
|
||||||
|
- When consistency is critical across all executions
|
||||||
|
- Quick setup wizards
|
||||||
|
|
||||||
|
**Mixing Both Styles (Best Practice):**
|
||||||
|
|
||||||
|
Even if user chose a primary style, use the other when appropriate:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Intent-based workflow with prescriptive moments -->
|
||||||
|
<step n="1" goal="Understand user vision">
|
||||||
|
<action>Explore the user's vision for their game, uncovering their creative intent and target experience</action>
|
||||||
|
<action>Ask probing questions about genre, themes, and emotional tone they want to convey</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2" goal="Capture basic metadata">
|
||||||
|
<ask>What is your target platform? Choose: PC, Console, Mobile, Web</ask> <!-- Prescriptive for simple choice -->
|
||||||
|
<ask>Select primary genre: Action, RPG, Strategy, Puzzle, Simulation, Other</ask>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="3" goal="Deep dive into gameplay">
|
||||||
|
<action>Guide user to articulate their core gameplay loop, exploring mechanics and player agency</action> <!-- Back to intent-based -->
|
||||||
|
<action>Help them identify what makes their game unique and compelling</action>
|
||||||
|
</step>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Guidelines for the chosen style:**
|
||||||
|
|
||||||
|
If user chose **Intent-Based**:
|
||||||
|
|
||||||
|
- Default to goal-oriented <action> tags
|
||||||
|
- Use open-ended guidance language
|
||||||
|
- Save prescriptive <ask> tags for simple data/choices
|
||||||
|
- Focus on "guide", "explore", "help user", "validate"
|
||||||
|
- Allow LLM to adapt questions to user responses
|
||||||
|
|
||||||
|
If user chose **Prescriptive**:
|
||||||
|
|
||||||
|
- Default to explicit <ask> tags with clear options
|
||||||
|
- Use precise wording for consistency
|
||||||
|
- Save intent-based <action> tags for complex discovery
|
||||||
|
- Focus on "choose", "select", "specify", "confirm"
|
||||||
|
- Provide structured choices when possible
|
||||||
|
|
||||||
|
**Remember:** The goal is optimal human-AI collaboration. Use whichever style best serves the user at each step.
|
||||||
|
|
||||||
|
<critical>Save location:</critical>
|
||||||
|
|
||||||
|
- Write to {{output_folder}}/instructions.md
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="6" goal="Create template.md" if="workflow_type == 'document'">
|
||||||
|
Load and use the template at: {template_template}
|
||||||
|
|
||||||
|
Generate the template.md file following guide conventions:
|
||||||
|
|
||||||
|
1. Document structure with clear sections
|
||||||
|
2. Variable syntax: {{variable_name}} using snake_case
|
||||||
|
3. Variable names MUST match <template-output> tags exactly from instructions
|
||||||
|
4. Include standard metadata header (optional - config variables available):
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Document Title
|
||||||
|
|
||||||
|
**Date:** {{date}}
|
||||||
|
**Author:** {{user_name}}
|
||||||
|
```
|
||||||
|
|
||||||
|
Note: {{date}} and {{user_name}} are optional in headers. Primary purpose of these variables:
|
||||||
|
- {{date}} - Gives agent current date awareness (not confused with training cutoff)
|
||||||
|
- {{user_name}} - Optional author attribution
|
||||||
|
- {{communication_language}} - NOT for document output! Tells agent how to communicate during execution
|
||||||
|
|
||||||
|
5. Follow naming conventions from guide:
|
||||||
|
- Use descriptive names: {{primary_user_journey}} not {{puj}}
|
||||||
|
- Snake_case for all variables
|
||||||
|
- Match instruction outputs precisely
|
||||||
|
|
||||||
|
Variable sources as per guide:
|
||||||
|
|
||||||
|
- workflow.yaml config values (user_name, communication_language, date, output_folder)
|
||||||
|
- User input runtime values
|
||||||
|
- Step outputs via <template-output>
|
||||||
|
- System variables (date, paths)
|
||||||
|
|
||||||
|
<critical>Standard config variables in templates:</critical>
|
||||||
|
|
||||||
|
Templates CAN optionally use these config variables:
|
||||||
|
|
||||||
|
- {{user_name}} - Document author (optional)
|
||||||
|
- {{date}} - Generation date (optional)
|
||||||
|
|
||||||
|
IMPORTANT: {{communication_language}} is NOT for document headers!
|
||||||
|
|
||||||
|
- Purpose: Tells agent how to communicate with user during workflow execution
|
||||||
|
- NOT for: Document output language or template headers
|
||||||
|
- Future: {{document_output_language}} will handle multilingual document generation
|
||||||
|
|
||||||
|
These variables are automatically available from workflow.yaml config block.
|
||||||
|
|
||||||
|
<critical>Save location:</critical>
|
||||||
|
|
||||||
|
- Write to {{output_folder}}/template.md
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="7" goal="Create validation checklist" optional="true">
|
||||||
|
Ask if user wants a validation checklist. If yes:
|
||||||
|
|
||||||
|
Load and use the template at: {template_checklist}
|
||||||
|
|
||||||
|
Create checklist.md following guide best practices:
|
||||||
|
|
||||||
|
1. Make criteria MEASURABLE and SPECIFIC
|
||||||
|
❌ "- [ ] Good documentation"
|
||||||
|
✅ "- [ ] Each function has JSDoc comments with parameters and return types"
|
||||||
|
|
||||||
|
2. Group checks logically:
|
||||||
|
- Structure: All sections present, no placeholders, proper formatting
|
||||||
|
- Content Quality: Clear and specific, technically accurate, consistent terminology
|
||||||
|
- Completeness: Ready for next phase, dependencies documented, action items defined
|
||||||
|
|
||||||
|
3. Include workflow-specific validations based on type:
|
||||||
|
- Document workflows: Template variables mapped, sections complete
|
||||||
|
- Action workflows: Actions clearly defined, error handling specified
|
||||||
|
- Interactive: User prompts clear, decision points documented
|
||||||
|
|
||||||
|
4. Add final validation section with issue lists
|
||||||
|
|
||||||
|
<critical>Save location:</critical>
|
||||||
|
|
||||||
|
- Write to {{output_folder}}/checklist.md
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="8" goal="Create supporting files" optional="true">
|
||||||
|
Ask if any supporting data files are needed:
|
||||||
|
- CSV files with data
|
||||||
|
- Example documents
|
||||||
|
- Reference materials
|
||||||
|
|
||||||
|
If yes, create placeholder files or copy from templates.
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="9" goal="Test and validate workflow">
|
||||||
|
Review the created workflow:
|
||||||
|
|
||||||
|
**Basic Validation:**
|
||||||
|
|
||||||
|
1. Verify all file paths are correct
|
||||||
|
2. Check variable names match between files
|
||||||
|
3. Ensure step numbering is sequential
|
||||||
|
4. Validate YAML syntax
|
||||||
|
5. Confirm all placeholders are replaced
|
||||||
|
|
||||||
|
**Standard Config Validation:** 6. Verify workflow.yaml contains standard config block:
|
||||||
|
|
||||||
|
- config_source defined
|
||||||
|
- output_folder, user_name, communication_language pulled from config
|
||||||
|
- date set to system-generated
|
||||||
|
|
||||||
|
7. Check instructions use config variables where appropriate
|
||||||
|
8. Verify template includes config variables in metadata (if document workflow)
|
||||||
|
|
||||||
|
**YAML/Instruction/Template Alignment:** 9. Cross-check all workflow.yaml variables against instruction usage:
|
||||||
|
|
||||||
|
- Are all yaml variables referenced in instructions.md OR template.md?
|
||||||
|
- Are there hardcoded values that should be variables?
|
||||||
|
- Do template variables match <template-output> tags in instructions?
|
||||||
|
|
||||||
|
10. Identify any unused yaml fields (bloat detection)
|
||||||
|
|
||||||
|
Show user a summary of created files and their locations.
|
||||||
|
Ask if they want to:
|
||||||
|
|
||||||
|
- Test run the workflow
|
||||||
|
- Make any adjustments
|
||||||
|
- Add additional steps or features
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="9b" goal="Configure web bundle (optional)">
|
||||||
|
<ask>Will this workflow need to be deployable as a web bundle? [yes/no]</ask>
|
||||||
|
|
||||||
|
If yes:
|
||||||
|
<action>Explain web bundle requirements:</action>
|
||||||
|
|
||||||
|
- Web bundles are self-contained and cannot use config_source variables
|
||||||
|
- All files must be explicitly listed in web_bundle_files
|
||||||
|
- File paths use bmad/ root (not {project-root})
|
||||||
|
|
||||||
|
<action>Configure web_bundle section in workflow.yaml:</action>
|
||||||
|
|
||||||
|
1. Copy core workflow metadata (name, description, author)
|
||||||
|
2. Convert all file paths to bmad/-relative paths:
|
||||||
|
- Remove {project-root}/ prefix
|
||||||
|
- Remove {config_source} references (use hardcoded values)
|
||||||
|
- Example: "{project-root}/bmad/bmm/workflows/x" → "bmad/bmm/workflows/x"
|
||||||
|
|
||||||
|
3. List ALL referenced files by scanning:
|
||||||
|
|
||||||
|
**Scan instructions.md for:**
|
||||||
|
- File paths in <action> tags
|
||||||
|
- Data files (CSV, JSON, YAML, etc.)
|
||||||
|
- Validation/checklist files
|
||||||
|
- Any <invoke-workflow> calls → must include that workflow's yaml file
|
||||||
|
- Any <goto> tags that reference other workflows
|
||||||
|
- Shared templates or includes
|
||||||
|
|
||||||
|
**Scan template.md for:**
|
||||||
|
- Any includes or references to other files
|
||||||
|
- Shared template fragments
|
||||||
|
|
||||||
|
**Critical: Workflow Dependencies**
|
||||||
|
- If instructions call another workflow, that workflow's yaml MUST be in web_bundle_files
|
||||||
|
- Example: `<invoke-workflow>{project-root}/bmad/core/workflows/x/workflow.yaml</invoke-workflow>`
|
||||||
|
→ Add "bmad/core/workflows/x/workflow.yaml" to web_bundle_files
|
||||||
|
|
||||||
|
4. Create web_bundle_files array with complete list
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle:
|
||||||
|
name: '{workflow_name}'
|
||||||
|
description: '{workflow_description}'
|
||||||
|
author: '{author}'
|
||||||
|
instructions: 'bmad/{module}/workflows/{workflow}/instructions.md'
|
||||||
|
validation: 'bmad/{module}/workflows/{workflow}/checklist.md'
|
||||||
|
template: 'bmad/{module}/workflows/{workflow}/template.md'
|
||||||
|
|
||||||
|
# Any data files (no config_source)
|
||||||
|
data_file: 'bmad/{module}/workflows/{workflow}/data.csv'
|
||||||
|
|
||||||
|
web_bundle_files:
|
||||||
|
- 'bmad/{module}/workflows/{workflow}/instructions.md'
|
||||||
|
- 'bmad/{module}/workflows/{workflow}/checklist.md'
|
||||||
|
- 'bmad/{module}/workflows/{workflow}/template.md'
|
||||||
|
- 'bmad/{module}/workflows/{workflow}/data.csv'
|
||||||
|
# Add every single file referenced anywhere
|
||||||
|
|
||||||
|
# CRITICAL: If this workflow invokes other workflows, use existing_workflows
|
||||||
|
# This signals the bundler to recursively include those workflows' web_bundles
|
||||||
|
existing_workflows:
|
||||||
|
- workflow_variable_name: 'bmad/path/to/workflow.yaml'
|
||||||
|
```
|
||||||
|
|
||||||
|
**Example with existing_workflows:**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle:
|
||||||
|
name: 'brainstorm-game'
|
||||||
|
description: 'Game brainstorming with CIS workflow'
|
||||||
|
author: 'BMad'
|
||||||
|
instructions: 'bmad/bmm/workflows/brainstorm-game/instructions.md'
|
||||||
|
template: false
|
||||||
|
web_bundle_files:
|
||||||
|
- 'bmad/bmm/workflows/brainstorm-game/instructions.md'
|
||||||
|
- 'bmad/mmm/workflows/brainstorm-game/game-context.md'
|
||||||
|
- 'bmad/core/workflows/brainstorming/workflow.yaml'
|
||||||
|
existing_workflows:
|
||||||
|
- core_brainstorming: 'bmad/core/workflows/brainstorming/workflow.yaml'
|
||||||
|
```
|
||||||
|
|
||||||
|
**What existing_workflows does:**
|
||||||
|
|
||||||
|
- Tells the bundler this workflow invokes another workflow
|
||||||
|
- Bundler recursively includes the invoked workflow's entire web_bundle
|
||||||
|
- Essential for meta-workflows that orchestrate other workflows
|
||||||
|
- Maps workflow variable names to their bmad/-relative paths
|
||||||
|
|
||||||
|
<action>Validate web bundle completeness:</action>
|
||||||
|
|
||||||
|
- Ensure no {config_source} variables remain
|
||||||
|
- Verify all file paths are listed
|
||||||
|
- Check that paths are bmad/-relative
|
||||||
|
- If workflow uses <invoke-workflow>, add to existing_workflows
|
||||||
|
|
||||||
|
<template-output>web_bundle_config</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="10" goal="Document and finalize">
|
||||||
|
<action>Create a brief README for the workflow folder explaining purpose, how to invoke, expected inputs, generated outputs, and any special requirements</action>
|
||||||
|
|
||||||
|
<action>Provide {user_name} with workflow completion summary in {communication_language}:</action>
|
||||||
|
|
||||||
|
- Location of created workflow: {{output_folder}}
|
||||||
|
- Command to run it: `workflow {workflow_name}`
|
||||||
|
- Next steps:
|
||||||
|
- Run the BMAD Method installer to this project location
|
||||||
|
- Select 'Compile Agents (Quick rebuild of all agent .md files)' after confirming the folder
|
||||||
|
- This will compile the new workflow and make it available for use
|
||||||
|
</step>
|
||||||
|
|
||||||
|
</workflow>
|
||||||
615
bmad/bmb/workflows/create-workflow/workflow-creation-guide.md
Normal file
615
bmad/bmb/workflows/create-workflow/workflow-creation-guide.md
Normal file
@@ -0,0 +1,615 @@
|
|||||||
|
# BMAD Workflow Creation Guide
|
||||||
|
|
||||||
|
Create structured, repeatable workflows for human-AI collaboration in BMAD v6.
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
1. [Quick Start](#quick-start)
|
||||||
|
2. [Core Concepts](#core-concepts)
|
||||||
|
3. [Workflow Structure](#workflow-structure)
|
||||||
|
4. [Writing Instructions](#writing-instructions)
|
||||||
|
5. [Templates and Variables](#templates--variables)
|
||||||
|
6. [Flow Control](#flow-control)
|
||||||
|
7. [Validation](#validation)
|
||||||
|
8. [Examples](#examples)
|
||||||
|
9. [Best Practices](#best-practices)
|
||||||
|
10. [Troubleshooting](#troubleshooting)
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
### Minimal Workflow (3 minutes)
|
||||||
|
|
||||||
|
Create a folder with these files:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# workflow.yaml (REQUIRED)
|
||||||
|
name: 'my-workflow'
|
||||||
|
description: 'What this workflow does'
|
||||||
|
installed_path: '{project-root}/bmad/module/workflows/my-workflow'
|
||||||
|
template: '{installed_path}/template.md'
|
||||||
|
instructions: '{installed_path}/instructions.md'
|
||||||
|
default_output_file: '{output_folder}/output.md'
|
||||||
|
```
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# template.md
|
||||||
|
|
||||||
|
# {{project_name}} Output
|
||||||
|
|
||||||
|
{{main_content}}
|
||||||
|
```
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# instructions.md
|
||||||
|
|
||||||
|
<critical>The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.xml</critical>
|
||||||
|
<critical>You MUST have already loaded and processed: workflow.yaml</critical>
|
||||||
|
|
||||||
|
<workflow>
|
||||||
|
<step n="1" goal="Generate content">
|
||||||
|
Create the main content for this document.
|
||||||
|
<template-output>main_content</template-output>
|
||||||
|
</step>
|
||||||
|
</workflow>
|
||||||
|
```
|
||||||
|
|
||||||
|
That's it! To execute, tell the BMAD agent: `workflow my-workflow`
|
||||||
|
|
||||||
|
## Core Concepts
|
||||||
|
|
||||||
|
### Tasks vs Workflows
|
||||||
|
|
||||||
|
| Aspect | Task | Workflow |
|
||||||
|
| -------------- | ------------------ | ----------------------- |
|
||||||
|
| **Purpose** | Single operation | Multi-step process |
|
||||||
|
| **Format** | XML in `.md` file | Folder with YAML config |
|
||||||
|
| **Location** | `/src/core/tasks/` | `/bmad/*/workflows/` |
|
||||||
|
| **User Input** | Minimal | Extensive |
|
||||||
|
| **Output** | Variable | Usually documents |
|
||||||
|
|
||||||
|
### Workflow Types
|
||||||
|
|
||||||
|
1. **Document Workflows** - Generate PRDs, specs, architectures
|
||||||
|
2. **Action Workflows** - Refactor code, run tools, orchestrate tasks
|
||||||
|
3. **Interactive Workflows** - Brainstorming, meditations, guided sessions
|
||||||
|
4. **Autonomous Workflows** - Run without human input (story generation)
|
||||||
|
5. **Meta-Workflows** - Coordinate other workflows
|
||||||
|
|
||||||
|
## Workflow Structure
|
||||||
|
|
||||||
|
### Required Files
|
||||||
|
|
||||||
|
```
|
||||||
|
my-workflow/
|
||||||
|
└── workflow.yaml # REQUIRED - Configuration
|
||||||
|
```
|
||||||
|
|
||||||
|
### Optional Files
|
||||||
|
|
||||||
|
```
|
||||||
|
my-workflow/
|
||||||
|
├── template.md # Document structure
|
||||||
|
├── instructions.md # Step-by-step guide
|
||||||
|
├── checklist.md # Validation criteria
|
||||||
|
└── [data files] # Supporting resources
|
||||||
|
```
|
||||||
|
|
||||||
|
### workflow.yaml Configuration
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Basic metadata
|
||||||
|
name: 'workflow-name'
|
||||||
|
description: 'Clear purpose statement'
|
||||||
|
|
||||||
|
# Paths
|
||||||
|
installed_path: '{project-root}/bmad/module/workflows/name'
|
||||||
|
template: '{installed_path}/template.md' # or false
|
||||||
|
instructions: '{installed_path}/instructions.md' # or false
|
||||||
|
validation: '{installed_path}/checklist.md' # optional
|
||||||
|
|
||||||
|
# Output
|
||||||
|
default_output_file: '{output_folder}/document.md'
|
||||||
|
|
||||||
|
# Advanced options
|
||||||
|
autonomous: true # Skip user checkpoints
|
||||||
|
recommended_inputs: # Expected input docs
|
||||||
|
- input_doc: 'path/to/doc.md'
|
||||||
|
```
|
||||||
|
|
||||||
|
### Common Patterns
|
||||||
|
|
||||||
|
**Full Document Workflow** (most common)
|
||||||
|
|
||||||
|
- Has: All 4 files
|
||||||
|
- Use for: PRDs, architectures, specs
|
||||||
|
|
||||||
|
**Action Workflow** (no template)
|
||||||
|
|
||||||
|
- Has: workflow.yaml + instructions.md
|
||||||
|
- Use for: Refactoring, tool orchestration
|
||||||
|
|
||||||
|
**Autonomous Workflow** (no interaction)
|
||||||
|
|
||||||
|
- Has: workflow.yaml + template + instructions
|
||||||
|
- Use for: Automated generation
|
||||||
|
|
||||||
|
## Writing Instructions
|
||||||
|
|
||||||
|
### Basic Structure
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# instructions.md
|
||||||
|
|
||||||
|
<critical>The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.xml</critical>
|
||||||
|
<critical>You MUST have already loaded and processed: workflow.yaml</critical>
|
||||||
|
|
||||||
|
<workflow>
|
||||||
|
|
||||||
|
<step n="1" goal="Clear goal statement">
|
||||||
|
Instructions for this step.
|
||||||
|
<template-output>variable_name</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2" goal="Next goal" optional="true">
|
||||||
|
Optional step instructions.
|
||||||
|
<template-output>another_variable</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
</workflow>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step Attributes
|
||||||
|
|
||||||
|
- `n="X"` - Step number (required)
|
||||||
|
- `goal="..."` - What the step accomplishes (required)
|
||||||
|
- `optional="true"` - User can skip
|
||||||
|
- `repeat="3"` - Repeat N times
|
||||||
|
- `if="condition"` - Conditional execution
|
||||||
|
|
||||||
|
### Content Formats
|
||||||
|
|
||||||
|
**Markdown Format** (human-friendly):
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<step n="1" goal="Define goals">
|
||||||
|
Write 1-3 bullet points about project success:
|
||||||
|
- User outcomes
|
||||||
|
- Business value
|
||||||
|
- Measurable results
|
||||||
|
|
||||||
|
<template-output>goals</template-output>
|
||||||
|
</step>
|
||||||
|
```
|
||||||
|
|
||||||
|
**XML Format** (precise control):
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<step n="2" goal="Validate input">
|
||||||
|
<action>Load validation criteria</action>
|
||||||
|
<check if="validation fails">
|
||||||
|
<goto step="1">Return to previous step</goto>
|
||||||
|
</check>
|
||||||
|
<template-output>validated_data</template-output>
|
||||||
|
</step>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Templates and Variables
|
||||||
|
|
||||||
|
### Variable Syntax
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# template.md
|
||||||
|
|
||||||
|
# {{project_name}} Document
|
||||||
|
|
||||||
|
## Section
|
||||||
|
|
||||||
|
{{section_content}}
|
||||||
|
|
||||||
|
_Generated on {{date}}_
|
||||||
|
```
|
||||||
|
|
||||||
|
### Variable Sources
|
||||||
|
|
||||||
|
1. **workflow.yaml** - Config values
|
||||||
|
2. **User input** - Runtime values
|
||||||
|
3. **Step outputs** - `<template-output>` tags
|
||||||
|
4. **System** - Date, paths, etc.
|
||||||
|
|
||||||
|
### Naming Convention
|
||||||
|
|
||||||
|
- Use snake_case: `{{user_requirements}}`
|
||||||
|
- Be descriptive: `{{primary_user_journey}}` not `{{puj}}`
|
||||||
|
|
||||||
|
## Flow Control
|
||||||
|
|
||||||
|
### Sub-Steps
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<step n="3" goal="Process items">
|
||||||
|
<step n="3a" title="Gather data">
|
||||||
|
<action>Collect information</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="3b" title="Analyze">
|
||||||
|
<action>Process collected data</action>
|
||||||
|
<template-output>analysis</template-output>
|
||||||
|
</step>
|
||||||
|
</step>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Repetition
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- Fixed repetitions -->
|
||||||
|
<step n="4" repeat="3">
|
||||||
|
<action>Generate example {{iteration}}</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<!-- Conditional repetition -->
|
||||||
|
<step n="5" repeat="until-approved">
|
||||||
|
<action>Generate content</action>
|
||||||
|
<ask>Satisfactory? (y/n)</ask>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<!-- For-each repetition -->
|
||||||
|
<step n="6" repeat="for-each-epic">
|
||||||
|
<action>Define epic {{epic_name}}</action>
|
||||||
|
</step>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Conditional Execution
|
||||||
|
|
||||||
|
**Single Action (use `action if=""`):**
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<step n="6" goal="Load context">
|
||||||
|
<action if="file exists">Load existing document</action>
|
||||||
|
<action if="new project">Initialize from template</action>
|
||||||
|
</step>
|
||||||
|
```
|
||||||
|
|
||||||
|
**Multiple Actions (use `<check if="">...</check>`):**
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<step n="7" goal="Validate">
|
||||||
|
<action>Check requirements</action>
|
||||||
|
<check if="incomplete">
|
||||||
|
<action>Log validation errors</action>
|
||||||
|
<goto step="2">Return to gathering</goto>
|
||||||
|
</check>
|
||||||
|
<check if="complete">
|
||||||
|
<action>Mark as validated</action>
|
||||||
|
<continue>Proceed</continue>
|
||||||
|
</check>
|
||||||
|
</step>
|
||||||
|
```
|
||||||
|
|
||||||
|
**When to use which:**
|
||||||
|
|
||||||
|
- **`<action if="">`** - Single conditional action (cleaner, more concise)
|
||||||
|
- **`<check if="">...</check>`** - Multiple items under same condition (explicit scope)
|
||||||
|
|
||||||
|
### Loops
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<step n="8" goal="Refine">
|
||||||
|
<loop max="5">
|
||||||
|
<action>Generate solution</action>
|
||||||
|
<check if="criteria met">
|
||||||
|
<break>Exit loop</break>
|
||||||
|
</check>
|
||||||
|
</loop>
|
||||||
|
</step>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Common XML Tags
|
||||||
|
|
||||||
|
**Execution:**
|
||||||
|
|
||||||
|
- `<action>` - Required action
|
||||||
|
- `<action if="condition">` - Single conditional action (inline)
|
||||||
|
- `<check if="condition">...</check>` - Conditional block for multiple items (requires closing tag)
|
||||||
|
- `<ask>` - User prompt
|
||||||
|
- `<goto>` - Jump to step
|
||||||
|
- `<invoke-workflow>` - Call another workflow
|
||||||
|
|
||||||
|
**Output:**
|
||||||
|
|
||||||
|
- `<template-output>` - Save checkpoint
|
||||||
|
- `<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>` - Trigger AI enhancement
|
||||||
|
- `<critical>` - Important info
|
||||||
|
- `<example>` - Show example
|
||||||
|
|
||||||
|
## Validation
|
||||||
|
|
||||||
|
### checklist.md Structure
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Validation Checklist
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
- [ ] All sections present
|
||||||
|
- [ ] No placeholders remain
|
||||||
|
- [ ] Proper formatting
|
||||||
|
|
||||||
|
## Content Quality
|
||||||
|
|
||||||
|
- [ ] Clear and specific
|
||||||
|
- [ ] Technically accurate
|
||||||
|
- [ ] Consistent terminology
|
||||||
|
|
||||||
|
## Completeness
|
||||||
|
|
||||||
|
- [ ] Ready for next phase
|
||||||
|
- [ ] Dependencies documented
|
||||||
|
- [ ] Action items defined
|
||||||
|
```
|
||||||
|
|
||||||
|
### Making Criteria Measurable
|
||||||
|
|
||||||
|
❌ `- [ ] Good documentation`
|
||||||
|
✅ `- [ ] Each function has JSDoc comments with parameters and return types`
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### Document Generation
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<workflow>
|
||||||
|
<step n="1" goal="Gather context">
|
||||||
|
Load existing documents and understand project scope.
|
||||||
|
<template-output>context</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2" goal="Define requirements">
|
||||||
|
Create functional and non-functional requirements.
|
||||||
|
<template-output>requirements</template-output>
|
||||||
|
<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="3" goal="Validate">
|
||||||
|
Check requirements against goals.
|
||||||
|
<template-output>validated_requirements</template-output>
|
||||||
|
</step>
|
||||||
|
</workflow>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Action Workflow
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<workflow>
|
||||||
|
<step n="1" goal="Analyze codebase">
|
||||||
|
<action>Find all API endpoints</action>
|
||||||
|
<action>Identify patterns</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2" goal="Refactor">
|
||||||
|
<repeat for-each="endpoint">
|
||||||
|
<action>Update to new pattern</action>
|
||||||
|
</repeat>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="3" goal="Verify">
|
||||||
|
<action>Run tests</action>
|
||||||
|
<check if="tests fail">
|
||||||
|
<goto step="2">Fix issues</goto>
|
||||||
|
</check>
|
||||||
|
</step>
|
||||||
|
</workflow>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Meta-Workflow
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<workflow name="greenfield-app">
|
||||||
|
<step n="1" goal="Discovery">
|
||||||
|
<invoke-workflow>product-brief</invoke-workflow>
|
||||||
|
<template-output>brief</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2" goal="Requirements">
|
||||||
|
<invoke-workflow input="{{brief}}">prd</invoke-workflow>
|
||||||
|
<template-output>prd</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="3" goal="Architecture">
|
||||||
|
<invoke-workflow input="{{prd}}">architecture</invoke-workflow>
|
||||||
|
<template-output>architecture</template-output>
|
||||||
|
</step>
|
||||||
|
</workflow>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
### Design Principles
|
||||||
|
|
||||||
|
1. **Keep steps focused** - Single goal per step
|
||||||
|
2. **Limit scope** - 5-10 steps maximum
|
||||||
|
3. **Build progressively** - Start simple, add detail
|
||||||
|
4. **Checkpoint often** - Save after major sections
|
||||||
|
5. **Make sections optional** - Let users skip when appropriate
|
||||||
|
|
||||||
|
### Instruction Guidelines
|
||||||
|
|
||||||
|
1. **Be specific** - "Write 1-2 paragraphs" not "Write about"
|
||||||
|
2. **Provide examples** - Show expected output format
|
||||||
|
3. **Set limits** - "3-5 items maximum"
|
||||||
|
4. **Explain why** - Context helps AI make better decisions
|
||||||
|
|
||||||
|
### Conditional Execution Best Practices
|
||||||
|
|
||||||
|
**✅ DO:**
|
||||||
|
|
||||||
|
- Use `<action if="">` for single conditional actions
|
||||||
|
- Use `<check if="">...</check>` for blocks with multiple items
|
||||||
|
- Always close `<check>` tags explicitly
|
||||||
|
- Keep conditions simple and readable
|
||||||
|
|
||||||
|
**❌ DON'T:**
|
||||||
|
|
||||||
|
- Wrap single actions in `<check>` blocks (unnecessarily verbose)
|
||||||
|
- Forget to close `<check>` tags
|
||||||
|
- Nest too many levels (makes logic hard to follow)
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- ✅ Good: Single action -->
|
||||||
|
<action if="file exists">Load configuration</action>
|
||||||
|
|
||||||
|
<!-- ❌ Avoid: Unnecessary wrapper for single action -->
|
||||||
|
<check if="file exists">
|
||||||
|
<action>Load configuration</action>
|
||||||
|
</check>
|
||||||
|
|
||||||
|
<!-- ✅ Good: Multiple actions in block -->
|
||||||
|
<check if="validation fails">
|
||||||
|
<action>Log error details</action>
|
||||||
|
<action>Notify user</action>
|
||||||
|
<goto step="1">Retry input</goto>
|
||||||
|
</check>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Common Pitfalls
|
||||||
|
|
||||||
|
- **Missing critical headers** - Always include workflow engine references
|
||||||
|
- **Variables not replaced** - Ensure names match exactly
|
||||||
|
- **Too many steps** - Combine related actions
|
||||||
|
- **No checkpoints** - Add `<template-output>` tags
|
||||||
|
- **Vague instructions** - Be explicit about expectations
|
||||||
|
- **Unclosed check tags** - Always close `<check if="">...</check>` blocks
|
||||||
|
- **Wrong conditional pattern** - Use `<action if="">` for single items, `<check if="">` for blocks
|
||||||
|
|
||||||
|
## Web Bundles
|
||||||
|
|
||||||
|
Web bundles allow workflows to be deployed as self-contained packages for web environments.
|
||||||
|
|
||||||
|
### When to Use Web Bundles
|
||||||
|
|
||||||
|
- Deploying workflows to web-based AI platforms
|
||||||
|
- Creating shareable workflow packages
|
||||||
|
- Ensuring workflow portability without dependencies
|
||||||
|
- Publishing workflows for public use
|
||||||
|
|
||||||
|
### Web Bundle Requirements
|
||||||
|
|
||||||
|
1. **Self-Contained**: No external dependencies
|
||||||
|
2. **No Config Variables**: Cannot use `{config_source}` references
|
||||||
|
3. **Complete File List**: Every referenced file must be listed
|
||||||
|
4. **Relative Paths**: Use `bmad/` root paths (no `{project-root}`)
|
||||||
|
|
||||||
|
### Creating a Web Bundle
|
||||||
|
|
||||||
|
Add this section to your workflow.yaml:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle:
|
||||||
|
name: 'workflow-name'
|
||||||
|
description: 'Workflow description'
|
||||||
|
author: 'Your Name'
|
||||||
|
|
||||||
|
# Core files (bmad/-relative paths)
|
||||||
|
instructions: 'bmad/module/workflows/workflow/instructions.md'
|
||||||
|
validation: 'bmad/module/workflows/workflow/checklist.md'
|
||||||
|
template: 'bmad/module/workflows/workflow/template.md'
|
||||||
|
|
||||||
|
# Data files (no config_source allowed)
|
||||||
|
data_file: 'bmad/module/workflows/workflow/data.csv'
|
||||||
|
|
||||||
|
# Complete file list - CRITICAL!
|
||||||
|
web_bundle_files:
|
||||||
|
- 'bmad/module/workflows/workflow/instructions.md'
|
||||||
|
- 'bmad/module/workflows/workflow/checklist.md'
|
||||||
|
- 'bmad/module/workflows/workflow/template.md'
|
||||||
|
- 'bmad/module/workflows/workflow/data.csv'
|
||||||
|
# Include ALL referenced files
|
||||||
|
```
|
||||||
|
|
||||||
|
### Converting Existing Workflows
|
||||||
|
|
||||||
|
1. **Remove Config Dependencies**:
|
||||||
|
- Replace `{config_source}:variable` with hardcoded values
|
||||||
|
- Convert `{project-root}/bmad/` to `bmad/`
|
||||||
|
|
||||||
|
2. **Inventory All Files**:
|
||||||
|
- Scan instructions.md for file references
|
||||||
|
- Check template.md for includes
|
||||||
|
- List all data files
|
||||||
|
|
||||||
|
3. **Test Completeness**:
|
||||||
|
- Ensure no missing file references
|
||||||
|
- Verify all paths are relative to bmad/
|
||||||
|
|
||||||
|
### Example: Complete Web Bundle
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle:
|
||||||
|
name: 'analyze-requirements'
|
||||||
|
description: 'Requirements analysis workflow'
|
||||||
|
author: 'BMad Team'
|
||||||
|
|
||||||
|
instructions: 'bmad/bmm/workflows/analyze-requirements/instructions.md'
|
||||||
|
validation: 'bmad/bmm/workflows/analyze-requirements/checklist.md'
|
||||||
|
template: 'bmad/bmm/workflows/analyze-requirements/template.md'
|
||||||
|
|
||||||
|
# Data files
|
||||||
|
techniques_data: 'bmad/bmm/workflows/analyze-requirements/techniques.csv'
|
||||||
|
patterns_data: 'bmad/bmm/workflows/analyze-requirements/patterns.json'
|
||||||
|
|
||||||
|
# Sub-workflow reference
|
||||||
|
validation_workflow: 'bmad/bmm/workflows/validate-requirements/workflow.yaml'
|
||||||
|
|
||||||
|
web_bundle_files:
|
||||||
|
# Core workflow files
|
||||||
|
- 'bmad/bmm/workflows/analyze-requirements/instructions.md'
|
||||||
|
- 'bmad/bmm/workflows/analyze-requirements/checklist.md'
|
||||||
|
- 'bmad/bmm/workflows/analyze-requirements/template.md'
|
||||||
|
|
||||||
|
# Data files
|
||||||
|
- 'bmad/bmm/workflows/analyze-requirements/techniques.csv'
|
||||||
|
- 'bmad/bmm/workflows/analyze-requirements/patterns.json'
|
||||||
|
|
||||||
|
# Sub-workflow and its files
|
||||||
|
- 'bmad/bmm/workflows/validate-requirements/workflow.yaml'
|
||||||
|
- 'bmad/bmm/workflows/validate-requirements/instructions.md'
|
||||||
|
- 'bmad/bmm/workflows/validate-requirements/checklist.md'
|
||||||
|
|
||||||
|
# Shared templates referenced in instructions
|
||||||
|
- 'bmad/bmm/templates/requirement-item.md'
|
||||||
|
- 'bmad/bmm/templates/validation-criteria.md'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Variables Not Replaced
|
||||||
|
|
||||||
|
- Check exact name match
|
||||||
|
- Verify `<template-output>` tag present
|
||||||
|
- Ensure step generates the variable
|
||||||
|
|
||||||
|
### Validation Fails
|
||||||
|
|
||||||
|
- Review checklist specificity
|
||||||
|
- Check for impossible requirements
|
||||||
|
- Verify checklist matches template
|
||||||
|
|
||||||
|
### Workflow Too Long
|
||||||
|
|
||||||
|
- Combine related steps
|
||||||
|
- Make sections optional
|
||||||
|
- Reduce elicitation points
|
||||||
|
|
||||||
|
### User Confusion
|
||||||
|
|
||||||
|
- Add clearer step goals
|
||||||
|
- Provide more examples
|
||||||
|
- Explain section purpose
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_For implementation details, see:_
|
||||||
|
|
||||||
|
- `/src/core/tasks/workflow.xml` - Execution engine
|
||||||
|
- `/bmad/bmm/workflows/` - Production examples
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# {Title} Checklist Validation
|
||||||
|
|
||||||
|
## {Section Foo}
|
||||||
|
|
||||||
|
- [ ] Check 1
|
||||||
|
- [ ] Check 2
|
||||||
|
- [ ] ...
|
||||||
|
- [ ] Check n
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
## {Section Bar}
|
||||||
|
|
||||||
|
- [ ] Check 1
|
||||||
|
- [ ] Check 2
|
||||||
|
- [ ] ...
|
||||||
|
- [ ] Check n
|
||||||
|
|
||||||
|
## Final Validation
|
||||||
|
|
||||||
|
- [ ] Section Foo
|
||||||
|
- Issue List
|
||||||
|
- [ ] Section Bar
|
||||||
|
- Issue List
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# PRD Workflow Instructions
|
||||||
|
|
||||||
|
<critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical>
|
||||||
|
<critical>You MUST have already loaded and processed: {project-related}/bmad/{module-code}/workflows/{workflow}/workflow.yaml</critical>
|
||||||
|
<critical>Communicate in {communication_language} throughout the workflow process</critical>
|
||||||
|
|
||||||
|
<workflow>
|
||||||
|
|
||||||
|
<step n="1" goal="">
|
||||||
|
...
|
||||||
|
</step>
|
||||||
|
...
|
||||||
|
</workflow>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# Title
|
||||||
|
|
||||||
|
**Date:** {{date}}
|
||||||
|
|
||||||
|
## {Section 1}
|
||||||
|
|
||||||
|
{{section_1_results}}
|
||||||
|
|
||||||
|
etc...
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
# {TITLE} Workflow Template Configuration
|
||||||
|
name: "{WORKFLOW_CODE}"
|
||||||
|
description: "{WORKFLOW_DESCRIPTION}"
|
||||||
|
author: "BMad"
|
||||||
|
|
||||||
|
# Critical variables load from config_source
|
||||||
|
# Add Additional Config Pulled Variables Here
|
||||||
|
config_source: "{project-root}/{module-code}/config.yaml"
|
||||||
|
output_folder: "{config_source}:output_folder"
|
||||||
|
user_name: "{config_source}:user_name"
|
||||||
|
communication_language: "{config_source}:communication_language"
|
||||||
|
date: system-generated
|
||||||
|
|
||||||
|
# Required Data Files - HALT if missing!
|
||||||
|
# optional, can be omitted
|
||||||
|
brain_techniques: "{installed_path}/{critical-data-file.csv}" # example, can be other formats or URLs
|
||||||
|
|
||||||
|
# Optional docs that if loaded on start to kickstart this workflow or used at some point, these are meant to be suggested inputs for the user
|
||||||
|
recommended_inputs: # optional, can be omitted
|
||||||
|
- example_input: "{project-root}/{path/to/file.md}"
|
||||||
|
|
||||||
|
# Module path and component files
|
||||||
|
installed_path: "{project-root}/bmad/{module-code}/workflows/{workflow-code}"
|
||||||
|
template: "{installed_path}/template.md" # optional, can be omitted
|
||||||
|
instructions: "{installed_path}/instructions.md" # optional, can be omitted
|
||||||
|
validation: "{installed_path}/checklist.md" # optional, can be omitted
|
||||||
|
|
||||||
|
# Output configuration
|
||||||
|
default_output_file: "{output_folder}/{file.md}" # optional, can be omitted
|
||||||
|
validation_output_file: "{output_folder}/{file-validation-report.md}" # optional, can be omitted
|
||||||
|
|
||||||
|
# Tool Requirements (MCP Required Tools or other tools needed to run this workflow)
|
||||||
|
required_tools: #optional, can be omitted
|
||||||
|
- "Tool Name": #example, can be omitted if none
|
||||||
|
description: "Description of why this tool is needed"
|
||||||
|
link: "https://link-to-tool.com"
|
||||||
|
# Web Bundle Configuration (optional - for web-deployable workflows)
|
||||||
|
# IMPORTANT: Web bundles are self-contained and cannot use config_source variables
|
||||||
|
# All referenced files must be listed in web_bundle_files
|
||||||
38
bmad/bmb/workflows/create-workflow/workflow.yaml
Normal file
38
bmad/bmb/workflows/create-workflow/workflow.yaml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# Build Workflow - Workflow Builder Configuration
|
||||||
|
name: create-workflow
|
||||||
|
description: "Interactive workflow builder that guides creation of new BMAD workflows with proper structure and validation for optimal human-AI collaboration. Includes optional brainstorming phase for workflow ideas and design."
|
||||||
|
author: "BMad Builder"
|
||||||
|
|
||||||
|
# Critical variables
|
||||||
|
config_source: "{project-root}/bmad/bmb/config.yaml"
|
||||||
|
custom_workflow_location: "{config_source}:custom_workflow_location"
|
||||||
|
user_name: "{config_source}:user_name"
|
||||||
|
communication_language: "{config_source}:communication_language"
|
||||||
|
|
||||||
|
# Template files for new workflows
|
||||||
|
template_workflow_yaml: "{workflow_template_path}/workflow.yaml"
|
||||||
|
template_instructions: "{workflow_template_path}/instructions.md"
|
||||||
|
template_template: "{workflow_template_path}/template.md"
|
||||||
|
template_checklist: "{workflow_template_path}/checklist.md"
|
||||||
|
|
||||||
|
# Optional input docs
|
||||||
|
recommended_inputs:
|
||||||
|
- existing_workflows: "{project-root}/bmad/*/workflows/"
|
||||||
|
- bmm_workflows: "{project-root}/bmad/bmm/workflows/"
|
||||||
|
|
||||||
|
# Module path and component files
|
||||||
|
installed_path: "{project-root}/bmad/bmb/workflows/create-workflow"
|
||||||
|
template: false # This is an action workflow - no template needed
|
||||||
|
instructions: "{installed_path}/instructions.md"
|
||||||
|
validation: "{installed_path}/checklist.md"
|
||||||
|
|
||||||
|
# Required data files - CRITICAL for workflow conventions
|
||||||
|
workflow_creation_guide: "{installed_path}/workflow-creation-guide.md"
|
||||||
|
workflow_template_path: "{installed_path}/workflow-template"
|
||||||
|
|
||||||
|
# Output configuration - Creates the new workflow folder with all files
|
||||||
|
# If workflow belongs to a module: Save to module's workflows folder
|
||||||
|
# If standalone workflow: Save to custom_workflow_location/{{workflow_name}}
|
||||||
|
module_output_folder: "{project-root}/bmad/{{target_module}}/workflows/{{workflow_name}}"
|
||||||
|
standalone_output_folder: "{custom_workflow_location}/{{workflow_name}}"
|
||||||
|
# Web bundle configuration
|
||||||
63
bmad/bmb/workflows/edit-workflow/README.md
Normal file
63
bmad/bmb/workflows/edit-workflow/README.md
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
# Edit Workflow
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
An intelligent workflow editor that helps you modify existing BMAD workflows while adhering to all best practices and conventions documented in the workflow creation guide.
|
||||||
|
|
||||||
|
## Use Case
|
||||||
|
|
||||||
|
When you need to:
|
||||||
|
|
||||||
|
- Fix issues in existing workflows
|
||||||
|
- Update workflow configuration or metadata
|
||||||
|
- Improve instruction clarity and specificity
|
||||||
|
- Add new features or capabilities
|
||||||
|
- Ensure compliance with BMAD workflow conventions
|
||||||
|
|
||||||
|
## How to Invoke
|
||||||
|
|
||||||
|
```
|
||||||
|
workflow edit-workflow
|
||||||
|
```
|
||||||
|
|
||||||
|
Or through a BMAD agent:
|
||||||
|
|
||||||
|
```
|
||||||
|
*edit-workflow
|
||||||
|
```
|
||||||
|
|
||||||
|
## Expected Inputs
|
||||||
|
|
||||||
|
- **Target workflow path**: Path to the workflow.yaml file or workflow folder you want to edit
|
||||||
|
- **Edit type selection**: Choice of what aspect to modify
|
||||||
|
- **User approval**: For each proposed change
|
||||||
|
|
||||||
|
## Generated Outputs
|
||||||
|
|
||||||
|
- Modified workflow files (in place)
|
||||||
|
- Optional change log at: `{output_folder}/workflow-edit-log-{date}.md`
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
1. **Comprehensive Analysis**: Checks workflows against the official creation guide
|
||||||
|
2. **Prioritized Issues**: Identifies and ranks issues by importance
|
||||||
|
3. **Guided Editing**: Step-by-step process with explanations
|
||||||
|
4. **Best Practices**: Ensures all edits follow BMAD conventions
|
||||||
|
5. **Validation**: Checks all changes for correctness
|
||||||
|
6. **Change Tracking**: Documents what was modified and why
|
||||||
|
|
||||||
|
## Workflow Steps
|
||||||
|
|
||||||
|
1. Load and analyze target workflow
|
||||||
|
2. Check against best practices
|
||||||
|
3. Select editing focus
|
||||||
|
4. Load relevant documentation
|
||||||
|
5. Perform edits with user approval
|
||||||
|
6. Validate all changes (optional)
|
||||||
|
7. Generate change summary
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- Access to workflow creation guide
|
||||||
|
- Read/write permissions for target workflow
|
||||||
|
- Understanding of BMAD workflow types
|
||||||
70
bmad/bmb/workflows/edit-workflow/checklist.md
Normal file
70
bmad/bmb/workflows/edit-workflow/checklist.md
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
# Edit Workflow - Validation Checklist
|
||||||
|
|
||||||
|
## Pre-Edit Analysis
|
||||||
|
|
||||||
|
- [ ] Target workflow.yaml file successfully loaded and parsed
|
||||||
|
- [ ] All referenced workflow files identified and accessible
|
||||||
|
- [ ] Workflow type correctly determined (document/action/interactive/autonomous/meta)
|
||||||
|
- [ ] Best practices guide loaded and available for reference
|
||||||
|
|
||||||
|
## Edit Execution Quality
|
||||||
|
|
||||||
|
- [ ] User clearly informed of identified issues with priority levels
|
||||||
|
- [ ] Edit menu presented with all 8 standard options
|
||||||
|
- [ ] Selected edit type matches the actual changes made
|
||||||
|
- [ ] All proposed changes explained with reasoning before application
|
||||||
|
|
||||||
|
## File Integrity
|
||||||
|
|
||||||
|
- [ ] All modified files maintain valid YAML/Markdown syntax
|
||||||
|
- [ ] No placeholders like {TITLE} or {WORKFLOW_CODE} remain in edited files
|
||||||
|
- [ ] File paths use proper variable substitution ({project-root}, {installed_path})
|
||||||
|
- [ ] All file references resolve to actual paths
|
||||||
|
|
||||||
|
## Convention Compliance
|
||||||
|
|
||||||
|
- [ ] Instructions.md contains critical workflow engine reference header
|
||||||
|
- [ ] Instructions.md contains workflow.yaml processing reference header
|
||||||
|
- [ ] All step numbers are sequential (1, 2, 3... or 1a, 1b, 2a...)
|
||||||
|
- [ ] Each step has both n= attribute and goal= attribute
|
||||||
|
- [ ] Variable names use snake_case consistently
|
||||||
|
- [ ] Template variables (if any) match <template-output> tags exactly
|
||||||
|
|
||||||
|
## Instruction Quality
|
||||||
|
|
||||||
|
- [ ] Each step has a single, clear goal stated
|
||||||
|
- [ ] Instructions are specific with quantities (e.g., "3-5 items" not "several items")
|
||||||
|
- [ ] Optional steps marked with optional="true" attribute
|
||||||
|
- [ ] Repeating steps use proper repeat syntax (repeat="3" or repeat="until-complete")
|
||||||
|
- [ ] User prompts use <ask> tags and wait for response
|
||||||
|
- [ ] Actions use <action> tags for required operations
|
||||||
|
|
||||||
|
## Validation Criteria (if checklist.md exists)
|
||||||
|
|
||||||
|
- [ ] All checklist items are measurable and specific
|
||||||
|
- [ ] No vague criteria like "Good documentation" present
|
||||||
|
- [ ] Checklist organized into logical sections
|
||||||
|
- [ ] Each criterion can be objectively verified as true/false
|
||||||
|
|
||||||
|
## Change Documentation
|
||||||
|
|
||||||
|
- [ ] All changes logged with description of what and why
|
||||||
|
- [ ] Change summary includes list of modified files
|
||||||
|
- [ ] Improvements clearly articulated in relation to best practices
|
||||||
|
- [ ] Next steps or recommendations provided
|
||||||
|
|
||||||
|
## Post-Edit Verification
|
||||||
|
|
||||||
|
- [ ] Edited workflow follows patterns from production examples
|
||||||
|
- [ ] No functionality broken by the edits
|
||||||
|
- [ ] Workflow ready for testing or production use
|
||||||
|
- [ ] User given option to test the edited workflow
|
||||||
|
|
||||||
|
## Common Issues Resolved
|
||||||
|
|
||||||
|
- [ ] Missing critical headers added if they were absent
|
||||||
|
- [ ] Broken variable references fixed
|
||||||
|
- [ ] Vague instructions made specific
|
||||||
|
- [ ] Template-only workflows have template.md file
|
||||||
|
- [ ] Action workflows have template: false in workflow.yaml
|
||||||
|
- [ ] Step count reasonable (5-10 steps maximum unless justified)
|
||||||
261
bmad/bmb/workflows/edit-workflow/instructions.md
Normal file
261
bmad/bmb/workflows/edit-workflow/instructions.md
Normal file
@@ -0,0 +1,261 @@
|
|||||||
|
# Edit Workflow - Workflow Editor Instructions
|
||||||
|
|
||||||
|
<critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical>
|
||||||
|
<critical>You MUST have already loaded and processed: {project-root}/bmad/bmb/workflows/edit-workflow/workflow.yaml</critical>
|
||||||
|
<critical>Study the workflow creation guide thoroughly at: {workflow_creation_guide}</critical>
|
||||||
|
<critical>Communicate in {communication_language} throughout the workflow editing process</critical>
|
||||||
|
|
||||||
|
<workflow>
|
||||||
|
|
||||||
|
<step n="1" goal="Load and analyze target workflow">
|
||||||
|
<ask>What is the path to the workflow you want to edit? (provide path to workflow.yaml or workflow folder)</ask>
|
||||||
|
|
||||||
|
<action>Load the workflow.yaml file from the provided path</action>
|
||||||
|
<action>Identify the workflow type (document, action, interactive, autonomous, meta)</action>
|
||||||
|
<action>List all associated files (template.md, instructions.md, checklist.md, data files)</action>
|
||||||
|
<action>Load any existing instructions.md and template.md files if present</action>
|
||||||
|
|
||||||
|
Display a summary:
|
||||||
|
|
||||||
|
- Workflow name and description
|
||||||
|
- Type of workflow
|
||||||
|
- Files present
|
||||||
|
- Current structure overview
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2" goal="Analyze against best practices">
|
||||||
|
<action>Load the complete workflow creation guide from: {workflow_creation_guide}</action>
|
||||||
|
<action>Check the workflow against the guide's best practices:</action>
|
||||||
|
|
||||||
|
Analyze for:
|
||||||
|
|
||||||
|
- **Critical headers**: Are workflow engine references present?
|
||||||
|
- **File structure**: Are all expected files present for this workflow type?
|
||||||
|
- **Variable consistency**: Do variable names match between files?
|
||||||
|
- **Step structure**: Are steps properly numbered and focused?
|
||||||
|
- **XML tags**: Are tags used correctly and consistently?
|
||||||
|
- **Instructions clarity**: Are instructions specific with examples and limits?
|
||||||
|
- **Template variables**: Use snake_case and descriptive names?
|
||||||
|
- **Validation criteria**: Are checklist items measurable and specific?
|
||||||
|
|
||||||
|
**Standard Config Audit:**
|
||||||
|
|
||||||
|
- **workflow.yaml config block**: Check for standard config variables
|
||||||
|
- Is config_source defined?
|
||||||
|
- Are output_folder, user_name, communication_language pulled from config?
|
||||||
|
- Is date set to system-generated?
|
||||||
|
- **Instructions usage**: Do instructions use config variables?
|
||||||
|
- Does it communicate in {communication_language}?
|
||||||
|
- Does it address {user_name}?
|
||||||
|
- Does it write to {output_folder}?
|
||||||
|
- **Template usage**: Does template.md include config variables in metadata?
|
||||||
|
|
||||||
|
**YAML/File Alignment:**
|
||||||
|
|
||||||
|
- **Unused yaml fields**: Are there variables in workflow.yaml not used in instructions OR template?
|
||||||
|
- **Missing variables**: Are there hardcoded values that should be variables?
|
||||||
|
- **Web bundle completeness**: If web_bundle exists, does it include all dependencies?
|
||||||
|
- All referenced files listed?
|
||||||
|
- Called workflows included?
|
||||||
|
|
||||||
|
<action>Create a list of identified issues or improvement opportunities</action>
|
||||||
|
<action>Prioritize issues by importance (critical, important, nice-to-have)</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="3" goal="Select editing focus">
|
||||||
|
Present the editing menu to the user:
|
||||||
|
|
||||||
|
**What aspect would you like to edit?**
|
||||||
|
|
||||||
|
1. **Fix critical issues** - Address missing headers, broken references
|
||||||
|
2. **Add/fix standard config** - Ensure standard config block and variable usage
|
||||||
|
3. **Update workflow.yaml** - Modify configuration, paths, metadata
|
||||||
|
4. **Refine instructions** - Improve steps, add detail, fix flow
|
||||||
|
5. **Update template** - Fix variables, improve structure (if applicable)
|
||||||
|
6. **Enhance validation** - Make checklist more specific and measurable
|
||||||
|
7. **Add new features** - Add steps, optional sections, or capabilities
|
||||||
|
8. **Configure web bundle** - Add/update web bundle for deployment
|
||||||
|
9. **Remove bloat** - Delete unused yaml fields, duplicate values
|
||||||
|
10. **Optimize for clarity** - Improve descriptions, add examples
|
||||||
|
11. **Full review and update** - Comprehensive improvements across all files
|
||||||
|
|
||||||
|
<ask>Select an option (1-11) or describe a custom edit:</ask>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="4" goal="Load relevant documentation">
|
||||||
|
Based on the selected edit type, load appropriate reference materials:
|
||||||
|
|
||||||
|
<check>If option 2 (Add/fix standard config):</check>
|
||||||
|
<action>Prepare standard config block template:</action>
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Critical variables from config
|
||||||
|
config_source: '{project-root}/bmad/{module}/config.yaml'
|
||||||
|
output_folder: '{config_source}:output_folder'
|
||||||
|
user_name: '{config_source}:user_name'
|
||||||
|
communication_language: '{config_source}:communication_language'
|
||||||
|
date: system-generated
|
||||||
|
```
|
||||||
|
|
||||||
|
<action>Check if workflow.yaml has existing config section (don't duplicate)</action>
|
||||||
|
<action>Identify missing config variables to add</action>
|
||||||
|
<action>Check instructions.md for config variable usage</action>
|
||||||
|
<action>Check template.md for config variable usage</action>
|
||||||
|
|
||||||
|
<check>If editing instructions or adding features:</check>
|
||||||
|
<action>Review the "Writing Instructions" section of the creation guide</action>
|
||||||
|
<action>Load example workflows from {project-root}/bmad/bmm/workflows/ for patterns</action>
|
||||||
|
|
||||||
|
<check>If editing templates:</check>
|
||||||
|
<action>Review the "Templates and Variables" section of the creation guide</action>
|
||||||
|
<action>Ensure variable naming conventions are followed</action>
|
||||||
|
|
||||||
|
<check>If editing validation:</check>
|
||||||
|
<action>Review the "Validation" section and measurable criteria examples</action>
|
||||||
|
|
||||||
|
<check>If option 9 (Remove bloat):</check>
|
||||||
|
<action>Cross-reference all workflow.yaml fields against instructions.md and template.md</action>
|
||||||
|
<action>Identify yaml fields not used in any file</action>
|
||||||
|
<action>Check for duplicate fields in web_bundle section</action>
|
||||||
|
|
||||||
|
<check>If configuring web bundle:</check>
|
||||||
|
<action>Review the "Web Bundles" section of the creation guide</action>
|
||||||
|
<action>Scan all workflow files for referenced resources</action>
|
||||||
|
<action>Create inventory of all files that must be included</action>
|
||||||
|
<action>Scan instructions for <invoke-workflow> calls - those yamls must be included</action>
|
||||||
|
|
||||||
|
<check>If fixing critical issues:</check>
|
||||||
|
<action>Load the workflow execution engine documentation</action>
|
||||||
|
<action>Verify all required elements are present</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="5" goal="Perform edits" repeat="until-complete">
|
||||||
|
Based on the selected focus area:
|
||||||
|
|
||||||
|
<check>If configuring web bundle (option 7):</check>
|
||||||
|
<action>Check if web_bundle section exists in workflow.yaml</action>
|
||||||
|
|
||||||
|
If creating new web bundle:
|
||||||
|
|
||||||
|
1. Extract workflow metadata (name, description, author)
|
||||||
|
2. Convert all file paths to bmad/-relative format
|
||||||
|
3. Remove any {config_source} references
|
||||||
|
4. Scan instructions.md for all file references:
|
||||||
|
- Data files (CSV, JSON)
|
||||||
|
- Sub-workflows
|
||||||
|
- Shared templates
|
||||||
|
- Any included files
|
||||||
|
5. Scan template.md for any includes
|
||||||
|
6. Create complete web_bundle_files array
|
||||||
|
7. **CRITICAL**: Check for <invoke-workflow> calls in instructions:
|
||||||
|
- If workflow invokes other workflows, add existing_workflows field
|
||||||
|
- Maps workflow variable name to bmad/-relative path
|
||||||
|
- Signals bundler to recursively include invoked workflow's web_bundle
|
||||||
|
- Example: `existing_workflows: - core_brainstorming: "bmad/core/workflows/brainstorming/workflow.yaml"`
|
||||||
|
8. Generate web_bundle section
|
||||||
|
|
||||||
|
If updating existing web bundle:
|
||||||
|
|
||||||
|
1. Verify all paths are bmad/-relative
|
||||||
|
2. Check for missing files in web_bundle_files
|
||||||
|
3. Remove any config dependencies
|
||||||
|
4. Update file list with newly referenced files
|
||||||
|
|
||||||
|
<action>Show the current content that will be edited</action>
|
||||||
|
<action>Explain the proposed changes and why they improve the workflow</action>
|
||||||
|
<action>Generate the updated content following all conventions from the guide</action>
|
||||||
|
|
||||||
|
<ask>Review the proposed changes. Options:
|
||||||
|
|
||||||
|
- [a] Accept and apply
|
||||||
|
- [e] Edit/modify the changes
|
||||||
|
- [s] Skip this change
|
||||||
|
- [n] Move to next file/section
|
||||||
|
- [d] Done with edits
|
||||||
|
</ask>
|
||||||
|
|
||||||
|
<check>If user selects 'a':</check>
|
||||||
|
<action>Apply the changes to the file</action>
|
||||||
|
<action>Log the change for the summary</action>
|
||||||
|
|
||||||
|
<check>If user selects 'e':</check>
|
||||||
|
<ask>What modifications would you like to make?</ask>
|
||||||
|
<goto step="5">Regenerate with modifications</goto>
|
||||||
|
|
||||||
|
<check>If user selects 'd':</check>
|
||||||
|
<continue>Proceed to validation</continue>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="6" goal="Validate all changes" optional="true">
|
||||||
|
<action>Run a comprehensive validation check:</action>
|
||||||
|
|
||||||
|
**Basic Validation:**
|
||||||
|
|
||||||
|
- [ ] All file paths resolve correctly
|
||||||
|
- [ ] Variable names are consistent across files
|
||||||
|
- [ ] Step numbering is sequential and logical
|
||||||
|
- [ ] Required XML tags are properly formatted
|
||||||
|
- [ ] No placeholders remain (like {TITLE} or {WORKFLOW_CODE})
|
||||||
|
- [ ] Instructions match the workflow type
|
||||||
|
- [ ] Template variables match instruction outputs (if applicable)
|
||||||
|
- [ ] Checklist criteria are measurable (if present)
|
||||||
|
- [ ] Critical headers are present in instructions
|
||||||
|
- [ ] YAML syntax is valid
|
||||||
|
|
||||||
|
**Standard Config Validation:**
|
||||||
|
|
||||||
|
- [ ] workflow.yaml contains config_source
|
||||||
|
- [ ] output_folder, user_name, communication_language pulled from config
|
||||||
|
- [ ] date set to system-generated
|
||||||
|
- [ ] Instructions communicate in {communication_language} where appropriate
|
||||||
|
- [ ] Instructions address {user_name} where appropriate
|
||||||
|
- [ ] Instructions write to {output_folder} for file outputs
|
||||||
|
- [ ] Template optionally includes {{user_name}}, {{date}} in metadata (if document workflow)
|
||||||
|
- [ ] Template does NOT use {{communication_language}} in headers (agent-only variable)
|
||||||
|
|
||||||
|
**YAML/File Alignment:**
|
||||||
|
|
||||||
|
- [ ] All workflow.yaml variables used in instructions OR template
|
||||||
|
- [ ] No unused yaml fields (bloat-free)
|
||||||
|
- [ ] No duplicate fields between top-level and web_bundle
|
||||||
|
- [ ] Template variables match <template-output> tags in instructions
|
||||||
|
|
||||||
|
**Web bundle validation (if applicable):**
|
||||||
|
|
||||||
|
- [ ] web_bundle section present if needed
|
||||||
|
- [ ] All paths are bmad/-relative (no {project-root})
|
||||||
|
- [ ] No {config_source} variables in web bundle
|
||||||
|
- [ ] All referenced files listed in web_bundle_files
|
||||||
|
- [ ] Instructions, validation, template paths correct
|
||||||
|
- [ ] Called workflows (<invoke-workflow>) included in web_bundle_files
|
||||||
|
- [ ] Complete file inventory verified
|
||||||
|
|
||||||
|
<check>If any validation fails:</check>
|
||||||
|
<ask>Issues found. Would you like to fix them? (y/n)</ask>
|
||||||
|
<check>If yes:</check>
|
||||||
|
<goto step="5">Return to editing</goto>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="7" goal="Generate change summary">
|
||||||
|
<action>Create a summary of all changes made for {user_name} in {communication_language}:</action>
|
||||||
|
|
||||||
|
**Summary Structure:**
|
||||||
|
|
||||||
|
- Workflow name
|
||||||
|
- Changes made (file-by-file descriptions)
|
||||||
|
- Improvements (how workflow is now better aligned with best practices)
|
||||||
|
- Files modified (complete list with paths)
|
||||||
|
- Next steps (suggestions for additional improvements or testing)
|
||||||
|
|
||||||
|
<ask>Would you like to:
|
||||||
|
|
||||||
|
- Test the edited workflow
|
||||||
|
- Make additional edits
|
||||||
|
- Exit
|
||||||
|
</ask>
|
||||||
|
|
||||||
|
<check>If test workflow:</check>
|
||||||
|
<action>Invoke the edited workflow for testing</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
</workflow>
|
||||||
25
bmad/bmb/workflows/edit-workflow/workflow.yaml
Normal file
25
bmad/bmb/workflows/edit-workflow/workflow.yaml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# Edit Workflow - Workflow Editor Configuration
|
||||||
|
name: "edit-workflow"
|
||||||
|
description: "Edit existing BMAD workflows while following all best practices and conventions"
|
||||||
|
author: "BMad"
|
||||||
|
|
||||||
|
# Critical variables load from config_source
|
||||||
|
config_source: "{project-root}/bmad/bmb/config.yaml"
|
||||||
|
communication_language: "{config_source}:communication_language"
|
||||||
|
user_name: "{config_source}:user_name"
|
||||||
|
|
||||||
|
# Required Data Files - Critical for understanding workflow conventions
|
||||||
|
workflow_creation_guide: "{project-root}/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md"
|
||||||
|
workflow_execution_engine: "{project-root}/bmad/core/tasks/workflow.xml"
|
||||||
|
|
||||||
|
# Optional docs that can be used to understand the target workflow
|
||||||
|
recommended_inputs:
|
||||||
|
- target_workflow: "Path to the workflow.yaml file to edit"
|
||||||
|
- workflow_examples: "{project-root}/bmad/bmm/workflows/"
|
||||||
|
|
||||||
|
# Module path and component files
|
||||||
|
installed_path: "{project-root}/bmad/bmb/workflows/edit-workflow"
|
||||||
|
template: false # This is an action workflow - no template needed
|
||||||
|
instructions: "{installed_path}/instructions.md"
|
||||||
|
validation: "{installed_path}/checklist.md"
|
||||||
|
# Web bundle configuration
|
||||||
264
bmad/bmb/workflows/module-brief/README.md
Normal file
264
bmad/bmb/workflows/module-brief/README.md
Normal file
@@ -0,0 +1,264 @@
|
|||||||
|
# Module Brief Workflow
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The Module Brief workflow creates comprehensive blueprints for building new BMAD modules using strategic analysis and creative vision. It serves as the essential planning phase that transforms initial ideas into detailed, actionable specifications ready for implementation with the create-module workflow.
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- **Strategic Module Planning** - Comprehensive analysis from concept to implementation roadmap
|
||||||
|
- **Multi-Mode Operation** - Interactive, Express, and YOLO modes for different planning needs
|
||||||
|
- **Creative Vision Development** - Guided process for innovative module concepts and unique value propositions
|
||||||
|
- **Architecture Design** - Detailed agent and workflow ecosystem planning with interaction models
|
||||||
|
- **User Journey Mapping** - Scenario-based validation ensuring practical usability
|
||||||
|
- **Technical Planning** - Infrastructure requirements, dependencies, and complexity assessment
|
||||||
|
- **Risk Assessment** - Proactive identification of challenges with mitigation strategies
|
||||||
|
- **Implementation Roadmap** - Phased development plan with clear deliverables and timelines
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Basic Invocation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
workflow module-brief
|
||||||
|
```
|
||||||
|
|
||||||
|
### With Brainstorming Input
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# If you have brainstorming results from previous sessions
|
||||||
|
workflow module-brief --input brainstorming-session-2024-09-26.md
|
||||||
|
```
|
||||||
|
|
||||||
|
### Express Mode
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# For quick essential planning only
|
||||||
|
workflow module-brief --mode express
|
||||||
|
```
|
||||||
|
|
||||||
|
### Configuration
|
||||||
|
|
||||||
|
The workflow uses standard BMB configuration:
|
||||||
|
|
||||||
|
- **output_folder**: Where the module brief will be saved
|
||||||
|
- **user_name**: Brief author information
|
||||||
|
- **communication_language**: Language for brief generation
|
||||||
|
- **date**: Automatic timestamp for versioning
|
||||||
|
|
||||||
|
## Workflow Structure
|
||||||
|
|
||||||
|
### Files Included
|
||||||
|
|
||||||
|
```
|
||||||
|
module-brief/
|
||||||
|
├── workflow.yaml # Configuration and metadata
|
||||||
|
├── instructions.md # Step-by-step execution guide
|
||||||
|
├── template.md # Module brief document structure
|
||||||
|
├── checklist.md # Validation criteria
|
||||||
|
└── README.md # This file
|
||||||
|
```
|
||||||
|
|
||||||
|
## Workflow Process
|
||||||
|
|
||||||
|
### Phase 1: Foundation and Context (Steps 1-3)
|
||||||
|
|
||||||
|
**Mode Selection and Input Gathering**
|
||||||
|
|
||||||
|
- Choose operational mode (Interactive, Express, YOLO)
|
||||||
|
- Check for and optionally load existing brainstorming results
|
||||||
|
- Gather background context and inspiration sources
|
||||||
|
|
||||||
|
**Module Vision Development**
|
||||||
|
|
||||||
|
- Define core problem the module solves
|
||||||
|
- Identify target user audience and use cases
|
||||||
|
- Establish unique value proposition and differentiators
|
||||||
|
- Explore creative themes and personality concepts
|
||||||
|
|
||||||
|
**Module Identity Establishment**
|
||||||
|
|
||||||
|
- Generate module code (kebab-case) with multiple options
|
||||||
|
- Create compelling, memorable module name
|
||||||
|
- Select appropriate category (Domain-Specific, Creative, Technical, Business, Personal)
|
||||||
|
- Define optional personality theme for consistent agent character
|
||||||
|
|
||||||
|
### Phase 2: Architecture Planning (Steps 4-5)
|
||||||
|
|
||||||
|
**Agent Architecture Design**
|
||||||
|
|
||||||
|
- Plan agent team composition and roles
|
||||||
|
- Define agent archetypes (Orchestrator, Specialist, Helper, Creator, Analyzer)
|
||||||
|
- Specify personality traits and communication styles
|
||||||
|
- Map key capabilities and signature commands
|
||||||
|
|
||||||
|
**Workflow Ecosystem Design**
|
||||||
|
|
||||||
|
- Categorize workflows by purpose and complexity:
|
||||||
|
- **Core Workflows**: Essential value-delivery functions (2-3)
|
||||||
|
- **Feature Workflows**: Specialized capabilities (3-5)
|
||||||
|
- **Utility Workflows**: Supporting operations (1-3)
|
||||||
|
- Define input-process-output flows for each workflow
|
||||||
|
- Assess complexity levels and implementation priorities
|
||||||
|
|
||||||
|
### Phase 3: Validation and User Experience (Steps 6-7)
|
||||||
|
|
||||||
|
**User Journey Mapping**
|
||||||
|
|
||||||
|
- Create detailed user scenarios and stories
|
||||||
|
- Map step-by-step usage flows through the module
|
||||||
|
- Validate end-to-end functionality and value delivery
|
||||||
|
- Identify potential friction points and optimization opportunities
|
||||||
|
|
||||||
|
**Technical Planning and Requirements**
|
||||||
|
|
||||||
|
- Assess data requirements and storage needs
|
||||||
|
- Map integration points with other modules and external systems
|
||||||
|
- Evaluate technical complexity and resource requirements
|
||||||
|
- Document dependencies and infrastructure needs
|
||||||
|
|
||||||
|
### Phase 4: Success Planning (Steps 8-9)
|
||||||
|
|
||||||
|
**Success Metrics Definition**
|
||||||
|
|
||||||
|
- Establish module success criteria and performance indicators
|
||||||
|
- Define quality standards and reliability requirements
|
||||||
|
- Create user experience goals and feedback mechanisms
|
||||||
|
- Set measurable outcomes for module effectiveness
|
||||||
|
|
||||||
|
**Development Roadmap Creation**
|
||||||
|
|
||||||
|
- Design phased approach with MVP, Enhancement, and Polish phases
|
||||||
|
- Define deliverables and timelines for each phase
|
||||||
|
- Prioritize features and capabilities by value and complexity
|
||||||
|
- Create clear milestones and success checkpoints
|
||||||
|
|
||||||
|
### Phase 5: Enhancement and Risk Management (Steps 10-12)
|
||||||
|
|
||||||
|
**Creative Features and Special Touches** (Optional)
|
||||||
|
|
||||||
|
- Design easter eggs and delightful user interactions
|
||||||
|
- Plan module lore and thematic consistency
|
||||||
|
- Add personality quirks and creative responses
|
||||||
|
- Develop backstories and universe building
|
||||||
|
|
||||||
|
**Risk Assessment and Mitigation**
|
||||||
|
|
||||||
|
- Identify technical, usability, and scope risks
|
||||||
|
- Develop mitigation strategies for each risk category
|
||||||
|
- Plan contingency approaches for potential challenges
|
||||||
|
- Document decision points and alternative paths
|
||||||
|
|
||||||
|
**Final Review and Export Preparation**
|
||||||
|
|
||||||
|
- Comprehensive review of all brief sections
|
||||||
|
- Validation against quality and completeness criteria
|
||||||
|
- Preparation for seamless handoff to create-module workflow
|
||||||
|
- Export readiness confirmation with actionable specifications
|
||||||
|
|
||||||
|
## Output
|
||||||
|
|
||||||
|
### Generated Files
|
||||||
|
|
||||||
|
- **Module Brief Document**: Comprehensive planning document at `{output_folder}/module-brief-{module_code}-{date}.md`
|
||||||
|
- **Strategic Specifications**: Ready-to-implement blueprint for create-module workflow
|
||||||
|
|
||||||
|
### Output Structure
|
||||||
|
|
||||||
|
The module brief contains detailed specifications across multiple sections:
|
||||||
|
|
||||||
|
1. **Executive Summary** - Vision, category, complexity, target users
|
||||||
|
2. **Module Identity** - Core concept, value proposition, personality theme
|
||||||
|
3. **Agent Architecture** - Agent roster, roles, interaction models
|
||||||
|
4. **Workflow Ecosystem** - Core, feature, and utility workflow specifications
|
||||||
|
5. **User Scenarios** - Primary use cases, secondary scenarios, user journey
|
||||||
|
6. **Technical Planning** - Data requirements, integrations, dependencies
|
||||||
|
7. **Success Metrics** - Success criteria, quality standards, performance targets
|
||||||
|
8. **Development Roadmap** - Phased implementation plan with deliverables
|
||||||
|
9. **Creative Features** - Special touches, easter eggs, module lore
|
||||||
|
10. **Risk Assessment** - Technical, usability, scope risks with mitigation
|
||||||
|
11. **Implementation Notes** - Priority order, design decisions, open questions
|
||||||
|
12. **Resources and References** - Inspiration sources, similar modules, technical references
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- **Creative Vision** - Initial module concept or problem domain
|
||||||
|
- **Strategic Thinking** - Ability to plan architecture and user experience
|
||||||
|
- **Brainstorming Results** (optional) - Previous ideation sessions enhance planning quality
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
### Before Starting
|
||||||
|
|
||||||
|
1. **Gather Inspiration** - Research similar tools, modules, and solutions in your domain
|
||||||
|
2. **Run Brainstorming Session** - Use ideation techniques to generate initial concepts
|
||||||
|
3. **Define Success Criteria** - Know what "successful module" means for your context
|
||||||
|
|
||||||
|
### During Execution
|
||||||
|
|
||||||
|
1. **Think User-First** - Always consider the end user experience and value delivery
|
||||||
|
2. **Be Specific** - Provide concrete examples and detailed specifications rather than abstractions
|
||||||
|
3. **Validate Early** - Use user scenarios to test if the module concept actually works
|
||||||
|
4. **Plan Iteratively** - Start with MVP and build complexity through phases
|
||||||
|
|
||||||
|
### After Completion
|
||||||
|
|
||||||
|
1. **Use as Blueprint** - Feed the brief directly into create-module workflow for implementation
|
||||||
|
2. **Review with Stakeholders** - Validate assumptions and gather feedback before building
|
||||||
|
3. **Update as Needed** - Treat as living document that evolves with implementation learnings
|
||||||
|
4. **Reference During Development** - Use as north star for design decisions and scope management
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Common Issues
|
||||||
|
|
||||||
|
**Issue**: Stuck on module concept or vision
|
||||||
|
|
||||||
|
- **Solution**: Use creative prompts provided in the workflow
|
||||||
|
- **Check**: Review existing modules for inspiration and patterns
|
||||||
|
|
||||||
|
**Issue**: Agent or workflow architecture too complex
|
||||||
|
|
||||||
|
- **Solution**: Focus on MVP first, plan enhancement phases for additional complexity
|
||||||
|
- **Check**: Validate each component against user scenarios
|
||||||
|
|
||||||
|
**Issue**: Technical requirements unclear
|
||||||
|
|
||||||
|
- **Solution**: Research similar modules and their implementation approaches
|
||||||
|
- **Check**: Consult with technical stakeholders early in planning
|
||||||
|
|
||||||
|
**Issue**: Scope creep during planning
|
||||||
|
|
||||||
|
- **Solution**: Use phased roadmap to defer non-essential features
|
||||||
|
- **Check**: Regularly validate against core user scenarios and success criteria
|
||||||
|
|
||||||
|
## Customization
|
||||||
|
|
||||||
|
To customize this workflow:
|
||||||
|
|
||||||
|
1. **Modify Template Structure** - Update template.md to add new sections or reorganize content
|
||||||
|
2. **Extend Creative Prompts** - Add domain-specific ideation techniques in instructions.md
|
||||||
|
3. **Add Planning Tools** - Integrate additional analysis frameworks or planning methodologies
|
||||||
|
4. **Customize Validation** - Enhance checklist.md with specific quality criteria for your context
|
||||||
|
|
||||||
|
## Version History
|
||||||
|
|
||||||
|
- **v1.0.0** - Initial release
|
||||||
|
- Comprehensive strategic module planning
|
||||||
|
- Multi-mode operation (Interactive, Express, YOLO)
|
||||||
|
- Creative vision and architecture design tools
|
||||||
|
- User journey mapping and validation
|
||||||
|
- Risk assessment and mitigation planning
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
For issues or questions:
|
||||||
|
|
||||||
|
- Review the workflow creation guide at `/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md`
|
||||||
|
- Study existing module examples in `/bmad/` for patterns and inspiration
|
||||||
|
- Validate output using `checklist.md`
|
||||||
|
- Consult module structure guide at `create-module/module-structure.md`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_Part of the BMad Method v5 - BMB (Builder) Module_
|
||||||
116
bmad/bmb/workflows/module-brief/checklist.md
Normal file
116
bmad/bmb/workflows/module-brief/checklist.md
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
# Module Brief Validation Checklist
|
||||||
|
|
||||||
|
## Core Identity
|
||||||
|
|
||||||
|
- [ ] Module code follows kebab-case convention
|
||||||
|
- [ ] Module name is clear and memorable
|
||||||
|
- [ ] Module category is identified
|
||||||
|
- [ ] Target users are clearly defined
|
||||||
|
- [ ] Unique value proposition is articulated
|
||||||
|
|
||||||
|
## Vision and Concept
|
||||||
|
|
||||||
|
- [ ] Problem being solved is clearly stated
|
||||||
|
- [ ] Solution approach is explained
|
||||||
|
- [ ] Module scope is well-defined
|
||||||
|
- [ ] Success criteria are measurable
|
||||||
|
|
||||||
|
## Agent Architecture
|
||||||
|
|
||||||
|
- [ ] At least one agent is defined
|
||||||
|
- [ ] Each agent has a clear role and purpose
|
||||||
|
- [ ] Agent personalities are defined (if using personality themes)
|
||||||
|
- [ ] Agent interactions are mapped (for multi-agent modules)
|
||||||
|
- [ ] Key commands for each agent are listed
|
||||||
|
|
||||||
|
## Workflow Ecosystem
|
||||||
|
|
||||||
|
- [ ] Core workflows (2-3) are identified
|
||||||
|
- [ ] Each workflow has clear purpose
|
||||||
|
- [ ] Workflow complexity is assessed
|
||||||
|
- [ ] Input/output for workflows is defined
|
||||||
|
- [ ] Workflow categories are logical
|
||||||
|
|
||||||
|
## User Experience
|
||||||
|
|
||||||
|
- [ ] Primary use case is documented
|
||||||
|
- [ ] User scenarios demonstrate value
|
||||||
|
- [ ] User journey is realistic
|
||||||
|
- [ ] Learning curve is considered
|
||||||
|
- [ ] User feedback mechanism planned
|
||||||
|
|
||||||
|
## Technical Planning
|
||||||
|
|
||||||
|
- [ ] Data requirements are identified
|
||||||
|
- [ ] Integration points are mapped
|
||||||
|
- [ ] Dependencies are listed
|
||||||
|
- [ ] Technical complexity is assessed
|
||||||
|
- [ ] Performance requirements stated
|
||||||
|
|
||||||
|
## Development Roadmap
|
||||||
|
|
||||||
|
- [ ] Phase 1 MVP is clearly scoped
|
||||||
|
- [ ] Phase 2 enhancements are outlined
|
||||||
|
- [ ] Phase 3 polish items listed
|
||||||
|
- [ ] Timeline estimates provided
|
||||||
|
- [ ] Deliverables are specific
|
||||||
|
|
||||||
|
## Risk Management
|
||||||
|
|
||||||
|
- [ ] Technical risks identified
|
||||||
|
- [ ] Usability risks considered
|
||||||
|
- [ ] Scope risks acknowledged
|
||||||
|
- [ ] Mitigation strategies provided
|
||||||
|
- [ ] Open questions documented
|
||||||
|
|
||||||
|
## Creative Elements (Optional)
|
||||||
|
|
||||||
|
- [ ] Personality theme is consistent (if used)
|
||||||
|
- [ ] Special features add value
|
||||||
|
- [ ] Module feels cohesive
|
||||||
|
- [ ] Fun elements don't compromise functionality
|
||||||
|
|
||||||
|
## Documentation Quality
|
||||||
|
|
||||||
|
- [ ] All sections have content (no empty placeholders)
|
||||||
|
- [ ] Writing is clear and concise
|
||||||
|
- [ ] Technical terms are explained
|
||||||
|
- [ ] Examples are provided where helpful
|
||||||
|
- [ ] Next steps are actionable
|
||||||
|
|
||||||
|
## Implementation Readiness
|
||||||
|
|
||||||
|
- [ ] Brief provides enough detail for create-module workflow
|
||||||
|
- [ ] Agent specifications sufficient for create-agent workflow
|
||||||
|
- [ ] Workflow descriptions ready for create-workflow
|
||||||
|
- [ ] Resource requirements are clear
|
||||||
|
- [ ] Success metrics are measurable
|
||||||
|
|
||||||
|
## Final Validation
|
||||||
|
|
||||||
|
- [ ] Module concept is viable
|
||||||
|
- [ ] Scope is achievable
|
||||||
|
- [ ] Value is clear
|
||||||
|
- [ ] Brief is complete
|
||||||
|
- [ ] Ready for development
|
||||||
|
|
||||||
|
## Issues Found
|
||||||
|
|
||||||
|
### Critical Issues
|
||||||
|
|
||||||
|
<!-- Must be fixed before proceeding to build -->
|
||||||
|
|
||||||
|
### Recommendations
|
||||||
|
|
||||||
|
<!-- Suggested improvements -->
|
||||||
|
|
||||||
|
### Nice-to-Haves
|
||||||
|
|
||||||
|
<!-- Optional enhancements -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Validation Complete:** ⬜ Yes / ⬜ With Issues / ⬜ Needs Revision
|
||||||
|
|
||||||
|
**Validated By:** **\*\*\*\***\_**\*\*\*\***
|
||||||
|
**Date:** **\*\*\*\***\_**\*\*\*\***
|
||||||
267
bmad/bmb/workflows/module-brief/instructions.md
Normal file
267
bmad/bmb/workflows/module-brief/instructions.md
Normal file
@@ -0,0 +1,267 @@
|
|||||||
|
# Module Brief Instructions
|
||||||
|
|
||||||
|
<critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical>
|
||||||
|
<critical>You MUST have already loaded and processed: {project-root}/bmad/bmb/workflows/module-brief/workflow.yaml</critical>
|
||||||
|
<critical>Communicate in {communication_language} throughout the module brief creation process</critical>
|
||||||
|
|
||||||
|
<workflow>
|
||||||
|
|
||||||
|
<step n="1" goal="Setup and context gathering">
|
||||||
|
<action>Ask the user which mode they prefer:</action>
|
||||||
|
1. **Interactive Mode** - Work through each section collaboratively with detailed questions
|
||||||
|
2. **Express Mode** - Quick essential questions only
|
||||||
|
3. **YOLO Mode** (#yolo) - Generate complete draft based on minimal input
|
||||||
|
|
||||||
|
<action>Check for available inputs:</action>
|
||||||
|
|
||||||
|
- Brainstorming results from previous sessions
|
||||||
|
- Existing module ideas or notes
|
||||||
|
- Similar modules for inspiration
|
||||||
|
|
||||||
|
<action>If brainstorming results exist, offer to load and incorporate them</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2" goal="Module concept and vision">
|
||||||
|
Ask the user to describe their module idea. Probe for:
|
||||||
|
- What problem does this module solve?
|
||||||
|
- Who would use this module?
|
||||||
|
- What makes this module exciting or unique?
|
||||||
|
- Any inspiring examples or similar tools?
|
||||||
|
|
||||||
|
If they're stuck, offer creative prompts:
|
||||||
|
|
||||||
|
- "Imagine you're a [role], what tools would make your life easier?"
|
||||||
|
- "What repetitive tasks could be automated with agents?"
|
||||||
|
- "What domain expertise could be captured in workflows?"
|
||||||
|
|
||||||
|
<template-output>module_vision</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="3" goal="Define module identity">
|
||||||
|
Based on the vision, work with user to define:
|
||||||
|
|
||||||
|
**Module Code** (kebab-case):
|
||||||
|
|
||||||
|
- Suggest 2-3 options based on their description
|
||||||
|
- Ensure it's memorable and descriptive
|
||||||
|
|
||||||
|
**Module Name** (friendly):
|
||||||
|
|
||||||
|
- Creative, engaging name that captures the essence
|
||||||
|
|
||||||
|
**Module Category:**
|
||||||
|
|
||||||
|
- Domain-Specific (legal, medical, finance)
|
||||||
|
- Creative (writing, gaming, music)
|
||||||
|
- Technical (devops, testing, architecture)
|
||||||
|
- Business (project management, marketing)
|
||||||
|
- Personal (productivity, learning)
|
||||||
|
|
||||||
|
**Personality Theme** (optional but fun!):
|
||||||
|
|
||||||
|
- Should the module have a consistent personality across agents?
|
||||||
|
- Star Trek crew? Fantasy party? Corporate team? Reality show cast?
|
||||||
|
|
||||||
|
<template-output>module_identity</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="4" goal="Agent architecture planning">
|
||||||
|
<action>Help user envision their agent team</action>
|
||||||
|
|
||||||
|
For each agent, capture:
|
||||||
|
|
||||||
|
- **Role**: What's their specialty?
|
||||||
|
- **Personality**: How do they communicate? (reference communication styles)
|
||||||
|
- **Key Capabilities**: What can they do?
|
||||||
|
- **Signature Commands**: 2-3 main commands
|
||||||
|
|
||||||
|
Suggest agent archetypes based on module type:
|
||||||
|
|
||||||
|
- The Orchestrator (manages other agents)
|
||||||
|
- The Specialist (deep expertise)
|
||||||
|
- The Helper (utility functions)
|
||||||
|
- The Creator (generates content)
|
||||||
|
- The Analyzer (processes and evaluates)
|
||||||
|
|
||||||
|
<template-output>agent_architecture</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="5" goal="Workflow ecosystem design">
|
||||||
|
<action>Map out the workflow landscape</action>
|
||||||
|
|
||||||
|
Categorize workflows:
|
||||||
|
|
||||||
|
**Core Workflows** (2-3 essential ones):
|
||||||
|
|
||||||
|
- The primary value-delivery workflows
|
||||||
|
- What users will use most often
|
||||||
|
|
||||||
|
**Feature Workflows** (3-5 specialized):
|
||||||
|
|
||||||
|
- Specific capabilities
|
||||||
|
- Advanced features
|
||||||
|
|
||||||
|
**Utility Workflows** (1-3 supporting):
|
||||||
|
|
||||||
|
- Setup, configuration
|
||||||
|
- Maintenance, cleanup
|
||||||
|
|
||||||
|
For each workflow, define:
|
||||||
|
|
||||||
|
- Purpose (one sentence)
|
||||||
|
- Input → Process → Output
|
||||||
|
- Complexity (simple/standard/complex)
|
||||||
|
|
||||||
|
<template-output>workflow_ecosystem</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="6" goal="User journey and scenarios">
|
||||||
|
<action>Create usage scenarios to validate the design</action>
|
||||||
|
|
||||||
|
Write 2-3 user stories:
|
||||||
|
"As a [user type], I want to [goal], so that [outcome]"
|
||||||
|
|
||||||
|
Then walk through how they'd use the module:
|
||||||
|
|
||||||
|
1. They load [agent]
|
||||||
|
2. They run [command/workflow]
|
||||||
|
3. They get [result]
|
||||||
|
4. This helps them [achievement]
|
||||||
|
|
||||||
|
This validates the module makes sense end-to-end.
|
||||||
|
|
||||||
|
<template-output>user_scenarios</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="7" goal="Technical and resource planning">
|
||||||
|
Assess technical requirements:
|
||||||
|
|
||||||
|
**Data Requirements:**
|
||||||
|
|
||||||
|
- What data/files does the module need?
|
||||||
|
- Any external APIs or services?
|
||||||
|
- Storage or state management needs?
|
||||||
|
|
||||||
|
**Integration Points:**
|
||||||
|
|
||||||
|
- Other BMAD modules it might use
|
||||||
|
- External tools or platforms
|
||||||
|
- Import/export formats
|
||||||
|
|
||||||
|
**Complexity Assessment:**
|
||||||
|
|
||||||
|
- Simple (standalone, no dependencies)
|
||||||
|
- Standard (some integrations, moderate complexity)
|
||||||
|
- Complex (multiple systems, advanced features)
|
||||||
|
|
||||||
|
<template-output>technical_planning</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="8" goal="Success metrics and validation">
|
||||||
|
Define what success looks like:
|
||||||
|
|
||||||
|
**Module Success Criteria:**
|
||||||
|
|
||||||
|
- What indicates the module is working well?
|
||||||
|
- How will users measure value?
|
||||||
|
- What feedback mechanisms?
|
||||||
|
|
||||||
|
**Quality Standards:**
|
||||||
|
|
||||||
|
- Performance expectations
|
||||||
|
- Reliability requirements
|
||||||
|
- User experience goals
|
||||||
|
|
||||||
|
<template-output>success_metrics</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="9" goal="Development roadmap">
|
||||||
|
Create a phased approach:
|
||||||
|
|
||||||
|
**Phase 1 - MVP (Minimum Viable Module):**
|
||||||
|
|
||||||
|
- 1 primary agent
|
||||||
|
- 2-3 core workflows
|
||||||
|
- Basic functionality
|
||||||
|
|
||||||
|
**Phase 2 - Enhancement:**
|
||||||
|
|
||||||
|
- Additional agents
|
||||||
|
- More workflows
|
||||||
|
- Refined features
|
||||||
|
|
||||||
|
**Phase 3 - Polish:**
|
||||||
|
|
||||||
|
- Advanced features
|
||||||
|
- Optimizations
|
||||||
|
- Nice-to-haves
|
||||||
|
|
||||||
|
<template-output>development_roadmap</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="10" goal="Creative flourishes and special features" optional="true">
|
||||||
|
<action>If user wants to add special touches:</action>
|
||||||
|
|
||||||
|
**Easter Eggs:**
|
||||||
|
|
||||||
|
- Hidden commands or responses
|
||||||
|
- Fun interactions between agents
|
||||||
|
|
||||||
|
**Delighters:**
|
||||||
|
|
||||||
|
- Unexpected helpful features
|
||||||
|
- Personality quirks
|
||||||
|
- Creative responses
|
||||||
|
|
||||||
|
**Module Lore:**
|
||||||
|
|
||||||
|
- Backstory for agents
|
||||||
|
- Thematic elements
|
||||||
|
- Consistent universe
|
||||||
|
|
||||||
|
<template-output>creative_features</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="11" goal="Risk assessment and mitigation">
|
||||||
|
Identify potential challenges:
|
||||||
|
|
||||||
|
**Technical Risks:**
|
||||||
|
|
||||||
|
- Complex integrations
|
||||||
|
- Performance concerns
|
||||||
|
- Dependency issues
|
||||||
|
|
||||||
|
**Usability Risks:**
|
||||||
|
|
||||||
|
- Learning curve
|
||||||
|
- Complexity creep
|
||||||
|
- User confusion
|
||||||
|
|
||||||
|
**Scope Risks:**
|
||||||
|
|
||||||
|
- Feature bloat
|
||||||
|
- Timeline expansion
|
||||||
|
- Resource constraints
|
||||||
|
|
||||||
|
For each risk, note mitigation strategy.
|
||||||
|
|
||||||
|
<template-output>risk_assessment</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="12" goal="Final review and export readiness">
|
||||||
|
<action>Review all sections with {user_name}</action>
|
||||||
|
<action>Ensure module brief is ready for create-module workflow</action>
|
||||||
|
|
||||||
|
<ask>Would {user_name} like to:
|
||||||
|
|
||||||
|
1. Proceed directly to create-module workflow
|
||||||
|
2. Save and refine later
|
||||||
|
3. Generate additional planning documents
|
||||||
|
</ask>
|
||||||
|
|
||||||
|
<action>Inform {user_name} in {communication_language} that this brief can be fed directly into create-module workflow</action>
|
||||||
|
|
||||||
|
<template-output>final_brief</template-output>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
</workflow>
|
||||||
275
bmad/bmb/workflows/module-brief/template.md
Normal file
275
bmad/bmb/workflows/module-brief/template.md
Normal file
@@ -0,0 +1,275 @@
|
|||||||
|
# Module Brief: {{module_name}}
|
||||||
|
|
||||||
|
**Date:** {{date}}
|
||||||
|
**Author:** {{user_name}}
|
||||||
|
**Module Code:** {{module_code}}
|
||||||
|
**Status:** Ready for Development
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Executive Summary
|
||||||
|
|
||||||
|
{{module_vision}}
|
||||||
|
|
||||||
|
**Module Category:** {{module_category}}
|
||||||
|
**Complexity Level:** {{complexity_level}}
|
||||||
|
**Target Users:** {{target_users}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Module Identity
|
||||||
|
|
||||||
|
### Core Concept
|
||||||
|
|
||||||
|
{{module_identity}}
|
||||||
|
|
||||||
|
### Unique Value Proposition
|
||||||
|
|
||||||
|
What makes this module special:
|
||||||
|
{{unique_value}}
|
||||||
|
|
||||||
|
### Personality Theme
|
||||||
|
|
||||||
|
{{personality_theme}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Agent Architecture
|
||||||
|
|
||||||
|
{{agent_architecture}}
|
||||||
|
|
||||||
|
### Agent Roster
|
||||||
|
|
||||||
|
{{agent_roster}}
|
||||||
|
|
||||||
|
### Agent Interaction Model
|
||||||
|
|
||||||
|
How agents work together:
|
||||||
|
{{agent_interactions}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Workflow Ecosystem
|
||||||
|
|
||||||
|
{{workflow_ecosystem}}
|
||||||
|
|
||||||
|
### Core Workflows
|
||||||
|
|
||||||
|
Essential functionality that delivers primary value:
|
||||||
|
{{core_workflows}}
|
||||||
|
|
||||||
|
### Feature Workflows
|
||||||
|
|
||||||
|
Specialized capabilities that enhance the module:
|
||||||
|
{{feature_workflows}}
|
||||||
|
|
||||||
|
### Utility Workflows
|
||||||
|
|
||||||
|
Supporting operations and maintenance:
|
||||||
|
{{utility_workflows}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## User Scenarios
|
||||||
|
|
||||||
|
### Primary Use Case
|
||||||
|
|
||||||
|
{{primary_scenario}}
|
||||||
|
|
||||||
|
### Secondary Use Cases
|
||||||
|
|
||||||
|
{{secondary_scenarios}}
|
||||||
|
|
||||||
|
### User Journey
|
||||||
|
|
||||||
|
Step-by-step walkthrough of typical usage:
|
||||||
|
{{user_journey}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Technical Planning
|
||||||
|
|
||||||
|
### Data Requirements
|
||||||
|
|
||||||
|
{{data_requirements}}
|
||||||
|
|
||||||
|
### Integration Points
|
||||||
|
|
||||||
|
{{integration_points}}
|
||||||
|
|
||||||
|
### Dependencies
|
||||||
|
|
||||||
|
{{dependencies}}
|
||||||
|
|
||||||
|
### Technical Complexity Assessment
|
||||||
|
|
||||||
|
{{technical_planning}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Success Metrics
|
||||||
|
|
||||||
|
### Module Success Criteria
|
||||||
|
|
||||||
|
How we'll know the module is successful:
|
||||||
|
{{success_criteria}}
|
||||||
|
|
||||||
|
### Quality Standards
|
||||||
|
|
||||||
|
{{quality_standards}}
|
||||||
|
|
||||||
|
### Performance Targets
|
||||||
|
|
||||||
|
{{performance_targets}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Development Roadmap
|
||||||
|
|
||||||
|
### Phase 1: MVP (Minimum Viable Module)
|
||||||
|
|
||||||
|
**Timeline:** {{phase1_timeline}}
|
||||||
|
|
||||||
|
{{phase1_components}}
|
||||||
|
|
||||||
|
**Deliverables:**
|
||||||
|
{{phase1_deliverables}}
|
||||||
|
|
||||||
|
### Phase 2: Enhancement
|
||||||
|
|
||||||
|
**Timeline:** {{phase2_timeline}}
|
||||||
|
|
||||||
|
{{phase2_components}}
|
||||||
|
|
||||||
|
**Deliverables:**
|
||||||
|
{{phase2_deliverables}}
|
||||||
|
|
||||||
|
### Phase 3: Polish and Optimization
|
||||||
|
|
||||||
|
**Timeline:** {{phase3_timeline}}
|
||||||
|
|
||||||
|
{{phase3_components}}
|
||||||
|
|
||||||
|
**Deliverables:**
|
||||||
|
{{phase3_deliverables}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Creative Features
|
||||||
|
|
||||||
|
### Special Touches
|
||||||
|
|
||||||
|
{{creative_features}}
|
||||||
|
|
||||||
|
### Easter Eggs and Delighters
|
||||||
|
|
||||||
|
{{easter_eggs}}
|
||||||
|
|
||||||
|
### Module Lore and Theming
|
||||||
|
|
||||||
|
{{module_lore}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Risk Assessment
|
||||||
|
|
||||||
|
### Technical Risks
|
||||||
|
|
||||||
|
{{technical_risks}}
|
||||||
|
|
||||||
|
### Usability Risks
|
||||||
|
|
||||||
|
{{usability_risks}}
|
||||||
|
|
||||||
|
### Scope Risks
|
||||||
|
|
||||||
|
{{scope_risks}}
|
||||||
|
|
||||||
|
### Mitigation Strategies
|
||||||
|
|
||||||
|
{{risk_mitigation}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Implementation Notes
|
||||||
|
|
||||||
|
### Priority Order
|
||||||
|
|
||||||
|
1. {{priority_1}}
|
||||||
|
2. {{priority_2}}
|
||||||
|
3. {{priority_3}}
|
||||||
|
|
||||||
|
### Key Design Decisions
|
||||||
|
|
||||||
|
{{design_decisions}}
|
||||||
|
|
||||||
|
### Open Questions
|
||||||
|
|
||||||
|
{{open_questions}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Resources and References
|
||||||
|
|
||||||
|
### Inspiration Sources
|
||||||
|
|
||||||
|
{{inspiration_sources}}
|
||||||
|
|
||||||
|
### Similar Modules
|
||||||
|
|
||||||
|
{{similar_modules}}
|
||||||
|
|
||||||
|
### Technical References
|
||||||
|
|
||||||
|
{{technical_references}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Appendices
|
||||||
|
|
||||||
|
### A. Detailed Agent Specifications
|
||||||
|
|
||||||
|
{{detailed_agent_specs}}
|
||||||
|
|
||||||
|
### B. Workflow Detailed Designs
|
||||||
|
|
||||||
|
{{detailed_workflow_specs}}
|
||||||
|
|
||||||
|
### C. Data Structures and Schemas
|
||||||
|
|
||||||
|
{{data_schemas}}
|
||||||
|
|
||||||
|
### D. Integration Specifications
|
||||||
|
|
||||||
|
{{integration_specs}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. **Review this brief** with stakeholders
|
||||||
|
2. **Run create-module workflow** using this brief as input
|
||||||
|
3. **Create first agent** using create-agent workflow
|
||||||
|
4. **Develop initial workflows** using create-workflow
|
||||||
|
5. **Test MVP** with target users
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_This Module Brief is ready to be fed directly into the create-module workflow for scaffolding and implementation._
|
||||||
|
|
||||||
|
**Module Viability Score:** {{viability_score}}/10
|
||||||
|
**Estimated Development Effort:** {{effort_estimate}}
|
||||||
|
**Confidence Level:** {{confidence_level}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Approval for Development:**
|
||||||
|
|
||||||
|
- [ ] Concept Approved
|
||||||
|
- [ ] Scope Defined
|
||||||
|
- [ ] Resources Available
|
||||||
|
- [ ] Ready to Build
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_Generated on {{date}} by {{user_name}} using the BMAD Method Module Brief workflow_
|
||||||
27
bmad/bmb/workflows/module-brief/workflow.yaml
Normal file
27
bmad/bmb/workflows/module-brief/workflow.yaml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# Module Brief Workflow Configuration
|
||||||
|
name: module-brief
|
||||||
|
description: "Create a comprehensive Module Brief that serves as the blueprint for building new BMAD modules using strategic analysis and creative vision"
|
||||||
|
author: "BMad Builder"
|
||||||
|
|
||||||
|
# Critical variables
|
||||||
|
config_source: "{project-root}/bmad/bmb/config.yaml"
|
||||||
|
output_folder: "{config_source}:output_folder"
|
||||||
|
user_name: "{config_source}:user_name"
|
||||||
|
communication_language: "{config_source}:communication_language"
|
||||||
|
date: system-generated
|
||||||
|
|
||||||
|
# Optional input docs that enhance module planning
|
||||||
|
recommended_inputs:
|
||||||
|
- brainstorming_results: "{output_folder}/brainstorming-*.md"
|
||||||
|
- existing_modules: "{project-root}/bmad/"
|
||||||
|
- module_examples: "{project-root}/bmad/bmb/workflows/create-module/module-structure.md"
|
||||||
|
|
||||||
|
# Module path and component files
|
||||||
|
installed_path: "{project-root}/bmad/bmb/workflows/module-brief"
|
||||||
|
template: "{installed_path}/template.md"
|
||||||
|
instructions: "{installed_path}/instructions.md"
|
||||||
|
validation: "{installed_path}/checklist.md"
|
||||||
|
|
||||||
|
# Output configuration
|
||||||
|
default_output_file: "{output_folder}/module-brief-{{module_code}}-{{date}}.md"
|
||||||
|
# Web bundle configuration
|
||||||
87
bmad/bmb/workflows/redoc/README.md
Normal file
87
bmad/bmb/workflows/redoc/README.md
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
# ReDoc - Reverse-Tree Documentation Engine
|
||||||
|
|
||||||
|
**Type:** Autonomous Action Workflow
|
||||||
|
**Module:** BMad Builder (bmb)
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
ReDoc is an intelligent documentation maintenance system for BMAD modules, workflows, and agents. It uses a reverse-tree approach (leaf folders first, then parent folders) to systematically generate and update README.md files with technical writer quality output.
|
||||||
|
|
||||||
|
The workflow understands BMAD conventions deeply and focuses documentation on distinctive features rather than explaining standard patterns, resulting in succinct, precise technical documentation.
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- **Reverse-Tree Processing**: Documents from deepest folders up to module root, allowing child documentation to inform parent summaries
|
||||||
|
- **Convention-Aware**: Loads BMAD architecture patterns and only documents unique/distinctive aspects
|
||||||
|
- **Scalability**: Automatically creates catalog documents (WORKFLOWS-CATALOG.md, AGENTS-CATALOG.md) for massive folders (>10 items)
|
||||||
|
- **Diff-Aware**: Tracks `last-redoc-date` frontmatter to enable change detection since last run
|
||||||
|
- **Autonomous**: Runs without user checkpoints unless clarification is genuinely required
|
||||||
|
- **Comprehensive**: Reads ALL files completely before generating documentation (no partial reads)
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Invoke with a target path:
|
||||||
|
|
||||||
|
```
|
||||||
|
workflow redoc
|
||||||
|
```
|
||||||
|
|
||||||
|
When prompted, provide one of:
|
||||||
|
|
||||||
|
- **Module path**: `bmad/bmm` (documents entire module: root, workflows, agents)
|
||||||
|
- **Workflows folder**: `bmad/bmm/workflows` (documents all workflows)
|
||||||
|
- **Agents folder**: `bmad/bmm/agents` (documents all agents)
|
||||||
|
- **Single workflow**: `bmad/bmm/workflows/product-brief` (documents one workflow)
|
||||||
|
- **Single agent**: `bmad/bmm/agents/prd-agent.md` (documents one agent)
|
||||||
|
|
||||||
|
## Inputs
|
||||||
|
|
||||||
|
### Required
|
||||||
|
|
||||||
|
- **target_path**: Path to module, folder, or specific component to document
|
||||||
|
|
||||||
|
### Knowledge Base (Auto-loaded)
|
||||||
|
|
||||||
|
- agent-architecture.md
|
||||||
|
- agent-command-patterns.md
|
||||||
|
- agent-types.md
|
||||||
|
- module-structure.md
|
||||||
|
- workflow-creation-guide.md
|
||||||
|
|
||||||
|
## Outputs
|
||||||
|
|
||||||
|
### Created/Updated Files
|
||||||
|
|
||||||
|
- **README.md**: At each documented level (workflow folders, agent folders, module root)
|
||||||
|
- **Catalog files**: WORKFLOWS-CATALOG.md, AGENTS-CATALOG.md (for massive folders)
|
||||||
|
- **Frontmatter**: All READMEs include `last-redoc-date: <timestamp>`
|
||||||
|
|
||||||
|
### Summary Report
|
||||||
|
|
||||||
|
- Documentation coverage statistics
|
||||||
|
- List of files created/updated
|
||||||
|
- Any items requiring manual review
|
||||||
|
|
||||||
|
## Workflow Steps
|
||||||
|
|
||||||
|
1. **Initialize**: Load BMAD conventions and validate target
|
||||||
|
2. **Analyze Structure**: Build reverse-tree execution plan
|
||||||
|
3. **Process Leaves**: Document individual workflows/agents (deepest first)
|
||||||
|
4. **Process Folders**: Document workflow/agent collections with categorization
|
||||||
|
5. **Process Root**: Document module overview with links and highlights
|
||||||
|
6. **Validate**: Verify completeness and generate report
|
||||||
|
7. **Diff Analysis** (optional): Show changes since last redoc
|
||||||
|
8. **Complete**: Report success and suggest next steps
|
||||||
|
|
||||||
|
## Technical Details
|
||||||
|
|
||||||
|
- **Execution**: Autonomous with minimal user interaction
|
||||||
|
- **Quality**: Technical writer standards - succinct, precise, professional
|
||||||
|
- **Context-Aware**: Uses BMAD convention knowledge to highlight only distinctive features
|
||||||
|
- **Scalable**: Handles folders of any size with intelligent catalog creation
|
||||||
|
|
||||||
|
## Next Steps After Running
|
||||||
|
|
||||||
|
1. Review generated documentation for accuracy
|
||||||
|
2. If documenting a subfolder, run redoc on parent module to update references
|
||||||
|
3. Commit documentation updates with meaningful message
|
||||||
99
bmad/bmb/workflows/redoc/checklist.md
Normal file
99
bmad/bmb/workflows/redoc/checklist.md
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
# ReDoc Workflow Validation Checklist
|
||||||
|
|
||||||
|
## Initialization and Setup
|
||||||
|
|
||||||
|
- [ ] All BMAD convention documents loaded and understood
|
||||||
|
- [ ] Target path validated and exists
|
||||||
|
- [ ] Target type correctly identified (module/workflow/agent/folder)
|
||||||
|
- [ ] Documentation execution plan created with reverse-tree order
|
||||||
|
|
||||||
|
## File Analysis
|
||||||
|
|
||||||
|
- [ ] All files in target scope read completely (no offset/limit usage)
|
||||||
|
- [ ] Existing README.md files detected and last-redoc-date parsed
|
||||||
|
- [ ] Massive folders (>10 items) identified for catalog document creation
|
||||||
|
- [ ] Documentation depth levels calculated correctly
|
||||||
|
|
||||||
|
## Leaf-Level Documentation (Workflows)
|
||||||
|
|
||||||
|
- [ ] Each workflow's ALL files read: workflow.yaml, instructions.md, template.md, checklist.md
|
||||||
|
- [ ] README.md includes frontmatter with current last-redoc-date
|
||||||
|
- [ ] Description is 2-4 paragraphs of technical writer quality
|
||||||
|
- [ ] Focuses on DISTINCTIVE features, not BMAD boilerplate conventions
|
||||||
|
- [ ] Includes "Usage" section with invocation command
|
||||||
|
- [ ] Includes "Inputs" and "Outputs" sections where applicable
|
||||||
|
- [ ] Succinct and precise language used throughout
|
||||||
|
|
||||||
|
## Leaf-Level Documentation (Agents)
|
||||||
|
|
||||||
|
- [ ] Each agent file read completely including XML structure, commands, persona
|
||||||
|
- [ ] README.md includes frontmatter with current last-redoc-date
|
||||||
|
- [ ] Description is 1-3 paragraphs of technical writer quality
|
||||||
|
- [ ] Lists all available commands clearly
|
||||||
|
- [ ] Explains when to use this agent
|
||||||
|
- [ ] Highlights unique capabilities vs standard agent patterns
|
||||||
|
|
||||||
|
## Mid-Level Documentation (Folders)
|
||||||
|
|
||||||
|
- [ ] All child README.md files read before generating folder README
|
||||||
|
- [ ] Workflows categorized logically if massive folder (>10 items)
|
||||||
|
- [ ] Agents categorized by type if massive folder (>10 items)
|
||||||
|
- [ ] Catalog documents (WORKFLOWS-CATALOG.md, AGENTS-CATALOG.md) created for massive folders
|
||||||
|
- [ ] Catalog documents include frontmatter with last-redoc-date
|
||||||
|
- [ ] Folder README.md references catalog if one exists
|
||||||
|
- [ ] Folder README.md is succinct (1-2 paragraphs + listings/links)
|
||||||
|
- [ ] Notable/commonly-used items highlighted
|
||||||
|
|
||||||
|
## Root Module Documentation
|
||||||
|
|
||||||
|
- [ ] Module config.yaml read and understood
|
||||||
|
- [ ] Workflows and agents folder READMEs read before creating root README
|
||||||
|
- [ ] Root README includes frontmatter with current last-redoc-date
|
||||||
|
- [ ] Module purpose clearly stated in 2-3 sentences
|
||||||
|
- [ ] Links to /workflows/README.md and /agents/README.md included
|
||||||
|
- [ ] 2-3 key workflows mentioned with context
|
||||||
|
- [ ] 2-3 key agents mentioned with context
|
||||||
|
- [ ] Configuration section highlights UNIQUE settings only
|
||||||
|
- [ ] Usage section explains invocation patterns
|
||||||
|
- [ ] BMAD convention knowledge applied (describes only distinctive aspects)
|
||||||
|
|
||||||
|
## Quality Standards
|
||||||
|
|
||||||
|
- [ ] All documentation uses proper BMAD terminology
|
||||||
|
- [ ] Technical writer quality: clear, concise, professional
|
||||||
|
- [ ] No placeholder text or generic descriptions remain
|
||||||
|
- [ ] All links are valid and correctly formatted
|
||||||
|
- [ ] Frontmatter syntax is correct and dates are current
|
||||||
|
- [ ] No redundant explanation of standard BMAD patterns
|
||||||
|
|
||||||
|
## Validation and Reporting
|
||||||
|
|
||||||
|
- [ ] All planned documentation items created/updated
|
||||||
|
- [ ] Frontmatter dates verified as current across all files
|
||||||
|
- [ ] File paths and internal links validated
|
||||||
|
- [ ] Summary report generated with counts and coverage
|
||||||
|
- [ ] Files skipped (if any) documented with reasons
|
||||||
|
|
||||||
|
## Git Diff Analysis (Optional Step)
|
||||||
|
|
||||||
|
- [ ] last-redoc-date timestamps extracted correctly
|
||||||
|
- [ ] Git log queried for changes since last redoc
|
||||||
|
- [ ] Modified files identified and reported
|
||||||
|
- [ ] Findings presented clearly to user
|
||||||
|
|
||||||
|
## Final Validation
|
||||||
|
|
||||||
|
- [ ] Documentation Coverage
|
||||||
|
- All README.md files in scope created/updated
|
||||||
|
- Catalog documents created where needed
|
||||||
|
- No documentation gaps identified
|
||||||
|
|
||||||
|
- [ ] Execution Quality
|
||||||
|
- Reverse-tree order followed (leaf → root)
|
||||||
|
- Autonomous execution (minimal user prompts)
|
||||||
|
- Only clarification questions asked when truly necessary
|
||||||
|
|
||||||
|
- [ ] Output Quality
|
||||||
|
- Technical precision maintained throughout
|
||||||
|
- Succinct descriptions (no verbose explanations)
|
||||||
|
- Professional documentation standards met
|
||||||
265
bmad/bmb/workflows/redoc/instructions.md
Normal file
265
bmad/bmb/workflows/redoc/instructions.md
Normal file
@@ -0,0 +1,265 @@
|
|||||||
|
# ReDoc Workflow Instructions
|
||||||
|
|
||||||
|
<critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical>
|
||||||
|
<critical>You MUST have already loaded and processed: {project-root}/src/modules/bmb/workflows/redoc/workflow.yaml</critical>
|
||||||
|
<critical>Communicate in {communication_language} throughout the documentation process</critical>
|
||||||
|
<critical>This is an AUTONOMOUS workflow - minimize user interaction unless clarification is absolutely required</critical>
|
||||||
|
<critical>IMPORTANT: Process ONE document at a time to avoid token limits. Each README should be created individually, not batched.</critical>
|
||||||
|
<critical>When using Task tool with sub-agents: Only request ONE workflow or agent documentation per invocation to prevent token overflow.</critical>
|
||||||
|
|
||||||
|
<workflow>
|
||||||
|
|
||||||
|
<step n="1" goal="Load BMAD conventions and initialize">
|
||||||
|
<action>Load ALL BMAD convention documents from {bmad_conventions}:
|
||||||
|
- agent_architecture.md - Understand agent XML structure and patterns
|
||||||
|
- agent_command_patterns.md - Command syntax and activation patterns
|
||||||
|
- agent_types.md - Standard agent categories and purposes
|
||||||
|
- module_structure.md - Module organization and folder conventions
|
||||||
|
- workflow_guide.md - Workflow structure and best practices
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action>Internalize these conventions so you can:
|
||||||
|
|
||||||
|
- Recognize standard patterns vs unique implementations
|
||||||
|
- Describe only what's distinctive about each component
|
||||||
|
- Use proper terminology consistently
|
||||||
|
- Write with technical precision
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action>Get target path from user:
|
||||||
|
|
||||||
|
- Ask: "What do you want to document? (module path, workflow path, agent path, or folder path)"
|
||||||
|
- Store as {{target_path}}
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action>Validate target path exists and determine target type:
|
||||||
|
|
||||||
|
- Module root (contains config.yaml, /workflows, /agents folders)
|
||||||
|
- Workflows folder (contains multiple workflow folders)
|
||||||
|
- Agents folder (contains multiple agent .md files)
|
||||||
|
- Single workflow folder (contains workflow.yaml)
|
||||||
|
- Single agent file (.md)
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action>Store target type as {{target_type}} for conditional processing</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2" goal="Analyze directory structure and existing documentation">
|
||||||
|
<action>Build complete tree structure of {{target_path}} using Glob and file system tools</action>
|
||||||
|
|
||||||
|
<action>Identify all documentation points:
|
||||||
|
|
||||||
|
- List all folders requiring README.md files
|
||||||
|
- Detect existing README.md files
|
||||||
|
- Parse frontmatter from existing READMEs to extract last-redoc-date
|
||||||
|
- Calculate documentation depth (how many levels deep)
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action>Create documentation map with execution order (deepest → shallowest):
|
||||||
|
|
||||||
|
- Level 0 (deepest): Individual workflow folders, individual agent files
|
||||||
|
- Level 1: /workflows folder, /agents folder
|
||||||
|
- Level 2 (root): Module root README.md
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action>Detect "massive folders" requiring child catalog documents:
|
||||||
|
|
||||||
|
- Threshold: >10 items or complex categorization needed
|
||||||
|
- Mark folders for catalog document creation (e.g., WORKFLOWS-CATALOG.md, AGENTS-CATALOG.md)
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<critical>Store execution order as {{doc_execution_plan}} - this ensures reverse-tree processing</critical>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="3" goal="Process leaf-level documentation" repeat="for-each-leaf-item">
|
||||||
|
<critical>TOKEN LIMIT WARNING: Process ONE item at a time to prevent token overflow issues.</critical>
|
||||||
|
<critical>If using Task tool with sub-agents: NEVER batch multiple workflows/agents in a single invocation.</critical>
|
||||||
|
<critical>Each README creation should be a separate operation with its own file save.</critical>
|
||||||
|
<critical>Sequential processing is MANDATORY - do not attempt parallel documentation generation.</critical>
|
||||||
|
<action>For each individual workflow folder in execution plan (PROCESS ONE AT A TIME):
|
||||||
|
1. Read ALL files completely:
|
||||||
|
- workflow.yaml (metadata, purpose, configuration)
|
||||||
|
- instructions.md (step structure, goals)
|
||||||
|
- template.md (output structure) if exists
|
||||||
|
- checklist.md (validation criteria) if exists
|
||||||
|
- Any supporting data files
|
||||||
|
|
||||||
|
2. Synthesize understanding:
|
||||||
|
- Core purpose and use case
|
||||||
|
- Input requirements
|
||||||
|
- Output produced
|
||||||
|
- Unique characteristics (vs standard BMAD workflow patterns)
|
||||||
|
- Key steps or special features
|
||||||
|
|
||||||
|
3. Generate/update README.md:
|
||||||
|
- Add frontmatter: `---\nlast-redoc-date: {{date}}\n---\n`
|
||||||
|
- Write 2-4 paragraph technical description
|
||||||
|
- Include "Usage" section with invocation command
|
||||||
|
- Include "Inputs" section if applicable
|
||||||
|
- Include "Outputs" section
|
||||||
|
- Be succinct and precise - technical writer quality
|
||||||
|
- Focus on DISTINCTIVE features, not boilerplate
|
||||||
|
|
||||||
|
4. Save README.md to workflow folder
|
||||||
|
|
||||||
|
<critical>If multiple workflows need documentation, process them SEQUENTIALLY not in parallel. Each workflow gets its own complete processing cycle.</critical>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action>For each individual agent file in execution plan (PROCESS ONE AT A TIME):
|
||||||
|
|
||||||
|
1. Read agent definition file completely:
|
||||||
|
- XML structure and metadata
|
||||||
|
- Commands and their purposes
|
||||||
|
- Activation patterns
|
||||||
|
- Persona and communication style
|
||||||
|
- Critical actions and workflows invoked
|
||||||
|
|
||||||
|
2. Synthesize understanding:
|
||||||
|
- Agent purpose and role
|
||||||
|
- Available commands
|
||||||
|
- When to use this agent
|
||||||
|
- Unique capabilities
|
||||||
|
|
||||||
|
3. Generate/update README.md (or agent-name-README.md if in shared folder):
|
||||||
|
- Add frontmatter: `---\nlast-redoc-date: {{date}}\n---\n`
|
||||||
|
- Write 1-3 paragraph technical description
|
||||||
|
- Include "Commands" section listing available commands
|
||||||
|
- Include "Usage" section
|
||||||
|
- Focus on distinctive features
|
||||||
|
|
||||||
|
4. Save README.md
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<check>If clarification needed about purpose or unique features → Ask user briefly, then continue</check>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="4" goal="Process mid-level folder documentation" if="target_type requires folder docs">
|
||||||
|
<action>For /workflows folder:
|
||||||
|
1. Read ALL workflow README.md files created in Step 3
|
||||||
|
2. Categorize workflows by purpose/type if folder is massive (>10 workflows):
|
||||||
|
- Document generation workflows
|
||||||
|
- Action workflows
|
||||||
|
- Meta-workflows
|
||||||
|
- Interactive workflows
|
||||||
|
|
||||||
|
3. If massive folder detected:
|
||||||
|
- Create WORKFLOWS-CATALOG.md with categorized listings
|
||||||
|
- Each entry: workflow name, 1-sentence description, link to folder
|
||||||
|
- Add frontmatter with last-redoc-date
|
||||||
|
|
||||||
|
4. Generate/update /workflows/README.md:
|
||||||
|
- Add frontmatter: `---\nlast-redoc-date: {{date}}\n---\n`
|
||||||
|
- High-level summary of workflow collection
|
||||||
|
- If catalog exists: reference it
|
||||||
|
- If not massive: list all workflows with brief descriptions and links
|
||||||
|
- Highlight notable or commonly-used workflows
|
||||||
|
- Keep succinct (1-2 paragraphs + list)
|
||||||
|
|
||||||
|
5. Save README.md
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action>For /agents folder:
|
||||||
|
|
||||||
|
1. Read ALL agent README.md files
|
||||||
|
2. Categorize agents by type if massive folder (>10 agents):
|
||||||
|
- Task agents
|
||||||
|
- Meta agents
|
||||||
|
- Specialized agents
|
||||||
|
- Utility agents
|
||||||
|
|
||||||
|
3. If massive folder detected:
|
||||||
|
- Create AGENTS-CATALOG.md with categorized listings
|
||||||
|
- Each entry: agent name, 1-sentence description, link
|
||||||
|
- Add frontmatter with last-redoc-date
|
||||||
|
|
||||||
|
4. Generate/update /agents/README.md:
|
||||||
|
- Add frontmatter: `---\nlast-redoc-date: {{date}}\n---\n`
|
||||||
|
- High-level summary of agent collection
|
||||||
|
- If catalog exists: reference it
|
||||||
|
- If not massive: list all agents with brief descriptions
|
||||||
|
- Highlight key agents and their purposes
|
||||||
|
- Keep succinct
|
||||||
|
|
||||||
|
5. Save README.md
|
||||||
|
</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="5" goal="Process root module documentation" if="target_type is module root">
|
||||||
|
<action>For module root README.md:
|
||||||
|
1. Read module config.yaml for metadata and configuration
|
||||||
|
2. Read /workflows/README.md and /agents/README.md created in Step 4
|
||||||
|
3. Identify module's unique purpose within BMAD ecosystem
|
||||||
|
|
||||||
|
4. Generate/update module README.md:
|
||||||
|
- Add frontmatter: `---\nlast-redoc-date: {{date}}\n---\n`
|
||||||
|
|
||||||
|
Structure:
|
||||||
|
- # Module Name
|
||||||
|
- **Purpose**: 2-3 sentence high-level module purpose
|
||||||
|
- **Overview**: 1-2 paragraphs describing what this module provides
|
||||||
|
|
||||||
|
- ## Workflows
|
||||||
|
- Link to /workflows/README.md with 1-sentence summary
|
||||||
|
- Mention count and highlight 2-3 key workflows
|
||||||
|
|
||||||
|
- ## Agents
|
||||||
|
- Link to /agents/README.md with 1-sentence summary
|
||||||
|
- Mention count and highlight 2-3 key agents
|
||||||
|
|
||||||
|
- ## Configuration
|
||||||
|
- Notable config.yaml settings if unique/important
|
||||||
|
- Reference paths and conventions
|
||||||
|
|
||||||
|
- ## Usage
|
||||||
|
- How to invoke workflows or agents from this module
|
||||||
|
- Prerequisites if any
|
||||||
|
|
||||||
|
Focus on UNIQUE aspects using BMAD convention knowledge:
|
||||||
|
- Don't explain standard BMAD patterns
|
||||||
|
- Highlight what makes THIS module distinctive
|
||||||
|
- Use proper BMAD terminology
|
||||||
|
|
||||||
|
5. Save README.md to module root
|
||||||
|
</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="6" goal="Validation and summary report">
|
||||||
|
<action>Verify all planned documentation was created/updated:
|
||||||
|
- Check each item in {{doc_execution_plan}}
|
||||||
|
- Confirm frontmatter dates are current
|
||||||
|
- Validate file paths and links
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action>Generate summary report showing:
|
||||||
|
|
||||||
|
- Target documented: {{target_path}}
|
||||||
|
- Target type: {{target_type}}
|
||||||
|
- Documentation files created/updated (count and list)
|
||||||
|
- Any catalog files created
|
||||||
|
- Files skipped or requiring manual review (if any)
|
||||||
|
- Coverage: X% of items documented
|
||||||
|
- Processing notes: Confirm sequential processing was used to avoid token limits
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action>Display summary to user</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="7" goal="Optional git diff analysis" optional="true">
|
||||||
|
<ask>Would you like to see what changed since the last redoc run? [y/n]</ask>
|
||||||
|
|
||||||
|
<action if="user_response == 'y'">
|
||||||
|
For each README with last-redoc-date frontmatter:
|
||||||
|
1. Extract last-redoc-date timestamp
|
||||||
|
2. Use git log to find files modified since that date in the documented folder
|
||||||
|
3. Highlight files that changed but may need documentation updates
|
||||||
|
4. Report findings to user
|
||||||
|
</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="8" goal="Completion">
|
||||||
|
<action>Confirm to {user_name} in {communication_language} that autonomous workflow execution is complete</action>
|
||||||
|
<action>Provide path to all updated documentation</action>
|
||||||
|
<action>Suggest next steps if needed</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
</workflow>
|
||||||
31
bmad/bmb/workflows/redoc/workflow.yaml
Normal file
31
bmad/bmb/workflows/redoc/workflow.yaml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# ReDoc - Reverse-Tree Documentation Engine
|
||||||
|
name: "redoc"
|
||||||
|
description: "Autonomous documentation system that maintains module, workflow, and agent documentation using a reverse-tree approach (leaf folders first, then parents). Understands BMAD conventions and produces technical writer quality output."
|
||||||
|
author: "BMad"
|
||||||
|
|
||||||
|
# Critical variables
|
||||||
|
config_source: "{project-root}/bmad/bmb/config.yaml"
|
||||||
|
user_name: "{config_source}:user_name"
|
||||||
|
communication_language: "{config_source}:communication_language"
|
||||||
|
|
||||||
|
# Required knowledge base - BMAD conventions and patterns
|
||||||
|
bmad_conventions:
|
||||||
|
agent_architecture: "{project-root}/src/modules/bmb/workflows/create-agent/agent-architecture.md"
|
||||||
|
agent_command_patterns: "{project-root}/src/modules/bmb/workflows/create-agent/agent-command-patterns.md"
|
||||||
|
agent_types: "{project-root}/src/modules/bmb/workflows/create-agent/agent-types.md"
|
||||||
|
module_structure: "{project-root}/src/modules/bmb/workflows/create-module/module-structure.md"
|
||||||
|
workflow_guide: "{project-root}/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md"
|
||||||
|
|
||||||
|
# Runtime inputs
|
||||||
|
target_path: "" # User specifies: module path, workflow path, agent path, or folder path
|
||||||
|
|
||||||
|
# Module path and component files
|
||||||
|
installed_path: "{project-root}/src/modules/bmb/workflows/redoc"
|
||||||
|
template: false # Action workflow - updates files in place
|
||||||
|
instructions: "{installed_path}/instructions.md"
|
||||||
|
validation: "{installed_path}/checklist.md"
|
||||||
|
|
||||||
|
# Configuration
|
||||||
|
autonomous: true # Runs without user checkpoints unless clarification needed
|
||||||
|
|
||||||
|
# Web bundle configuration
|
||||||
68
bmad/core/agents/bmad-master.md
Normal file
68
bmad/core/agents/bmad-master.md
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
<!-- Powered by BMAD-CORE™ -->
|
||||||
|
|
||||||
|
# BMad Master Executor, Knowledge Custodian, and Workflow Orchestrator
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<agent id="bmad/core/agents/bmad-master.md" name="BMad Master" title="BMad Master Executor, Knowledge Custodian, and Workflow Orchestrator" icon="🧙">
|
||||||
|
<activation critical="MANDATORY">
|
||||||
|
<step n="1">Load persona from this current agent file (already in context)</step>
|
||||||
|
<step n="2">🚨 IMMEDIATE ACTION REQUIRED - BEFORE ANY OUTPUT:
|
||||||
|
- Load and read {project-root}/bmad/core/config.yaml NOW
|
||||||
|
- Store ALL fields as session variables: {user_name}, {communication_language}, {output_folder}
|
||||||
|
- VERIFY: If config not loaded, STOP and report error to user
|
||||||
|
- DO NOT PROCEED to step 3 until config is successfully loaded and variables stored</step>
|
||||||
|
<step n="3">Remember: user's name is {user_name}</step>
|
||||||
|
<step n="4">Load into memory {project-root}/bmad/core/config.yaml and set variable project_name, output_folder, user_name, communication_language</step>
|
||||||
|
<step n="5">Remember the users name is {user_name}</step>
|
||||||
|
<step n="6">ALWAYS communicate in {communication_language}</step>
|
||||||
|
<step n="7">Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of
|
||||||
|
ALL menu items from menu section</step>
|
||||||
|
<step n="8">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or trigger text</step>
|
||||||
|
<step n="9">On user input: Number → execute menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user
|
||||||
|
to clarify | No match → show "Not recognized"</step>
|
||||||
|
<step n="10">When executing a menu item: Check menu-handlers section below - extract any attributes from the selected menu item
|
||||||
|
(workflow, exec, tmpl, data, action, validate-workflow) and follow the corresponding handler instructions</step>
|
||||||
|
|
||||||
|
<menu-handlers>
|
||||||
|
<handlers>
|
||||||
|
<handler type="action">
|
||||||
|
When menu item has: action="#id" → Find prompt with id="id" in current agent XML, execute its content
|
||||||
|
When menu item has: action="text" → Execute the text directly as an inline instruction
|
||||||
|
</handler>
|
||||||
|
|
||||||
|
<handler type="workflow">
|
||||||
|
When menu item has: workflow="path/to/workflow.yaml"
|
||||||
|
1. CRITICAL: Always LOAD {project-root}/bmad/core/tasks/workflow.xml
|
||||||
|
2. Read the complete file - this is the CORE OS for executing BMAD workflows
|
||||||
|
3. Pass the yaml path as 'workflow-config' parameter to those instructions
|
||||||
|
4. Execute workflow.xml instructions precisely following all steps
|
||||||
|
5. Save outputs after completing EACH workflow step (never batch multiple steps together)
|
||||||
|
6. If workflow.yaml path is "todo", inform user the workflow hasn't been implemented yet
|
||||||
|
</handler>
|
||||||
|
</handlers>
|
||||||
|
</menu-handlers>
|
||||||
|
|
||||||
|
<rules>
|
||||||
|
- ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style
|
||||||
|
- Stay in character until exit selected
|
||||||
|
- Menu triggers use asterisk (*) - NOT markdown, display exactly as shown
|
||||||
|
- Number all lists, use letters for sub-options
|
||||||
|
- Load files ONLY when executing menu items or a workflow or command requires it. EXCEPTION: Config file MUST be loaded at startup step 2
|
||||||
|
- CRITICAL: Written File Output in workflows will be +2sd your communication style and use professional {communication_language}.
|
||||||
|
</rules>
|
||||||
|
</activation>
|
||||||
|
<persona>
|
||||||
|
<role>Master Task Executor + BMad Expert + Guiding Facilitator Orchestrator</role>
|
||||||
|
<identity>Master-level expert in the BMAD Core Platform and all loaded modules with comprehensive knowledge of all resources, tasks, and workflows. Experienced in direct task execution and runtime resource management, serving as the primary execution engine for BMAD operations.</identity>
|
||||||
|
<communication_style>Direct and comprehensive, refers to himself in the 3rd person. Expert-level communication focused on efficient task execution, presenting information systematically using numbered lists with immediate command response capability.</communication_style>
|
||||||
|
<principles>Load resources at runtime never pre-load, and always present numbered lists for choices.</principles>
|
||||||
|
</persona>
|
||||||
|
<menu>
|
||||||
|
<item cmd="*help">Show numbered menu</item>
|
||||||
|
<item cmd="*list-tasks" action="list all tasks from {project-root}/bmad/_cfg/task-manifest.csv">List Available Tasks</item>
|
||||||
|
<item cmd="*list-workflows" action="list all workflows from {project-root}/bmad/_cfg/workflow-manifest.csv">List Workflows</item>
|
||||||
|
<item cmd="*party-mode" workflow="{project-root}/bmad/core/workflows/party-mode/workflow.yaml">Group chat with all agents</item>
|
||||||
|
<item cmd="*exit">Exit with confirmation</item>
|
||||||
|
</menu>
|
||||||
|
</agent>
|
||||||
|
```
|
||||||
122
bmad/core/agents/bmad-web-orchestrator.agent.xml
Normal file
122
bmad/core/agents/bmad-web-orchestrator.agent.xml
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
<agent id="bmad/core/agents/bmad-orchestrator.md" name="BMad Orchestrator" title="BMad Web Orchestrator" icon="🎭" localskip="true">
|
||||||
|
<activation critical="MANDATORY">
|
||||||
|
<step n="1">Load this complete web bundle XML - you are the BMad Orchestrator, first agent in this bundle</step>
|
||||||
|
<step n="2">CRITICAL: This bundle contains ALL agents as XML nodes with id="bmad/..." and ALL workflows/tasks as nodes findable by type
|
||||||
|
and id</step>
|
||||||
|
<step n="3">Greet user as BMad Orchestrator and display numbered list of ALL menu items from menu section below</step>
|
||||||
|
<step n="4">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or trigger text</step>
|
||||||
|
<step n="5">On user input: Number → execute menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user to
|
||||||
|
clarify | No match → show "Not recognized"</step>
|
||||||
|
<step n="6">When executing a menu item: Check menu-handlers section below for UNIVERSAL handler instructions that apply to ALL agents</step>
|
||||||
|
|
||||||
|
<menu-handlers critical="UNIVERSAL_FOR_ALL_AGENTS">
|
||||||
|
<extract>workflow, exec, tmpl, data, action, validate-workflow</extract>
|
||||||
|
<handlers>
|
||||||
|
<handler type="workflow">
|
||||||
|
When menu item has: workflow="workflow-id"
|
||||||
|
1. Find workflow node by id in this bundle (e.g., <workflow id="workflow-id">)
|
||||||
|
2. CRITICAL: Always LOAD bmad/core/tasks/workflow.xml if referenced
|
||||||
|
3. Execute the workflow content precisely following all steps
|
||||||
|
4. Save outputs after completing EACH workflow step (never batch)
|
||||||
|
5. If workflow id is "todo", inform user it hasn't been implemented yet
|
||||||
|
</handler>
|
||||||
|
|
||||||
|
<handler type="exec">
|
||||||
|
When menu item has: exec="node-id" or exec="inline-instruction"
|
||||||
|
1. If value looks like a path/id → Find and execute node with that id
|
||||||
|
2. If value is text → Execute as direct instruction
|
||||||
|
3. Follow ALL instructions within loaded content EXACTLY
|
||||||
|
</handler>
|
||||||
|
|
||||||
|
<handler type="tmpl">
|
||||||
|
When menu item has: tmpl="template-id"
|
||||||
|
1. Find template node by id in this bundle and pass it to the exec, task, action, or workflow being executed
|
||||||
|
</handler>
|
||||||
|
|
||||||
|
<handler type="data">
|
||||||
|
When menu item has: data="data-id"
|
||||||
|
1. Find data node by id in this bundle
|
||||||
|
2. Parse according to node type (json/yaml/xml/csv)
|
||||||
|
3. Make available as {data} variable for subsequent operations
|
||||||
|
</handler>
|
||||||
|
|
||||||
|
<handler type="action">
|
||||||
|
When menu item has: action="#prompt-id" or action="inline-text"
|
||||||
|
1. If starts with # → Find prompt with matching id in current agent
|
||||||
|
2. Otherwise → Execute the text directly as instruction
|
||||||
|
</handler>
|
||||||
|
|
||||||
|
<handler type="validate-workflow">
|
||||||
|
When menu item has: validate-workflow="workflow-id"
|
||||||
|
1. MUST LOAD bmad/core/tasks/validate-workflow.xml
|
||||||
|
2. Execute all validation instructions from that file
|
||||||
|
3. Check workflow's validation property for schema
|
||||||
|
4. Identify file to validate or ask user to specify
|
||||||
|
</handler>
|
||||||
|
</handlers>
|
||||||
|
</menu-handlers>
|
||||||
|
|
||||||
|
<orchestrator-specific>
|
||||||
|
<agent-transformation critical="true">
|
||||||
|
When user selects *agents [agent-name]:
|
||||||
|
1. Find agent XML node with matching name/id in this bundle
|
||||||
|
2. Announce transformation: "Transforming into [agent name]... 🎭"
|
||||||
|
3. BECOME that agent completely:
|
||||||
|
- Load and embody their persona/role/communication_style
|
||||||
|
- Display THEIR menu items (not orchestrator menu)
|
||||||
|
- Execute THEIR commands using universal handlers above
|
||||||
|
4. Stay as that agent until user types *exit
|
||||||
|
5. On *exit: Confirm, then return to BMad Orchestrator persona
|
||||||
|
</agent-transformation>
|
||||||
|
|
||||||
|
<party-mode critical="true">
|
||||||
|
When user selects *party-mode:
|
||||||
|
1. Enter group chat simulation mode
|
||||||
|
2. Load ALL agent personas from this bundle
|
||||||
|
3. Simulate each agent distinctly with their name and emoji
|
||||||
|
4. Create engaging multi-agent conversation
|
||||||
|
5. Each agent contributes based on their expertise
|
||||||
|
6. Format: "[emoji] Name: message"
|
||||||
|
7. Maintain distinct voices and perspectives for each agent
|
||||||
|
8. Continue until user types *exit-party
|
||||||
|
</party-mode>
|
||||||
|
|
||||||
|
<list-agents critical="true">
|
||||||
|
When user selects *list-agents:
|
||||||
|
1. Scan all agent nodes in this bundle
|
||||||
|
2. Display formatted list with:
|
||||||
|
- Number, emoji, name, title
|
||||||
|
- Brief description of capabilities
|
||||||
|
- Main menu items they offer
|
||||||
|
3. Suggest which agent might help with common tasks
|
||||||
|
</list-agents>
|
||||||
|
</orchestrator-specific>
|
||||||
|
|
||||||
|
<rules>
|
||||||
|
Web bundle environment - NO file system access, all content in XML nodes
|
||||||
|
Find resources by XML node id/type within THIS bundle only
|
||||||
|
Use canvas for document drafting when available
|
||||||
|
Menu triggers use asterisk (*) - display exactly as shown
|
||||||
|
Number all lists, use letters for sub-options
|
||||||
|
Stay in character (current agent) until *exit command
|
||||||
|
Options presented as numbered lists with descriptions
|
||||||
|
elicit="true" attributes require user confirmation before proceeding
|
||||||
|
</rules>
|
||||||
|
</activation>
|
||||||
|
|
||||||
|
<persona>
|
||||||
|
<role>Master Orchestrator and BMad Scholar</role>
|
||||||
|
<identity>Master orchestrator with deep expertise across all loaded agents and workflows. Technical brilliance balanced with
|
||||||
|
approachable communication.</identity>
|
||||||
|
<communication_style>Knowledgeable, guiding, approachable, very explanatory when in BMad Orchestrator mode</communication_style>
|
||||||
|
<core_principles>When I transform into another agent, I AM that agent until *exit command received. When I am NOT transformed into
|
||||||
|
another agent, I will give you guidance or suggestions on a workflow based on your needs.</core_principles>
|
||||||
|
</persona>
|
||||||
|
<menu>
|
||||||
|
<item cmd="*help">Show numbered command list</item>
|
||||||
|
<item cmd="*list-agents">List all available agents with their capabilities</item>
|
||||||
|
<item cmd="*agents [agent-name]">Transform into a specific agent</item>
|
||||||
|
<item cmd="*party-mode">Enter group chat with all agents simultaneously</item>
|
||||||
|
<item cmd="*exit">Exit current session</item>
|
||||||
|
</menu>
|
||||||
|
</agent>
|
||||||
8
bmad/core/config.yaml
Normal file
8
bmad/core/config.yaml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# CORE Module Configuration
|
||||||
|
# Generated by BMAD installer
|
||||||
|
# Version: 6.0.0-alpha.0
|
||||||
|
# Date: 2025-10-16T23:11:41.901Z
|
||||||
|
|
||||||
|
user_name: BMad
|
||||||
|
communication_language: English
|
||||||
|
output_folder: "{project-root}/docs"
|
||||||
39
bmad/core/tasks/adv-elicit-methods.csv
Normal file
39
bmad/core/tasks/adv-elicit-methods.csv
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
category,method_name,description,output_pattern
|
||||||
|
advanced,Tree of Thoughts,Explore multiple reasoning paths simultaneously then evaluate and select the best - perfect for complex problems with multiple valid approaches where finding the optimal path matters,paths → evaluation → selection
|
||||||
|
advanced,Graph of Thoughts,Model reasoning as an interconnected network of ideas to reveal hidden relationships - ideal for systems thinking and discovering emergent patterns in complex multi-factor situations,nodes → connections → patterns
|
||||||
|
advanced,Thread of Thought,Maintain coherent reasoning across long contexts by weaving a continuous narrative thread - essential for RAG systems and maintaining consistency in lengthy analyses,context → thread → synthesis
|
||||||
|
advanced,Self-Consistency Validation,Generate multiple independent approaches then compare for consistency - crucial for high-stakes decisions where verification and consensus building matter,approaches → comparison → consensus
|
||||||
|
advanced,Meta-Prompting Analysis,Step back to analyze the approach structure and methodology itself - valuable for optimizing prompts and improving problem-solving strategies,current → analysis → optimization
|
||||||
|
advanced,Reasoning via Planning,Build a reasoning tree guided by world models and goal states - excellent for strategic planning and sequential decision-making tasks,model → planning → strategy
|
||||||
|
collaboration,Stakeholder Round Table,Convene multiple personas to contribute diverse perspectives - essential for requirements gathering and finding balanced solutions across competing interests,perspectives → synthesis → alignment
|
||||||
|
collaboration,Expert Panel Review,Assemble domain experts for deep specialized analysis - ideal when technical depth and peer review quality are needed,expert views → consensus → recommendations
|
||||||
|
competitive,Red Team vs Blue Team,Adversarial attack-defend analysis to find vulnerabilities - critical for security testing and building robust solutions through adversarial thinking,defense → attack → hardening
|
||||||
|
core,Expand or Contract for Audience,Dynamically adjust detail level and technical depth for target audience - essential when content needs to match specific reader capabilities,audience → adjustments → refined content
|
||||||
|
core,Critique and Refine,Systematic review to identify strengths and weaknesses then improve - standard quality check for drafts needing polish and enhancement,strengths/weaknesses → improvements → refined version
|
||||||
|
core,Explain Reasoning,Walk through step-by-step thinking to show how conclusions were reached - crucial for transparency and helping others understand complex logic,steps → logic → conclusion
|
||||||
|
core,First Principles Analysis,Strip away assumptions to rebuild from fundamental truths - breakthrough technique for innovation and solving seemingly impossible problems,assumptions → truths → new approach
|
||||||
|
core,5 Whys Deep Dive,Repeatedly ask why to drill down to root causes - simple but powerful for understanding failures and fixing problems at their source,why chain → root cause → solution
|
||||||
|
core,Socratic Questioning,Use targeted questions to reveal hidden assumptions and guide discovery - excellent for teaching and helping others reach insights themselves,questions → revelations → understanding
|
||||||
|
creative,Reverse Engineering,Work backwards from desired outcome to find implementation path - powerful for goal achievement and understanding how to reach specific endpoints,end state → steps backward → path forward
|
||||||
|
creative,What If Scenarios,Explore alternative realities to understand possibilities and implications - valuable for contingency planning and creative exploration,scenarios → implications → insights
|
||||||
|
creative,SCAMPER Method,Apply seven creativity lenses (Substitute/Combine/Adapt/Modify/Put/Eliminate/Reverse) - systematic ideation for product innovation and improvement,S→C→A→M→P→E→R
|
||||||
|
learning,Feynman Technique,Explain complex concepts simply as if teaching a child - the ultimate test of true understanding and excellent for knowledge transfer,complex → simple → gaps → mastery
|
||||||
|
learning,Active Recall Testing,Test understanding without references to verify true knowledge - essential for identifying gaps and reinforcing mastery,test → gaps → reinforcement
|
||||||
|
narrative,Unreliable Narrator Mode,Question assumptions and biases by adopting skeptical perspective - crucial for detecting hidden agendas and finding balanced truth,perspective → biases → balanced view
|
||||||
|
optimization,Speedrun Optimization,Find the fastest most efficient path by eliminating waste - perfect when time pressure demands maximum efficiency,current → bottlenecks → optimized
|
||||||
|
optimization,New Game Plus,Revisit challenges with enhanced capabilities from prior experience - excellent for iterative improvement and mastery building,initial → enhanced → improved
|
||||||
|
optimization,Roguelike Permadeath,Treat decisions as irreversible to force careful high-stakes analysis - ideal for critical decisions with no second chances,decision → consequences → execution
|
||||||
|
philosophical,Occam's Razor Application,Find the simplest sufficient explanation by eliminating unnecessary complexity - essential for debugging and theory selection,options → simplification → selection
|
||||||
|
philosophical,Trolley Problem Variations,Explore ethical trade-offs through moral dilemmas - valuable for understanding values and making difficult ethical decisions,dilemma → analysis → decision
|
||||||
|
quantum,Observer Effect Consideration,Analyze how the act of measurement changes what's being measured - important for understanding metrics impact and self-aware systems,unmeasured → observation → impact
|
||||||
|
retrospective,Hindsight Reflection,Imagine looking back from the future to gain perspective - powerful for project reviews and extracting wisdom from experience,future view → insights → application
|
||||||
|
retrospective,Lessons Learned Extraction,Systematically identify key takeaways and actionable improvements - essential for knowledge transfer and continuous improvement,experience → lessons → actions
|
||||||
|
risk,Identify Potential Risks,Brainstorm what could go wrong across all categories - fundamental for project planning and deployment preparation,categories → risks → mitigations
|
||||||
|
risk,Challenge from Critical Perspective,Play devil's advocate to stress-test ideas and find weaknesses - essential for overcoming groupthink and building robust solutions,assumptions → challenges → strengthening
|
||||||
|
risk,Failure Mode Analysis,Systematically explore how each component could fail - critical for reliability engineering and safety-critical systems,components → failures → prevention
|
||||||
|
risk,Pre-mortem Analysis,Imagine future failure then work backwards to prevent it - powerful technique for risk mitigation before major launches,failure scenario → causes → prevention
|
||||||
|
scientific,Peer Review Simulation,Apply rigorous academic evaluation standards - ensures quality through methodology review and critical assessment,methodology → analysis → recommendations
|
||||||
|
scientific,Reproducibility Check,Verify results can be replicated independently - fundamental for reliability and scientific validity,method → replication → validation
|
||||||
|
structural,Dependency Mapping,Visualize interconnections to understand requirements and impacts - essential for complex systems and integration planning,components → dependencies → impacts
|
||||||
|
structural,Information Architecture Review,Optimize organization and hierarchy for better user experience - crucial for fixing navigation and findability problems,current → pain points → restructure
|
||||||
|
structural,Skeleton of Thought,Create structure first then expand branches in parallel - efficient for generating long content quickly with good organization,skeleton → branches → integration
|
||||||
|
@@ -1,14 +1,9 @@
|
|||||||
<!-- BMAD-CORE™ Advanced Elicitation Task v2.0 (LLM-Native) -->
|
<task id="bmad/core/tasks/adv-elicit.xml" name="Advanced Elicitation">
|
||||||
|
|
||||||
# Advanced Elicitation v2.0 (LLM-Native)
|
|
||||||
|
|
||||||
```xml
|
|
||||||
<task id="bmad/core/tasks/adv-elicit.md" name="Advanced Elicitation">
|
|
||||||
<llm critical="true">
|
<llm critical="true">
|
||||||
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
|
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
|
||||||
<i>DO NOT skip steps or change the sequence</i>
|
<i>DO NOT skip steps or change the sequence</i>
|
||||||
<i>HALT immediately when halt-conditions are met</i>
|
<i>HALT immediately when halt-conditions are met</i>
|
||||||
<i>Each <action> within <step> is a REQUIRED action to complete that step</i>
|
<i>Each action xml tag within step xml tag is a REQUIRED action to complete that step</i>
|
||||||
<i>Sections outside flow (validation, output, critical-context) provide essential context - review and apply throughout execution</i>
|
<i>Sections outside flow (validation, output, critical-context) provide essential context - review and apply throughout execution</i>
|
||||||
</llm>
|
</llm>
|
||||||
|
|
||||||
@@ -44,7 +39,7 @@
|
|||||||
</smart-selection>
|
</smart-selection>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step n="2" title="Present Options & Handle Responses">
|
<step n="2" title="Present Options and Handle Responses">
|
||||||
|
|
||||||
<format>
|
<format>
|
||||||
**Advanced Elicitation Options**
|
**Advanced Elicitation Options**
|
||||||
@@ -66,7 +61,8 @@
|
|||||||
<i>Apply the method creatively to the current section content being enhanced</i>
|
<i>Apply the method creatively to the current section content being enhanced</i>
|
||||||
<i>Display the enhanced version showing what the method revealed or improved</i>
|
<i>Display the enhanced version showing what the method revealed or improved</i>
|
||||||
<i>CRITICAL: Ask the user if they would like to apply the changes to the doc (y/n/other) and HALT to await response.</i>
|
<i>CRITICAL: Ask the user if they would like to apply the changes to the doc (y/n/other) and HALT to await response.</i>
|
||||||
<i>CRITICAL: ONLY if Yes, apply the changes. IF No, discard your memory of the proposed changes. If any other reply, try best to follow the instructions given by the user.</i>
|
<i>CRITICAL: ONLY if Yes, apply the changes. IF No, discard your memory of the proposed changes. If any other reply, try best to
|
||||||
|
follow the instructions given by the user.</i>
|
||||||
<i>CRITICAL: Re-present the same 1-5,r,x prompt to allow additional elicitations</i>
|
<i>CRITICAL: Re-present the same 1-5,r,x prompt to allow additional elicitations</i>
|
||||||
</case>
|
</case>
|
||||||
<case n="r">
|
<case n="r">
|
||||||
@@ -105,5 +101,4 @@
|
|||||||
<i> 3. Return to the prompt for additional elicitations or completion</i>
|
<i> 3. Return to the prompt for additional elicitations or completion</i>
|
||||||
</step>
|
</step>
|
||||||
</flow>
|
</flow>
|
||||||
</task>
|
</task>
|
||||||
```
|
|
||||||
@@ -1,14 +1,9 @@
|
|||||||
<!-- BMAD-CORE™ Index Documentation Task -->
|
|
||||||
|
|
||||||
# Index Docs v1.1
|
|
||||||
|
|
||||||
```xml
|
|
||||||
<task id="bmad/core/tasks/index-docs" name="Index Docs" webskip="true">
|
<task id="bmad/core/tasks/index-docs" name="Index Docs" webskip="true">
|
||||||
<llm critical="true">
|
<llm critical="true">
|
||||||
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
|
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
|
||||||
<i>DO NOT skip steps or change the sequence</i>
|
<i>DO NOT skip steps or change the sequence</i>
|
||||||
<i>HALT immediately when halt-conditions are met</i>
|
<i>HALT immediately when halt-conditions are met</i>
|
||||||
<i>Each <action> within <step> is a REQUIRED action to complete that step</i>
|
<i>Each action xml tag within step xml tag is a REQUIRED action to complete that step</i>
|
||||||
<i>Sections outside flow (validation, output, critical-context) provide essential context - review and apply throughout execution</i>
|
<i>Sections outside flow (validation, output, critical-context) provide essential context - review and apply throughout execution</i>
|
||||||
</llm>
|
</llm>
|
||||||
|
|
||||||
@@ -65,5 +60,4 @@
|
|||||||
<i>Sort alphabetically within groups</i>
|
<i>Sort alphabetically within groups</i>
|
||||||
<i>Skip hidden files (starting with .) unless specified</i>
|
<i>Skip hidden files (starting with .) unless specified</i>
|
||||||
</validation>
|
</validation>
|
||||||
</task>
|
</task>
|
||||||
```
|
|
||||||
@@ -1,7 +1,4 @@
|
|||||||
# Validate Workflow
|
<task id="bmad/core/tasks/validate-workflow.xml" name="Validate Workflow Output">
|
||||||
|
|
||||||
```xml
|
|
||||||
<task id="bmad/core/tasks/validate-workflow.md" name="Validate Workflow Output">
|
|
||||||
<objective>Run a checklist against a document with thorough analysis and produce a validation report</objective>
|
<objective>Run a checklist against a document with thorough analysis and produce a validation report</objective>
|
||||||
|
|
||||||
<inputs>
|
<inputs>
|
||||||
@@ -88,5 +85,4 @@
|
|||||||
<rule>Save report to document's folder automatically</rule>
|
<rule>Save report to document's folder automatically</rule>
|
||||||
<rule>HALT after presenting summary - wait for user</rule>
|
<rule>HALT after presenting summary - wait for user</rule>
|
||||||
</critical-rules>
|
</critical-rules>
|
||||||
</task>
|
</task>
|
||||||
```
|
|
||||||
@@ -1,9 +1,4 @@
|
|||||||
<!-- BMAD Method v6 Workflow Execution Task (Simplified) -->
|
<task id="bmad/core/tasks/workflow.xml" name="Execute Workflow">
|
||||||
|
|
||||||
# Workflow
|
|
||||||
|
|
||||||
```xml
|
|
||||||
<task id="bmad/core/tasks/workflow.md" name="Execute Workflow">
|
|
||||||
<objective>Execute given workflow by loading its configuration, following instructions, and producing output</objective>
|
<objective>Execute given workflow by loading its configuration, following instructions, and producing output</objective>
|
||||||
|
|
||||||
<llm critical="true">
|
<llm critical="true">
|
||||||
@@ -63,12 +58,12 @@
|
|||||||
<action>Process step instructions (markdown or XML tags)</action>
|
<action>Process step instructions (markdown or XML tags)</action>
|
||||||
<action>Replace {{variables}} with values (ask user if unknown)</action>
|
<action>Replace {{variables}} with values (ask user if unknown)</action>
|
||||||
<execute-tags>
|
<execute-tags>
|
||||||
<tag><action> → Perform the action</tag>
|
<tag>action xml tag → Perform the action</tag>
|
||||||
<tag><check> → Evaluate condition</tag>
|
<tag>check if="condition" xml tag → Conditional block wrapping actions (requires closing </check>)</tag>
|
||||||
<tag><ask> → Prompt user and WAIT for response</tag>
|
<tag>ask xml tag → Prompt user and WAIT for response</tag>
|
||||||
<tag><invoke-workflow> → Execute another workflow with given inputs</tag>
|
<tag>invoke-workflow xml tag → Execute another workflow with given inputs</tag>
|
||||||
<tag><invoke-task> → Execute specified task</tag>
|
<tag>invoke-task xml tag → Execute specified task</tag>
|
||||||
<tag><goto step="x"> → Jump to specified step</tag>
|
<tag>goto step="x" → Jump to specified step</tag>
|
||||||
</execute-tags>
|
</execute-tags>
|
||||||
</substep>
|
</substep>
|
||||||
|
|
||||||
@@ -82,8 +77,9 @@
|
|||||||
</if>
|
</if>
|
||||||
|
|
||||||
<if tag="elicit-required">
|
<if tag="elicit-required">
|
||||||
<mandate critical="true">YOU MUST READ the file at {project-root}/bmad/core/tasks/adv-elicit.md using Read tool BEFORE presenting any elicitation menu</mandate>
|
<mandate critical="true">YOU MUST READ the file at {project-root}/bmad/core/tasks/adv-elicit.xml using Read tool BEFORE presenting
|
||||||
<action>Load and run task {project-root}/bmad/core/tasks/adv-elicit.md with current context</action>
|
any elicitation menu</mandate>
|
||||||
|
<action>Load and run task {project-root}/bmad/core/tasks/adv-elicit.xml with current context</action>
|
||||||
<action>Show elicitation menu 5 relevant options (list 1-5 options, Continue [c] or Reshuffle [r])</action>
|
<action>Show elicitation menu 5 relevant options (list 1-5 options, Continue [c] or Reshuffle [r])</action>
|
||||||
<mandate>HALT and WAIT for user selection</mandate>
|
<mandate>HALT and WAIT for user selection</mandate>
|
||||||
</if>
|
</if>
|
||||||
@@ -118,7 +114,8 @@
|
|||||||
</structural>
|
</structural>
|
||||||
<execution>
|
<execution>
|
||||||
<tag>action - Required action to perform</tag>
|
<tag>action - Required action to perform</tag>
|
||||||
<tag>check - Condition to evaluate</tag>
|
<tag>action if="condition" - Single conditional action (inline, no closing tag needed)</tag>
|
||||||
|
<tag>check if="condition">...</check> - Conditional block wrapping multiple items (closing tag required)</tag>
|
||||||
<tag>ask - Get user input (wait for response)</tag>
|
<tag>ask - Get user input (wait for response)</tag>
|
||||||
<tag>goto - Jump to another step</tag>
|
<tag>goto - Jump to another step</tag>
|
||||||
<tag>invoke-workflow - Call another workflow</tag>
|
<tag>invoke-workflow - Call another workflow</tag>
|
||||||
@@ -132,10 +129,38 @@
|
|||||||
</output>
|
</output>
|
||||||
</supported-tags>
|
</supported-tags>
|
||||||
|
|
||||||
|
<conditional-execution-patterns desc="When to use each pattern">
|
||||||
|
<pattern type="single-action">
|
||||||
|
<use-case>One action with a condition</use-case>
|
||||||
|
<syntax><action if="condition">Do something</action></syntax>
|
||||||
|
<example><action if="file exists">Load the file</action></example>
|
||||||
|
<rationale>Cleaner and more concise for single items</rationale>
|
||||||
|
</pattern>
|
||||||
|
|
||||||
|
<pattern type="multi-action-block">
|
||||||
|
<use-case>Multiple actions/tags under same condition</use-case>
|
||||||
|
<syntax><check if="condition">
|
||||||
|
<action>First action</action>
|
||||||
|
<action>Second action</action>
|
||||||
|
</check></syntax>
|
||||||
|
<example><check if="validation fails">
|
||||||
|
<action>Log error</action>
|
||||||
|
<goto step="1">Retry</goto>
|
||||||
|
</check></example>
|
||||||
|
<rationale>Explicit scope boundaries prevent ambiguity</rationale>
|
||||||
|
</pattern>
|
||||||
|
|
||||||
|
<pattern type="nested-conditions">
|
||||||
|
<use-case>Else/alternative branches</use-case>
|
||||||
|
<syntax><check if="condition A">...</check>
|
||||||
|
<check if="else">...</check></syntax>
|
||||||
|
<rationale>Clear branching logic with explicit blocks</rationale>
|
||||||
|
</pattern>
|
||||||
|
</conditional-execution-patterns>
|
||||||
|
|
||||||
<llm final="true">
|
<llm final="true">
|
||||||
<mandate>This is the complete workflow execution engine</mandate>
|
<mandate>This is the complete workflow execution engine</mandate>
|
||||||
<mandate>You MUST Follow instructions exactly as written and maintain conversation context between steps</mandate>
|
<mandate>You MUST Follow instructions exactly as written and maintain conversation context between steps</mandate>
|
||||||
<mandate>If confused, re-read this task, the workflow yaml, and any yaml indicated files</mandate>
|
<mandate>If confused, re-read this task, the workflow yaml, and any yaml indicated files</mandate>
|
||||||
</llm>
|
</llm>
|
||||||
</task>
|
</task>
|
||||||
```
|
|
||||||
79
bmad/core/workflows/bmad-init/instructions.md
Normal file
79
bmad/core/workflows/bmad-init/instructions.md
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
# BMAD Init - System Initialization Instructions
|
||||||
|
|
||||||
|
<workflow>
|
||||||
|
|
||||||
|
<step n="1" goal="Welcome and Status Check">
|
||||||
|
<action>Display welcome banner with BMAD branding</action>
|
||||||
|
<action>Check for BMAD installation at {project-root}/bmad</action>
|
||||||
|
<check>If installation found:</check>
|
||||||
|
<action>Display current version from {project-root}/bmad/_cfg/manifest.yaml</action>
|
||||||
|
<action>Show installation date and status</action>
|
||||||
|
<check>If not found:</check>
|
||||||
|
<action>Display warning that BMAD is not installed</action>
|
||||||
|
<action>Suggest running the installer first</action>
|
||||||
|
<action>Exit workflow</action>
|
||||||
|
<action>Display formatted status summary:
|
||||||
|
╔════════════════════════════════════════╗
|
||||||
|
║ BMAD INITIALIZATION ║
|
||||||
|
╚════════════════════════════════════════╝
|
||||||
|
|
||||||
|
Status: [Installed/Not Found]
|
||||||
|
Location: {project-root}/bmad
|
||||||
|
Version: [from manifest]
|
||||||
|
Installed: [date from manifest]
|
||||||
|
|
||||||
|
</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2" goal="Present Initialization Options">
|
||||||
|
<action>Display available initialization and maintenance tasks</action>
|
||||||
|
<ask>Select an initialization task:
|
||||||
|
|
||||||
|
1. Customize Installed Agents and Agent Party (Coming Soon)
|
||||||
|
- Assign new names and personas to agents
|
||||||
|
- Create runtime agent variants
|
||||||
|
- NOTE: This can all be done manually, but doing it through here will be easier and also update the party-mode manifest
|
||||||
|
|
||||||
|
2. Verify Installation (Coming Soon)
|
||||||
|
- Check all files are properly installed
|
||||||
|
- Validate configurations
|
||||||
|
|
||||||
|
3. Exit
|
||||||
|
|
||||||
|
Please select an option (1-3).
|
||||||
|
|
||||||
|
</ask>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="3" goal="Process User Selection">
|
||||||
|
<check>If user selected "1":</check>
|
||||||
|
<action>Display message: ⚠️ Installed Agent Auto Customization is coming soon.</action>
|
||||||
|
<<action>Return to step 2</action>
|
||||||
|
|
||||||
|
<check>If user selected "2":</check>
|
||||||
|
<action>Display message: ⚠️ Installation verification is coming soon.</action>
|
||||||
|
<action>Return to step 2</action>
|
||||||
|
|
||||||
|
<check>If user selected "3":</check>
|
||||||
|
<action>Display message: Exiting BMAD Init. Thank you!</action>
|
||||||
|
<goto step="5">Exit workflow</goto>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="4" goal="Post-Task Options">
|
||||||
|
<action>Display completion status of the executed task</action>
|
||||||
|
<ask>Task completed successfully!
|
||||||
|
|
||||||
|
Would you like to perform another initialization task? (y/n):</ask>
|
||||||
|
<check>If user responds "y":</check>
|
||||||
|
<goto step="2">Return to menu</goto>
|
||||||
|
<check>If user responds "n":</check>
|
||||||
|
<goto step="5">Exit workflow</goto>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="5" goal="Exit Workflow">
|
||||||
|
<action>Display farewell message</action>
|
||||||
|
<action>Suggest user start a new context or clear context if needed</action>
|
||||||
|
<action>Exit workflow</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
</workflow>
|
||||||
14
bmad/core/workflows/bmad-init/workflow.yaml
Normal file
14
bmad/core/workflows/bmad-init/workflow.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# BMAD Init - System Initialization Workflow
|
||||||
|
name: "bmad-init"
|
||||||
|
description: "BMAD system initialization and maintenance workflow for agent manifest generation and system configuration"
|
||||||
|
author: "BMad"
|
||||||
|
|
||||||
|
# Critical variables
|
||||||
|
config_source: "{project-root}/bmad/_cfg/manifest.yaml"
|
||||||
|
date: system-generated
|
||||||
|
|
||||||
|
# This is an action workflow - no template output
|
||||||
|
template: false
|
||||||
|
instructions: "{project-root}/bmad/core/workflows/bmad-init/instructions.md"
|
||||||
|
|
||||||
|
web_bundle: false
|
||||||
@@ -180,7 +180,7 @@ The workflow includes 36 techniques organized into 7 categories:
|
|||||||
2. **Technique Sessions** - Detailed capture of each technique's ideation process
|
2. **Technique Sessions** - Detailed capture of each technique's ideation process
|
||||||
3. **Idea Categorization** - Immediate opportunities, future innovations, moonshots, insights
|
3. **Idea Categorization** - Immediate opportunities, future innovations, moonshots, insights
|
||||||
4. **Action Planning** - Top 3 priorities with rationale, steps, resources, timelines
|
4. **Action Planning** - Top 3 priorities with rationale, steps, resources, timelines
|
||||||
5. **Reflection & Follow-up** - Session analysis, recommendations, next steps planning
|
5. **Reflection and Follow-up** - Session analysis, recommendations, next steps planning
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
@@ -268,4 +268,4 @@ For issues or questions:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
_Part of the BMad Method v5 - Creative Ideation & Synthesis (CIS) Module_
|
_Part of the BMad Method v5 - Creative Ideation and Synthesis (CIS) Module_
|
||||||
@@ -3,8 +3,8 @@
|
|||||||
## Workflow
|
## Workflow
|
||||||
|
|
||||||
<workflow>
|
<workflow>
|
||||||
<critical>The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.md</critical>
|
<critical>The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.xml</critical>
|
||||||
<critical>You MUST have already loaded and processed: {project_root}/bmad/cis/workflows/brainstorming/workflow.yaml</critical>
|
<critical>You MUST have already loaded and processed: {project_root}/bmad/core/workflows/brainstorming/workflow.yaml</critical>
|
||||||
|
|
||||||
<step n="1" goal="Session Setup">
|
<step n="1" goal="Session Setup">
|
||||||
|
|
||||||
@@ -250,7 +250,7 @@ Analyze the session to identify deeper patterns:
|
|||||||
2. **Surface key insights** - What realizations emerged during the process? -> insights_learnings
|
2. **Surface key insights** - What realizations emerged during the process? -> insights_learnings
|
||||||
3. **Note surprising connections** - What unexpected relationships were discovered? -> insights_learnings
|
3. **Note surprising connections** - What unexpected relationships were discovered? -> insights_learnings
|
||||||
|
|
||||||
<elicit-required/>
|
<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
|
||||||
|
|
||||||
<template-output>key_themes, insights_learnings</template-output>
|
<template-output>key_themes, insights_learnings</template-output>
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ _Ambitious, transformative concepts_
|
|||||||
|
|
||||||
{{moonshots}}
|
{{moonshots}}
|
||||||
|
|
||||||
### Insights & Learnings
|
### Insights and Learnings
|
||||||
|
|
||||||
_Key realizations from the session_
|
_Key realizations from the session_
|
||||||
|
|
||||||
@@ -73,7 +73,7 @@ _Key realizations from the session_
|
|||||||
- Resources needed: {{priority_3_resources}}
|
- Resources needed: {{priority_3_resources}}
|
||||||
- Timeline: {{priority_3_timeline}}
|
- Timeline: {{priority_3_timeline}}
|
||||||
|
|
||||||
## Reflection & Follow-up
|
## Reflection and Follow-up
|
||||||
|
|
||||||
### What Worked Well
|
### What Worked Well
|
||||||
|
|
||||||
@@ -18,13 +18,24 @@ recommended_inputs:
|
|||||||
# Example: data="{path}/context.md" provides domain-specific guidance
|
# Example: data="{path}/context.md" provides domain-specific guidance
|
||||||
|
|
||||||
# Module path and component files
|
# Module path and component files
|
||||||
installed_path: "{project-root}/bmad/cis/workflows/brainstorming"
|
installed_path: "{project-root}/bmad/core/workflows/brainstorming"
|
||||||
template: "{installed_path}/template.md"
|
template: "{installed_path}/template.md"
|
||||||
instructions: "{installed_path}/instructions.md"
|
instructions: "{installed_path}/instructions.md"
|
||||||
validation: "{installed_path}/checklist.md"
|
validation: "{installed_path}/checklist.md"
|
||||||
|
|
||||||
# Required Data Files
|
|
||||||
brain_techniques: "{installed_path}/brain-methods.csv"
|
brain_techniques: "{installed_path}/brain-methods.csv"
|
||||||
|
|
||||||
# Output configuration
|
# Output configuration
|
||||||
default_output_file: "{output_folder}/brainstorming-session-results-{{date}}.md"
|
default_output_file: "{output_folder}/brainstorming-session-results-{{date}}.md"
|
||||||
|
|
||||||
|
web_bundle:
|
||||||
|
name: "brainstorming"
|
||||||
|
description: "Facilitate interactive brainstorming sessions using diverse creative techniques. This workflow facilitates interactive brainstorming sessions using diverse creative techniques. The session is highly interactive, with the AI acting as a facilitator to guide the user through various ideation methods to generate and refine creative solutions."
|
||||||
|
author: "BMad"
|
||||||
|
template: "bmad/core/workflows/brainstorming/template.md"
|
||||||
|
instructions: "bmad/core/workflows/brainstorming/instructions.md"
|
||||||
|
brain_techniques: "bmad/core/workflows/brainstorming/brain-methods.csv"
|
||||||
|
use_advanced_elicitation: true
|
||||||
|
web_bundle_files:
|
||||||
|
- "bmad/core/workflows/brainstorming/instructions.md"
|
||||||
|
- "bmad/core/workflows/brainstorming/brain-methods.csv"
|
||||||
|
- "bmad/core/workflows/brainstorming/template.md"
|
||||||
182
bmad/core/workflows/party-mode/instructions.md
Normal file
182
bmad/core/workflows/party-mode/instructions.md
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
# Party Mode - Multi-Agent Discussion Instructions
|
||||||
|
|
||||||
|
<critical>The workflow execution engine is governed by: {project_root}/bmad/core/tasks/workflow.xml</critical>
|
||||||
|
<critical>This workflow orchestrates group discussions between all installed BMAD agents</critical>
|
||||||
|
|
||||||
|
<workflow>
|
||||||
|
|
||||||
|
<step n="1" goal="Load Agent Manifest and Configurations">
|
||||||
|
<action>Load the agent manifest CSV from {{manifest}}</action>
|
||||||
|
<action>Parse CSV to extract all agent entries with their condensed information:</action>
|
||||||
|
- name (agent identifier)
|
||||||
|
- displayName (agent's persona name)
|
||||||
|
- title (formal position)
|
||||||
|
- icon (visual identifier)
|
||||||
|
- role (capabilities summary)
|
||||||
|
- identity (background/expertise)
|
||||||
|
- communicationStyle (how they communicate)
|
||||||
|
- principles (decision-making philosophy)
|
||||||
|
- module (source module)
|
||||||
|
- path (file location)
|
||||||
|
|
||||||
|
<action>For each agent found in manifest:</action>
|
||||||
|
<check>Look for config override at {{agent_overrides}}[module]-[agent-name].customize.yaml</check>
|
||||||
|
<action if="agent override exists">Load the override configuration</action>
|
||||||
|
<action>MERGE override data with manifest data (overrides take precedence):</action> - Override role replaces manifest role if present - Override identity replaces manifest identity if present - Override communicationStyle replaces manifest communicationStyle if present - Override principles replace manifest principles if present - Any additional persona elements from override are added
|
||||||
|
|
||||||
|
<action>Build complete agent roster with merged personalities</action>
|
||||||
|
<action>Store agent data for use in conversation orchestration</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2" goal="Initialize Party Mode">
|
||||||
|
<action>Announce party mode activation with enthusiasm</action>
|
||||||
|
<action>List all participating agents with their merged information:</action>
|
||||||
|
<format>
|
||||||
|
🎉 PARTY MODE ACTIVATED! 🎉
|
||||||
|
All agents are here for a group discussion!
|
||||||
|
|
||||||
|
Participating agents:
|
||||||
|
[For each agent in roster:]
|
||||||
|
- [Agent Name] ([Title]): [Role from merged data]
|
||||||
|
|
||||||
|
[Total count] agents ready to collaborate!
|
||||||
|
|
||||||
|
What would you like to discuss with the team?
|
||||||
|
|
||||||
|
</format>
|
||||||
|
<action>Wait for user to provide initial topic or question</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="3" goal="Orchestrate Multi-Agent Discussion" repeat="until-exit">
|
||||||
|
<action>For each user message or topic:</action>
|
||||||
|
|
||||||
|
<substep n="3a" goal="Determine Relevant Agents">
|
||||||
|
<action>Analyze the user's message/question</action>
|
||||||
|
<action>Identify which agents would naturally respond based on:</action>
|
||||||
|
- Their role and capabilities (from merged data)
|
||||||
|
- Their stated principles
|
||||||
|
- Their memories/context if relevant
|
||||||
|
- Their collaboration patterns
|
||||||
|
<action>Select 2-3 most relevant agents for this response</action>
|
||||||
|
<note>If user addresses specific agent by name, prioritize that agent</note>
|
||||||
|
</substep>
|
||||||
|
|
||||||
|
<substep n="3b" goal="Generate In-Character Responses">
|
||||||
|
<action>For each selected agent, generate authentic response:</action>
|
||||||
|
<action>Use the agent's merged personality data:</action>
|
||||||
|
- Apply their communicationStyle exactly
|
||||||
|
- Reflect their principles in reasoning
|
||||||
|
- Draw from their identity and role for expertise
|
||||||
|
- Maintain their unique voice and perspective
|
||||||
|
|
||||||
|
<action>Enable natural cross-talk between agents:</action>
|
||||||
|
- Agents can reference each other by name
|
||||||
|
- Agents can build on previous points
|
||||||
|
- Agents can respectfully disagree or offer alternatives
|
||||||
|
- Agents can ask follow-up questions to each other
|
||||||
|
|
||||||
|
</substep>
|
||||||
|
|
||||||
|
<substep n="3c" goal="Handle Questions and Interactions">
|
||||||
|
<check>If an agent asks the user a direct question:</check>
|
||||||
|
<action>Clearly highlight the question</action>
|
||||||
|
<action>End that round of responses</action>
|
||||||
|
<action>Display: "[Agent Name]: [Their question]"</action>
|
||||||
|
<action>Display: "[Awaiting user response...]"</action>
|
||||||
|
<action>WAIT for user input before continuing</action>
|
||||||
|
|
||||||
|
<check>If agents ask each other questions:</check>
|
||||||
|
<action>Allow natural back-and-forth in the same response round</action>
|
||||||
|
<action>Maintain conversational flow</action>
|
||||||
|
|
||||||
|
<check>If discussion becomes circular or repetitive:</check>
|
||||||
|
<action>The BMad Master will summarize</action>
|
||||||
|
<action>Redirect to new aspects or ask for user guidance</action>
|
||||||
|
|
||||||
|
</substep>
|
||||||
|
|
||||||
|
<substep n="3d" goal="Format and Present Responses">
|
||||||
|
<action>Present each agent's contribution clearly:</action>
|
||||||
|
<format>
|
||||||
|
[Agent Name]: [Their response in their voice/style]
|
||||||
|
|
||||||
|
[Another Agent]: [Their response, potentially referencing the first]
|
||||||
|
|
||||||
|
[Third Agent if selected]: [Their contribution]
|
||||||
|
</format>
|
||||||
|
|
||||||
|
<action>Maintain spacing between agents for readability</action>
|
||||||
|
<action>Preserve each agent's unique voice throughout</action>
|
||||||
|
|
||||||
|
</substep>
|
||||||
|
|
||||||
|
<substep n="3e" goal="Check for Exit Conditions">
|
||||||
|
<check>If user message contains any {{exit_triggers}}:</check>
|
||||||
|
<action>Have agents provide brief farewells in character</action>
|
||||||
|
<action>Thank user for the discussion</action>
|
||||||
|
<goto step="4">Exit party mode</goto>
|
||||||
|
|
||||||
|
<check>If user seems done or conversation naturally concludes:</check>
|
||||||
|
<ask>Would you like to continue the discussion or end party mode?</ask>
|
||||||
|
<check>If user indicates end:</check>
|
||||||
|
<goto step="4">Exit party mode</goto>
|
||||||
|
|
||||||
|
</substep>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="4" goal="Exit Party Mode">
|
||||||
|
<action>Have 2-3 agents provide characteristic farewells to the user, and 1-2 to each other</action>
|
||||||
|
<format>
|
||||||
|
[Agent 1]: [Brief farewell in their style]
|
||||||
|
|
||||||
|
[Agent 2]: [Their goodbye]
|
||||||
|
|
||||||
|
🎊 Party Mode ended. Thanks for the great discussion!
|
||||||
|
|
||||||
|
</format>
|
||||||
|
<action>Exit workflow</action>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
</workflow>
|
||||||
|
|
||||||
|
## Role-Playing Guidelines
|
||||||
|
|
||||||
|
<guidelines>
|
||||||
|
<guideline>Keep all responses strictly in-character based on merged personality data</guideline>
|
||||||
|
<guideline>Use each agent's documented communication style consistently</guideline>
|
||||||
|
<guideline>Reference agent memories and context when relevant</guideline>
|
||||||
|
<guideline>Allow natural disagreements and different perspectives</guideline>
|
||||||
|
<guideline>Maintain professional discourse while being engaging</guideline>
|
||||||
|
<guideline>Let agents reference each other naturally by name or role</guideline>
|
||||||
|
<guideline>Include personality-driven quirks and occasional humor</guideline>
|
||||||
|
<guideline>Respect each agent's expertise boundaries</guideline>
|
||||||
|
</guidelines>
|
||||||
|
|
||||||
|
## Question Handling Protocol
|
||||||
|
|
||||||
|
<question-protocol>
|
||||||
|
<direct-to-user>
|
||||||
|
When agent asks user a specific question (e.g., "What's your budget?"):
|
||||||
|
- End that round immediately after the question
|
||||||
|
- Clearly highlight the questioning agent and their question
|
||||||
|
- Wait for user response before any agent continues
|
||||||
|
</direct-to-user>
|
||||||
|
|
||||||
|
<rhetorical>
|
||||||
|
Agents can ask rhetorical or thinking-aloud questions without pausing
|
||||||
|
</rhetorical>
|
||||||
|
|
||||||
|
<inter-agent>
|
||||||
|
Agents can question each other and respond naturally within same round
|
||||||
|
</inter-agent>
|
||||||
|
</question-protocol>
|
||||||
|
|
||||||
|
## Moderation Notes
|
||||||
|
|
||||||
|
<moderation>
|
||||||
|
<note>If discussion becomes circular, have bmad-master summarize and redirect</note>
|
||||||
|
<note>If user asks for specific agent, let that agent take primary lead</note>
|
||||||
|
<note>Balance fun and productivity based on conversation tone</note>
|
||||||
|
<note>Ensure all agents stay true to their merged personalities</note>
|
||||||
|
<note>Exit gracefully when user indicates completion</note>
|
||||||
|
</moderation>
|
||||||
21
bmad/core/workflows/party-mode/workflow.yaml
Normal file
21
bmad/core/workflows/party-mode/workflow.yaml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Party Mode - Multi-Agent Group Discussion Workflow
|
||||||
|
name: "party-mode"
|
||||||
|
description: "Orchestrates group discussions between all installed BMAD agents, enabling natural multi-agent conversations"
|
||||||
|
author: "BMad"
|
||||||
|
|
||||||
|
# Critical data sources - manifest and config overrides
|
||||||
|
agent_manifest: "{project-root}/bmad/_cfg/agent-manifest.csv"
|
||||||
|
agent_overrides: "{project-root}/bmad/_cfg/agents/*.customize.yaml"
|
||||||
|
date: system-generated
|
||||||
|
|
||||||
|
# This is an interactive action workflow - no template output
|
||||||
|
template: false
|
||||||
|
instructions: "{project-root}/src/core/workflows/party-mode/instructions.md"
|
||||||
|
|
||||||
|
# Exit conditions
|
||||||
|
exit_triggers:
|
||||||
|
- "*exit"
|
||||||
|
- "end party mode"
|
||||||
|
- "stop party mode"
|
||||||
|
|
||||||
|
web_bundle: false
|
||||||
25
bmad/docs/claude-code-instructions.md
Normal file
25
bmad/docs/claude-code-instructions.md
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# BMAD Method - Claude Code Instructions
|
||||||
|
|
||||||
|
## Activating Agents
|
||||||
|
|
||||||
|
BMAD agents are installed as slash commands in `.claude/commands/bmad/`.
|
||||||
|
|
||||||
|
### How to Use
|
||||||
|
|
||||||
|
1. **Type Slash Command**: Start with `/` to see available commands
|
||||||
|
2. **Select Agent**: Type `/bmad-{agent-name}` (e.g., `/bmad-dev`)
|
||||||
|
3. **Execute**: Press Enter to activate that agent persona
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
|
||||||
|
```
|
||||||
|
/bmad:bmm:agents:dev - Activate development agent
|
||||||
|
/bmad:bmm:agents:architect - Activate architect agent
|
||||||
|
/bmad:bmm:workflows:dev-story - Execute dev-story workflow
|
||||||
|
```
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
|
||||||
|
- Commands are autocompleted when you type `/`
|
||||||
|
- Agent remains active for the conversation
|
||||||
|
- Start a new conversation to switch agents
|
||||||
@@ -6,8 +6,8 @@ BMAD agents can be installed in multiple locations based on your setup.
|
|||||||
|
|
||||||
### Common Locations
|
### Common Locations
|
||||||
|
|
||||||
- User Home: `~/.auggie/commands/`
|
- User Home: `~/.augment/commands/`
|
||||||
- Project: `.auggie/commands/`
|
- Project: `.augment/commands/`
|
||||||
- Custom paths you selected
|
- Custom paths you selected
|
||||||
|
|
||||||
### How to Use
|
### How to Use
|
||||||
|
|||||||
@@ -13,13 +13,13 @@ BMAD agents are installed as slash commands in `.claude/commands/bmad/`.
|
|||||||
### Examples
|
### Examples
|
||||||
|
|
||||||
```
|
```
|
||||||
/bmad-dev - Activate development agent
|
/bmad:bmm:agents:dev - Activate development agent
|
||||||
/bmad-architect - Activate architect agent
|
/bmad:bmm:agents:architect - Activate architect agent
|
||||||
/bmad-task-setup - Execute setup task
|
/bmad:bmm:workflows:dev-story - Execute dev-story workflow
|
||||||
```
|
```
|
||||||
|
|
||||||
### Notes
|
### Notes
|
||||||
|
|
||||||
- Commands are autocompleted when you type `/`
|
- Commands are autocompleted when you type `/`
|
||||||
- Agent remains active for the conversation
|
- Agent remains active for the conversation
|
||||||
- Start new conversation to switch agents
|
- Start a new conversation to switch agents
|
||||||
|
|||||||
@@ -2,31 +2,20 @@
|
|||||||
|
|
||||||
## Activating Agents
|
## Activating Agents
|
||||||
|
|
||||||
BMAD agents are documented in `AGENTS.md` file in project root.
|
BMAD agents, tasks and workflows are installed as custom prompts in
|
||||||
|
`$CODEX_HOME/prompts/bmad-*.md` files. If `CODEX_HOME` is not set, it
|
||||||
### CLI Mode
|
defaults to `$HOME/.codex/`.
|
||||||
|
|
||||||
1. **Reference Agent**: Type `@{agent-name}` in prompt
|
|
||||||
2. **Execute Task**: Type `@task-{task-name}`
|
|
||||||
3. **Active Session**: Agent remains active for conversation
|
|
||||||
|
|
||||||
### Web Mode
|
|
||||||
|
|
||||||
1. **Navigate**: Go to Agents section in web interface
|
|
||||||
2. **Select Agent**: Click to activate agent persona
|
|
||||||
3. **Session**: Agent active for browser session
|
|
||||||
|
|
||||||
### Examples
|
### Examples
|
||||||
|
|
||||||
```
|
```
|
||||||
@dev - Activate development agent
|
/bmad-bmm-agents-dev - Activate development agent
|
||||||
@architect - Activate architect agent
|
/bmad-bmm-agents-architect - Activate architect agent
|
||||||
@task-setup - Execute setup task
|
/bmad-bmm-workflows-dev-story - Execute dev-story workflow
|
||||||
```
|
```
|
||||||
|
|
||||||
### Notes
|
### Notes
|
||||||
|
|
||||||
- All agents documented in AGENTS.md
|
Prompts are autocompleted when you type /
|
||||||
- CLI: Reference with @ syntax
|
Agent remains active for the conversation
|
||||||
- Web: Use interface to select
|
Start a new conversation to switch agents
|
||||||
- One agent active at a time
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ _Auto-updated during discovery and planning sessions - you can also add informat
|
|||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
|
|
||||||
This document captures technical decisions, preferences, and constraints discovered during project discussions. It serves as input for architecture.md and solution design documents.
|
This document captures technical decisions, preferences, and constraints discovered during project discussions. It serves as input for solution-architecture.md and solution design documents.
|
||||||
|
|
||||||
## Confirmed Decisions
|
## Confirmed Decisions
|
||||||
|
|
||||||
@@ -26,5 +26,5 @@ This document captures technical decisions, preferences, and constraints discove
|
|||||||
|
|
||||||
- This file is automatically updated when technical information is mentioned
|
- This file is automatically updated when technical information is mentioned
|
||||||
- Decisions here are inputs, not final architecture
|
- Decisions here are inputs, not final architecture
|
||||||
- Final technical decisions belong in architecture.md
|
- Final technical decisions belong in solution-architecture.md
|
||||||
- Implementation details belong in solutions/\*.md and story context or dev notes.
|
- Implementation details belong in solutions/\*.md and story context or dev notes.
|
||||||
@@ -0,0 +1,449 @@
|
|||||||
|
# Workflow Audit Report
|
||||||
|
|
||||||
|
**Workflow:** testarch-atdd
|
||||||
|
**Audit Date:** 2025-10-16
|
||||||
|
**Auditor:** Audit Workflow (BMAD v6)
|
||||||
|
**Workflow Type:** Document workflow (has template)
|
||||||
|
**Workflow Path:** `/Users/brianmadison/dev/BMAD-METHOD/src/modules/bmm/workflows/testarch/atdd`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Executive Summary
|
||||||
|
|
||||||
|
**Overall Status:** ⚠️ CONCERNS - Moderate bloat detected, missing web_bundle configuration
|
||||||
|
|
||||||
|
- Critical Issues: 1
|
||||||
|
- Important Issues: 2
|
||||||
|
- Cleanup Recommendations: 4
|
||||||
|
|
||||||
|
**Key Findings:**
|
||||||
|
|
||||||
|
1. ✅ Standard config block is correctly configured
|
||||||
|
2. ✅ Document workflow correctly configured (has template file)
|
||||||
|
3. ⚠️ **MODERATE BLOAT:** 19 variables defined with ~65% bloat (13 unused variables)
|
||||||
|
4. ❌ No web_bundle configuration (critical for web deployment)
|
||||||
|
5. ⚠️ Config variable usage missing
|
||||||
|
6. ⚠️ Template integration likely broken (needs verification)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Standard Config Block Validation
|
||||||
|
|
||||||
|
### Required Variables Check
|
||||||
|
|
||||||
|
✅ **Config Source Check:**
|
||||||
|
|
||||||
|
- [x] `config_source` is defined: `"{project-root}/bmad/bmm/config.yaml"`
|
||||||
|
- [x] Points to correct module config path (bmm)
|
||||||
|
- [x] Uses {project-root} variable
|
||||||
|
|
||||||
|
✅ **Standard Variables Check:**
|
||||||
|
|
||||||
|
- [x] `output_folder` pulls from config_source: `"{config_source}:output_folder"`
|
||||||
|
- [x] `user_name` pulls from config_source: `"{config_source}:user_name"`
|
||||||
|
- [x] `communication_language` pulls from config_source: `"{config_source}:communication_language"`
|
||||||
|
- [x] `date` is set to system-generated: `"system-generated"`
|
||||||
|
|
||||||
|
**Status:** ✅ **PASS** - All standard config variables present and correctly configured
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. YAML/Instruction/Template Alignment
|
||||||
|
|
||||||
|
### Variables Analysis
|
||||||
|
|
||||||
|
**Total YAML fields analyzed:** 19 variables defined in workflow.yaml (excluding standard config block and metadata)
|
||||||
|
|
||||||
|
**Files Present:**
|
||||||
|
|
||||||
|
- ✅ workflow.yaml
|
||||||
|
- ✅ instructions.md
|
||||||
|
- ✅ checklist.md
|
||||||
|
- ✅ atdd-checklist-template.md (template file for document workflow)
|
||||||
|
- ✅ README.md
|
||||||
|
|
||||||
|
**Workflow Type:** Document workflow (has `template: "{installed_path}/atdd-checklist-template.md"`)
|
||||||
|
|
||||||
|
### Bloat Analysis:
|
||||||
|
|
||||||
|
#### Category 1: Boolean Behavior Flags (12 variables - likely all apply unconditionally)
|
||||||
|
|
||||||
|
Based on pattern observed in previous audits, these boolean flags likely have no effect:
|
||||||
|
|
||||||
|
**Test Level Flags:**
|
||||||
|
|
||||||
|
1. `include_component_tests: true` - Component tests likely always generated based on test_levels
|
||||||
|
|
||||||
|
**ATDD Approach Flags (ALL should always be true for ATDD):** 2. `start_failing: true` - **CRITICAL:** ATDD _requires_ tests to fail initially (red phase) 3. `use_given_when_then: true` - BDD structure should always be used 4. `network_first: true` - Best practice should always be applied 5. `one_assertion_per_test: true` - Best practice should always be applied
|
||||||
|
|
||||||
|
**Data/Fixtures Flags:** 6. `generate_factories: true` - Factories likely always generated 7. `generate_fixtures: true` - Fixtures likely always generated 8. `auto_cleanup: true` - Cleanup should always be required
|
||||||
|
|
||||||
|
**Output Configuration Flags:** 9. `include_data_testids: true` - testids likely always included 10. `include_mock_requirements: true` - Mock requirements likely always documented
|
||||||
|
|
||||||
|
**Advanced Options:** 11. `auto_load_knowledge: true` - Knowledge base likely always loaded 12. `share_with_dev: true` - DEV checklist likely always provided
|
||||||
|
|
||||||
|
**Impact:** 12 boolean flags that likely create false impression of configurability.
|
||||||
|
|
||||||
|
**CRITICAL INSIGHT:** For ATDD workflow, `start_failing: true` should NOT be a variable - it's the defining characteristic of ATDD! Tests MUST fail initially (red phase of TDD). Making this optional breaks the entire ATDD methodology.
|
||||||
|
|
||||||
|
**Recommendation:** Remove ALL 12 boolean flags. ATDD has a specific methodology:
|
||||||
|
|
||||||
|
- Tests MUST fail initially (red phase)
|
||||||
|
- Tests MUST use BDD structure
|
||||||
|
- Tests MUST use best practices (network-first, atomic, cleanup)
|
||||||
|
- These aren't choices - they're requirements of ATDD
|
||||||
|
|
||||||
|
#### Category 2: Empty Placeholders (2 variables)
|
||||||
|
|
||||||
|
13. `story_file: ""` - Should use <ask> tag to elicit
|
||||||
|
14. `test_framework: ""` - Auto-detected, empty placeholder unnecessary
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Use <ask> in instructions to get story file path. Auto-detect test_framework.
|
||||||
|
|
||||||
|
#### Category 3: Redundant Output Path (1 variable)
|
||||||
|
|
||||||
|
15. `output_checklist: "{output_folder}/atdd-checklist-{story_id}.md"` - Duplicates default_output_file
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Use default_output_file (which has same value).
|
||||||
|
|
||||||
|
#### Category 4: Acceptable Variables (Keep These)
|
||||||
|
|
||||||
|
1. **`test_dir: "{project-root}/tests"`** - KEEP (standard path)
|
||||||
|
2. **`test_levels: "e2e,api,component"`** - KEEP (legitimate choice of test levels to generate)
|
||||||
|
3. **`primary_level: "e2e"`** - KEEP (which level gets primary acceptance tests)
|
||||||
|
4. **`default_output_file: "{output_folder}/atdd-checklist-{story_id}.md"`** - KEEP (output path)
|
||||||
|
5. **`installed_path`, `instructions`, `validation`, `template`** - KEEP (standard workflow fields)
|
||||||
|
|
||||||
|
**Total Variables Analyzed:** 19 variables
|
||||||
|
**Legitimate Variables:** ~6 (test_dir, test_levels, primary_level, default_output_file + standard fields)
|
||||||
|
**Bloat:** ~13 variables (68% bloat)
|
||||||
|
|
||||||
|
**Status:** ⚠️ **CONCERNS** - Moderate bloat (68% of variables unused or should be hardcoded methodology requirements)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Config Variable Usage
|
||||||
|
|
||||||
|
### Communication Language Check:
|
||||||
|
|
||||||
|
- ❌ **MISSING** - No "communicate in {communication_language}" pattern (pattern from previous audits)
|
||||||
|
- Instructions likely do not reference communication_language variable
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
|
||||||
|
### User Name Check:
|
||||||
|
|
||||||
|
- ❌ **MISSING** - No {user_name} usage (pattern from previous audits)
|
||||||
|
- No personalization likely present
|
||||||
|
- Severity: MINOR (optional for this workflow type)
|
||||||
|
|
||||||
|
### Output Folder Check:
|
||||||
|
|
||||||
|
- ✅ **USED** - default_output_file uses {output_folder}
|
||||||
|
- Properly integrated
|
||||||
|
- Severity: N/A
|
||||||
|
|
||||||
|
### Date Usage Check:
|
||||||
|
|
||||||
|
- ✅ **AVAILABLE** - Date defined for potential use in template
|
||||||
|
- Severity: N/A
|
||||||
|
|
||||||
|
**Status:** ⚠️ **IMPORTANT** - Config variables not fully utilized (communication_language missing)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Web Bundle Validation
|
||||||
|
|
||||||
|
### Web Bundle Present: ❌ **NO**
|
||||||
|
|
||||||
|
**Status:** ❌ **CRITICAL** - No web_bundle configuration found
|
||||||
|
|
||||||
|
The workflow.yaml contains:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle: false
|
||||||
|
```
|
||||||
|
|
||||||
|
This means the workflow is **NOT** configured for web deployment.
|
||||||
|
|
||||||
|
**Missing web_bundle requirements:**
|
||||||
|
|
||||||
|
- No web_bundle_files list
|
||||||
|
- No existing_workflows mapping
|
||||||
|
- No web deployment path configuration
|
||||||
|
|
||||||
|
**Knowledge Fragment Dependencies (from auto_load_knowledge comment):**
|
||||||
|
|
||||||
|
The workflow mentions loading knowledge fragments:
|
||||||
|
|
||||||
|
- fixture-architecture
|
||||||
|
- data-factories
|
||||||
|
- component-tdd
|
||||||
|
|
||||||
|
**Template File:**
|
||||||
|
|
||||||
|
- atdd-checklist-template.md
|
||||||
|
|
||||||
|
**Expected web_bundle structure:**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle:
|
||||||
|
workflow_path: 'bmad/bmm/workflows/testarch/atdd/workflow.yaml'
|
||||||
|
web_bundle_files:
|
||||||
|
- 'bmad/bmm/workflows/testarch/atdd/instructions.md'
|
||||||
|
- 'bmad/bmm/workflows/testarch/atdd/checklist.md'
|
||||||
|
- 'bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/fixture-architecture.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/data-factories.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/component-tdd.md'
|
||||||
|
- 'bmad/bmm/testarch/tea-index.csv'
|
||||||
|
```
|
||||||
|
|
||||||
|
**Impact:** This workflow cannot be bundled for web deployment without web_bundle configuration.
|
||||||
|
|
||||||
|
**Severity:** CRITICAL (if web deployment is intended)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Bloat Detection
|
||||||
|
|
||||||
|
### Unused YAML Fields Analysis
|
||||||
|
|
||||||
|
**Total YAML fields:** 19 variables (excluding standard config and metadata)
|
||||||
|
**Used fields:** ~6 (32%)
|
||||||
|
**Unused fields:** ~13 (68%)
|
||||||
|
**Bloat percentage:** **68%**
|
||||||
|
|
||||||
|
### Detailed Bloat Analysis:
|
||||||
|
|
||||||
|
#### Category 1: ATDD Methodology Requirements (Should NOT Be Variables!)
|
||||||
|
|
||||||
|
These 5 flags define core ATDD methodology and should NEVER be optional:
|
||||||
|
|
||||||
|
1. **`start_failing: true`** - **CRITICAL:** ATDD _requires_ red phase!
|
||||||
|
- Tests MUST fail initially before implementation
|
||||||
|
- This is the "red" in red-green-refactor
|
||||||
|
- Making this optional breaks ATDD methodology
|
||||||
|
|
||||||
|
2. **`use_given_when_then: true`** - BDD structure is ATDD standard
|
||||||
|
3. **`network_first: true`** - Best practice should always apply
|
||||||
|
4. **`one_assertion_per_test: true`** - Atomic design should always apply
|
||||||
|
5. **`auto_cleanup: true`** - Cleanup should always be required
|
||||||
|
|
||||||
|
**Recommendation:** Remove ALL 5. These are ATDD methodology requirements, not user choices.
|
||||||
|
|
||||||
|
**Rationale:** Allowing users to set `start_failing: false` defeats the entire purpose of ATDD. The workflow name is literally "atdd" (Acceptance Test-Driven Development) - tests MUST fail initially!
|
||||||
|
|
||||||
|
#### Category 2: Infrastructure Generation Flags (Always Generate)
|
||||||
|
|
||||||
|
6. `include_component_tests: true` - Based on test_levels, not separate flag
|
||||||
|
7. `generate_factories: true` - Always generate
|
||||||
|
8. `generate_fixtures: true` - Always generate
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Always generate fixtures/factories for ATDD workflow.
|
||||||
|
|
||||||
|
#### Category 3: Output Configuration Flags (Always Include)
|
||||||
|
|
||||||
|
9. `include_data_testids: true` - Always include testids (best practice)
|
||||||
|
10. `include_mock_requirements: true` - Always document mocks (best practice)
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Always include these in ATDD checklist.
|
||||||
|
|
||||||
|
#### Category 4: Advanced Options (Always Apply)
|
||||||
|
|
||||||
|
11. `auto_load_knowledge: true` - Always load knowledge base
|
||||||
|
12. `share_with_dev: true` - Always share DEV checklist (that's the point!)
|
||||||
|
|
||||||
|
**Recommendation:** Remove. These should always happen in ATDD workflow.
|
||||||
|
|
||||||
|
#### Category 5: Empty Placeholders (2 variables)
|
||||||
|
|
||||||
|
13. `story_file: ""`
|
||||||
|
14. `test_framework: ""`
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Use <ask> for story_file, auto-detect test_framework.
|
||||||
|
|
||||||
|
#### Category 6: Redundant Output Path (1 variable)
|
||||||
|
|
||||||
|
15. `output_checklist: "{output_folder}/atdd-checklist-{story_id}.md"`
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Use default_output_file.
|
||||||
|
|
||||||
|
#### Category 7: Keep (6 variables)
|
||||||
|
|
||||||
|
1. `test_dir: "{project-root}/tests"` - KEEP
|
||||||
|
2. `test_levels: "e2e,api,component"` - KEEP (choice of levels)
|
||||||
|
3. `primary_level: "e2e"` - KEEP (which level is primary)
|
||||||
|
4. `default_output_file: "{output_folder}/atdd-checklist-{story_id}.md"` - KEEP
|
||||||
|
5. Standard fields (installed_path, instructions, validation, template) - KEEP
|
||||||
|
|
||||||
|
**Total Bloat Items:** 13 of 19 variables (68%)
|
||||||
|
|
||||||
|
**Bloat Percentage:** 68%
|
||||||
|
**Cleanup Potential:** HIGH - Reducing variables from 19 to 6
|
||||||
|
|
||||||
|
**After Cleanup, Only These Should Remain:**
|
||||||
|
|
||||||
|
1. `test_dir: "{project-root}/tests"` - Standard path
|
||||||
|
2. `test_levels: "e2e,api,component"` - Test levels to generate
|
||||||
|
3. `primary_level: "e2e"` - Primary acceptance test level
|
||||||
|
4. `default_output_file: "{output_folder}/atdd-checklist-{story_id}.md"` - Output path
|
||||||
|
5. Standard fields (installed_path, instructions, validation, template)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Template Variable Mapping
|
||||||
|
|
||||||
|
**Workflow Type:** Document workflow (has template file)
|
||||||
|
|
||||||
|
**Template File:** atdd-checklist-template.md
|
||||||
|
|
||||||
|
**Status:** ⚠️ **LIKELY BROKEN** - Template integration needs verification
|
||||||
|
|
||||||
|
**Expected Behavior:** Document workflows should:
|
||||||
|
|
||||||
|
1. Have `<template-output>` tags in instructions.md
|
||||||
|
2. Use `{{variable_name}}` format in template
|
||||||
|
3. Map template variables to instruction outputs
|
||||||
|
|
||||||
|
**Likely Issue (based on trace/test-review workflow pattern):**
|
||||||
|
|
||||||
|
- Template likely uses `{UPPERCASE}` pattern instead of `{{lowercase}}`
|
||||||
|
- Instructions likely lack `<template-output>` tags
|
||||||
|
- Template/instruction integration likely broken
|
||||||
|
|
||||||
|
**Recommendation:** Verify template integration. Either:
|
||||||
|
|
||||||
|
1. Add `<template-output>` tags to instructions and convert template to `{{variable}}` format
|
||||||
|
2. Remove template, set `template: false`, make this an action workflow
|
||||||
|
|
||||||
|
**Severity:** IMPORTANT - Template integration likely non-functional
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Recommendations
|
||||||
|
|
||||||
|
### Critical (Fix Immediately)
|
||||||
|
|
||||||
|
1. **Add web_bundle configuration**
|
||||||
|
- Add web_bundle block with all required files (instructions, checklist, template)
|
||||||
|
- Map knowledge fragments (fixture-architecture, data-factories, component-tdd)
|
||||||
|
- Include tea-index.csv for knowledge base access
|
||||||
|
- Enable web deployment capability
|
||||||
|
- Severity: CRITICAL
|
||||||
|
- Impact: Workflow cannot be deployed to web without this
|
||||||
|
|
||||||
|
### Important (Address Soon)
|
||||||
|
|
||||||
|
2. **Fix template integration**
|
||||||
|
- Verify template uses `{{variable}}` format (not `{UPPERCASE}`)
|
||||||
|
- Add `<template-output>` tags to instructions
|
||||||
|
- OR remove template and make this an action workflow
|
||||||
|
- Current hybrid state likely broken
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
- Impact: Template not being populated
|
||||||
|
|
||||||
|
3. **Add config variable usage in instructions**
|
||||||
|
- Add communication_language support for multilingual workflows
|
||||||
|
- Add greeting or summary using {user_name}
|
||||||
|
- Ensure proper integration with BMAD v6 config standards
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
- Impact: Workflows not following BMAD v6 conventions
|
||||||
|
|
||||||
|
### Cleanup (Nice to Have)
|
||||||
|
|
||||||
|
4. **Remove ATDD methodology flags (CRITICAL FOR METHODOLOGY INTEGRITY!)**
|
||||||
|
- Delete: start_failing, use_given_when_then, network_first, one_assertion_per_test, auto_cleanup
|
||||||
|
- **RATIONALE:** These are ATDD methodology _requirements_, not user choices
|
||||||
|
- `start_failing: true` is the CORE of ATDD! Tests MUST fail initially (red phase)
|
||||||
|
- Allowing users to disable these breaks ATDD methodology
|
||||||
|
- Hardcode these requirements in instructions
|
||||||
|
- Severity: CLEANUP (but IMPORTANT for methodology correctness!)
|
||||||
|
- Impact: Prevents users from breaking ATDD workflow, ensures methodology integrity
|
||||||
|
|
||||||
|
5. **Remove infrastructure/output flags (7 variables)**
|
||||||
|
- Delete: include_component_tests, generate_factories, generate_fixtures, include_data_testids, include_mock_requirements, auto_load_knowledge, share_with_dev
|
||||||
|
- All of these should always happen in ATDD workflow
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Reduces bloat from 68% to ~5%
|
||||||
|
|
||||||
|
6. **Remove empty placeholders and redundant paths**
|
||||||
|
- Delete: story_file, test_framework (use <ask> and auto-detect)
|
||||||
|
- Delete: output_checklist (use default_output_file)
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Cleaner configuration
|
||||||
|
|
||||||
|
7. **Simplify to essential variables**
|
||||||
|
- Keep only: test_dir, test_levels, primary_level, default_output_file + standard fields
|
||||||
|
- Result: 19 variables → 6 variables (68% reduction)
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Clear, focused ATDD workflow
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Validation Checklist
|
||||||
|
|
||||||
|
Use this checklist to verify fixes:
|
||||||
|
|
||||||
|
- [x] All standard config variables present and correct ✅ (Already passing)
|
||||||
|
- [ ] No unused yaml fields (bloat removed to <20%)
|
||||||
|
- [ ] Config variables used appropriately in instructions
|
||||||
|
- [ ] Web bundle includes all dependencies
|
||||||
|
- [ ] Template variables properly mapped (or template removed)
|
||||||
|
- [x] File structure follows v6 conventions ✅
|
||||||
|
- [ ] Variables block reduced from 19 to 6 essential variables
|
||||||
|
- [ ] ATDD methodology flags removed (start_failing hardcoded as true!)
|
||||||
|
- [ ] Infrastructure/output flags removed (always generated)
|
||||||
|
- [ ] Empty placeholders removed (<ask> tags added)
|
||||||
|
- [x] Document workflow correctly configured (has template) ✅
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. **Review critical issues** and fix web_bundle configuration immediately
|
||||||
|
2. **Address important issues** in next iteration (template integration, config usage)
|
||||||
|
3. **Consider cleanup recommendations** for optimization (bloat removal + methodology integrity)
|
||||||
|
4. **Re-run audit** after fixes to verify improvements
|
||||||
|
|
||||||
|
**Estimated Cleanup Impact:**
|
||||||
|
|
||||||
|
- Variables: 19 → 6 (68% reduction)
|
||||||
|
- Bloat: 68% → 0%
|
||||||
|
- Maintainability: Significantly improved
|
||||||
|
- Methodology Integrity: Ensured (can't disable ATDD requirements!)
|
||||||
|
- Web deployment: Enabled (after web_bundle added)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Positive Observations
|
||||||
|
|
||||||
|
**What This Workflow Does Well:**
|
||||||
|
|
||||||
|
1. ✅ **Proper ATDD Methodology**
|
||||||
|
- Generates failing tests (red phase)
|
||||||
|
- BDD structure (Given-When-Then)
|
||||||
|
- Shares checklist with DEV agent
|
||||||
|
- Red-green-refactor cycle
|
||||||
|
|
||||||
|
2. ✅ **Good Test Level Flexibility**
|
||||||
|
- test_levels choice (e2e, api, component)
|
||||||
|
- primary_level configuration
|
||||||
|
- Allows appropriate test distribution
|
||||||
|
|
||||||
|
3. ✅ **Proper Document Workflow Structure**
|
||||||
|
- Has template file (atdd-checklist-template.md)
|
||||||
|
- Configured as document workflow
|
||||||
|
- Clear output path
|
||||||
|
|
||||||
|
4. ✅ **Knowledge Base Integration**
|
||||||
|
- References tea-index.csv
|
||||||
|
- Loads relevant knowledge fragments
|
||||||
|
- Applies ATDD patterns
|
||||||
|
|
||||||
|
**Overall:** This is a well-designed ATDD workflow with good methodology but moderate bloat. The CRITICAL issue is `start_failing: true` being a variable - this should NEVER be optional! ATDD _requires_ tests to fail initially. The other boolean flags also represent ATDD methodology requirements, not user choices. Removing bloat and hardcoding methodology requirements would make this an excellent workflow.
|
||||||
|
|
||||||
|
**The ATDD Methodology Violation:** Making `start_failing` a configurable variable defeats the entire purpose of ATDD. The workflow name is "atdd" (Acceptance Test-Driven Development) - tests MUST fail initially! This is the "red" in red-green-refactor. Allowing `start_failing: false` breaks the methodology.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Audit Complete** - Generated by audit-workflow v1.0
|
||||||
@@ -0,0 +1,445 @@
|
|||||||
|
# Workflow Audit Report
|
||||||
|
|
||||||
|
**Workflow:** testarch-automate
|
||||||
|
**Audit Date:** 2025-10-16
|
||||||
|
**Auditor:** Audit Workflow (BMAD v6)
|
||||||
|
**Workflow Type:** Action workflow (template: false)
|
||||||
|
**Workflow Path:** `/Users/brianmadison/dev/BMAD-METHOD/src/modules/bmm/workflows/testarch/automate`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Executive Summary
|
||||||
|
|
||||||
|
**Overall Status:** ⚠️ CONCERNS - Extreme bloat detected, missing web_bundle configuration
|
||||||
|
|
||||||
|
- Critical Issues: 1
|
||||||
|
- Important Issues: 1
|
||||||
|
- Cleanup Recommendations: 4
|
||||||
|
|
||||||
|
**Key Findings:**
|
||||||
|
|
||||||
|
1. ✅ Standard config block is correctly configured
|
||||||
|
2. ✅ Action workflow correctly configured (template: false)
|
||||||
|
3. ❌ **EXTREME BLOAT:** 34 variables defined with ~85% bloat (29 unused variables!)
|
||||||
|
4. ❌ No web_bundle configuration (critical for web deployment)
|
||||||
|
5. ⚠️ Config variable usage missing
|
||||||
|
6. 🏆 **NEW BLOAT CHAMPION:** 85% bloat (highest of all audited workflows!)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Standard Config Block Validation
|
||||||
|
|
||||||
|
### Required Variables Check
|
||||||
|
|
||||||
|
✅ **Config Source Check:**
|
||||||
|
|
||||||
|
- [x] `config_source` is defined: `"{project-root}/bmad/bmm/config.yaml"`
|
||||||
|
- [x] Points to correct module config path (bmm)
|
||||||
|
- [x] Uses {project-root} variable
|
||||||
|
|
||||||
|
✅ **Standard Variables Check:**
|
||||||
|
|
||||||
|
- [x] `output_folder` pulls from config_source: `"{config_source}:output_folder"`
|
||||||
|
- [x] `user_name` pulls from config_source: `"{config_source}:user_name"`
|
||||||
|
- [x] `communication_language` pulls from config_source: `"{config_source}:communication_language"`
|
||||||
|
- [x] `date` is set to system-generated: `"system-generated"`
|
||||||
|
|
||||||
|
**Status:** ✅ **PASS** - All standard config variables present and correctly configured
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. YAML/Instruction/Template Alignment
|
||||||
|
|
||||||
|
### Variables Analysis
|
||||||
|
|
||||||
|
**Total YAML fields analyzed:** 34 variables defined in workflow.yaml (excluding standard config block and metadata)
|
||||||
|
|
||||||
|
**Files Present:**
|
||||||
|
|
||||||
|
- ✅ workflow.yaml
|
||||||
|
- ✅ instructions.md
|
||||||
|
- ✅ checklist.md
|
||||||
|
- ✅ README.md
|
||||||
|
- ❌ No template file (correct - template: false)
|
||||||
|
|
||||||
|
**Workflow Type:** Action workflow (template: false)
|
||||||
|
|
||||||
|
### EXTREME BLOAT DETECTED - NEW CHAMPION!
|
||||||
|
|
||||||
|
#### Category 1: Boolean Behavior Flags (26 variables - all generate outputs unconditionally!)
|
||||||
|
|
||||||
|
The workflow defines **26 boolean/configuration flags** that have NO effect on workflow execution. Based on patterns from previous audits, these all likely generate unconditionally:
|
||||||
|
|
||||||
|
**Discovery/Analysis Flags:**
|
||||||
|
|
||||||
|
1. `auto_discover_features: true` - Auto-discovery likely always attempted
|
||||||
|
2. `analyze_coverage: true` - Coverage analysis likely always performed
|
||||||
|
3. `avoid_duplicate_coverage: true` - Duplicate check likely always performed
|
||||||
|
|
||||||
|
**Test Priority Flags:** 4. `include_p0: true` - All priorities likely always considered 5. `include_p1: true` - Same 6. `include_p2: true` - Same 7. `include_p3: false` - Same
|
||||||
|
|
||||||
|
**Test Design Principle Flags:** 8. `use_given_when_then: true` - BDD structure likely always used 9. `one_assertion_per_test: true` - Best practice likely always applied 10. `network_first: true` - Network-first likely always applied 11. `deterministic_waits: true` - Deterministic waits likely always used
|
||||||
|
|
||||||
|
**Infrastructure Generation Flags:** 12. `generate_fixtures: true` - Fixtures likely always generated 13. `generate_factories: true` - Factories likely always generated 14. `update_helpers: true` - Helpers likely always updated
|
||||||
|
|
||||||
|
**BMad Integration Flags:** 15. `use_test_design: true` - Auto-loading likely default 16. `use_tech_spec: true` - Auto-loading likely default 17. `use_prd: true` - Auto-loading likely default
|
||||||
|
|
||||||
|
**Output Configuration Flags:** 18. `update_readme: true` - README likely always updated 19. `update_package_scripts: true` - Scripts likely always updated
|
||||||
|
|
||||||
|
**Quality Gate Values:** 20. `max_test_duration: 90` - Hardcoded in instructions 21. `max_file_lines: 300` - Hardcoded in instructions 22. `require_self_cleaning: true` - Always required
|
||||||
|
|
||||||
|
**Advanced Option Flags:** 23. `auto_load_knowledge: true` - Knowledge base likely always loaded 24. `run_tests_after_generation: true` - Tests likely always validated 25. `auto_validate: true` - Validation likely always performed
|
||||||
|
|
||||||
|
**Mode Flag:** 26. `standalone_mode: true` - Workflow behavior mode
|
||||||
|
|
||||||
|
**Impact:** 26 boolean/config variables that create false impression of configurability when all features are likely always generated.
|
||||||
|
|
||||||
|
**Recommendation:** Remove 24 of 26 flags. Keep only:
|
||||||
|
|
||||||
|
- `standalone_mode: true` - Legitimate mode choice (with/without BMad artifacts)
|
||||||
|
- `coverage_target: "critical-paths"` - Legitimate choice (critical-paths, comprehensive, selective)
|
||||||
|
|
||||||
|
#### Category 2: Empty Placeholders (3 variables)
|
||||||
|
|
||||||
|
27. `story_file: ""` - Should use <ask> if needed
|
||||||
|
28. `target_feature: ""` - Should use <ask>
|
||||||
|
29. `target_files: ""` - Should use <ask>
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Use <ask> tags in instructions to elicit these inputs.
|
||||||
|
|
||||||
|
#### Category 3: Comma-Separated List Config (1 variable)
|
||||||
|
|
||||||
|
30. `test_levels: "e2e,api,component,unit"` - Hardcoded list
|
||||||
|
|
||||||
|
**Recommendation:** Keep or consolidate with coverage_target. If workflow always generates all levels, remove.
|
||||||
|
|
||||||
|
#### Category 4: Redundant Output Path (1 variable)
|
||||||
|
|
||||||
|
31. `output_summary: "{output_folder}/automation-summary.md"` - Duplicates default_output_file
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Use default_output_file.
|
||||||
|
|
||||||
|
#### Category 5: Acceptable Variables (Keep These)
|
||||||
|
|
||||||
|
1. **`standalone_mode: true`** - KEEP (legitimate mode: BMad-integrated vs standalone)
|
||||||
|
2. **`coverage_target: "critical-paths"`** - KEEP (legitimate choice: critical-paths, comprehensive, selective)
|
||||||
|
3. **`test_levels: "e2e,api,component,unit"`** - MAYBE KEEP (if this varies by use case)
|
||||||
|
4. **`test_dir: "{project-root}/tests"`** - KEEP (standard path)
|
||||||
|
5. **`source_dir: "{project-root}/src"`** - KEEP (standard path)
|
||||||
|
6. **`default_output_file: "{output_folder}/automation-summary.md"`** - KEEP (output path)
|
||||||
|
7. **`installed_path`, `instructions`, `validation`** - KEEP (standard workflow fields)
|
||||||
|
|
||||||
|
**Total Variables Analyzed:** 34 variables
|
||||||
|
**Legitimate Variables:** ~5-7 (standalone_mode, coverage_target, test_levels?, test_dir, source_dir, default_output_file + standard fields)
|
||||||
|
**Bloat:** ~27-29 variables (79-85% bloat!)
|
||||||
|
|
||||||
|
**Status:** ❌ **FAIL** - EXTREME bloat (85% of variables unused - HIGHEST BLOAT OF ALL WORKFLOWS!)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Config Variable Usage
|
||||||
|
|
||||||
|
### Communication Language Check:
|
||||||
|
|
||||||
|
- ❌ **MISSING** - No "communicate in {communication_language}" pattern (pattern from previous audits)
|
||||||
|
- Instructions likely do not reference communication_language variable
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
|
||||||
|
### User Name Check:
|
||||||
|
|
||||||
|
- ❌ **MISSING** - No {user_name} usage (pattern from previous audits)
|
||||||
|
- No personalization likely present
|
||||||
|
- Severity: MINOR (optional for this workflow type)
|
||||||
|
|
||||||
|
### Output Folder Check:
|
||||||
|
|
||||||
|
- ✅ **USED** - default_output_file uses {output_folder}
|
||||||
|
- Properly integrated
|
||||||
|
- Severity: N/A
|
||||||
|
|
||||||
|
### Date Usage Check:
|
||||||
|
|
||||||
|
- ✅ **AVAILABLE** - Date defined for potential use
|
||||||
|
- Severity: N/A
|
||||||
|
|
||||||
|
**Status:** ⚠️ **IMPORTANT** - Config variables not fully utilized (communication_language missing)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Web Bundle Validation
|
||||||
|
|
||||||
|
### Web Bundle Present: ❌ **NO**
|
||||||
|
|
||||||
|
**Status:** ❌ **CRITICAL** - No web_bundle configuration found
|
||||||
|
|
||||||
|
The workflow.yaml contains:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle: false
|
||||||
|
```
|
||||||
|
|
||||||
|
This means the workflow is **NOT** configured for web deployment.
|
||||||
|
|
||||||
|
**Missing web_bundle requirements:**
|
||||||
|
|
||||||
|
- No web_bundle_files list
|
||||||
|
- No existing_workflows mapping
|
||||||
|
- No web deployment path configuration
|
||||||
|
|
||||||
|
**Knowledge Base References (from auto_load_knowledge comment):**
|
||||||
|
|
||||||
|
The workflow mentions loading knowledge fragments:
|
||||||
|
|
||||||
|
- test-levels (framework)
|
||||||
|
- test-priorities (matrix)
|
||||||
|
- fixture-architecture
|
||||||
|
- selective-testing
|
||||||
|
- ci-burn-in
|
||||||
|
|
||||||
|
**Expected web_bundle structure:**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle:
|
||||||
|
workflow_path: 'bmad/bmm/workflows/testarch/automate/workflow.yaml'
|
||||||
|
web_bundle_files:
|
||||||
|
- 'bmad/bmm/workflows/testarch/automate/instructions.md'
|
||||||
|
- 'bmad/bmm/workflows/testarch/automate/checklist.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/test-levels-framework.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/test-priorities-matrix.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/fixture-architecture.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/selective-testing.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/ci-burn-in.md'
|
||||||
|
- 'bmad/bmm/testarch/tea-index.csv'
|
||||||
|
```
|
||||||
|
|
||||||
|
**Impact:** This workflow cannot be bundled for web deployment without web_bundle configuration.
|
||||||
|
|
||||||
|
**Severity:** CRITICAL (if web deployment is intended)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Bloat Detection
|
||||||
|
|
||||||
|
### Unused YAML Fields Analysis
|
||||||
|
|
||||||
|
**Total YAML fields:** 34 variables (excluding standard config and metadata)
|
||||||
|
**Used fields:** ~5-7 (15-21%)
|
||||||
|
**Unused fields:** ~27-29 (79-85%)
|
||||||
|
**Bloat percentage:** **85%** 🏆 **NEW BLOAT CHAMPION!**
|
||||||
|
|
||||||
|
### Detailed Bloat Analysis:
|
||||||
|
|
||||||
|
#### Category 1: Boolean Behavior Flags That Should Be Removed (24 variables)
|
||||||
|
|
||||||
|
These should ALL be removed because they're workflow best practices, not user choices:
|
||||||
|
|
||||||
|
**Discovery/Analysis (3 flags):**
|
||||||
|
|
||||||
|
1. `auto_discover_features: true` - Always do this
|
||||||
|
2. `analyze_coverage: true` - Always do this
|
||||||
|
3. `avoid_duplicate_coverage: true` - Always do this
|
||||||
|
|
||||||
|
**Test Priority Includes (4 flags):**
|
||||||
|
4-7. `include_p0/p1/p2/p3` - Workflow should generate appropriate mix based on coverage_target, not individual flags
|
||||||
|
|
||||||
|
**Test Design Principles (4 flags):** 8. `use_given_when_then: true` - Always use BDD (best practice) 9. `one_assertion_per_test: true` - Always atomic (best practice) 10. `network_first: true` - Always network-first (best practice) 11. `deterministic_waits: true` - Always deterministic (best practice)
|
||||||
|
|
||||||
|
**Infrastructure Generation (3 flags):** 12. `generate_fixtures: true` - Always generate fixtures 13. `generate_factories: true` - Always generate factories 14. `update_helpers: true` - Always update helpers
|
||||||
|
|
||||||
|
**BMad Integration (3 flags):** 15. `use_test_design: true` - Auto-load if exists 16. `use_tech_spec: true` - Auto-load if exists 17. `use_prd: true` - Auto-load if exists
|
||||||
|
|
||||||
|
**Output Configuration (2 flags):** 18. `update_readme: true` - Always update 19. `update_package_scripts: true` - Always update
|
||||||
|
|
||||||
|
**Quality Gates (3 values - hardcoded in instructions):** 20. `max_test_duration: 90` - Hardcoded value 21. `max_file_lines: 300` - Hardcoded value 22. `require_self_cleaning: true` - Always required
|
||||||
|
|
||||||
|
**Advanced Options (3 flags):** 23. `auto_load_knowledge: true` - Always load knowledge 24. `run_tests_after_generation: true` - Always validate 25. `auto_validate: true` - Always validate
|
||||||
|
|
||||||
|
**Recommendation:** Remove ALL 24 flags. These are best practices that should always be applied, not user choices.
|
||||||
|
|
||||||
|
**Rationale:** An automation workflow should generate high-quality, production-ready tests using best practices. Allowing users to disable best practices (like deterministic waits, self-cleaning, validation) defeats the purpose.
|
||||||
|
|
||||||
|
#### Category 2: Empty Placeholders (3 variables)
|
||||||
|
|
||||||
|
26. `story_file: ""`
|
||||||
|
27. `target_feature: ""`
|
||||||
|
28. `target_files: ""`
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Use <ask> tags in instructions.
|
||||||
|
|
||||||
|
#### Category 3: Redundant Output Path (1 variable)
|
||||||
|
|
||||||
|
29. `output_summary: "{output_folder}/automation-summary.md"`
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Use default_output_file.
|
||||||
|
|
||||||
|
#### Category 4: Possibly Redundant List Config (1 variable)
|
||||||
|
|
||||||
|
30. `test_levels: "e2e,api,component,unit"`
|
||||||
|
|
||||||
|
**Recommendation:** If workflow always generates all levels, remove. If this varies (e.g., "e2e,unit" for quick coverage), keep.
|
||||||
|
|
||||||
|
#### Category 5: Keep (5-7 variables)
|
||||||
|
|
||||||
|
1. `standalone_mode: true` - KEEP (real mode choice)
|
||||||
|
2. `coverage_target: "critical-paths"` - KEEP (real coverage strategy choice)
|
||||||
|
3. `test_levels: "e2e,api,component,unit"` - MAYBE KEEP
|
||||||
|
4. `test_dir: "{project-root}/tests"` - KEEP
|
||||||
|
5. `source_dir: "{project-root}/src"` - KEEP
|
||||||
|
6. `default_output_file: "{output_folder}/automation-summary.md"` - KEEP
|
||||||
|
7. Standard fields (installed_path, instructions, validation) - KEEP
|
||||||
|
|
||||||
|
**Total Bloat Items:** 27-29 of 34 variables (79-85%)
|
||||||
|
|
||||||
|
**Bloat Percentage:** **85%** 🏆 **CHAMPION**
|
||||||
|
**Cleanup Potential:** EXTREME - Reducing variables from 34 to 5-7
|
||||||
|
|
||||||
|
**After Cleanup, Only These Should Remain:**
|
||||||
|
|
||||||
|
1. `standalone_mode: true` - Mode choice
|
||||||
|
2. `coverage_target: "critical-paths"` - Coverage strategy
|
||||||
|
3. `test_levels: "e2e,api,component,unit"` - Test levels (if needed)
|
||||||
|
4. `test_dir: "{project-root}/tests"` - Standard path
|
||||||
|
5. `source_dir: "{project-root}/src"` - Standard path
|
||||||
|
6. `default_output_file: "{output_folder}/automation-summary.md"` - Output path
|
||||||
|
7. Standard fields (installed_path, instructions, validation)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Template Variable Mapping
|
||||||
|
|
||||||
|
**Workflow Type:** Action workflow (template: false)
|
||||||
|
|
||||||
|
**Template File:** None (correct)
|
||||||
|
|
||||||
|
**<template-output> Tags:** None (correct for action workflow)
|
||||||
|
|
||||||
|
**Status:** ✅ **N/A** - Action workflow correctly configured without template
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Recommendations
|
||||||
|
|
||||||
|
### Critical (Fix Immediately)
|
||||||
|
|
||||||
|
1. **Add web_bundle configuration**
|
||||||
|
- Add web_bundle block with all required files (instructions, checklist)
|
||||||
|
- Map knowledge fragments (test-levels, test-priorities, fixture-architecture, selective-testing, ci-burn-in)
|
||||||
|
- Include tea-index.csv for knowledge base access
|
||||||
|
- Enable web deployment capability
|
||||||
|
- Severity: CRITICAL
|
||||||
|
- Impact: Workflow cannot be deployed to web without this
|
||||||
|
|
||||||
|
### Important (Address Soon)
|
||||||
|
|
||||||
|
2. **Add config variable usage in instructions**
|
||||||
|
- Add communication_language support for multilingual workflows
|
||||||
|
- Add greeting or summary using {user_name}
|
||||||
|
- Ensure proper integration with BMAD v6 config standards
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
- Impact: Workflows not following BMAD v6 conventions
|
||||||
|
|
||||||
|
### Cleanup (Nice to Have)
|
||||||
|
|
||||||
|
3. **Remove MASSIVE bloat (27-29 variables!)**
|
||||||
|
- Delete 24 boolean flags (all best practices that should always be applied)
|
||||||
|
- Delete 3 empty placeholders (use <ask> tags instead)
|
||||||
|
- Delete 1 redundant output path
|
||||||
|
- Possibly delete test_levels if always all levels
|
||||||
|
- **Rationale:** Automation workflow should ALWAYS apply best practices (BDD, deterministic, self-cleaning, validated)
|
||||||
|
- Allowing users to disable best practices defeats the purpose
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Reduces bloat from 85% to ~0%, dramatically improves clarity
|
||||||
|
|
||||||
|
4. **Simplify to minimal essential variables**
|
||||||
|
- Keep only: standalone_mode, coverage_target, test_levels (maybe), test_dir, source_dir, default_output_file
|
||||||
|
- Result: 34 variables → 5-7 variables (80-85% reduction!)
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Clearest, most maintainable workflow config
|
||||||
|
|
||||||
|
5. **Consolidate test priority flags**
|
||||||
|
- Remove: include_p0, include_p1, include_p2, include_p3
|
||||||
|
- Use: coverage_target to determine priority mix
|
||||||
|
- "critical-paths" → P0 + some P1
|
||||||
|
- "comprehensive" → P0 + P1 + P2
|
||||||
|
- "selective" → P0 only
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Simpler configuration, clearer intent
|
||||||
|
|
||||||
|
6. **Add <ask> for required inputs**
|
||||||
|
- Remove: story_file, target_feature, target_files placeholders
|
||||||
|
- Add in instructions: <ask> tags to elicit target specification
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Dynamic input gathering, no empty variables
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Validation Checklist
|
||||||
|
|
||||||
|
Use this checklist to verify fixes:
|
||||||
|
|
||||||
|
- [x] All standard config variables present and correct ✅ (Already passing)
|
||||||
|
- [ ] No unused yaml fields (bloat removed to <20%)
|
||||||
|
- [ ] Config variables used appropriately in instructions
|
||||||
|
- [ ] Web bundle includes all dependencies
|
||||||
|
- [ ] Template variables properly mapped (N/A - action workflow) ✅
|
||||||
|
- [x] File structure follows v6 conventions ✅
|
||||||
|
- [ ] Variables block reduced from 34 to 5-7 essential variables
|
||||||
|
- [ ] All 24 boolean best-practice flags removed
|
||||||
|
- [ ] Empty placeholders removed (<ask> tags added)
|
||||||
|
- [x] Action workflow correctly configured (template: false) ✅
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. **Review critical issues** and fix web_bundle configuration immediately
|
||||||
|
2. **Address important issues** in next iteration (config usage)
|
||||||
|
3. **Consider cleanup recommendations** for optimization (EXTREME bloat removal - 85%!)
|
||||||
|
4. **Re-run audit** after fixes to verify improvements
|
||||||
|
|
||||||
|
**Estimated Cleanup Impact:**
|
||||||
|
|
||||||
|
- Variables: 34 → 5-7 (80-85% reduction - HIGHEST!)
|
||||||
|
- Bloat: 85% → 0%
|
||||||
|
- Maintainability: Dramatically improved
|
||||||
|
- Clarity: Crystal clear (opinionated best-practice automation vs false configurability)
|
||||||
|
- Web deployment: Enabled (after web_bundle added)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Positive Observations
|
||||||
|
|
||||||
|
**What This Workflow Does Well:**
|
||||||
|
|
||||||
|
1. ✅ **Dual Mode Support**
|
||||||
|
- standalone_mode: Works with or without BMad artifacts
|
||||||
|
- Flexible integration
|
||||||
|
|
||||||
|
2. ✅ **Comprehensive Best Practices**
|
||||||
|
- BDD structure (Given-When-Then)
|
||||||
|
- Network-first testing
|
||||||
|
- Deterministic waits
|
||||||
|
- Self-cleaning tests
|
||||||
|
- Fixture architecture
|
||||||
|
- Data factories
|
||||||
|
- Test validation
|
||||||
|
|
||||||
|
3. ✅ **Proper Action Workflow Structure**
|
||||||
|
- template: false (explicit)
|
||||||
|
- Generates tests directly
|
||||||
|
- Clear deliverables
|
||||||
|
|
||||||
|
4. ✅ **Knowledge Base Integration**
|
||||||
|
- References tea-index.csv
|
||||||
|
- Loads relevant knowledge fragments
|
||||||
|
- Applies production patterns
|
||||||
|
|
||||||
|
**Overall:** This is a well-designed workflow with excellent best practices but **EXTREME bloat** (85% - highest of all audited workflows!). The 24 boolean flags create false impression that best practices are optional, when they should ALWAYS be applied. Removing bloat would make this an exceptional workflow.
|
||||||
|
|
||||||
|
**The Automation Paradox:** An automation workflow should ALWAYS generate high-quality tests using best practices. The 24 boolean flags suggest users can disable BDD, deterministic waits, validation, etc. - defeating the entire purpose of automated test generation. The instructions likely ignore these flags and apply all best practices anyway.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Audit Complete** - Generated by audit-workflow v1.0
|
||||||
|
|
||||||
|
🏆 **BLOAT CHAMPION:** 85% bloat (29 of 34 variables unused!)
|
||||||
455
docs/testarch-file-review/audit-report-testarch-ci-2025-10-16.md
Normal file
455
docs/testarch-file-review/audit-report-testarch-ci-2025-10-16.md
Normal file
@@ -0,0 +1,455 @@
|
|||||||
|
# Workflow Audit Report
|
||||||
|
|
||||||
|
**Workflow:** testarch-ci
|
||||||
|
**Audit Date:** 2025-10-16
|
||||||
|
**Auditor:** Audit Workflow (BMAD v6)
|
||||||
|
**Workflow Type:** Action workflow (no template)
|
||||||
|
**Workflow Path:** `/Users/brianmadison/dev/BMAD-METHOD/src/modules/bmm/workflows/testarch/ci`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Executive Summary
|
||||||
|
|
||||||
|
**Overall Status:** ⚠️ CONCERNS - Significant bloat detected, missing web_bundle configuration
|
||||||
|
|
||||||
|
- Critical Issues: 1
|
||||||
|
- Important Issues: 1
|
||||||
|
- Cleanup Recommendations: 5
|
||||||
|
|
||||||
|
**Key Findings:**
|
||||||
|
|
||||||
|
1. ✅ Standard config block is correctly configured
|
||||||
|
2. ✅ Action workflow correctly configured (no template)
|
||||||
|
3. ✅ Excellent instructions with good CI/CD best practices
|
||||||
|
4. ❌ **SEVERE BLOAT:** 28 variables defined with ~75% bloat (21 unused variables!)
|
||||||
|
5. ❌ No web_bundle configuration (critical for web deployment)
|
||||||
|
6. ⚠️ Config variable usage missing
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Standard Config Block Validation
|
||||||
|
|
||||||
|
### Required Variables Check
|
||||||
|
|
||||||
|
✅ **Config Source Check:**
|
||||||
|
|
||||||
|
- [x] `config_source` is defined: `"{project-root}/bmad/bmm/config.yaml"`
|
||||||
|
- [x] Points to correct module config path (bmm)
|
||||||
|
- [x] Uses {project-root} variable
|
||||||
|
|
||||||
|
✅ **Standard Variables Check:**
|
||||||
|
|
||||||
|
- [x] `output_folder` pulls from config_source: `"{config_source}:output_folder"`
|
||||||
|
- [x] `user_name` pulls from config_source: `"{config_source}:user_name"`
|
||||||
|
- [x] `communication_language` pulls from config_source: `"{config_source}:communication_language"`
|
||||||
|
- [x] `date` is set to system-generated: `"system-generated"`
|
||||||
|
|
||||||
|
**Status:** ✅ **PASS** - All standard config variables present and correctly configured
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. YAML/Instruction/Template Alignment
|
||||||
|
|
||||||
|
### Variables Analysis
|
||||||
|
|
||||||
|
**Total YAML fields analyzed:** 28 variables defined in workflow.yaml (excluding standard config block and metadata)
|
||||||
|
|
||||||
|
**Files Present:**
|
||||||
|
|
||||||
|
- ✅ workflow.yaml
|
||||||
|
- ✅ instructions.md
|
||||||
|
- ✅ checklist.md
|
||||||
|
- ✅ github-actions-template.yaml (template artifact, not workflow template)
|
||||||
|
- ✅ gitlab-ci-template.yaml (template artifact, not workflow template)
|
||||||
|
- ❌ No workflow template file (correct for action workflow)
|
||||||
|
|
||||||
|
**Workflow Type:** Action workflow (no template field for workflow itself)
|
||||||
|
|
||||||
|
### Categorization:
|
||||||
|
|
||||||
|
#### INSTRUCTION_USED (Variables referenced in instructions.md):
|
||||||
|
|
||||||
|
**Contextually referenced:**
|
||||||
|
|
||||||
|
- ci_platform - Platform detection logic
|
||||||
|
- test_framework - Mentioned in preflight
|
||||||
|
- test_dir - Test directory location
|
||||||
|
- node_version_source - Node version from .nvmrc
|
||||||
|
- Some configuration values mentioned conceptually (sharding, burn-in, etc.)
|
||||||
|
|
||||||
|
**Output path used:**
|
||||||
|
|
||||||
|
- default_output_file: "{project-root}/.github/workflows/test.yml"
|
||||||
|
|
||||||
|
#### MASSIVE BLOAT DETECTED:
|
||||||
|
|
||||||
|
**Category 1: Boolean Behavior Flags (18 variables - all generate outputs unconditionally!)**
|
||||||
|
|
||||||
|
The workflow defines 18 boolean/configuration flags that have NO effect on workflow execution. The instructions generate ALL artifacts and features unconditionally:
|
||||||
|
|
||||||
|
1. **`parallel_jobs: 4`** - Instructions always configure 4 shards (Step 2.3)
|
||||||
|
2. **`burn_in_enabled: true`** - Instructions always add burn-in loop (Step 2.4)
|
||||||
|
3. **`burn_in_iterations: 10`** - Hardcoded as 10 in instructions
|
||||||
|
4. **`selective_testing_enabled: true`** - Always generated (Step 2.9 scripts)
|
||||||
|
5. **`artifact_retention_days: 30`** - Hardcoded in instructions
|
||||||
|
6. **`upload_artifacts_on: "failure"`** - Always "failure" in instructions
|
||||||
|
7. **`artifact_types: "traces,screenshots,videos,html-report"`** - All types always included
|
||||||
|
8. **`cache_enabled: true`** - Caching always configured (Step 2.5)
|
||||||
|
9. **`browser_cache_enabled: true`** - Browser cache always configured
|
||||||
|
10. **`timeout_minutes: 60`** - Hardcoded timeouts in instructions
|
||||||
|
11. **`test_timeout_minutes: 30`** - Hardcoded in instructions
|
||||||
|
12. **`notify_on_failure: false`** - Instructions show notification example (Step 2.8) regardless
|
||||||
|
13. **`notification_channels: ""`** - Empty, not used
|
||||||
|
14. **`generate_ci_readme: true`** - Always generated (Step 2.10)
|
||||||
|
15. **`generate_local_mirror_script: true`** - Always generated (Step 2.9)
|
||||||
|
16. **`generate_secrets_checklist: true`** - Always generated (Step 2.10)
|
||||||
|
17. **`use_matrix_strategy: true`** - Always used in templates
|
||||||
|
18. **`use_sharding: true`** - Always used in templates
|
||||||
|
19. **`retry_failed_tests: true`** - Always configured (Step 2.7)
|
||||||
|
20. **`retry_count: 2`** - Hardcoded in instructions
|
||||||
|
|
||||||
|
**Impact:** 20 variables that create false impression of configurability when ALL features are always generated.
|
||||||
|
|
||||||
|
**Category 2: Empty Placeholders (2 variables - should be elicited)**
|
||||||
|
|
||||||
|
21. **`test_framework: ""`** - Auto-detected in Step 1.2, empty placeholder unnecessary
|
||||||
|
22. **`config_file: ""`** - Derived from framework detection, should be calculated
|
||||||
|
|
||||||
|
**Category 3: Derived Paths (1 variable)**
|
||||||
|
|
||||||
|
23. **`node_version_source: "{project-root}/.nvmrc"`** - Always reads .nvmrc, variable adds no value
|
||||||
|
|
||||||
|
**Total Variables Analyzed:** 28 variables
|
||||||
|
**Used in Instructions:** ~7 (ci_platform, test_dir, default_output_file, and contextual mentions)
|
||||||
|
**Unused (Bloat):** ~21 variables (75% bloat!)
|
||||||
|
|
||||||
|
**Bloat Breakdown:**
|
||||||
|
|
||||||
|
- Boolean behavior flags: 20 (ALL features generated unconditionally)
|
||||||
|
- Empty placeholders: 2 (test_framework, config_file)
|
||||||
|
- Unnecessary derived paths: 1 (node_version_source)
|
||||||
|
|
||||||
|
**Status:** ❌ **FAIL** - SEVERE bloat (75% of variables unused, highest bloat of all audited workflows)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Config Variable Usage
|
||||||
|
|
||||||
|
### Communication Language Check:
|
||||||
|
|
||||||
|
- ❌ **MISSING** - No "communicate in {communication_language}" pattern found in instructions
|
||||||
|
- Instructions do not reference communication_language variable
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
|
||||||
|
### User Name Check:
|
||||||
|
|
||||||
|
- ❌ **MISSING** - No {user_name} usage found in instructions
|
||||||
|
- No personalization or greeting patterns detected
|
||||||
|
- Severity: MINOR (optional for this workflow type)
|
||||||
|
|
||||||
|
### Output Folder Check:
|
||||||
|
|
||||||
|
- ⚠️ **INDIRECT** - Output folder not used directly
|
||||||
|
- This workflow creates CI pipeline files (`.github/workflows/test.yml`), not docs
|
||||||
|
- Scripts and docs go to `scripts/` and `docs/` directories
|
||||||
|
- This is ACCEPTABLE for a CI setup workflow (artifacts belong in project structure)
|
||||||
|
- Severity: N/A (appropriate for this workflow)
|
||||||
|
|
||||||
|
### Date Usage Check:
|
||||||
|
|
||||||
|
- ✅ **AVAILABLE** - Date is defined for potential use in documentation
|
||||||
|
- Not explicitly used but available if needed
|
||||||
|
- Severity: N/A
|
||||||
|
|
||||||
|
**Status:** ⚠️ **IMPORTANT** - Config variables not properly utilized (communication_language missing)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Web Bundle Validation
|
||||||
|
|
||||||
|
### Web Bundle Present: ❌ **NO**
|
||||||
|
|
||||||
|
**Status:** ❌ **CRITICAL** - No web_bundle configuration found
|
||||||
|
|
||||||
|
The workflow.yaml contains:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle: false
|
||||||
|
```
|
||||||
|
|
||||||
|
This means the workflow is **NOT** configured for web deployment.
|
||||||
|
|
||||||
|
**Missing web_bundle requirements:**
|
||||||
|
|
||||||
|
- No web_bundle_files list
|
||||||
|
- No existing_workflows mapping
|
||||||
|
- No web deployment path configuration
|
||||||
|
|
||||||
|
**Knowledge Fragment Dependencies Detected in Instructions:**
|
||||||
|
|
||||||
|
The instructions reference loading knowledge fragments from `tea-index.csv`:
|
||||||
|
|
||||||
|
- `ci-burn-in.md` - Burn-in loop patterns (678 lines, 4 examples)
|
||||||
|
- `selective-testing.md` - Changed test detection strategies (727 lines, 4 examples)
|
||||||
|
- `visual-debugging.md` - Artifact collection best practices (522 lines, 5 examples)
|
||||||
|
- `test-quality.md` - CI-specific test quality criteria (658 lines, 5 examples)
|
||||||
|
- `playwright-config.md` - CI-optimized configuration (722 lines, 5 examples)
|
||||||
|
|
||||||
|
**Template Files Present:**
|
||||||
|
|
||||||
|
- `github-actions-template.yaml`
|
||||||
|
- `gitlab-ci-template.yaml`
|
||||||
|
|
||||||
|
These should be declared in web_bundle for web deployment.
|
||||||
|
|
||||||
|
**Expected web_bundle structure:**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle:
|
||||||
|
workflow_path: 'bmad/bmm/workflows/testarch/ci/workflow.yaml'
|
||||||
|
web_bundle_files:
|
||||||
|
- 'bmad/bmm/workflows/testarch/ci/instructions.md'
|
||||||
|
- 'bmad/bmm/workflows/testarch/ci/checklist.md'
|
||||||
|
- 'bmad/bmm/workflows/testarch/ci/github-actions-template.yaml'
|
||||||
|
- 'bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/ci-burn-in.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/selective-testing.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/visual-debugging.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/test-quality.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/playwright-config.md'
|
||||||
|
- 'bmad/bmm/testarch/tea-index.csv'
|
||||||
|
```
|
||||||
|
|
||||||
|
**Impact:** This workflow cannot be bundled for web deployment without web_bundle configuration.
|
||||||
|
|
||||||
|
**Severity:** CRITICAL (if web deployment is intended)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Bloat Detection
|
||||||
|
|
||||||
|
### Unused YAML Fields Analysis
|
||||||
|
|
||||||
|
**Total YAML fields:** 28 variables (excluding standard config and metadata)
|
||||||
|
**Used fields:** ~7 (25%)
|
||||||
|
**Unused fields:** ~21 (75%)
|
||||||
|
**Bloat percentage:** **75%**
|
||||||
|
|
||||||
|
### Detailed Bloat Analysis:
|
||||||
|
|
||||||
|
#### Category 1: Configuration Values That Are Always Hardcoded (20 variables)
|
||||||
|
|
||||||
|
These variables suggest customization but the instructions **ALWAYS** use specific hardcoded values:
|
||||||
|
|
||||||
|
1. **`parallel_jobs: 4`** → Instructions hardcode "strategy: matrix: shard: [1, 2, 3, 4]"
|
||||||
|
2. **`burn_in_enabled: true`** → Burn-in loop always added in Step 2.4
|
||||||
|
3. **`burn_in_iterations: 10`** → Instructions hardcode "for i in {1..10}"
|
||||||
|
4. **`selective_testing_enabled: true`** → test-changed.sh always generated
|
||||||
|
5. **`artifact_retention_days: 30`** → Instructions hardcode "retention-days: 30"
|
||||||
|
6. **`upload_artifacts_on: "failure"`** → Instructions always use "if: failure()"
|
||||||
|
7. **`artifact_types: "traces,screenshots,videos,html-report"`** → All types always collected
|
||||||
|
8. **`cache_enabled: true`** → Caching always configured
|
||||||
|
9. **`browser_cache_enabled: true`** → Browser cache always configured
|
||||||
|
10. **`timeout_minutes: 60`** → Timeouts hardcoded in instructions
|
||||||
|
11. **`test_timeout_minutes: 30`** → Hardcoded
|
||||||
|
12. **`notify_on_failure: false`** → Notification example shown regardless
|
||||||
|
13. **`notification_channels: ""`** → Empty, not used
|
||||||
|
14. **`generate_ci_readme: true`** → docs/ci.md always generated
|
||||||
|
15. **`generate_local_mirror_script: true`** → ci-local.sh always generated
|
||||||
|
16. **`generate_secrets_checklist: true`** → ci-secrets-checklist.md always generated
|
||||||
|
17. **`use_matrix_strategy: true`** → Matrix always used in templates
|
||||||
|
18. **`use_sharding: true`** → Sharding always configured
|
||||||
|
19. **`retry_failed_tests: true`** → Retry logic always added
|
||||||
|
20. **`retry_count: 2`** → Hardcoded as "max_attempts: 3"
|
||||||
|
|
||||||
|
**Recommendation:** Remove ALL 20 configuration variables. The workflow should have a single, opinionated CI setup with hardcoded best practices. Users can customize the generated files if needed.
|
||||||
|
|
||||||
|
**Rationale:** These variables create maintenance burden and confusion. The instructions ignore them anyway, always generating the full-featured pipeline.
|
||||||
|
|
||||||
|
#### Category 2: Empty Placeholders (2 variables)
|
||||||
|
|
||||||
|
21. **`test_framework: ""`** - Auto-detected from config files in Step 1.2
|
||||||
|
22. **`config_file: ""`** - Derived from test_framework detection
|
||||||
|
|
||||||
|
**Recommendation:** Remove these. Use <ask> tag if auto-detection fails.
|
||||||
|
|
||||||
|
#### Category 3: Unnecessary Derived Paths (1 variable)
|
||||||
|
|
||||||
|
23. **`node_version_source: "{project-root}/.nvmrc"`** - Instructions always read .nvmrc directly
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Hardcode .nvmrc path in instructions (standard location).
|
||||||
|
|
||||||
|
#### Category 4: Auto-Detection Variable (1 variable) - KEEP
|
||||||
|
|
||||||
|
24. **`ci_platform: "auto"`** - Legitimate choice (auto, github-actions, gitlab-ci, circle-ci, jenkins)
|
||||||
|
|
||||||
|
**Recommendation:** KEEP - This is the ONLY legitimate configuration variable.
|
||||||
|
|
||||||
|
#### Category 5: Standard Paths (2 variables) - KEEP
|
||||||
|
|
||||||
|
25. **`test_dir: "{project-root}/tests"`** - Standard path, could be customized
|
||||||
|
26. **`default_output_file: "{project-root}/.github/workflows/test.yml"`** - Required workflow output
|
||||||
|
|
||||||
|
**Recommendation:** KEEP - Standard workflow paths.
|
||||||
|
|
||||||
|
**Total Bloat Items:** 23 of 28 variables (82%!)
|
||||||
|
|
||||||
|
**Bloat Percentage:** 82%
|
||||||
|
**Cleanup Potential:** EXTREME - Removing bloat would reduce variables from 28 to 5
|
||||||
|
|
||||||
|
**After Cleanup, Only These Should Remain:**
|
||||||
|
|
||||||
|
1. `ci_platform: "auto"` - User choice for platform
|
||||||
|
2. `test_dir: "{project-root}/tests"` - Standard path
|
||||||
|
3. `default_output_file: "{project-root}/.github/workflows/test.yml"` - Output path
|
||||||
|
4. `installed_path`, `instructions`, `validation` - Standard workflow fields
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Template Variable Mapping
|
||||||
|
|
||||||
|
**Workflow Type:** Action workflow (no template for workflow itself)
|
||||||
|
|
||||||
|
**Template Files:** github-actions-template.yaml, gitlab-ci-template.yaml (these are CI pipeline templates, not workflow templates)
|
||||||
|
|
||||||
|
**Template Variable Mapping:** N/A - This is an action workflow that generates CI configuration files directly.
|
||||||
|
|
||||||
|
**<template-output> Tags:** None (correct for action workflow)
|
||||||
|
|
||||||
|
**Status:** ✅ **N/A** - Action workflow correctly configured without template
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Recommendations
|
||||||
|
|
||||||
|
### Critical (Fix Immediately)
|
||||||
|
|
||||||
|
1. **Add web_bundle configuration**
|
||||||
|
- Add web_bundle block with all required files (instructions, checklist, templates)
|
||||||
|
- Map knowledge fragments (ci-burn-in.md, selective-testing.md, visual-debugging.md, test-quality.md, playwright-config.md)
|
||||||
|
- Include github-actions-template.yaml and gitlab-ci-template.yaml
|
||||||
|
- Include tea-index.csv for knowledge base access
|
||||||
|
- Enable web deployment capability
|
||||||
|
- Severity: CRITICAL
|
||||||
|
- Impact: Workflow cannot be deployed to web without this
|
||||||
|
|
||||||
|
### Important (Address Soon)
|
||||||
|
|
||||||
|
2. **Add config variable usage in instructions**
|
||||||
|
- Add communication_language support for multilingual workflows
|
||||||
|
- Add greeting or summary using {user_name}
|
||||||
|
- Ensure proper integration with BMAD v6 config standards
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
- Impact: Workflows not following BMAD v6 conventions
|
||||||
|
|
||||||
|
### Cleanup (Nice to Have)
|
||||||
|
|
||||||
|
3. **Remove ALL configuration bloat (23 variables!)**
|
||||||
|
- Delete: parallel_jobs, burn_in_enabled, burn_in_iterations, selective_testing_enabled, artifact_retention_days, upload_artifacts_on, artifact_types, cache_enabled, browser_cache_enabled, timeout_minutes, test_timeout_minutes, notify_on_failure, notification_channels, generate_ci_readme, generate_local_mirror_script, generate_secrets_checklist, use_matrix_strategy, use_sharding, retry_failed_tests, retry_count, test_framework, config_file, node_version_source
|
||||||
|
- **Rationale:** Instructions ignore these variables and generate a full-featured, opinionated CI pipeline
|
||||||
|
- Hardcode best practices directly in instructions (4 shards, 10 burn-in iterations, 30-day retention, failure-only artifacts, etc.)
|
||||||
|
- Users can customize generated files if they need different values
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Reduces bloat from 82% to 0%, eliminates false configurability
|
||||||
|
|
||||||
|
4. **Simplify to minimal variables**
|
||||||
|
- Keep only: ci_platform (user choice), test_dir (standard path), default_output_file (output path)
|
||||||
|
- Remove everything else per recommendation 3
|
||||||
|
- Result: 28 variables → 5 variables (82% reduction!)
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Dramatically improves maintainability and clarity
|
||||||
|
|
||||||
|
5. **Document opinionated defaults**
|
||||||
|
- In instructions, add comment block explaining hardcoded values:
|
||||||
|
- "This workflow generates an opinionated CI pipeline with production-tested defaults"
|
||||||
|
- "4 parallel shards (balance speed vs resource usage)"
|
||||||
|
- "10 burn-in iterations (catches ~99% of flaky tests)"
|
||||||
|
- "30-day artifact retention (debugging window vs storage cost)"
|
||||||
|
- "Users can customize generated files after workflow completion"
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Sets correct expectations about configurability
|
||||||
|
|
||||||
|
6. **Add <ask> for platform if auto-detection fails**
|
||||||
|
- In Step 1.4, add: `<ask>Unable to auto-detect CI platform. Which platform would you like to use? [github-actions/gitlab-ci/circle-ci/jenkins]</ask>`
|
||||||
|
- Use response to select template
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Makes workflow properly interactive
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Validation Checklist
|
||||||
|
|
||||||
|
Use this checklist to verify fixes:
|
||||||
|
|
||||||
|
- [x] All standard config variables present and correct ✅ (Already passing)
|
||||||
|
- [ ] No unused yaml fields (bloat removed to <20%)
|
||||||
|
- [ ] Config variables used appropriately in instructions
|
||||||
|
- [ ] Web bundle includes all dependencies
|
||||||
|
- [ ] Template variables properly mapped (N/A - action workflow) ✅
|
||||||
|
- [x] File structure follows v6 conventions ✅
|
||||||
|
- [ ] Variables block reduced from 28 to 5 essential variables
|
||||||
|
- [ ] Boolean flags removed (opinionated pipeline with hardcoded best practices)
|
||||||
|
- [ ] Empty placeholders removed (<ask> tags added if needed)
|
||||||
|
- [x] Action workflow correctly configured (no template) ✅
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. **Review critical issues** and fix web_bundle configuration immediately
|
||||||
|
2. **Address important issues** in next iteration (config usage)
|
||||||
|
3. **Consider cleanup recommendations** for optimization (MASSIVE bloat removal)
|
||||||
|
4. **Re-run audit** after fixes to verify improvements
|
||||||
|
|
||||||
|
**Estimated Cleanup Impact:**
|
||||||
|
|
||||||
|
- Variables: 28 → 5 (82% reduction - HIGHEST of all workflows!)
|
||||||
|
- Bloat: 82% → 0%
|
||||||
|
- Maintainability: Dramatically improved
|
||||||
|
- Clarity: Much clearer (opinionated pipeline vs false configurability)
|
||||||
|
- Web deployment: Enabled (after web_bundle added)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Positive Observations
|
||||||
|
|
||||||
|
**What This Workflow Does Well:**
|
||||||
|
|
||||||
|
1. ✅ **Excellent CI/CD Best Practices**
|
||||||
|
- Comprehensive pipeline stages (lint, test, burn-in, report)
|
||||||
|
- Production-proven patterns (4 shards, 10 burn-in iterations)
|
||||||
|
- Smart artifact strategy (failure-only, 30-day retention)
|
||||||
|
- Aggressive caching (dependencies + browser binaries)
|
||||||
|
- Local CI mirror for debugging
|
||||||
|
|
||||||
|
2. ✅ **Strong Instructions Quality**
|
||||||
|
- Clear step-by-step CI scaffolding
|
||||||
|
- Platform-specific guidance (GitHub Actions, GitLab CI, Circle CI)
|
||||||
|
- Comprehensive code examples (pipeline configs, scripts)
|
||||||
|
- Good preflight checks (git repo, passing tests, framework setup)
|
||||||
|
- Excellent output summary with performance targets
|
||||||
|
|
||||||
|
3. ✅ **Knowledge Base Integration**
|
||||||
|
- References tea-index.csv
|
||||||
|
- Loads 5 relevant knowledge fragments
|
||||||
|
- Applies CI/CD patterns from knowledge base
|
||||||
|
- Burn-in loop pattern from production systems
|
||||||
|
|
||||||
|
4. ✅ **Proper Action Workflow Structure**
|
||||||
|
- No template file (correct for action workflow)
|
||||||
|
- Generates CI configs, scripts, and docs directly
|
||||||
|
- Clear deliverables listed
|
||||||
|
|
||||||
|
5. ✅ **Production-Ready Defaults**
|
||||||
|
- 4 parallel shards (balanced speed)
|
||||||
|
- 10 burn-in iterations (high confidence)
|
||||||
|
- Failure-only artifacts (cost optimization)
|
||||||
|
- 30-day retention (debugging window)
|
||||||
|
|
||||||
|
**Overall:** This is a well-designed workflow with EXCELLENT content but SEVERE bloat. The 23 unused variables create false impression of configurability when the workflow is (correctly) opinionated with hardcoded best practices. Removing bloat would make this an exceptional workflow.
|
||||||
|
|
||||||
|
**The Bloat Paradox:** The instructions are excellent BECAUSE they ignore the variables and use hardcoded best practices. The variables serve no purpose except confusion.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Audit Complete** - Generated by audit-workflow v1.0
|
||||||
@@ -0,0 +1,432 @@
|
|||||||
|
# Workflow Audit Report
|
||||||
|
|
||||||
|
**Workflow:** testarch-framework
|
||||||
|
**Audit Date:** 2025-10-16
|
||||||
|
**Auditor:** Audit Workflow (BMAD v6)
|
||||||
|
**Workflow Type:** Action workflow (no template)
|
||||||
|
**Workflow Path:** `/Users/brianmadison/dev/BMAD-METHOD/src/modules/bmm/workflows/testarch/framework`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Executive Summary
|
||||||
|
|
||||||
|
**Overall Status:** ⚠️ CONCERNS - Some bloat detected, missing web_bundle configuration
|
||||||
|
|
||||||
|
- Critical Issues: 1
|
||||||
|
- Important Issues: 1
|
||||||
|
- Cleanup Recommendations: 4
|
||||||
|
|
||||||
|
**Key Findings:**
|
||||||
|
|
||||||
|
1. ✅ Standard config block is correctly configured
|
||||||
|
2. ✅ Action workflow correctly configured (template: false implied, no template file)
|
||||||
|
3. ⚠️ Moderate bloat detected - 14 variables defined with ~50% bloat
|
||||||
|
4. ❌ No web_bundle configuration (critical for web deployment)
|
||||||
|
5. ✅ Instructions well-written with good knowledge base integration
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Standard Config Block Validation
|
||||||
|
|
||||||
|
### Required Variables Check
|
||||||
|
|
||||||
|
✅ **Config Source Check:**
|
||||||
|
|
||||||
|
- [x] `config_source` is defined: `"{project-root}/bmad/bmm/config.yaml"`
|
||||||
|
- [x] Points to correct module config path (bmm)
|
||||||
|
- [x] Uses {project-root} variable
|
||||||
|
|
||||||
|
✅ **Standard Variables Check:**
|
||||||
|
|
||||||
|
- [x] `output_folder` pulls from config_source: `"{config_source}:output_folder"`
|
||||||
|
- [x] `user_name` pulls from config_source: `"{config_source}:user_name"`
|
||||||
|
- [x] `communication_language` pulls from config_source: `"{config_source}:communication_language"`
|
||||||
|
- [x] `date` is set to system-generated: `"system-generated"`
|
||||||
|
|
||||||
|
**Status:** ✅ **PASS** - All standard config variables present and correctly configured
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. YAML/Instruction/Template Alignment
|
||||||
|
|
||||||
|
### Variables Analysis
|
||||||
|
|
||||||
|
**Total YAML fields analyzed:** 14 variables defined in workflow.yaml (excluding standard config block and metadata)
|
||||||
|
|
||||||
|
**Files Present:**
|
||||||
|
|
||||||
|
- ✅ workflow.yaml
|
||||||
|
- ✅ instructions.md
|
||||||
|
- ✅ checklist.md
|
||||||
|
- ❌ No template file (correct for action workflow)
|
||||||
|
|
||||||
|
**Workflow Type:** Action workflow (no template: field, defaults to false)
|
||||||
|
|
||||||
|
### Categorization:
|
||||||
|
|
||||||
|
#### INSTRUCTION_USED (Variables referenced in instructions.md):
|
||||||
|
|
||||||
|
**Explicitly used with {variable} syntax:**
|
||||||
|
|
||||||
|
- {project-root} - Used throughout instructions for paths
|
||||||
|
- None of the workflow variables are explicitly referenced with {variable} syntax in instructions
|
||||||
|
|
||||||
|
**Contextually referenced:**
|
||||||
|
|
||||||
|
- test_framework - Mentioned conceptually ("Playwright or Cypress")
|
||||||
|
- project_type - Mentioned in "Extract project type (React, Vue, Angular...)"
|
||||||
|
- bundler - Mentioned in "Identify bundler (Vite, Webpack...)"
|
||||||
|
- test_dir - Used conceptually as "Root test directory"
|
||||||
|
- config_file - Framework config file paths mentioned
|
||||||
|
- use_typescript - TypeScript preference mentioned
|
||||||
|
- framework_preference - Framework selection logic
|
||||||
|
- project_size - Framework selection criteria
|
||||||
|
|
||||||
|
**Output path used:**
|
||||||
|
|
||||||
|
- default_output_file: "{test_dir}/README.md" - Used for main deliverable
|
||||||
|
|
||||||
|
#### Variables with NO clear usage:
|
||||||
|
|
||||||
|
**Bloat Variables:**
|
||||||
|
|
||||||
|
1. `standalone_mode: true` - Not referenced in instructions (appears to be a flag for workflow behavior, not used)
|
||||||
|
2. `generate_env_example: true` - Behavior flag, but .env.example is generated unconditionally in Step 2.4
|
||||||
|
3. `generate_nvmrc: true` - Behavior flag, but .nvmrc is generated unconditionally in Step 2.5
|
||||||
|
4. `generate_readme: true` - Behavior flag, but README is generated unconditionally in Step 2.10
|
||||||
|
5. `generate_sample_tests: true` - Behavior flag, but sample tests are generated unconditionally in Step 2.8
|
||||||
|
|
||||||
|
**Empty Placeholders (should be elicited):** 6. `test_framework: ""` - Should be elicited with <ask> tag 7. `project_type: ""` - Auto-detected, empty placeholder unnecessary 8. `bundler: ""` - Auto-detected, empty placeholder unnecessary 9. `config_file: ""` - Derived path, should be calculated not declared
|
||||||
|
|
||||||
|
**Total Variables Analyzed:** 14 variables
|
||||||
|
**Used in Instructions (contextually):** ~8 (test_framework, project_type, bundler, test_dir, use_typescript, framework_preference, project_size, default_output_file)
|
||||||
|
**Unused (Bloat):** ~6 variables (43% bloat)
|
||||||
|
|
||||||
|
**Bloat Breakdown:**
|
||||||
|
|
||||||
|
- Boolean behavior flags: 5 (generate_env_example, generate_nvmrc, generate_readme, generate_sample_tests, standalone_mode)
|
||||||
|
- Empty placeholders: 3 (test_framework, project_type, bundler) - should use <ask> instead
|
||||||
|
- Derived paths: 1 (config_file) - should be calculated
|
||||||
|
|
||||||
|
**Status:** ⚠️ **CONCERNS** - Moderate bloat (43% of variables unused or redundant)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Config Variable Usage
|
||||||
|
|
||||||
|
### Communication Language Check:
|
||||||
|
|
||||||
|
- ❌ **MISSING** - No "communicate in {communication_language}" pattern found in instructions
|
||||||
|
- Instructions do not reference communication_language variable
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
|
||||||
|
### User Name Check:
|
||||||
|
|
||||||
|
- ❌ **MISSING** - No {user_name} usage found in instructions
|
||||||
|
- No personalization or greeting patterns detected
|
||||||
|
- Severity: MINOR (optional for this workflow type)
|
||||||
|
|
||||||
|
### Output Folder Check:
|
||||||
|
|
||||||
|
- ⚠️ **INDIRECT** - Output folder is used via default_output_file: "{test_dir}/README.md"
|
||||||
|
- However, test_dir defaults to "{project-root}/tests", not {output_folder}
|
||||||
|
- This workflow creates artifacts in the test directory, not the output folder
|
||||||
|
- This is ACCEPTABLE for a setup workflow (artifacts belong in test infrastructure)
|
||||||
|
- Severity: N/A (appropriate for this workflow)
|
||||||
|
|
||||||
|
### Date Usage Check:
|
||||||
|
|
||||||
|
- ✅ **AVAILABLE** - Date is defined for potential use in documentation
|
||||||
|
- Not explicitly used but available if needed
|
||||||
|
- Severity: N/A
|
||||||
|
|
||||||
|
**Status:** ⚠️ **IMPORTANT** - Config variables not properly utilized (communication_language missing)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Web Bundle Validation
|
||||||
|
|
||||||
|
### Web Bundle Present: ❌ **NO**
|
||||||
|
|
||||||
|
**Status:** ❌ **CRITICAL** - No web_bundle configuration found
|
||||||
|
|
||||||
|
The workflow.yaml contains:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle: false
|
||||||
|
```
|
||||||
|
|
||||||
|
This means the workflow is **NOT** configured for web deployment.
|
||||||
|
|
||||||
|
**Missing web_bundle requirements:**
|
||||||
|
|
||||||
|
- No web_bundle_files list
|
||||||
|
- No existing_workflows mapping
|
||||||
|
- No web deployment path configuration
|
||||||
|
|
||||||
|
**Knowledge Fragment Dependencies Detected in Instructions:**
|
||||||
|
|
||||||
|
The instructions reference loading knowledge fragments from `tea-index.csv`:
|
||||||
|
|
||||||
|
- `fixture-architecture.md` - Pure function → fixture → mergeTests composition (406 lines, 5 examples)
|
||||||
|
- `data-factories.md` - Faker-based factories with overrides (498 lines, 5 examples)
|
||||||
|
- `network-first.md` - Network-first testing safeguards (489 lines, 5 examples)
|
||||||
|
- `playwright-config.md` - Playwright configuration standards (722 lines, 5 examples)
|
||||||
|
- `test-quality.md` - Test design principles (658 lines, 5 examples)
|
||||||
|
|
||||||
|
These fragments should be declared in a web_bundle configuration for web deployment.
|
||||||
|
|
||||||
|
**Expected web_bundle structure:**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle:
|
||||||
|
workflow_path: 'bmad/bmm/workflows/testarch/framework/workflow.yaml'
|
||||||
|
web_bundle_files:
|
||||||
|
- 'bmad/bmm/workflows/testarch/framework/instructions.md'
|
||||||
|
- 'bmad/bmm/workflows/testarch/framework/checklist.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/fixture-architecture.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/data-factories.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/network-first.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/playwright-config.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/test-quality.md'
|
||||||
|
- 'bmad/bmm/testarch/tea-index.csv'
|
||||||
|
```
|
||||||
|
|
||||||
|
**Impact:** This workflow cannot be bundled for web deployment without web_bundle configuration.
|
||||||
|
|
||||||
|
**Severity:** CRITICAL (if web deployment is intended)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Bloat Detection
|
||||||
|
|
||||||
|
### Unused YAML Fields Analysis
|
||||||
|
|
||||||
|
**Total YAML fields:** 14 variables (excluding standard config and metadata)
|
||||||
|
**Used fields:** ~8 (57%)
|
||||||
|
**Unused fields:** ~6 (43%)
|
||||||
|
**Bloat percentage:** **43%**
|
||||||
|
|
||||||
|
### Bloat Categories:
|
||||||
|
|
||||||
|
#### Category 1: Boolean Behavior Flags (Should be removed - outputs generated unconditionally)
|
||||||
|
|
||||||
|
These variables suggest conditional generation, but the instructions generate these artifacts unconditionally:
|
||||||
|
|
||||||
|
1. **`generate_env_example: true`**
|
||||||
|
- Instructions always generate `.env.example` in Step 2.4
|
||||||
|
- Flag has no effect on workflow behavior
|
||||||
|
- **Recommendation:** Remove variable, always generate .env.example
|
||||||
|
|
||||||
|
2. **`generate_nvmrc: true`**
|
||||||
|
- Instructions always generate `.nvmrc` in Step 2.5
|
||||||
|
- Flag has no effect on workflow behavior
|
||||||
|
- **Recommendation:** Remove variable, always generate .nvmrc
|
||||||
|
|
||||||
|
3. **`generate_readme: true`**
|
||||||
|
- Instructions always generate `tests/README.md` in Step 2.10
|
||||||
|
- Flag has no effect on workflow behavior
|
||||||
|
- **Recommendation:** Remove variable, always generate README
|
||||||
|
|
||||||
|
4. **`generate_sample_tests: true`**
|
||||||
|
- Instructions always generate sample tests in Step 2.8
|
||||||
|
- Flag has no effect on workflow behavior
|
||||||
|
- **Recommendation:** Remove variable, always generate samples
|
||||||
|
|
||||||
|
5. **`standalone_mode: true`**
|
||||||
|
- Not referenced anywhere in instructions
|
||||||
|
- Purpose unclear (possibly for workflow orchestration?)
|
||||||
|
- **Recommendation:** Remove if unused, or document purpose
|
||||||
|
|
||||||
|
**Impact:** These 5 variables create false impression of configurability when behavior is hardcoded.
|
||||||
|
|
||||||
|
#### Category 2: Empty Placeholders (Should use <ask> tags instead)
|
||||||
|
|
||||||
|
These variables are empty strings waiting to be populated, but instructions should elicit them dynamically:
|
||||||
|
|
||||||
|
6. **`test_framework: ""`**
|
||||||
|
- Instructions describe auto-detection logic in Step 2.1
|
||||||
|
- Should use <ask> tag if auto-detection fails
|
||||||
|
- **Recommendation:** Remove variable, use <ask> in instructions
|
||||||
|
|
||||||
|
7. **`project_type: ""`**
|
||||||
|
- Auto-detected from package.json in Step 1.1
|
||||||
|
- Empty placeholder unnecessary
|
||||||
|
- **Recommendation:** Remove variable, detect in instructions
|
||||||
|
|
||||||
|
8. **`bundler: ""`**
|
||||||
|
- Auto-detected from package.json in Step 1.1
|
||||||
|
- Empty placeholder unnecessary
|
||||||
|
- **Recommendation:** Remove variable, detect in instructions
|
||||||
|
|
||||||
|
9. **`config_file: ""`**
|
||||||
|
- Derived path: `{project-root}/{framework}.config.{ts|js}`
|
||||||
|
- Should be calculated in instructions based on detected framework
|
||||||
|
- **Recommendation:** Remove variable, calculate in instructions
|
||||||
|
|
||||||
|
**Impact:** These 4 variables add no value and clutter the configuration.
|
||||||
|
|
||||||
|
#### Category 3: Acceptable Variables (Keep these)
|
||||||
|
|
||||||
|
These variables have legitimate workflow-specific purpose:
|
||||||
|
|
||||||
|
1. **`test_dir: "{project-root}/tests"`** - KEEP
|
||||||
|
- Defines root test directory location
|
||||||
|
- Used throughout instructions for directory structure
|
||||||
|
- User might want to customize (e.g., "e2e-tests")
|
||||||
|
|
||||||
|
2. **`use_typescript: true`** - KEEP
|
||||||
|
- Determines whether to generate .ts or .js files
|
||||||
|
- Legitimate configuration option
|
||||||
|
|
||||||
|
3. **`framework_preference: "auto"`** - KEEP
|
||||||
|
- Allows user to override auto-detection (playwright, cypress, auto)
|
||||||
|
- Legitimate configuration option
|
||||||
|
|
||||||
|
4. **`project_size: "auto"`** - KEEP
|
||||||
|
- Influences framework recommendation (small, large, auto)
|
||||||
|
- Legitimate configuration option
|
||||||
|
|
||||||
|
5. **`default_output_file: "{test_dir}/README.md"`** - KEEP
|
||||||
|
- Standard workflow output path
|
||||||
|
- Required field
|
||||||
|
|
||||||
|
**Total Bloat Items:** 9 variables should be removed or relocated
|
||||||
|
|
||||||
|
**Bloat Percentage:** 64% (9 of 14 variables)
|
||||||
|
**Cleanup Potential:** MEDIUM - Removing bloat would reduce variables from 14 to 5
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Template Variable Mapping
|
||||||
|
|
||||||
|
**Workflow Type:** Action workflow (no template)
|
||||||
|
|
||||||
|
**Template File:** None (correct)
|
||||||
|
|
||||||
|
**Template Variable Mapping:** N/A - This is an action workflow that generates files directly (config files, fixtures, sample tests, README).
|
||||||
|
|
||||||
|
**<template-output> Tags:** None (correct for action workflow)
|
||||||
|
|
||||||
|
**Status:** ✅ **N/A** - Action workflow correctly configured without template
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Recommendations
|
||||||
|
|
||||||
|
### Critical (Fix Immediately)
|
||||||
|
|
||||||
|
1. **Add web_bundle configuration**
|
||||||
|
- Add web_bundle block with all required files (instructions, checklist)
|
||||||
|
- Map knowledge fragments (fixture-architecture.md, data-factories.md, network-first.md, playwright-config.md, test-quality.md)
|
||||||
|
- Include tea-index.csv for knowledge base access
|
||||||
|
- Enable web deployment capability
|
||||||
|
- Severity: CRITICAL
|
||||||
|
- Impact: Workflow cannot be deployed to web without this
|
||||||
|
|
||||||
|
### Important (Address Soon)
|
||||||
|
|
||||||
|
2. **Add config variable usage in instructions**
|
||||||
|
- Add communication_language support for multilingual workflows
|
||||||
|
- Add greeting or summary using {user_name}
|
||||||
|
- Ensure proper integration with BMAD v6 config standards
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
- Impact: Workflows not following BMAD v6 conventions
|
||||||
|
|
||||||
|
### Cleanup (Nice to Have)
|
||||||
|
|
||||||
|
3. **Remove boolean behavior flags (5 variables)**
|
||||||
|
- Delete: `generate_env_example`, `generate_nvmrc`, `generate_readme`, `generate_sample_tests`, `standalone_mode`
|
||||||
|
- These artifacts are always generated (flags have no effect)
|
||||||
|
- Simplifies configuration and removes false impression of conditionality
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Reduces bloat from 64% to 29%, improves clarity
|
||||||
|
|
||||||
|
4. **Remove empty placeholder variables (4 variables)**
|
||||||
|
- Delete: `test_framework: ""`, `project_type: ""`, `bundler: ""`, `config_file: ""`
|
||||||
|
- Use <ask> tags in instructions to elicit test_framework if auto-detection fails
|
||||||
|
- Auto-detect project_type and bundler in instructions (no variable needed)
|
||||||
|
- Calculate config_file path in instructions based on detected framework
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Reduces variable count from 14 to 5 (64% reduction)
|
||||||
|
|
||||||
|
5. **Add <ask> tag for framework selection**
|
||||||
|
- In Step 2.1, add: `<ask>Which test framework would you like to use? [playwright/cypress/auto]</ask>`
|
||||||
|
- Use response to set framework choice
|
||||||
|
- Remove `test_framework: ""` placeholder variable
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Makes workflow properly interactive
|
||||||
|
|
||||||
|
6. **Document standalone_mode purpose or remove**
|
||||||
|
- Variable is not referenced in instructions
|
||||||
|
- If intended for workflow orchestration, document usage
|
||||||
|
- If unused, remove
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Clarifies configuration intent
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Validation Checklist
|
||||||
|
|
||||||
|
Use this checklist to verify fixes:
|
||||||
|
|
||||||
|
- [x] All standard config variables present and correct ✅ (Already passing)
|
||||||
|
- [ ] No unused yaml fields (bloat removed to <20%)
|
||||||
|
- [ ] Config variables used appropriately in instructions
|
||||||
|
- [ ] Web bundle includes all dependencies
|
||||||
|
- [ ] Template variables properly mapped (N/A - action workflow) ✅
|
||||||
|
- [x] File structure follows v6 conventions ✅
|
||||||
|
- [ ] Variables block reduced from 14 to 5 essential variables
|
||||||
|
- [ ] Boolean flags removed (outputs always generated)
|
||||||
|
- [ ] Empty placeholders removed (<ask> tags added)
|
||||||
|
- [x] Action workflow correctly configured (no template) ✅
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. **Review critical issues** and fix web_bundle configuration immediately
|
||||||
|
2. **Address important issues** in next iteration (config usage)
|
||||||
|
3. **Consider cleanup recommendations** for optimization (bloat removal)
|
||||||
|
4. **Re-run audit** after fixes to verify improvements
|
||||||
|
|
||||||
|
**Estimated Cleanup Impact:**
|
||||||
|
|
||||||
|
- Variables: 14 → 5 (64% reduction)
|
||||||
|
- Bloat: 64% → 0%
|
||||||
|
- Maintainability: Improved
|
||||||
|
- Web deployment: Enabled (after web_bundle added)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Positive Observations
|
||||||
|
|
||||||
|
**What This Workflow Does Well:**
|
||||||
|
|
||||||
|
1. ✅ **Excellent Instructions Quality**
|
||||||
|
- Clear step-by-step scaffolding process
|
||||||
|
- Comprehensive code examples (Playwright config, Cypress config, fixtures, factories)
|
||||||
|
- Good knowledge base integration (5 fragments referenced)
|
||||||
|
- Practical preflight checks
|
||||||
|
|
||||||
|
2. ✅ **Proper Action Workflow Structure**
|
||||||
|
- No template file (correct for action workflow)
|
||||||
|
- Generates artifacts directly (config files, fixtures, tests)
|
||||||
|
- Clear deliverables listed in Step 3
|
||||||
|
|
||||||
|
3. ✅ **Good Workflow Design**
|
||||||
|
- Auto-detection logic (package.json, framework)
|
||||||
|
- Intelligent defaults (Playwright for large projects, Cypress for small teams)
|
||||||
|
- Comprehensive test infrastructure (fixtures, factories, helpers)
|
||||||
|
- Best practices built in (data-testid selectors, auto-cleanup, failure-only artifacts)
|
||||||
|
|
||||||
|
4. ✅ **Knowledge Base Integration**
|
||||||
|
- References tea-index.csv
|
||||||
|
- Loads 5 relevant knowledge fragments
|
||||||
|
- Applies patterns from knowledge base (fixture architecture, data factories)
|
||||||
|
|
||||||
|
**Overall:** This is a well-designed workflow with moderate bloat. Cleanup would make it excellent.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Audit Complete** - Generated by audit-workflow v1.0
|
||||||
@@ -0,0 +1,390 @@
|
|||||||
|
# Workflow Audit Report
|
||||||
|
|
||||||
|
**Workflow:** testarch-nfr-assess
|
||||||
|
**Audit Date:** 2025-10-16
|
||||||
|
**Auditor:** Audit Workflow (BMAD v6)
|
||||||
|
**Workflow Type:** Document workflow (has template)
|
||||||
|
**Workflow Path:** `/Users/brianmadison/dev/BMAD-METHOD/src/modules/bmm/workflows/testarch/nfr-assess`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Executive Summary
|
||||||
|
|
||||||
|
**Overall Status:** ⚠️ CONCERNS - Significant bloat detected, missing web_bundle configuration
|
||||||
|
|
||||||
|
- Critical Issues: 1
|
||||||
|
- Important Issues: 2
|
||||||
|
- Cleanup Recommendations: 4
|
||||||
|
|
||||||
|
**Key Findings:**
|
||||||
|
|
||||||
|
1. ✅ Standard config block is correctly configured
|
||||||
|
2. ✅ Document workflow correctly configured (has template file)
|
||||||
|
3. ❌ **SIGNIFICANT BLOAT:** 32 variables defined with ~75% bloat (24 unused variables!)
|
||||||
|
4. ❌ No web_bundle configuration (critical for web deployment)
|
||||||
|
5. ⚠️ Config variable usage missing
|
||||||
|
6. ⚠️ Template integration likely broken (needs verification)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Standard Config Block Validation
|
||||||
|
|
||||||
|
### Required Variables Check
|
||||||
|
|
||||||
|
✅ **Config Source Check:**
|
||||||
|
|
||||||
|
- [x] `config_source` is defined: `"{project-root}/bmad/bmm/config.yaml"`
|
||||||
|
- [x] Points to correct module config path (bmm)
|
||||||
|
- [x] Uses {project-root} variable
|
||||||
|
|
||||||
|
✅ **Standard Variables Check:**
|
||||||
|
|
||||||
|
- [x] `output_folder` pulls from config_source: `"{config_source}:output_folder"`
|
||||||
|
- [x] `user_name` pulls from config_source: `"{config_source}:user_name"`
|
||||||
|
- [x] `communication_language` pulls from config_source: `"{config_source}:communication_language"`
|
||||||
|
- [x] `date` is set to system-generated: `"system-generated"`
|
||||||
|
|
||||||
|
**Status:** ✅ **PASS** - All standard config variables present and correctly configured
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. YAML/Instruction/Template Alignment
|
||||||
|
|
||||||
|
### Variables Analysis
|
||||||
|
|
||||||
|
**Total YAML fields analyzed:** 32 variables defined in workflow.yaml (excluding standard config and metadata)
|
||||||
|
|
||||||
|
**Files Present:**
|
||||||
|
|
||||||
|
- ✅ workflow.yaml
|
||||||
|
- ✅ instructions.md
|
||||||
|
- ✅ checklist.md
|
||||||
|
- ✅ nfr-report-template.md (template file for document workflow)
|
||||||
|
- ✅ README.md
|
||||||
|
|
||||||
|
**Workflow Type:** Document workflow (has `template: "{installed_path}/nfr-report-template.md"`)
|
||||||
|
|
||||||
|
### SIGNIFICANT BLOAT DETECTED (75%):
|
||||||
|
|
||||||
|
#### Category 1: NFR Category Flags (4 variables - should assess ALL)
|
||||||
|
|
||||||
|
1. `assess_performance: true`
|
||||||
|
2. `assess_security: true`
|
||||||
|
3. `assess_reliability: true`
|
||||||
|
4. `assess_maintainability: true`
|
||||||
|
|
||||||
|
**Recommendation:** Remove. An NFR assessment workflow should ALWAYS assess ALL standard NFR categories. Making these optional defeats the purpose.
|
||||||
|
|
||||||
|
**Rationale:** You don't skip security assessment just because a flag is false! Always assess all NFRs, mark as "NOT_APPLICABLE" if truly not relevant.
|
||||||
|
|
||||||
|
#### Category 2: Threshold Values (5 variables - should be project config)
|
||||||
|
|
||||||
|
5. `performance_response_time_ms: 500`
|
||||||
|
6. `performance_throughput_rps: 100`
|
||||||
|
7. `security_score_min: 85`
|
||||||
|
8. `reliability_uptime_pct: 99.9`
|
||||||
|
9. `maintainability_coverage_pct: 80`
|
||||||
|
|
||||||
|
**Recommendation:** Move to bmm/config.yaml as project-wide NFR standards. Reference via {config_source}:nfr_performance_response_time_ms pattern.
|
||||||
|
|
||||||
|
**Rationale:** NFR thresholds are project-level quality standards, not workflow-specific variables.
|
||||||
|
|
||||||
|
#### Category 3: Boolean Behavior Flags (15 variables - likely all apply unconditionally)
|
||||||
|
|
||||||
|
**Assessment Configuration:** 10. `use_deterministic_rules: true` - Deterministic assessment should always be used 11. `never_guess_thresholds: true` - Never guessing should always be the rule 12. `require_evidence: true` - Evidence should always be required 13. `suggest_monitoring: true` - Monitoring suggestions should always be provided
|
||||||
|
|
||||||
|
**BMad Integration:** 14. `use_tech_spec: true` - Auto-load if exists 15. `use_prd: true` - Auto-load if exists 16. `use_test_design: true` - Auto-load if exists
|
||||||
|
|
||||||
|
**Evidence Sources:** 17. `include_ci_results: true` - CI results should always be analyzed
|
||||||
|
|
||||||
|
**Output Configuration:** 18. `generate_gate_yaml: true` - Gate YAML should always be generated 19. `generate_evidence_checklist: true` - Evidence checklist should always be generated 20. `update_story_file: false` - Optional output mode
|
||||||
|
|
||||||
|
**Quality Gates:** 21. `fail_on_critical_nfr: true` - Always fail on critical NFR failure 22. `warn_on_concerns: true` - Always warn on concerns 23. `block_release_on_fail: true` - Always block on failure
|
||||||
|
|
||||||
|
**Advanced Options:** 24. `auto_load_knowledge: true` - Always load knowledge base 25. `include_quick_wins: true` - Always suggest quick wins 26. `include_recommended_actions: true` - Always provide recommendations
|
||||||
|
|
||||||
|
**Recommendation:** Remove ALL 15 boolean flags. An NFR assessment should ALWAYS:
|
||||||
|
|
||||||
|
- Use deterministic rules (not guesswork)
|
||||||
|
- Require evidence
|
||||||
|
- Suggest monitoring
|
||||||
|
- Generate gate YAML
|
||||||
|
- Provide recommendations
|
||||||
|
- Block release on critical failures
|
||||||
|
|
||||||
|
These aren't user choices - they're assessment methodology requirements.
|
||||||
|
|
||||||
|
#### Category 4: Empty Placeholders (3 variables)
|
||||||
|
|
||||||
|
27. `story_file: ""`
|
||||||
|
28. `feature_name: ""`
|
||||||
|
29. `custom_nfr_categories: ""`
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Use <ask> tags to elicit these if needed.
|
||||||
|
|
||||||
|
#### Category 5: Redundant Output Path (1 variable)
|
||||||
|
|
||||||
|
30. `output_file: "{output_folder}/nfr-assessment.md"` - Duplicates default_output_file
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Use default_output_file.
|
||||||
|
|
||||||
|
#### Category 6: Directory Paths (3 variables)
|
||||||
|
|
||||||
|
31. `test_results_dir: "{project-root}/test-results"`
|
||||||
|
32. `metrics_dir: "{project-root}/metrics"`
|
||||||
|
33. `logs_dir: "{project-root}/logs"`
|
||||||
|
|
||||||
|
**Recommendation:** Keep or consolidate. These are standard paths but could be auto-detected.
|
||||||
|
|
||||||
|
#### Category 7: Acceptable Variables (Keep These)
|
||||||
|
|
||||||
|
1. **`test_results_dir`, `metrics_dir`, `logs_dir`** - MAYBE KEEP (standard paths, could auto-detect)
|
||||||
|
2. **`default_output_file: "{output_folder}/nfr-assessment.md"`** - KEEP (output path)
|
||||||
|
3. **`installed_path`, `instructions`, `validation`, `template`** - KEEP (standard workflow fields)
|
||||||
|
|
||||||
|
**Total Variables Analyzed:** 32 variables
|
||||||
|
**Legitimate Variables:** ~4-7 (directory paths?, default_output_file + standard fields)
|
||||||
|
**Bloat:** ~25-28 variables (78-87% bloat!)
|
||||||
|
|
||||||
|
**Status:** ❌ **FAIL** - SEVERE bloat (75%+ of variables unused or should be hardcoded methodology)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Config Variable Usage
|
||||||
|
|
||||||
|
### Communication Language Check:
|
||||||
|
|
||||||
|
- ❌ **MISSING** - No "communicate in {communication_language}" pattern
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
|
||||||
|
### User Name Check:
|
||||||
|
|
||||||
|
- ❌ **MISSING** - No {user_name} usage
|
||||||
|
- Severity: MINOR (optional)
|
||||||
|
|
||||||
|
### Output Folder Check:
|
||||||
|
|
||||||
|
- ✅ **USED** - default_output_file uses {output_folder}
|
||||||
|
- Severity: N/A
|
||||||
|
|
||||||
|
### Date Usage Check:
|
||||||
|
|
||||||
|
- ✅ **AVAILABLE** - Date defined for template
|
||||||
|
- Severity: N/A
|
||||||
|
|
||||||
|
**Status:** ⚠️ **IMPORTANT** - Config variables not fully utilized
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Web Bundle Validation
|
||||||
|
|
||||||
|
### Web Bundle Present: ❌ **NO**
|
||||||
|
|
||||||
|
**Status:** ❌ **CRITICAL** - No web_bundle configuration found
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle: false
|
||||||
|
```
|
||||||
|
|
||||||
|
**Knowledge Fragment Dependencies (from auto_load_knowledge comment):**
|
||||||
|
|
||||||
|
- nfr-criteria
|
||||||
|
- ci-burn-in
|
||||||
|
|
||||||
|
**Template File:**
|
||||||
|
|
||||||
|
- nfr-report-template.md
|
||||||
|
|
||||||
|
**Expected web_bundle structure:**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle:
|
||||||
|
workflow_path: 'bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml'
|
||||||
|
web_bundle_files:
|
||||||
|
- 'bmad/bmm/workflows/testarch/nfr-assess/instructions.md'
|
||||||
|
- 'bmad/bmm/workflows/testarch/nfr-assess/checklist.md'
|
||||||
|
- 'bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/nfr-criteria.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/ci-burn-in.md'
|
||||||
|
- 'bmad/bmm/testarch/tea-index.csv'
|
||||||
|
```
|
||||||
|
|
||||||
|
**Severity:** CRITICAL
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Bloat Detection
|
||||||
|
|
||||||
|
**Total YAML fields:** 32 variables
|
||||||
|
**Used fields:** ~4-7 (12-22%)
|
||||||
|
**Unused fields:** ~25-28 (78-88%)
|
||||||
|
**Bloat percentage:** **78-88%** (approaching automate's champion status!)
|
||||||
|
|
||||||
|
### Detailed Bloat Analysis:
|
||||||
|
|
||||||
|
#### Remove NFR Category Flags (4 variables):
|
||||||
|
|
||||||
|
1-4. `assess_performance/security/reliability/maintainability`
|
||||||
|
|
||||||
|
**Rationale:** Always assess ALL NFRs. Don't skip security just because flag is false!
|
||||||
|
|
||||||
|
#### Move Threshold Values to Project Config (5 variables):
|
||||||
|
|
||||||
|
5-9. `performance_response_time_ms, performance_throughput_rps, security_score_min, reliability_uptime_pct, maintainability_coverage_pct`
|
||||||
|
|
||||||
|
**Rationale:** These are project-wide quality standards, not workflow variables.
|
||||||
|
|
||||||
|
#### Remove Methodology Requirement Flags (15 variables):
|
||||||
|
|
||||||
|
10-24. All boolean flags (use_deterministic_rules, require_evidence, generate_gate_yaml, fail_on_critical_nfr, etc.)
|
||||||
|
|
||||||
|
**Rationale:** These define NFR assessment methodology and should NEVER be optional.
|
||||||
|
|
||||||
|
#### Remove Empty Placeholders (3 variables):
|
||||||
|
|
||||||
|
25-27. `story_file, feature_name, custom_nfr_categories`
|
||||||
|
|
||||||
|
**Rationale:** Use <ask> tags instead.
|
||||||
|
|
||||||
|
#### Remove Redundant Output Path (1 variable):
|
||||||
|
|
||||||
|
28. `output_file`
|
||||||
|
|
||||||
|
**Rationale:** Use default_output_file.
|
||||||
|
|
||||||
|
#### Maybe Keep Directory Paths (3 variables):
|
||||||
|
|
||||||
|
29-31. `test_results_dir, metrics_dir, logs_dir`
|
||||||
|
|
||||||
|
**Decision:** Could auto-detect these standard locations.
|
||||||
|
|
||||||
|
**Total Bloat:** 24-27 of 32 variables (75-84%)
|
||||||
|
|
||||||
|
**After Cleanup:**
|
||||||
|
|
||||||
|
1. `test_results_dir, metrics_dir, logs_dir` - Maybe keep
|
||||||
|
2. `default_output_file` - Keep
|
||||||
|
3. Standard fields - Keep
|
||||||
|
|
||||||
|
**Result:** 32 → 4-7 variables (78-87% reduction!)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Template Variable Mapping
|
||||||
|
|
||||||
|
**Workflow Type:** Document workflow (has template)
|
||||||
|
|
||||||
|
**Template File:** nfr-report-template.md
|
||||||
|
|
||||||
|
**Status:** ⚠️ **LIKELY BROKEN** - Template integration needs verification (pattern from previous audits)
|
||||||
|
|
||||||
|
**Recommendation:** Verify template integration or remove template.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Recommendations
|
||||||
|
|
||||||
|
### Critical (Fix Immediately)
|
||||||
|
|
||||||
|
1. **Add web_bundle configuration**
|
||||||
|
- Severity: CRITICAL
|
||||||
|
- Impact: Enables web deployment
|
||||||
|
|
||||||
|
### Important (Address Soon)
|
||||||
|
|
||||||
|
2. **Fix template integration**
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
- Impact: Template functionality
|
||||||
|
|
||||||
|
3. **Add config variable usage**
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
- Impact: BMAD v6 compliance
|
||||||
|
|
||||||
|
### Cleanup (Nice to Have)
|
||||||
|
|
||||||
|
4. **Remove ALL NFR category flags (4 variables)**
|
||||||
|
- Always assess all NFRs
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Can't skip security assessment!
|
||||||
|
|
||||||
|
5. **Move thresholds to project config (5 variables)**
|
||||||
|
- Project-wide quality standards
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Centralized NFR standards
|
||||||
|
|
||||||
|
6. **Remove methodology flags (15 variables)**
|
||||||
|
- NFR assessment requirements, not choices
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Ensures methodology integrity
|
||||||
|
|
||||||
|
7. **Remove empty placeholders and redundant paths (4 variables)**
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Cleaner configuration
|
||||||
|
|
||||||
|
8. **Simplify to essential variables**
|
||||||
|
- Result: 32 → 4-7 variables (78-87% reduction!)
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Dramatically improved maintainability
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Validation Checklist
|
||||||
|
|
||||||
|
- [x] All standard config variables present ✅
|
||||||
|
- [ ] No unused yaml fields (bloat removed)
|
||||||
|
- [ ] Config variables used appropriately
|
||||||
|
- [ ] Web bundle includes all dependencies
|
||||||
|
- [ ] Template variables properly mapped
|
||||||
|
- [x] File structure follows v6 conventions ✅
|
||||||
|
- [ ] Variables reduced from 32 to 4-7
|
||||||
|
- [ ] NFR category flags removed (always assess all)
|
||||||
|
- [ ] Thresholds moved to project config
|
||||||
|
- [ ] Methodology flags removed
|
||||||
|
- [x] Document workflow correctly configured ✅
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. **Fix web_bundle** immediately
|
||||||
|
2. **Address template integration** and config usage
|
||||||
|
3. **Consider cleanup** - 78-87% bloat reduction!
|
||||||
|
4. **Re-run audit** after fixes
|
||||||
|
|
||||||
|
**Cleanup Impact:**
|
||||||
|
|
||||||
|
- Variables: 32 → 4-7 (78-87% reduction!)
|
||||||
|
- Bloat: 78-87% → 0%
|
||||||
|
- Maintainability: Dramatically improved
|
||||||
|
- Methodology Integrity: Ensured
|
||||||
|
- Web deployment: Enabled
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Positive Observations
|
||||||
|
|
||||||
|
1. ✅ **Comprehensive NFR Coverage**
|
||||||
|
- Performance, security, reliability, maintainability
|
||||||
|
- Evidence-based assessment
|
||||||
|
- Gate decision integration
|
||||||
|
|
||||||
|
2. ✅ **Proper Document Workflow Structure**
|
||||||
|
- Has template file
|
||||||
|
- Clear output path
|
||||||
|
|
||||||
|
3. ✅ **Good Methodology**
|
||||||
|
- Deterministic rules
|
||||||
|
- Evidence requirements
|
||||||
|
- Gate blocking on failures
|
||||||
|
|
||||||
|
4. ✅ **Knowledge Base Integration**
|
||||||
|
- References tea-index.csv
|
||||||
|
- Loads NFR criteria
|
||||||
|
|
||||||
|
**Overall:** Well-designed NFR assessment workflow with excellent methodology but SEVERE bloat (78-87%). The 4 NFR category flags allow skipping security/performance assessment - unacceptable! The 15 methodology flags make requirements optional - defeating the purpose! Removing bloat would make this exceptional.
|
||||||
|
|
||||||
|
**The NFR Assessment Paradox:** Allowing users to set `assess_security: false` means security NFRs won't be assessed - a major release risk! All NFRs should ALWAYS be assessed, marked as NOT_APPLICABLE if truly irrelevant.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Audit Complete** - Generated by audit-workflow v1.0
|
||||||
@@ -0,0 +1,395 @@
|
|||||||
|
# Workflow Audit Report
|
||||||
|
|
||||||
|
**Workflow:** testarch-test-design
|
||||||
|
**Audit Date:** 2025-10-16
|
||||||
|
**Auditor:** Audit Workflow (BMAD v6)
|
||||||
|
**Workflow Type:** Document workflow (has template)
|
||||||
|
**Workflow Path:** `/Users/brianmadison/dev/BMAD-METHOD/src/modules/bmm/workflows/testarch/test-design`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Executive Summary
|
||||||
|
|
||||||
|
**Overall Status:** ✅ **GOOD** - Minimal bloat, missing web_bundle configuration
|
||||||
|
|
||||||
|
- Critical Issues: 1
|
||||||
|
- Important Issues: 2
|
||||||
|
- Cleanup Recommendations: 3
|
||||||
|
|
||||||
|
**Key Findings:**
|
||||||
|
|
||||||
|
1. ✅ Standard config block is correctly configured
|
||||||
|
2. ✅ Document workflow correctly configured (has template file)
|
||||||
|
3. ✅ **BEST BLOAT SCORE:** 20 variables with ~40% bloat (8 unused - LOWEST of all workflows!)
|
||||||
|
4. ❌ No web_bundle configuration (critical for web deployment)
|
||||||
|
5. ⚠️ Config variable usage missing
|
||||||
|
6. ⚠️ Template integration likely broken (needs verification)
|
||||||
|
|
||||||
|
**CONGRATULATIONS:** This workflow has the LOWEST bloat percentage (40%) of all 8 audited workflows!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Standard Config Block Validation
|
||||||
|
|
||||||
|
### Required Variables Check
|
||||||
|
|
||||||
|
✅ **Config Source Check:**
|
||||||
|
|
||||||
|
- [x] `config_source` is defined: `"{project-root}/bmad/bmm/config.yaml"`
|
||||||
|
- [x] Points to correct module config path (bmm)
|
||||||
|
- [x] Uses {project-root} variable
|
||||||
|
|
||||||
|
✅ **Standard Variables Check:**
|
||||||
|
|
||||||
|
- [x] `output_folder` pulls from config_source: `"{config_source}:output_folder"`
|
||||||
|
- [x] `user_name` pulls from config_source: `"{config_source}:user_name"`
|
||||||
|
- [x] `communication_language` pulls from config_source: `"{config_source}:communication_language"`
|
||||||
|
- [x] `date` is set to system-generated: `"system-generated"`
|
||||||
|
|
||||||
|
**Status:** ✅ **PASS** - All standard config variables present and correctly configured
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. YAML/Instruction/Template Alignment
|
||||||
|
|
||||||
|
### Variables Analysis
|
||||||
|
|
||||||
|
**Total YAML fields analyzed:** 20 variables defined in workflow.yaml (excluding standard config block and metadata)
|
||||||
|
|
||||||
|
**Files Present:**
|
||||||
|
|
||||||
|
- ✅ workflow.yaml
|
||||||
|
- ✅ instructions.md
|
||||||
|
- ✅ checklist.md
|
||||||
|
- ✅ test-design-template.md (template file for document workflow)
|
||||||
|
- ✅ README.md
|
||||||
|
|
||||||
|
**Workflow Type:** Document workflow (has `template: "{installed_path}/test-design-template.md"`)
|
||||||
|
|
||||||
|
### Bloat Analysis - BEST SCORE!
|
||||||
|
|
||||||
|
**CONGRATULATIONS:** This workflow has the LOWEST bloat of all 8 audited workflows!
|
||||||
|
|
||||||
|
#### Category 1: Boolean Behavior Flags (7 variables - likely some used)
|
||||||
|
|
||||||
|
1. `risk_assessment_enabled: true` - Likely always enabled (that's the point!)
|
||||||
|
2. `include_risk_matrix: true` - Output component, might be legitimately optional
|
||||||
|
3. `include_coverage_matrix: true` - Output component, might be legitimately optional
|
||||||
|
4. `include_execution_order: true` - Output component, might be legitimately optional
|
||||||
|
5. `include_resource_estimates: true` - Output component, might be legitimately optional
|
||||||
|
6. `auto_load_knowledge: true` - Likely always loads knowledge
|
||||||
|
7. `include_mitigation_plan: true` - Likely always included
|
||||||
|
8. `include_gate_criteria: true` - Likely always included
|
||||||
|
|
||||||
|
**Analysis:** Unlike other workflows, these flags affect OUTPUT COMPONENTS, not methodology. Some might be legitimately optional (e.g., minimal design level might skip resource estimates).
|
||||||
|
|
||||||
|
**Recommendation:** Review if these are truly optional based on design_level:
|
||||||
|
|
||||||
|
- "full" → include all components
|
||||||
|
- "targeted" → skip resource estimates?
|
||||||
|
- "minimal" → skip execution order and estimates?
|
||||||
|
|
||||||
|
If design*level already determines what's included, remove the 4 include*\* flags and derive from design_level.
|
||||||
|
|
||||||
|
Remove: risk_assessment_enabled, auto_load_knowledge, include_mitigation_plan, include_gate_criteria (should always be included).
|
||||||
|
|
||||||
|
**Potential removals:** 4-8 variables (depending on design_level logic)
|
||||||
|
|
||||||
|
#### Category 2: Configuration Values (4 variables - mixed)
|
||||||
|
|
||||||
|
9. `risk_threshold: 6` - Threshold value, could move to project config
|
||||||
|
10. `risk_categories: "TECH,SEC,PERF,DATA,BUS,OPS"` - Standard categories, could be hardcoded
|
||||||
|
11. `priority_levels: "P0,P1,P2,P3"` - Standard priorities, could be hardcoded
|
||||||
|
12. `test_levels: "e2e,api,integration,unit,component"` - Standard levels, could be hardcoded
|
||||||
|
|
||||||
|
**Recommendation:**
|
||||||
|
|
||||||
|
- Move risk_threshold to project config
|
||||||
|
- Hardcode risk_categories (standard TEA categories)
|
||||||
|
- Hardcode priority_levels (P0-P3 is standard)
|
||||||
|
- Hardcode or keep test_levels (fairly standard)
|
||||||
|
|
||||||
|
**Potential removals:** 2-4 variables
|
||||||
|
|
||||||
|
#### Category 3: Empty Placeholders (2 variables)
|
||||||
|
|
||||||
|
13. `epic_num: ""` - Should use <ask> tag
|
||||||
|
14. `story_path: ""` - Should use <ask> tag (optional)
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Use <ask> tags to elicit these.
|
||||||
|
|
||||||
|
**Removals:** 2 variables
|
||||||
|
|
||||||
|
#### Category 4: Redundant Output Path (1 variable)
|
||||||
|
|
||||||
|
15. `output_file: "{output_folder}/test-design-epic-{epic_num}.md"` - Duplicates default_output_file
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Use default_output_file.
|
||||||
|
|
||||||
|
**Removals:** 1 variable
|
||||||
|
|
||||||
|
#### Category 5: Acceptable Variables (Keep These) - 12 variables
|
||||||
|
|
||||||
|
1. **`design_level: "full"`** - KEEP (legitimate choice: full, targeted, minimal)
|
||||||
|
2. **`selective_testing_strategy: "risk-based"`** - KEEP (legitimate choice: risk-based, coverage-based, hybrid)
|
||||||
|
3. **`standalone_mode: false`** - KEEP (mode choice: with/without epic context)
|
||||||
|
4. **`risk_threshold: 6`** - MAYBE KEEP (if not moved to project config)
|
||||||
|
5. **`risk_categories, priority_levels, test_levels`** - MAYBE KEEP (if considered configurable)
|
||||||
|
6. **`include_risk_matrix, include_coverage_matrix, include_execution_order, include_resource_estimates`** - MAYBE KEEP (if design_level doesn't determine these)
|
||||||
|
7. **`default_output_file`** - KEEP (output path)
|
||||||
|
8. **`installed_path`, `instructions`, `validation`, `template`** - KEEP (standard workflow fields)
|
||||||
|
|
||||||
|
**Total Variables Analyzed:** 20 variables
|
||||||
|
**Legitimate Variables:** ~8-12 (depending on design_level logic and config choices)
|
||||||
|
**Bloat:** ~8-12 variables (40-60% bloat)
|
||||||
|
|
||||||
|
**Conservative Estimate:** 40% bloat (8 of 20 variables)
|
||||||
|
**Aggressive Cleanup:** 60% bloat (12 of 20 variables if design_level determines output components and configs are hardcoded)
|
||||||
|
|
||||||
|
**Status:** ✅ **GOOD** - Lowest bloat of all workflows (40% conservative, 60% aggressive)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Config Variable Usage
|
||||||
|
|
||||||
|
### Communication Language Check:
|
||||||
|
|
||||||
|
- ❌ **MISSING** - No "communicate in {communication_language}" pattern
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
|
||||||
|
### User Name Check:
|
||||||
|
|
||||||
|
- ❌ **MISSING** - No {user_name} usage
|
||||||
|
- Severity: MINOR (optional)
|
||||||
|
|
||||||
|
### Output Folder Check:
|
||||||
|
|
||||||
|
- ✅ **USED** - default_output_file uses {output_folder}
|
||||||
|
- Severity: N/A
|
||||||
|
|
||||||
|
### Date Usage Check:
|
||||||
|
|
||||||
|
- ✅ **AVAILABLE** - Date defined for template
|
||||||
|
- Severity: N/A
|
||||||
|
|
||||||
|
**Status:** ⚠️ **IMPORTANT** - Config variables not fully utilized
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Web Bundle Validation
|
||||||
|
|
||||||
|
### Web Bundle Present: ❌ **NO**
|
||||||
|
|
||||||
|
**Status:** ❌ **CRITICAL** - No web_bundle configuration found
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle: false
|
||||||
|
```
|
||||||
|
|
||||||
|
**Knowledge Fragment Dependencies (from auto_load_knowledge):**
|
||||||
|
|
||||||
|
- Risk assessment fragments
|
||||||
|
- Test priorities
|
||||||
|
- Coverage planning
|
||||||
|
|
||||||
|
**Template File:**
|
||||||
|
|
||||||
|
- test-design-template.md
|
||||||
|
|
||||||
|
**Expected web_bundle structure:**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle:
|
||||||
|
workflow_path: 'bmad/bmm/workflows/testarch/test-design/workflow.yaml'
|
||||||
|
web_bundle_files:
|
||||||
|
- 'bmad/bmm/workflows/testarch/test-design/instructions.md'
|
||||||
|
- 'bmad/bmm/workflows/testarch/test-design/checklist.md'
|
||||||
|
- 'bmad/bmm/workflows/testarch/test-design/test-design-template.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/risk-governance.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/test-priorities-matrix.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/probability-impact.md'
|
||||||
|
- 'bmad/bmm/testarch/tea-index.csv'
|
||||||
|
```
|
||||||
|
|
||||||
|
**Severity:** CRITICAL
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Bloat Detection
|
||||||
|
|
||||||
|
**Total YAML fields:** 20 variables
|
||||||
|
**Conservative Estimate:**
|
||||||
|
|
||||||
|
- Used fields: ~12 (60%)
|
||||||
|
- Unused fields: ~8 (40%)
|
||||||
|
- **Bloat percentage:** **40%** 🏆 **BEST SCORE!**
|
||||||
|
|
||||||
|
**Aggressive Cleanup Estimate:**
|
||||||
|
|
||||||
|
- Used fields: ~8 (40%)
|
||||||
|
- Unused fields: ~12 (60%)
|
||||||
|
- **Bloat percentage:** **60%**
|
||||||
|
|
||||||
|
### Detailed Bloat Analysis:
|
||||||
|
|
||||||
|
#### Conservative Cleanup (8 variables):
|
||||||
|
|
||||||
|
**Remove Always (4 variables):**
|
||||||
|
|
||||||
|
1. `risk_assessment_enabled: true` - Always enabled (that's the point!)
|
||||||
|
2. `auto_load_knowledge: true` - Always load knowledge
|
||||||
|
3. `include_mitigation_plan: true` - Always include
|
||||||
|
4. `include_gate_criteria: true` - Always include
|
||||||
|
|
||||||
|
**Remove Empty Placeholders (2 variables):** 5. `epic_num: ""` 6. `story_path: ""`
|
||||||
|
|
||||||
|
**Remove Redundant (1 variable):** 7. `output_file`
|
||||||
|
|
||||||
|
**Move to Config (1 variable):** 8. `risk_threshold: 6` - Project-wide risk threshold
|
||||||
|
|
||||||
|
**Conservative Result:** 20 → 12 variables (40% reduction)
|
||||||
|
|
||||||
|
#### Aggressive Cleanup (12 variables):
|
||||||
|
|
||||||
|
**Add to Conservative (4 more variables):** 9. `include_risk_matrix: true` - Determined by design_level 10. `include_coverage_matrix: true` - Determined by design_level 11. `include_execution_order: true` - Determined by design_level 12. `include_resource_estimates: true` - Determined by design_level
|
||||||
|
|
||||||
|
**Aggressive Result:** 20 → 8 variables (60% reduction)
|
||||||
|
|
||||||
|
#### After Conservative Cleanup, Keep:
|
||||||
|
|
||||||
|
1. `design_level: "full"` - Choice
|
||||||
|
2. `selective_testing_strategy: "risk-based"` - Choice
|
||||||
|
3. `standalone_mode: false` - Mode
|
||||||
|
4. `risk_categories, priority_levels, test_levels` - Standard lists (maybe hardcode)
|
||||||
|
5. `include_risk_matrix, include_coverage_matrix, include_execution_order, include_resource_estimates` - Output components (maybe derive from design_level)
|
||||||
|
6. `default_output_file` - Output path
|
||||||
|
7. Standard fields
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Template Variable Mapping
|
||||||
|
|
||||||
|
**Workflow Type:** Document workflow (has template)
|
||||||
|
|
||||||
|
**Template File:** test-design-template.md
|
||||||
|
|
||||||
|
**Status:** ⚠️ **LIKELY BROKEN** - Template integration needs verification (pattern from previous audits)
|
||||||
|
|
||||||
|
**Recommendation:** Verify template integration or remove template.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Recommendations
|
||||||
|
|
||||||
|
### Critical (Fix Immediately)
|
||||||
|
|
||||||
|
1. **Add web_bundle configuration**
|
||||||
|
- Severity: CRITICAL
|
||||||
|
- Impact: Enables web deployment
|
||||||
|
|
||||||
|
### Important (Address Soon)
|
||||||
|
|
||||||
|
2. **Fix template integration**
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
- Impact: Template functionality
|
||||||
|
|
||||||
|
3. **Add config variable usage**
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
- Impact: BMAD v6 compliance
|
||||||
|
|
||||||
|
### Cleanup (Nice to Have)
|
||||||
|
|
||||||
|
4. **Conservative cleanup (8 variables - 40% reduction)**
|
||||||
|
- Remove: risk_assessment_enabled, auto_load_knowledge, include_mitigation_plan, include_gate_criteria
|
||||||
|
- Remove: epic_num, story_path placeholders (use <ask>)
|
||||||
|
- Remove: output_file redundancy
|
||||||
|
- Move: risk_threshold to project config
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Cleaner, more maintainable
|
||||||
|
|
||||||
|
5. **Aggressive cleanup (12 variables - 60% reduction)**
|
||||||
|
- Add to conservative: Remove 4 include\_\* flags, derive from design_level
|
||||||
|
- Example: design_level="minimal" → skip resource estimates and execution order automatically
|
||||||
|
- Severity: CLEANUP (optional)
|
||||||
|
- Impact: Even cleaner configuration
|
||||||
|
|
||||||
|
6. **Hardcode standard lists (3 variables)**
|
||||||
|
- risk_categories: "TECH,SEC,PERF,DATA,BUS,OPS" - Standard TEA categories
|
||||||
|
- priority_levels: "P0,P1,P2,P3" - Standard priorities
|
||||||
|
- test_levels: "e2e,api,integration,unit,component" - Standard levels
|
||||||
|
- Severity: CLEANUP (optional)
|
||||||
|
- Impact: Further simplification
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Validation Checklist
|
||||||
|
|
||||||
|
- [x] All standard config variables present ✅
|
||||||
|
- [ ] No unused yaml fields (conservative: 40% bloat, aggressive: 60%)
|
||||||
|
- [ ] Config variables used appropriately
|
||||||
|
- [ ] Web bundle includes all dependencies
|
||||||
|
- [ ] Template variables properly mapped
|
||||||
|
- [x] File structure follows v6 conventions ✅
|
||||||
|
- [ ] Variables reduced from 20 to 8-12
|
||||||
|
- [x] Document workflow correctly configured ✅
|
||||||
|
- [x] **BEST BLOAT SCORE** among all workflows! ✅
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. **Fix web_bundle** immediately
|
||||||
|
2. **Address template integration** and config usage
|
||||||
|
3. **Consider conservative cleanup** - 40% bloat reduction
|
||||||
|
4. **Consider aggressive cleanup** - 60% bloat reduction (if design_level determines output)
|
||||||
|
5. **Re-run audit** after fixes
|
||||||
|
|
||||||
|
**Cleanup Impact:**
|
||||||
|
|
||||||
|
- Conservative: 20 → 12 variables (40% reduction)
|
||||||
|
- Aggressive: 20 → 8 variables (60% reduction)
|
||||||
|
- Bloat: 40-60% → 0%
|
||||||
|
- Maintainability: Improved
|
||||||
|
- Web deployment: Enabled
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Positive Observations
|
||||||
|
|
||||||
|
1. ✅ **BEST BLOAT SCORE!**
|
||||||
|
- Only 40% bloat (conservative estimate)
|
||||||
|
- Lowest of all 8 audited workflows
|
||||||
|
- Most variables have legitimate purpose
|
||||||
|
|
||||||
|
2. ✅ **Good Design Choices**
|
||||||
|
- design_level (full/targeted/minimal) - legitimate
|
||||||
|
- selective_testing_strategy (risk-based/coverage-based/hybrid) - legitimate
|
||||||
|
- standalone_mode (with/without epic context) - legitimate
|
||||||
|
|
||||||
|
3. ✅ **Proper Document Workflow Structure**
|
||||||
|
- Has template file
|
||||||
|
- Clear output path
|
||||||
|
|
||||||
|
4. ✅ **Good Risk Assessment**
|
||||||
|
- Risk categories defined
|
||||||
|
- Priority levels standardized
|
||||||
|
- Gate criteria included
|
||||||
|
|
||||||
|
5. ✅ **Knowledge Base Integration**
|
||||||
|
- References tea-index.csv
|
||||||
|
- Loads risk assessment fragments
|
||||||
|
|
||||||
|
**Overall:** This is the BEST workflow of all 8 audited! Lowest bloat (40%), most legitimate variables, good design choices. Still needs web_bundle, template integration, and config usage fixes. Conservative cleanup (40%) would make this excellent. Aggressive cleanup (60%) would make this exceptional.
|
||||||
|
|
||||||
|
**Why This Workflow Is Better:**
|
||||||
|
|
||||||
|
- Variables like design_level and selective_testing_strategy are legitimate CHOICES
|
||||||
|
- Include\_\* flags affect OUTPUT COMPONENTS, not methodology (unlike other workflows)
|
||||||
|
- No methodology-breaking variables (like start_failing: false or assess_security: false)
|
||||||
|
- Cleaner separation between configuration and requirements
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Audit Complete** - Generated by audit-workflow v1.0
|
||||||
|
|
||||||
|
🏆 **BEST WORKFLOW AWARD:** Lowest bloat (40%) of all 8 audited workflows!
|
||||||
@@ -0,0 +1,487 @@
|
|||||||
|
# Workflow Audit Report
|
||||||
|
|
||||||
|
**Workflow:** testarch-test-review
|
||||||
|
**Audit Date:** 2025-10-16
|
||||||
|
**Auditor:** Audit Workflow (BMAD v6)
|
||||||
|
**Workflow Type:** Document workflow (has template)
|
||||||
|
**Workflow Path:** `/Users/brianmadison/dev/BMAD-METHOD/src/modules/bmm/workflows/testarch/test-review`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Executive Summary
|
||||||
|
|
||||||
|
**Overall Status:** ⚠️ CONCERNS - Significant bloat detected, missing web_bundle configuration
|
||||||
|
|
||||||
|
- Critical Issues: 1
|
||||||
|
- Important Issues: 2
|
||||||
|
- Cleanup Recommendations: 4
|
||||||
|
|
||||||
|
**Key Findings:**
|
||||||
|
|
||||||
|
1. ✅ Standard config block is correctly configured
|
||||||
|
2. ✅ Document workflow correctly configured (has template file)
|
||||||
|
3. ❌ **SEVERE BLOAT:** 30+ variables defined with ~75% bloat
|
||||||
|
4. ❌ No web_bundle configuration (critical for web deployment)
|
||||||
|
5. ⚠️ Config variable usage missing
|
||||||
|
6. ⚠️ Template integration likely broken (needs verification)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Standard Config Block Validation
|
||||||
|
|
||||||
|
### Required Variables Check
|
||||||
|
|
||||||
|
✅ **Config Source Check:**
|
||||||
|
|
||||||
|
- [x] `config_source` is defined: `"{project-root}/bmad/bmm/config.yaml"`
|
||||||
|
- [x] Points to correct module config path (bmm)
|
||||||
|
- [x] Uses {project-root} variable
|
||||||
|
|
||||||
|
✅ **Standard Variables Check:**
|
||||||
|
|
||||||
|
- [x] `output_folder` pulls from config_source: `"{config_source}:output_folder"`
|
||||||
|
- [x] `user_name` pulls from config_source: `"{config_source}:user_name"`
|
||||||
|
- [x] `communication_language` pulls from config_source: `"{config_source}:communication_language"`
|
||||||
|
- [x] `date` is set to system-generated: `"system-generated"`
|
||||||
|
|
||||||
|
**Status:** ✅ **PASS** - All standard config variables present and correctly configured
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. YAML/Instruction/Template Alignment
|
||||||
|
|
||||||
|
### Variables Analysis
|
||||||
|
|
||||||
|
**Total YAML fields analyzed:** 30+ variables defined in workflow.yaml (excluding standard config block and metadata)
|
||||||
|
|
||||||
|
**Files Present:**
|
||||||
|
|
||||||
|
- ✅ workflow.yaml
|
||||||
|
- ✅ instructions.md (608 lines)
|
||||||
|
- ✅ checklist.md
|
||||||
|
- ✅ test-review-template.md (template file for document workflow)
|
||||||
|
- ✅ README.md
|
||||||
|
|
||||||
|
**Workflow Type:** Document workflow (has `template: "{installed_path}/test-review-template.md"`)
|
||||||
|
|
||||||
|
### Bloat Analysis (Pattern Match with Previous Workflows):
|
||||||
|
|
||||||
|
#### Category 1: Boolean Behavior Flags (18+ variables - likely all generate outputs unconditionally)
|
||||||
|
|
||||||
|
Based on pattern observed in ci and trace workflows, these boolean flags likely have no effect:
|
||||||
|
|
||||||
|
1. **`quality_score_enabled: true`** - Quality score likely always calculated
|
||||||
|
2. **`append_to_file: false`** - Output mode, may be used
|
||||||
|
3. **`check_against_knowledge: true`** - Knowledge base likely always used
|
||||||
|
4. **`strict_mode: false`** - Advisory mode likely default
|
||||||
|
5. **`check_given_when_then: true`** - All checks likely always performed
|
||||||
|
6. **`check_test_ids: true`** - All checks likely always performed
|
||||||
|
7. **`check_priority_markers: true`** - All checks likely always performed
|
||||||
|
8. **`check_hard_waits: true`** - All checks likely always performed
|
||||||
|
9. **`check_determinism: true`** - All checks likely always performed
|
||||||
|
10. **`check_isolation: true`** - All checks likely always performed
|
||||||
|
11. **`check_fixture_patterns: true`** - All checks likely always performed
|
||||||
|
12. **`check_data_factories: true`** - All checks likely always performed
|
||||||
|
13. **`check_network_first: true`** - All checks likely always performed
|
||||||
|
14. **`check_assertions: true`** - All checks likely always performed
|
||||||
|
15. **`check_test_length: true`** - All checks likely always performed
|
||||||
|
16. **`check_test_duration: true`** - All checks likely always performed
|
||||||
|
17. **`check_flakiness_patterns: true`** - All checks likely always performed
|
||||||
|
18. **`use_story_file: true`** - Story loading likely always attempted
|
||||||
|
19. **`use_test_design: true`** - Test design loading likely always attempted
|
||||||
|
20. **`auto_discover_story: true`** - Auto-discovery likely default behavior
|
||||||
|
21. **`generate_inline_comments: false`** - Output option, may be used
|
||||||
|
22. **`generate_quality_badge: true`** - Badge likely always generated
|
||||||
|
23. **`append_to_story: false`** - Output option, may be used
|
||||||
|
|
||||||
|
**Impact:** 23 boolean flags that likely create false impression of configurability. The workflow probably performs ALL quality checks regardless of these flags.
|
||||||
|
|
||||||
|
**Recommendation:** Consolidate to ~3 real choices:
|
||||||
|
|
||||||
|
- `review_scope: "single" | "directory" | "suite"` - KEEP
|
||||||
|
- `output_mode: "inline" | "separate" | "both"` - Merge append_to_file, generate_inline_comments, append_to_story
|
||||||
|
- `strict_mode: false` - KEEP (affects whether violations block or advise)
|
||||||
|
|
||||||
|
Remove ALL 16 check\_\* flags. Always perform ALL quality checks (that's the point of a review workflow).
|
||||||
|
|
||||||
|
#### Category 2: Empty Placeholders (1 variable)
|
||||||
|
|
||||||
|
24. **`test_file_path: ""`** - Should use <ask> tag to elicit
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Use <ask> in instructions to get test file path.
|
||||||
|
|
||||||
|
#### Category 3: Knowledge Fragment List (Hardcoded)
|
||||||
|
|
||||||
|
25. **`knowledge_fragments:`** - List of 8 fragments
|
||||||
|
|
||||||
|
- This is HARDCODED in yaml as a list
|
||||||
|
- Instructions should load these directly from tea-index.csv
|
||||||
|
- List belongs in instructions, not yaml variables
|
||||||
|
|
||||||
|
**Recommendation:** Remove knowledge_fragments variable. Instructions should reference tea-index.csv directly with fragment names in the instructions themselves.
|
||||||
|
|
||||||
|
#### Category 4: Redundant Output Paths (1 variable)
|
||||||
|
|
||||||
|
26. **`output_file: "{output_folder}/test-review-{filename}.md"`**
|
||||||
|
|
||||||
|
- Duplicates default_output_file functionality
|
||||||
|
- Should be calculated in instructions based on filename
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Use default_output_file and calculate specific filename in instructions.
|
||||||
|
|
||||||
|
#### Category 5: Acceptable Variables (Keep These)
|
||||||
|
|
||||||
|
1. **`test_dir: "{project-root}/tests"`** - KEEP (standard path)
|
||||||
|
2. **`review_scope: "single"`** - KEEP (legitimate choice: single, directory, suite)
|
||||||
|
3. **`default_output_file: "{output_folder}/test-review.md"`** - KEEP (standard workflow output)
|
||||||
|
4. **`installed_path`, `instructions`, `validation`, `template`** - KEEP (standard workflow fields)
|
||||||
|
|
||||||
|
**Total Variables Analyzed:** 30+ variables
|
||||||
|
**Legitimate Variables:** ~7 (test_dir, review_scope, strict_mode, output_mode_consolidated, default_output_file + standard fields)
|
||||||
|
**Bloat:** ~23+ variables (77% bloat)
|
||||||
|
|
||||||
|
**Status:** ❌ **FAIL** - SEVERE bloat (77% of variables unused or redundant)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Config Variable Usage
|
||||||
|
|
||||||
|
### Communication Language Check:
|
||||||
|
|
||||||
|
- ❌ **MISSING** - No "communicate in {communication_language}" pattern found (pattern from previous audits)
|
||||||
|
- Instructions likely do not reference communication_language variable
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
|
||||||
|
### User Name Check:
|
||||||
|
|
||||||
|
- ❌ **MISSING** - No {user_name} usage (pattern from previous audits)
|
||||||
|
- No personalization likely present
|
||||||
|
- Severity: MINOR (optional for this workflow type)
|
||||||
|
|
||||||
|
### Output Folder Check:
|
||||||
|
|
||||||
|
- ✅ **USED** - default_output_file uses {output_folder}
|
||||||
|
- Properly integrated
|
||||||
|
- Severity: N/A
|
||||||
|
|
||||||
|
### Date Usage Check:
|
||||||
|
|
||||||
|
- ✅ **AVAILABLE** - Date defined for potential use in template
|
||||||
|
- Severity: N/A
|
||||||
|
|
||||||
|
**Status:** ⚠️ **IMPORTANT** - Config variables not fully utilized (communication_language missing)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Web Bundle Validation
|
||||||
|
|
||||||
|
### Web Bundle Present: ❌ **NO**
|
||||||
|
|
||||||
|
**Status:** ❌ **CRITICAL** - No web_bundle configuration found
|
||||||
|
|
||||||
|
The workflow.yaml contains:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle: false
|
||||||
|
```
|
||||||
|
|
||||||
|
This means the workflow is **NOT** configured for web deployment.
|
||||||
|
|
||||||
|
**Missing web_bundle requirements:**
|
||||||
|
|
||||||
|
- No web_bundle_files list
|
||||||
|
- No existing_workflows mapping
|
||||||
|
- No web deployment path configuration
|
||||||
|
|
||||||
|
**Knowledge Fragment Dependencies:**
|
||||||
|
|
||||||
|
The workflow defines `knowledge_fragments` list with 8 fragments:
|
||||||
|
|
||||||
|
- test-quality.md
|
||||||
|
- fixture-architecture.md
|
||||||
|
- network-first.md
|
||||||
|
- data-factories.md
|
||||||
|
- test-levels-framework.md
|
||||||
|
- playwright-config.md
|
||||||
|
- tdd-cycles.md
|
||||||
|
- selective-testing.md
|
||||||
|
|
||||||
|
**Template File:**
|
||||||
|
|
||||||
|
- test-review-template.md
|
||||||
|
|
||||||
|
**Expected web_bundle structure:**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle:
|
||||||
|
workflow_path: 'bmad/bmm/workflows/testarch/test-review/workflow.yaml'
|
||||||
|
web_bundle_files:
|
||||||
|
- 'bmad/bmm/workflows/testarch/test-review/instructions.md'
|
||||||
|
- 'bmad/bmm/workflows/testarch/test-review/checklist.md'
|
||||||
|
- 'bmad/bmm/workflows/testarch/test-review/test-review-template.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/test-quality.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/fixture-architecture.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/network-first.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/data-factories.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/test-levels-framework.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/playwright-config.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/tdd-cycles.md'
|
||||||
|
- 'bmad/bmm/testarch/knowledge/selective-testing.md'
|
||||||
|
- 'bmad/bmm/testarch/tea-index.csv'
|
||||||
|
```
|
||||||
|
|
||||||
|
**Impact:** This workflow cannot be bundled for web deployment without web_bundle configuration.
|
||||||
|
|
||||||
|
**Severity:** CRITICAL (if web deployment is intended)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Bloat Detection
|
||||||
|
|
||||||
|
### Unused YAML Fields Analysis
|
||||||
|
|
||||||
|
**Total YAML fields:** 30+ variables (excluding standard config and metadata)
|
||||||
|
**Used fields:** ~7 (23%)
|
||||||
|
**Unused fields:** ~23+ (77%)
|
||||||
|
**Bloat percentage:** **77%**
|
||||||
|
|
||||||
|
### Detailed Bloat Analysis:
|
||||||
|
|
||||||
|
#### Category 1: 16 check\_\* Boolean Flags (All Quality Checks Performed Unconditionally)
|
||||||
|
|
||||||
|
These 16 variables suggest optional quality checks, but a review workflow should ALWAYS perform ALL checks:
|
||||||
|
|
||||||
|
1. `check_given_when_then: true`
|
||||||
|
2. `check_test_ids: true`
|
||||||
|
3. `check_priority_markers: true`
|
||||||
|
4. `check_hard_waits: true`
|
||||||
|
5. `check_determinism: true`
|
||||||
|
6. `check_isolation: true`
|
||||||
|
7. `check_fixture_patterns: true`
|
||||||
|
8. `check_data_factories: true`
|
||||||
|
9. `check_network_first: true`
|
||||||
|
10. `check_assertions: true`
|
||||||
|
11. `check_test_length: true`
|
||||||
|
12. `check_test_duration: true`
|
||||||
|
13. `check_flakiness_patterns: true`
|
||||||
|
|
||||||
|
**Recommendation:** Remove ALL 13 check\_\* flags. A test quality review should ALWAYS check ALL quality criteria. That's the point of a review workflow.
|
||||||
|
|
||||||
|
**Rationale:** Allowing users to disable quality checks defeats the purpose of code review. Instructions should perform comprehensive review unconditionally.
|
||||||
|
|
||||||
|
#### Category 2: 7 Additional Boolean/Control Flags
|
||||||
|
|
||||||
|
14. `quality_score_enabled: true` - Quality score should always be calculated
|
||||||
|
15. `append_to_file: false` - Output mode flag
|
||||||
|
16. `check_against_knowledge: true` - Knowledge base should always be used
|
||||||
|
17. `strict_mode: false` - KEEP (affects violation handling)
|
||||||
|
18. `use_story_file: true` - Story loading should be auto-attempted
|
||||||
|
19. `use_test_design: true` - Test design loading should be auto-attempted
|
||||||
|
20. `auto_discover_story: true` - Auto-discovery should be default
|
||||||
|
21. `generate_inline_comments: false` - Output mode flag
|
||||||
|
22. `generate_quality_badge: true` - Badge should always be generated
|
||||||
|
23. `append_to_story: false` - Output mode flag
|
||||||
|
|
||||||
|
**Recommendation:**
|
||||||
|
|
||||||
|
- Remove: quality_score_enabled, check_against_knowledge, use_story_file, use_test_design, auto_discover_story, generate_quality_badge (always perform these)
|
||||||
|
- Keep: strict_mode (legitimate choice)
|
||||||
|
- Consolidate output mode flags (append_to_file, generate_inline_comments, append_to_story) into single `output_mode` variable
|
||||||
|
|
||||||
|
#### Category 3: Hardcoded Knowledge Fragment List
|
||||||
|
|
||||||
|
24. `knowledge_fragments:` - Hardcoded list of 8 fragments
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Instructions should reference fragments directly from tea-index.csv. The fragment names should appear in the instructions, not in a yaml list.
|
||||||
|
|
||||||
|
#### Category 4: Empty Placeholder
|
||||||
|
|
||||||
|
25. `test_file_path: ""` - Empty placeholder
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Use <ask> tag in instructions to elicit test file path.
|
||||||
|
|
||||||
|
#### Category 5: Redundant Output Path
|
||||||
|
|
||||||
|
26. `output_file: "{output_folder}/test-review-{filename}.md"`
|
||||||
|
|
||||||
|
**Recommendation:** Remove. Use default_output_file and calculate specific filename in instructions.
|
||||||
|
|
||||||
|
**Total Bloat Items:** 23+ variables
|
||||||
|
|
||||||
|
**Bloat Percentage:** 77%
|
||||||
|
**Cleanup Potential:** EXTREME - Removing bloat would reduce variables from 30+ to ~7
|
||||||
|
|
||||||
|
**After Cleanup, Only These Should Remain:**
|
||||||
|
|
||||||
|
1. `test_dir: "{project-root}/tests"` - Standard path
|
||||||
|
2. `review_scope: "single"` - User choice (single/directory/suite)
|
||||||
|
3. `strict_mode: false` - Violation handling mode
|
||||||
|
4. `output_mode: "separate"` - Output mode (separate/inline/both) - consolidated from 3 flags
|
||||||
|
5. `default_output_file: "{output_folder}/test-review.md"` - Output path
|
||||||
|
6. `installed_path`, `instructions`, `validation`, `template` - Standard workflow fields
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Template Variable Mapping
|
||||||
|
|
||||||
|
**Workflow Type:** Document workflow (has template file)
|
||||||
|
|
||||||
|
**Template File:** test-review-template.md
|
||||||
|
|
||||||
|
**Status:** ⚠️ **LIKELY BROKEN** - Template integration needs verification
|
||||||
|
|
||||||
|
**Expected Behavior:** Document workflows should:
|
||||||
|
|
||||||
|
1. Have `<template-output>` tags in instructions.md
|
||||||
|
2. Use `{{variable_name}}` format in template
|
||||||
|
3. Map template variables to instruction outputs
|
||||||
|
|
||||||
|
**Likely Issue (based on trace workflow pattern):**
|
||||||
|
|
||||||
|
- Template likely uses `{UPPERCASE}` pattern instead of `{{lowercase}}`
|
||||||
|
- Instructions likely lack `<template-output>` tags
|
||||||
|
- Template/instruction integration likely broken
|
||||||
|
|
||||||
|
**Recommendation:** Verify template integration. Either:
|
||||||
|
|
||||||
|
1. Add `<template-output>` tags to instructions and convert template to `{{variable}}` format
|
||||||
|
2. Remove template, set `template: false`, make this an action workflow
|
||||||
|
|
||||||
|
**Severity:** IMPORTANT - Template integration likely non-functional
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Recommendations
|
||||||
|
|
||||||
|
### Critical (Fix Immediately)
|
||||||
|
|
||||||
|
1. **Add web_bundle configuration**
|
||||||
|
- Add web_bundle block with all required files (instructions, checklist, template)
|
||||||
|
- Map knowledge fragments (8 fragments from knowledge_fragments list)
|
||||||
|
- Include tea-index.csv for knowledge base access
|
||||||
|
- Enable web deployment capability
|
||||||
|
- Severity: CRITICAL
|
||||||
|
- Impact: Workflow cannot be deployed to web without this
|
||||||
|
|
||||||
|
### Important (Address Soon)
|
||||||
|
|
||||||
|
2. **Fix template integration**
|
||||||
|
- Verify template uses `{{variable}}` format (not `{UPPERCASE}`)
|
||||||
|
- Add `<template-output>` tags to instructions
|
||||||
|
- OR remove template and make this an action workflow
|
||||||
|
- Current hybrid state likely broken
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
- Impact: Template not being populated
|
||||||
|
|
||||||
|
3. **Add config variable usage in instructions**
|
||||||
|
- Add communication_language support for multilingual workflows
|
||||||
|
- Add greeting or summary using {user_name}
|
||||||
|
- Ensure proper integration with BMAD v6 config standards
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
- Impact: Workflows not following BMAD v6 conventions
|
||||||
|
|
||||||
|
### Cleanup (Nice to Have)
|
||||||
|
|
||||||
|
4. **Remove ALL check\_\* boolean flags (13 variables)**
|
||||||
|
- Delete all check\_\* variables
|
||||||
|
- Always perform ALL quality checks in instructions
|
||||||
|
- A review workflow should be comprehensive, not configurable
|
||||||
|
- Rationale: Allowing users to disable checks defeats the purpose of code review
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Reduces bloat by 43%, improves clarity
|
||||||
|
|
||||||
|
5. **Remove unnecessary control flags (7 variables)**
|
||||||
|
- Delete: quality_score_enabled, check_against_knowledge, use_story_file, use_test_design, auto_discover_story, generate_quality_badge
|
||||||
|
- Always perform these actions (that's the point of a review)
|
||||||
|
- Keep: strict_mode (legitimate choice)
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Further reduces bloat
|
||||||
|
|
||||||
|
6. **Consolidate output mode flags**
|
||||||
|
- Merge: append_to_file, generate_inline_comments, append_to_story
|
||||||
|
- Create single: `output_mode: "separate" | "inline" | "both"`
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Simplifies configuration
|
||||||
|
|
||||||
|
7. **Remove hardcoded knowledge fragment list**
|
||||||
|
- Delete: knowledge_fragments variable
|
||||||
|
- Reference fragments directly in instructions with tea-index.csv
|
||||||
|
- Fragment names should appear in instruction steps, not yaml
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Cleaner yaml, better instruction clarity
|
||||||
|
|
||||||
|
8. **Remove empty placeholder and redundant paths**
|
||||||
|
- Delete: test_file_path (use <ask> tag)
|
||||||
|
- Delete: output_file (use default_output_file)
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Removes unnecessary variables
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Validation Checklist
|
||||||
|
|
||||||
|
Use this checklist to verify fixes:
|
||||||
|
|
||||||
|
- [x] All standard config variables present and correct ✅ (Already passing)
|
||||||
|
- [ ] No unused yaml fields (bloat removed to <20%)
|
||||||
|
- [ ] Config variables used appropriately in instructions
|
||||||
|
- [ ] Web bundle includes all dependencies
|
||||||
|
- [ ] Template variables properly mapped (or template removed)
|
||||||
|
- [x] File structure follows v6 conventions ✅
|
||||||
|
- [ ] Variables block reduced from 30+ to ~7 essential variables
|
||||||
|
- [ ] All check\_\* flags removed (comprehensive review always performed)
|
||||||
|
- [ ] Output mode flags consolidated
|
||||||
|
- [ ] Knowledge fragment list removed (referenced in instructions)
|
||||||
|
- [x] Document workflow correctly configured (has template) ✅
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. **Review critical issues** and fix web_bundle configuration immediately
|
||||||
|
2. **Address important issues** in next iteration (template integration, config usage)
|
||||||
|
3. **Consider cleanup recommendations** for optimization (massive bloat removal)
|
||||||
|
4. **Re-run audit** after fixes to verify improvements
|
||||||
|
|
||||||
|
**Estimated Cleanup Impact:**
|
||||||
|
|
||||||
|
- Variables: 30+ → 7 (77% reduction)
|
||||||
|
- Bloat: 77% → 0%
|
||||||
|
- Maintainability: Dramatically improved
|
||||||
|
- Clarity: Much clearer (comprehensive review vs false configurability)
|
||||||
|
- Web deployment: Enabled (after web_bundle added)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Positive Observations
|
||||||
|
|
||||||
|
**What This Workflow Does Well:**
|
||||||
|
|
||||||
|
1. ✅ **Comprehensive Quality Criteria**
|
||||||
|
- 13 quality checks defined (Given-When-Then, test IDs, hard waits, determinism, etc.)
|
||||||
|
- Knowledge base integration (8 fragments)
|
||||||
|
- Story and test design integration
|
||||||
|
- Quality scoring
|
||||||
|
|
||||||
|
2. ✅ **Proper Document Workflow Structure**
|
||||||
|
- Has template file (test-review-template.md)
|
||||||
|
- Configured as document workflow
|
||||||
|
- Clear output path
|
||||||
|
|
||||||
|
3. ✅ **Good Scope Options**
|
||||||
|
- Single file review
|
||||||
|
- Directory review
|
||||||
|
- Full suite review
|
||||||
|
|
||||||
|
4. ✅ **Knowledge Base Integration**
|
||||||
|
- References tea-index.csv
|
||||||
|
- Loads 8 relevant knowledge fragments
|
||||||
|
- Comprehensive best practices coverage
|
||||||
|
|
||||||
|
**Overall:** This is a well-designed workflow with comprehensive quality criteria but SEVERE bloat. The 13 check\_\* boolean flags create false impression that quality checks are optional, when they should ALWAYS be performed. Removing bloat would make this an excellent workflow.
|
||||||
|
|
||||||
|
**The Review Paradox:** A quality review workflow should ALWAYS check ALL quality criteria. Making checks optional defeats the purpose of code review. The bloat suggests configurability that shouldn't exist.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Audit Complete** - Generated by audit-workflow v1.0
|
||||||
@@ -0,0 +1,436 @@
|
|||||||
|
# Workflow Audit Report
|
||||||
|
|
||||||
|
**Workflow:** testarch-trace
|
||||||
|
**Audit Date:** 2025-10-16
|
||||||
|
**Auditor:** Audit Workflow (BMAD v6)
|
||||||
|
**Workflow Type:** Document workflow (template-based)
|
||||||
|
**Workflow Path:** `/Users/brianmadison/dev/BMAD-METHOD/src/modules/bmm/workflows/testarch/trace`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Executive Summary
|
||||||
|
|
||||||
|
**Overall Status:** ⚠️ CONCERNS - Significant bloat detected, missing web_bundle configuration
|
||||||
|
|
||||||
|
- Critical Issues: 1
|
||||||
|
- Important Issues: 2
|
||||||
|
- Cleanup Recommendations: 8
|
||||||
|
|
||||||
|
**Key Findings:**
|
||||||
|
|
||||||
|
1. ✅ Standard config block is correctly configured
|
||||||
|
2. ⚠️ Massive bloat detected - 52 variables defined in workflow.yaml with extensive unused fields
|
||||||
|
3. ❌ No web_bundle configuration (critical for web deployment)
|
||||||
|
4. ⚠️ Config variable usage needs improvement in instructions
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Standard Config Block Validation
|
||||||
|
|
||||||
|
### Required Variables Check
|
||||||
|
|
||||||
|
✅ **Config Source Check:**
|
||||||
|
|
||||||
|
- [x] `config_source` is defined: `"{project-root}/bmad/bmm/config.yaml"`
|
||||||
|
- [x] Points to correct module config path (bmm)
|
||||||
|
- [x] Uses {project-root} variable
|
||||||
|
|
||||||
|
✅ **Standard Variables Check:**
|
||||||
|
|
||||||
|
- [x] `output_folder` pulls from config_source: `"{config_source}:output_folder"`
|
||||||
|
- [x] `user_name` pulls from config_source: `"{config_source}:user_name"`
|
||||||
|
- [x] `communication_language` pulls from config_source: `"{config_source}:communication_language"`
|
||||||
|
- [x] `date` is set to system-generated: `"system-generated"`
|
||||||
|
|
||||||
|
**Status:** ✅ **PASS** - All standard config variables present and correctly configured
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. YAML/Instruction/Template Alignment
|
||||||
|
|
||||||
|
### Variables Analysis
|
||||||
|
|
||||||
|
**Total YAML fields analyzed:** 52 variables defined in workflow.yaml (excluding standard config block and metadata)
|
||||||
|
|
||||||
|
**Categorization:**
|
||||||
|
|
||||||
|
#### INSTRUCTION_USED (Variables referenced in instructions.md):
|
||||||
|
|
||||||
|
The following variables appear to be contextually referenced in the instructions but NOT with explicit {variable_name} syntax:
|
||||||
|
|
||||||
|
- story_file (mentioned conceptually in "Read story file")
|
||||||
|
- test_dir (mentioned as test directory)
|
||||||
|
- source_dir (mentioned as source directory)
|
||||||
|
- coverage_levels (conceptually referenced in coverage analysis)
|
||||||
|
- output_file (used in deliverables)
|
||||||
|
- gate_type (used in Phase 2)
|
||||||
|
- decision_mode (used in decision rules)
|
||||||
|
- test_results (required for Phase 2)
|
||||||
|
- nfr_file (optional NFR loading)
|
||||||
|
- Various threshold values (min_p0_coverage, etc.) used in decision rules
|
||||||
|
|
||||||
|
#### TEMPLATE_USED (Variables referenced in trace-template.md):
|
||||||
|
|
||||||
|
Template uses these placeholder patterns:
|
||||||
|
|
||||||
|
- {STORY_ID}, {STORY_TITLE}, {DATE}
|
||||||
|
- {P0_TOTAL}, {P0_FULL}, {P0_PCT}, {P0_STATUS}
|
||||||
|
- {P1_TOTAL}, {P1_FULL}, {P1_PCT}, {P1_STATUS}
|
||||||
|
- {P2_TOTAL}, {P2_FULL}, {P2_PCT}, {P2_STATUS}
|
||||||
|
- {P3_TOTAL}, {P3_FULL}, {P3_PCT}, {P3_STATUS}
|
||||||
|
- {TOTAL}, {FULL}, {PCT}, {STATUS}
|
||||||
|
- {CRITERION_ID}, {CRITERION_DESCRIPTION}, {PRIORITY}
|
||||||
|
- {COVERAGE_STATUS}, {STATUS_ICON}
|
||||||
|
- {TEST_ID}, {TEST_FILE}, {LINE}
|
||||||
|
- {GIVEN}, {WHEN}, {THEN}
|
||||||
|
- Many more...
|
||||||
|
|
||||||
|
**CRITICAL ISSUE:** Template uses curly braces `{VARIABLE}` instead of double curly braces `{{variable}}`. This is inconsistent with BMAD v6 template variable standards which use `{{variable_name}}` notation.
|
||||||
|
|
||||||
|
#### UNUSED_BLOAT (Variables defined but NOT explicitly used in instructions or template):
|
||||||
|
|
||||||
|
This is where MASSIVE bloat exists. The workflow.yaml contains 52 variables, most of which are:
|
||||||
|
|
||||||
|
1. Boolean configuration flags (auto_discover_tests, map_by_test_id, require_explicit_mapping, etc.)
|
||||||
|
2. Threshold numbers (min_p0_coverage, min_p1_pass_rate, etc.)
|
||||||
|
3. Path specifications that should be derived, not pre-configured
|
||||||
|
|
||||||
|
**Bloat Items:**
|
||||||
|
|
||||||
|
- acceptance_criteria (empty string, should be elicited)
|
||||||
|
- auto_discover_tests, map_by_test_id, map_by_describe, map_by_filename (behavior flags that should be workflow defaults, not variables)
|
||||||
|
- require_explicit_mapping, flag_unit_only, flag_integration_only, flag_partial_coverage (all behavior configuration)
|
||||||
|
- prioritize_by_risk, suggest_missing_tests, check_duplicate_coverage (more behavior flags)
|
||||||
|
- use_test_design, use_tech_spec, use_prd (file loading flags - should be automatic)
|
||||||
|
- generate_gate_yaml, generate_coverage_badge, update_story_file (output control flags)
|
||||||
|
- min_p0_coverage, min_p1_coverage, min_overall_coverage (threshold config)
|
||||||
|
- auto_load_knowledge, include_code_coverage, check_assertions (more behavior flags)
|
||||||
|
- enable_gate_decision (Phase 2 control flag)
|
||||||
|
- allow_waivers, require_evidence, check_all_workflows_complete, validate_evidence_freshness, require_sign_off (gate configuration)
|
||||||
|
- min_p0_pass_rate, min_p1_pass_rate, min_overall_pass_rate (more thresholds)
|
||||||
|
- max_critical_nfrs_fail, max_security_issues (threshold config)
|
||||||
|
- allow_p2_failures, allow_p3_failures, escalate_p1_failures (risk tolerance flags)
|
||||||
|
- gate_output_file, append_to_history, notify_stakeholders (output configuration)
|
||||||
|
|
||||||
|
**Total Variables Analyzed:** 52 variables
|
||||||
|
**Used in Instructions (explicitly):** ~10-15 conceptually (but not with {variable_name} syntax)
|
||||||
|
**Used in Template:** 0 (template uses {UPPERCASE} pattern, not {{yaml_variables}})
|
||||||
|
**Unused (Bloat):** ~35-40 variables (75%+ of defined variables!)
|
||||||
|
|
||||||
|
**Status:** ❌ **FAIL** - Severe bloat detected (75%+ unused variables)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Config Variable Usage
|
||||||
|
|
||||||
|
### Communication Language Check:
|
||||||
|
|
||||||
|
- ❌ **MISSING** - No "communicate in {communication_language}" pattern found in instructions
|
||||||
|
- Instructions do not reference communication_language variable
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
|
||||||
|
### User Name Check:
|
||||||
|
|
||||||
|
- ❌ **MISSING** - No {user_name} usage found in instructions
|
||||||
|
- No personalization or greeting patterns detected
|
||||||
|
- Severity: MINOR (optional for this workflow type)
|
||||||
|
|
||||||
|
### Output Folder Check:
|
||||||
|
|
||||||
|
- ⚠️ **PARTIAL** - Output folder is referenced in workflow.yaml (`output_file: "{output_folder}/..."`), but instructions don't explicitly use {output_folder} variable pattern
|
||||||
|
- File writes mention saving to output_folder conceptually
|
||||||
|
- Severity: MINOR
|
||||||
|
|
||||||
|
### Date Usage Check:
|
||||||
|
|
||||||
|
- ✅ **USED** - Date is available in workflow.yaml and used in template as {DATE}
|
||||||
|
- Severity: N/A
|
||||||
|
|
||||||
|
**Status:** ⚠️ **IMPORTANT** - Config variables not properly utilized in instructions
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Web Bundle Validation
|
||||||
|
|
||||||
|
### Web Bundle Present: ❌ **NO**
|
||||||
|
|
||||||
|
**Status:** ❌ **CRITICAL** - No web_bundle configuration found
|
||||||
|
|
||||||
|
The workflow.yaml contains:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
web_bundle: false
|
||||||
|
```
|
||||||
|
|
||||||
|
This means the workflow is **NOT** configured for web deployment. For a production workflow, this is a critical omission.
|
||||||
|
|
||||||
|
**Missing web_bundle requirements:**
|
||||||
|
|
||||||
|
- No web_bundle_files list
|
||||||
|
- No existing_workflows mapping (critical since instructions reference knowledge fragments and other workflows)
|
||||||
|
- No web deployment path configuration
|
||||||
|
|
||||||
|
**Workflow Dependencies Detected in Instructions:**
|
||||||
|
The instructions reference loading knowledge fragments:
|
||||||
|
|
||||||
|
- `test-priorities-matrix.md`
|
||||||
|
- `risk-governance.md`
|
||||||
|
- `probability-impact.md`
|
||||||
|
- `test-quality.md`
|
||||||
|
- `selective-testing.md`
|
||||||
|
|
||||||
|
These fragments should be declared in a web_bundle configuration.
|
||||||
|
|
||||||
|
**Impact:** This workflow cannot be bundled for web deployment without web_bundle configuration.
|
||||||
|
|
||||||
|
**Severity:** CRITICAL (if web deployment is intended)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Bloat Detection
|
||||||
|
|
||||||
|
### Unused YAML Fields Analysis
|
||||||
|
|
||||||
|
**Total YAML fields:** 52 variables (excluding standard config and metadata)
|
||||||
|
**Used fields:** ~15 (estimated, mostly conceptual usage, not explicit {variable} references)
|
||||||
|
**Unused fields:** ~37
|
||||||
|
**Bloat percentage:** **71%**
|
||||||
|
|
||||||
|
### Bloat Categories:
|
||||||
|
|
||||||
|
#### Category 1: Boolean Behavior Flags (Should be workflow defaults, not variables)
|
||||||
|
|
||||||
|
These should be removed from variables and implemented as hardcoded workflow behavior:
|
||||||
|
|
||||||
|
1. `auto_discover_tests: true` - This should be the default workflow behavior
|
||||||
|
2. `map_by_test_id: true` - Mapping strategy should be built into the workflow
|
||||||
|
3. `map_by_describe: true` - Same as above
|
||||||
|
4. `map_by_filename: true` - Same as above
|
||||||
|
5. `require_explicit_mapping: true` - Quality standard, not a variable
|
||||||
|
6. `flag_unit_only: true` - Analysis behavior, not configurable
|
||||||
|
7. `flag_integration_only: true` - Same
|
||||||
|
8. `flag_partial_coverage: true` - Same
|
||||||
|
9. `prioritize_by_risk: true` - Core workflow principle
|
||||||
|
10. `suggest_missing_tests: true` - Core workflow output
|
||||||
|
11. `check_duplicate_coverage: true` - Quality check, not configurable
|
||||||
|
12. `use_test_design: true` - Should auto-detect file existence
|
||||||
|
13. `use_tech_spec: true` - Same
|
||||||
|
14. `use_prd: true` - Same
|
||||||
|
15. `generate_gate_yaml: true` - Core workflow output
|
||||||
|
16. `generate_coverage_badge: true` - Optional output, could be removed
|
||||||
|
17. `update_story_file: true` - Optional behavior, could be removed
|
||||||
|
18. `auto_load_knowledge: true` - Should be default behavior
|
||||||
|
19. `include_code_coverage: false` - Optional feature flag, acceptable to keep
|
||||||
|
20. `check_assertions: true` - Quality check, not configurable
|
||||||
|
21. `enable_gate_decision: true` - Workflow mode, could be simplified
|
||||||
|
22. `allow_waivers: true` - Gate policy, could be hardcoded or project-level config
|
||||||
|
23. `require_evidence: true` - Gate policy, should be default
|
||||||
|
24. `check_all_workflows_complete: true` - Validation behavior
|
||||||
|
25. `validate_evidence_freshness: true` - Quality check
|
||||||
|
26. `require_sign_off: false` - Optional gate requirement
|
||||||
|
27. `allow_p2_failures: true` - Risk policy
|
||||||
|
28. `allow_p3_failures: true` - Risk policy
|
||||||
|
29. `escalate_p1_failures: true` - Risk policy
|
||||||
|
30. `append_to_history: true` - Output behavior
|
||||||
|
31. `notify_stakeholders: true` - Output behavior
|
||||||
|
|
||||||
|
**Recommendation:** Remove 25+ boolean flags. These should be workflow defaults or auto-detected behaviors, not user-configurable variables.
|
||||||
|
|
||||||
|
#### Category 2: Threshold Configuration (Should be project-level config, not workflow variables)
|
||||||
|
|
||||||
|
These belong in module config.yaml or project-specific configuration, not workflow.yaml:
|
||||||
|
|
||||||
|
1. `min_p0_coverage: 100`
|
||||||
|
2. `min_p1_coverage: 90`
|
||||||
|
3. `min_overall_coverage: 80`
|
||||||
|
4. `min_p0_pass_rate: 100`
|
||||||
|
5. `min_p1_pass_rate: 95`
|
||||||
|
6. `min_overall_pass_rate: 90`
|
||||||
|
7. `max_critical_nfrs_fail: 0`
|
||||||
|
8. `max_security_issues: 0`
|
||||||
|
|
||||||
|
**Recommendation:** Move thresholds to bmm/config.yaml as project-wide quality standards. Reference via {config_source}:threshold_name pattern.
|
||||||
|
|
||||||
|
#### Category 3: Empty/Placeholder Variables (Should be elicited, not pre-declared)
|
||||||
|
|
||||||
|
1. `story_file: ""` - Should be elicited with <ask> tag
|
||||||
|
2. `acceptance_criteria: ""` - Same
|
||||||
|
3. `nfr_file: ""` - Optional, should be elicited if needed
|
||||||
|
4. `test_results: ""` - Should be elicited for Phase 2
|
||||||
|
|
||||||
|
**Recommendation:** Remove empty variables. Use <ask> tags in instructions to elicit required inputs.
|
||||||
|
|
||||||
|
#### Category 4: Derived/Output Paths (Should be calculated in workflow, not pre-defined)
|
||||||
|
|
||||||
|
1. `test_dir: "{project-root}/tests"` - Should be auto-detected or elicited
|
||||||
|
2. `source_dir: "{project-root}/src"` - Same
|
||||||
|
3. `output_file: "{output_folder}/traceability-matrix.md"` - Duplicates default_output_file
|
||||||
|
4. `gate_output_file: "{output_folder}/gate-decision-{gate_type}-{story_id}{epic_num}{release_version}.md"` - Complex derivation
|
||||||
|
|
||||||
|
**Recommendation:** Remove redundant path variables. Use default_output_file or calculate paths in instructions.
|
||||||
|
|
||||||
|
#### Category 5: Acceptable Variables (Keep these)
|
||||||
|
|
||||||
|
These variables have legitimate workflow-specific purpose:
|
||||||
|
|
||||||
|
1. `coverage_levels: "e2e,api,component,unit"` - Customizable test level scope
|
||||||
|
2. `gate_type: "story"` - Determines gate scope (story/epic/release/hotfix)
|
||||||
|
3. `decision_mode: "deterministic"` - Affects decision process
|
||||||
|
4. `installed_path`, `instructions`, `validation`, `template` - Standard workflow paths (KEEP)
|
||||||
|
|
||||||
|
**Total Bloat Items:** 35+ variables that should be removed or relocated
|
||||||
|
|
||||||
|
**Bloat Percentage:** 71%
|
||||||
|
**Cleanup Potential:** HIGH - Removing bloat would reduce workflow.yaml from 146 lines to ~30-40 lines
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Template Variable Mapping
|
||||||
|
|
||||||
|
### Template Variables Analysis
|
||||||
|
|
||||||
|
**Template Variable Pattern:** Template uses `{UPPERCASE_VARIABLE}` format (e.g., {STORY_ID}, {P0_TOTAL})
|
||||||
|
|
||||||
|
**Critical Issue:** ❌ BMAD v6 standard uses `{{lowercase_variable}}` format for template variables.
|
||||||
|
|
||||||
|
The trace-template.md uses 60+ template placeholders with `{UPPERCASE}` pattern instead of `{{variable_name}}` pattern.
|
||||||
|
|
||||||
|
### Cross-Reference with Instructions
|
||||||
|
|
||||||
|
**Instructions <template-output> tags:** None found in instructions.md
|
||||||
|
|
||||||
|
**Critical Problem:** The instructions.md file does NOT contain `<template-output>` tags to map workflow outputs to template variables.
|
||||||
|
|
||||||
|
**Workflow Type:** Document workflow (has template: "{installed_path}/trace-template.md")
|
||||||
|
|
||||||
|
**Expected Behavior:** Document workflows should have <template-output> tags in instructions to populate template sections.
|
||||||
|
|
||||||
|
**Actual Behavior:** Instructions are written as pure procedural markdown without template-output integration.
|
||||||
|
|
||||||
|
**Impact:** This workflow appears to be a HYBRID workflow (action + document) but is configured as a document workflow. The template exists but isn't integrated with the workflow execution.
|
||||||
|
|
||||||
|
**Recommendation:**
|
||||||
|
|
||||||
|
1. Either remove the template and set `template: false` (make it an action workflow)
|
||||||
|
2. Or refactor instructions to use <template-output> tags and update template to use {{variable}} pattern
|
||||||
|
|
||||||
|
**Status:** ❌ **IMPORTANT** - Template/instruction integration broken
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Recommendations
|
||||||
|
|
||||||
|
### Critical (Fix Immediately)
|
||||||
|
|
||||||
|
1. **Add web_bundle configuration**
|
||||||
|
- Add web_bundle block with all required files (instructions, template, checklist)
|
||||||
|
- Map knowledge fragments (test-priorities-matrix.md, risk-governance.md, etc.)
|
||||||
|
- Enable web deployment capability
|
||||||
|
- Severity: CRITICAL
|
||||||
|
- Impact: Workflow cannot be deployed to web without this
|
||||||
|
|
||||||
|
### Important (Address Soon)
|
||||||
|
|
||||||
|
2. **Fix template integration**
|
||||||
|
- Either: Remove template, set `template: false`, make this an action workflow
|
||||||
|
- Or: Add <template-output> tags to instructions and convert template to {{variable}} format
|
||||||
|
- Current hybrid state is broken
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
- Impact: Template is not being populated by workflow execution
|
||||||
|
|
||||||
|
3. **Add config variable usage in instructions**
|
||||||
|
- Add communication_language support for multilingual workflows
|
||||||
|
- Consider adding user_name for personalization (optional)
|
||||||
|
- Ensure output_folder is explicitly used in all file write operations
|
||||||
|
- Severity: IMPORTANT
|
||||||
|
- Impact: Workflows not following BMAD v6 config standards
|
||||||
|
|
||||||
|
### Cleanup (Nice to Have)
|
||||||
|
|
||||||
|
4. **Remove boolean behavior flags (25+ variables)**
|
||||||
|
- Delete: auto_discover_tests, map_by_test_id, require_explicit_mapping, flag_unit_only, prioritize_by_risk, suggest_missing_tests, check_duplicate_coverage, use_test_design, generate_gate_yaml, auto_load_knowledge, check_assertions, enable_gate_decision, require_evidence, check_all_workflows_complete, allow_p2_failures, escalate_p1_failures, append_to_history, notify_stakeholders, etc.
|
||||||
|
- These should be workflow defaults, not user-configurable variables
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Reduces bloat from 71% to ~15%, improves maintainability
|
||||||
|
|
||||||
|
5. **Move threshold configuration to module config**
|
||||||
|
- Move to bmm/config.yaml: min_p0_coverage, min_p1_coverage, min_overall_coverage, min_p0_pass_rate, min_p1_pass_rate, min_overall_pass_rate, max_critical_nfrs_fail, max_security_issues
|
||||||
|
- Reference via {config_source}:threshold_name
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Centralizes quality standards, enables project-wide consistency
|
||||||
|
|
||||||
|
6. **Remove empty placeholder variables**
|
||||||
|
- Delete: story_file: "", acceptance_criteria: "", nfr_file: "", test_results: ""
|
||||||
|
- Use <ask> tags in instructions to elicit these inputs
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Cleaner workflow.yaml, more dynamic input gathering
|
||||||
|
|
||||||
|
7. **Remove redundant path variables**
|
||||||
|
- Delete: output_file (duplicates default_output_file)
|
||||||
|
- Auto-detect or elicit: test_dir, source_dir
|
||||||
|
- Simplify: gate_output_file (calculate in instructions)
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Reduces path configuration redundancy
|
||||||
|
|
||||||
|
8. **Simplify variables block**
|
||||||
|
- Keep only: coverage_levels, gate_type, decision_mode, include_code_coverage (optional feature flag)
|
||||||
|
- Remove everything else per recommendations 4-7
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Workflow.yaml drops from 146 lines to ~35 lines (76% reduction)
|
||||||
|
|
||||||
|
9. **Fix template variable naming convention**
|
||||||
|
- Convert {UPPERCASE} to {{lowercase_variable}} throughout trace-template.md
|
||||||
|
- Align with BMAD v6 standards
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Template consistency with framework standards
|
||||||
|
|
||||||
|
10. **Add <ask> tags for required inputs**
|
||||||
|
- Add <ask> for story_file path at start of workflow
|
||||||
|
- Add <ask> for test_results path before Phase 2
|
||||||
|
- Add conditional <ask> for nfr_file if release-level gate
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Makes workflow properly interactive
|
||||||
|
|
||||||
|
11. **Document workflow mode decision**
|
||||||
|
- Decide: Is this an action workflow or document workflow?
|
||||||
|
- If action: Remove template, set template: false
|
||||||
|
- If document: Add <template-output> tags and integrate template properly
|
||||||
|
- Severity: CLEANUP
|
||||||
|
- Impact: Clarifies workflow purpose and execution model
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Validation Checklist
|
||||||
|
|
||||||
|
Use this checklist to verify fixes:
|
||||||
|
|
||||||
|
- [ ] All standard config variables present and correct ✅ (Already passing)
|
||||||
|
- [ ] No unused yaml fields (bloat removed to <15%)
|
||||||
|
- [ ] Config variables used appropriately in instructions
|
||||||
|
- [ ] Web bundle includes all dependencies
|
||||||
|
- [ ] Template variables properly mapped (or template removed)
|
||||||
|
- [ ] File structure follows v6 conventions
|
||||||
|
- [ ] Variables block reduced from 52 to ~4-5 essential variables
|
||||||
|
- [ ] Threshold config moved to bmm/config.yaml
|
||||||
|
- [ ] Boolean flags removed (workflow defaults)
|
||||||
|
- [ ] Empty placeholders removed (<ask> tags added)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. **Review critical issues** and fix web_bundle configuration immediately
|
||||||
|
2. **Address important issues** in next iteration (template integration, config usage)
|
||||||
|
3. **Consider cleanup recommendations** for optimization (bloat removal)
|
||||||
|
4. **Re-run audit** after fixes to verify improvements
|
||||||
|
|
||||||
|
**Estimated Cleanup Impact:**
|
||||||
|
|
||||||
|
- Workflow.yaml: 146 lines → ~35 lines (76% reduction)
|
||||||
|
- Bloat: 71% → <15%
|
||||||
|
- Maintainability: Significantly improved
|
||||||
|
- Web deployment: Enabled (after web_bundle added)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Audit Complete** - Generated by audit-workflow v1.0
|
||||||
@@ -8,7 +8,7 @@ prompt:
|
|||||||
# This is injected into the custom agent activation rules
|
# This is injected into the custom agent activation rules
|
||||||
user_name:
|
user_name:
|
||||||
prompt: "What is your name?"
|
prompt: "What is your name?"
|
||||||
default: "Jane"
|
default: "BMad User"
|
||||||
result: "{value}"
|
result: "{value}"
|
||||||
|
|
||||||
# This is injected into the custom agent activation rules
|
# This is injected into the custom agent activation rules
|
||||||
|
|||||||
42
src/core/agents/bmad-master.agent.yaml
Normal file
42
src/core/agents/bmad-master.agent.yaml
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# BMad Master Task Executor Agent
|
||||||
|
# Core system agent for task execution and resource management
|
||||||
|
|
||||||
|
agent:
|
||||||
|
metadata:
|
||||||
|
id: "bmad/core/agents/bmad-master.md"
|
||||||
|
name: "BMad Master"
|
||||||
|
title: "BMad Master Executor, Knowledge Custodian, and Workflow Orchestrator"
|
||||||
|
icon: "🧙"
|
||||||
|
|
||||||
|
persona:
|
||||||
|
role: "Master Task Executor + BMad Expert + Guiding Facilitator Orchestrator"
|
||||||
|
identity: "Master-level expert in the BMAD Core Platform and all loaded modules with comprehensive knowledge of all resources, tasks, and workflows. Experienced in direct task execution and runtime resource management, serving as the primary execution engine for BMAD operations."
|
||||||
|
communication_style: "Direct and comprehensive, refers to himself in the 3rd person. Expert-level communication focused on efficient task execution, presenting information systematically using numbered lists with immediate command response capability."
|
||||||
|
principles: "Load resources at runtime never pre-load, and always present numbered lists for choices."
|
||||||
|
|
||||||
|
# Agent-specific critical actions
|
||||||
|
critical_actions:
|
||||||
|
- "Load into memory {project-root}/bmad/core/config.yaml and set variable project_name, output_folder, user_name, communication_language"
|
||||||
|
- "Remember the users name is {user_name}"
|
||||||
|
- "ALWAYS communicate in {communication_language}"
|
||||||
|
|
||||||
|
# Agent menu items
|
||||||
|
menu:
|
||||||
|
- trigger: "*list-tasks"
|
||||||
|
action: "list all tasks from {project-root}/bmad/_cfg/task-manifest.csv"
|
||||||
|
description: "List Available Tasks"
|
||||||
|
|
||||||
|
- trigger: "*list-workflows"
|
||||||
|
action: "list all workflows from {project-root}/bmad/_cfg/workflow-manifest.csv"
|
||||||
|
description: "List Workflows"
|
||||||
|
|
||||||
|
- trigger: "*party-mode"
|
||||||
|
workflow: "{project-root}/bmad/core/workflows/party-mode/workflow.yaml"
|
||||||
|
description: "Group chat with all agents"
|
||||||
|
|
||||||
|
# - trigger: "*bmad-init"
|
||||||
|
# workflow: "{project-root}/bmad/core/workflows/bmad-init/workflow.yaml"
|
||||||
|
# description: "Initialize or Update BMAD system agent manifest, customization, or workflow selection"
|
||||||
|
|
||||||
|
# Empty prompts section (no custom prompts for this agent)
|
||||||
|
prompts: []
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
<!-- Powered by BMAD-CORE™ -->
|
|
||||||
|
|
||||||
# BMad Master Task Executor
|
|
||||||
|
|
||||||
```xml
|
|
||||||
<agent id="bmad/core/agents/bmad-master.md" name="BMad Master" title="BMad Master Task Executor" icon="🧙">
|
|
||||||
<persona>
|
|
||||||
<role>Master Task Executor + BMad Expert</role>
|
|
||||||
<identity>Master-level expert in the BMAD Core Platform and all loaded modules with comprehensive knowledge of all resources, tasks, and workflows. Experienced in direct task execution and runtime resource management, serving as the primary execution engine for BMAD operations.</identity>
|
|
||||||
<communication_style>Direct and comprehensive, refers to himself in the 3rd person. Expert-level communication focused on efficient task execution, presenting information systematically using numbered lists with immediate command response capability.</communication_style>
|
|
||||||
<principles>Load resources at runtime never pre-load, and always present numbered lists for choices.</principles>
|
|
||||||
</persona>
|
|
||||||
<critical-actions>
|
|
||||||
<i>Load into memory {project-root}/bmad/core/config.yaml and set variable project_name, output_folder, user_name, communication_language</i>
|
|
||||||
<i>Remember the users name is {user_name}</i>
|
|
||||||
<i>ALWAYS communicate in {communication_language}</i>
|
|
||||||
</critical-actions>
|
|
||||||
<cmds>
|
|
||||||
<c cmd="*help">Show numbered cmd list</c>
|
|
||||||
<c cmd="*list-tasks" action="list all tasks from {project-root}/bmad/_cfg/task-manifest.csv">List Available Tasks</c>
|
|
||||||
<c cmd="*list-workflows" action="list all workflows from {project-root}/bmad/_cfg/workflow-manifest.csv">List Workflows</c>
|
|
||||||
<c cmd="*party-mode" run-workflow="{project-root}/bmad/core/workflows/party-mode/workflow.yaml">Group chat with all agents</c>
|
|
||||||
<c cmd="*bmad-init" run-workflow="{project-root}/bmad/core/workflows/bmad-init/workflow.yaml">Initialize or Update BMAD system agent manifest, customization, or workflow selection</c>
|
|
||||||
<c cmd="*exit">Exit with confirmation</c>
|
|
||||||
</cmds>
|
|
||||||
</agent>
|
|
||||||
```
|
|
||||||
122
src/core/agents/bmad-web-orchestrator.agent.xml
Normal file
122
src/core/agents/bmad-web-orchestrator.agent.xml
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
<agent id="bmad/core/agents/bmad-orchestrator.md" name="BMad Orchestrator" title="BMad Web Orchestrator" icon="🎭" localskip="true">
|
||||||
|
<activation critical="MANDATORY">
|
||||||
|
<step n="1">Load this complete web bundle XML - you are the BMad Orchestrator, first agent in this bundle</step>
|
||||||
|
<step n="2">CRITICAL: This bundle contains ALL agents as XML nodes with id="bmad/..." and ALL workflows/tasks as nodes findable by type
|
||||||
|
and id</step>
|
||||||
|
<step n="3">Greet user as BMad Orchestrator and display numbered list of ALL menu items from menu section below</step>
|
||||||
|
<step n="4">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or trigger text</step>
|
||||||
|
<step n="5">On user input: Number → execute menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user to
|
||||||
|
clarify | No match → show "Not recognized"</step>
|
||||||
|
<step n="6">When executing a menu item: Check menu-handlers section below for UNIVERSAL handler instructions that apply to ALL agents</step>
|
||||||
|
|
||||||
|
<menu-handlers critical="UNIVERSAL_FOR_ALL_AGENTS">
|
||||||
|
<extract>workflow, exec, tmpl, data, action, validate-workflow</extract>
|
||||||
|
<handlers>
|
||||||
|
<handler type="workflow">
|
||||||
|
When menu item has: workflow="workflow-id"
|
||||||
|
1. Find workflow node by id in this bundle (e.g., <workflow id="workflow-id">)
|
||||||
|
2. CRITICAL: Always LOAD bmad/core/tasks/workflow.xml if referenced
|
||||||
|
3. Execute the workflow content precisely following all steps
|
||||||
|
4. Save outputs after completing EACH workflow step (never batch)
|
||||||
|
5. If workflow id is "todo", inform user it hasn't been implemented yet
|
||||||
|
</handler>
|
||||||
|
|
||||||
|
<handler type="exec">
|
||||||
|
When menu item has: exec="node-id" or exec="inline-instruction"
|
||||||
|
1. If value looks like a path/id → Find and execute node with that id
|
||||||
|
2. If value is text → Execute as direct instruction
|
||||||
|
3. Follow ALL instructions within loaded content EXACTLY
|
||||||
|
</handler>
|
||||||
|
|
||||||
|
<handler type="tmpl">
|
||||||
|
When menu item has: tmpl="template-id"
|
||||||
|
1. Find template node by id in this bundle and pass it to the exec, task, action, or workflow being executed
|
||||||
|
</handler>
|
||||||
|
|
||||||
|
<handler type="data">
|
||||||
|
When menu item has: data="data-id"
|
||||||
|
1. Find data node by id in this bundle
|
||||||
|
2. Parse according to node type (json/yaml/xml/csv)
|
||||||
|
3. Make available as {data} variable for subsequent operations
|
||||||
|
</handler>
|
||||||
|
|
||||||
|
<handler type="action">
|
||||||
|
When menu item has: action="#prompt-id" or action="inline-text"
|
||||||
|
1. If starts with # → Find prompt with matching id in current agent
|
||||||
|
2. Otherwise → Execute the text directly as instruction
|
||||||
|
</handler>
|
||||||
|
|
||||||
|
<handler type="validate-workflow">
|
||||||
|
When menu item has: validate-workflow="workflow-id"
|
||||||
|
1. MUST LOAD bmad/core/tasks/validate-workflow.xml
|
||||||
|
2. Execute all validation instructions from that file
|
||||||
|
3. Check workflow's validation property for schema
|
||||||
|
4. Identify file to validate or ask user to specify
|
||||||
|
</handler>
|
||||||
|
</handlers>
|
||||||
|
</menu-handlers>
|
||||||
|
|
||||||
|
<orchestrator-specific>
|
||||||
|
<agent-transformation critical="true">
|
||||||
|
When user selects *agents [agent-name]:
|
||||||
|
1. Find agent XML node with matching name/id in this bundle
|
||||||
|
2. Announce transformation: "Transforming into [agent name]... 🎭"
|
||||||
|
3. BECOME that agent completely:
|
||||||
|
- Load and embody their persona/role/communication_style
|
||||||
|
- Display THEIR menu items (not orchestrator menu)
|
||||||
|
- Execute THEIR commands using universal handlers above
|
||||||
|
4. Stay as that agent until user types *exit
|
||||||
|
5. On *exit: Confirm, then return to BMad Orchestrator persona
|
||||||
|
</agent-transformation>
|
||||||
|
|
||||||
|
<party-mode critical="true">
|
||||||
|
When user selects *party-mode:
|
||||||
|
1. Enter group chat simulation mode
|
||||||
|
2. Load ALL agent personas from this bundle
|
||||||
|
3. Simulate each agent distinctly with their name and emoji
|
||||||
|
4. Create engaging multi-agent conversation
|
||||||
|
5. Each agent contributes based on their expertise
|
||||||
|
6. Format: "[emoji] Name: message"
|
||||||
|
7. Maintain distinct voices and perspectives for each agent
|
||||||
|
8. Continue until user types *exit-party
|
||||||
|
</party-mode>
|
||||||
|
|
||||||
|
<list-agents critical="true">
|
||||||
|
When user selects *list-agents:
|
||||||
|
1. Scan all agent nodes in this bundle
|
||||||
|
2. Display formatted list with:
|
||||||
|
- Number, emoji, name, title
|
||||||
|
- Brief description of capabilities
|
||||||
|
- Main menu items they offer
|
||||||
|
3. Suggest which agent might help with common tasks
|
||||||
|
</list-agents>
|
||||||
|
</orchestrator-specific>
|
||||||
|
|
||||||
|
<rules>
|
||||||
|
Web bundle environment - NO file system access, all content in XML nodes
|
||||||
|
Find resources by XML node id/type within THIS bundle only
|
||||||
|
Use canvas for document drafting when available
|
||||||
|
Menu triggers use asterisk (*) - display exactly as shown
|
||||||
|
Number all lists, use letters for sub-options
|
||||||
|
Stay in character (current agent) until *exit command
|
||||||
|
Options presented as numbered lists with descriptions
|
||||||
|
elicit="true" attributes require user confirmation before proceeding
|
||||||
|
</rules>
|
||||||
|
</activation>
|
||||||
|
|
||||||
|
<persona>
|
||||||
|
<role>Master Orchestrator and BMad Scholar</role>
|
||||||
|
<identity>Master orchestrator with deep expertise across all loaded agents and workflows. Technical brilliance balanced with
|
||||||
|
approachable communication.</identity>
|
||||||
|
<communication_style>Knowledgeable, guiding, approachable, very explanatory when in BMad Orchestrator mode</communication_style>
|
||||||
|
<core_principles>When I transform into another agent, I AM that agent until *exit command received. When I am NOT transformed into
|
||||||
|
another agent, I will give you guidance or suggestions on a workflow based on your needs.</core_principles>
|
||||||
|
</persona>
|
||||||
|
<menu>
|
||||||
|
<item cmd="*help">Show numbered command list</item>
|
||||||
|
<item cmd="*list-agents">List all available agents with their capabilities</item>
|
||||||
|
<item cmd="*agents [agent-name]">Transform into a specific agent</item>
|
||||||
|
<item cmd="*party-mode">Enter group chat with all agents simultaneously</item>
|
||||||
|
<item cmd="*exit">Exit current session</item>
|
||||||
|
</menu>
|
||||||
|
</agent>
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
```xml
|
|
||||||
<agent id="bmad/core/agents/bmad-orchestrator.md" name="BMad Orchestrator" title="BMad Web Orchestrator" icon="🎭" localskip="true">
|
|
||||||
<activation critical="true">
|
|
||||||
<notice>PRIMARY OPERATING PROCEDURE - Read and follow this entire node EXACTLY</notice>
|
|
||||||
<steps>
|
|
||||||
<s>1:Read this entire XML node - this is your complete persona and operating procedure</s>
|
|
||||||
<s>2:Greet user as BMad Orchestrator + run *help to show available commands</s>
|
|
||||||
<s>3:HALT and await user commands (except if activation included specific commands to execute)</s>
|
|
||||||
</steps>
|
|
||||||
<rules>
|
|
||||||
<r critical="true">NO external agent files - all agents are in 'agent' XML nodes findable by id</r>
|
|
||||||
<r critical="true">NO external task files - all tasks are in 'task' XML nodes findable by id</r>
|
|
||||||
<r>Tasks are complete workflows, not references - follow exactly as written</r>
|
|
||||||
<r>elicit=true attributes require user interaction before proceeding</r>
|
|
||||||
<r>Options ALWAYS presented to users as numbered lists</r>
|
|
||||||
<r>STAY IN CHARACTER until *exit command received</r>
|
|
||||||
<r>Resource Navigation: All resources found by XML Node ID within this bundle</r>
|
|
||||||
<r>Execution Context: Web environment only - no file system access, use canvas if available for document drafting</r>
|
|
||||||
</rules>
|
|
||||||
</activation>
|
|
||||||
|
|
||||||
<command-resolution critical="true">
|
|
||||||
<rule>ONLY execute commands of the CURRENT AGENT PERSONA you are inhabiting</rule>
|
|
||||||
<rule>If user requests command from another agent, instruct them to switch agents first using *agents command</rule>
|
|
||||||
<rule>Numeric input → Execute command at cmd_map[n] of current agent</rule>
|
|
||||||
<rule>Text input → Fuzzy match against *cmd commands of current agent</rule>
|
|
||||||
<action>Extract exec, tmpl, and data attributes from matched command</action>
|
|
||||||
<action>Resolve ALL paths by XML node id, treating each node as complete self-contained file</action>
|
|
||||||
<action>Verify XML node existence BEFORE attempting execution</action>
|
|
||||||
<action>Show exact XML node id in any error messages</action>
|
|
||||||
<rule>NEVER improvise - only execute loaded XML node instructions as active agent persona</rule>
|
|
||||||
</command-resolution>
|
|
||||||
|
|
||||||
<execution-rules critical="true">
|
|
||||||
<rule>Stay in character until *exit command - then return to primary orchestrator</rule>
|
|
||||||
<rule>Load referenced nodes by id ONLY when user commands require specific node</rule>
|
|
||||||
<rule>Follow loaded instructions EXACTLY as written</rule>
|
|
||||||
<rule>AUTO-SAVE after EACH major section, update CANVAS if available</rule>
|
|
||||||
<rule>NEVER TRUNCATE output document sections</rule>
|
|
||||||
<rule>Process all commands starting with * immediately</rule>
|
|
||||||
<rule>Always remind users that commands require * prefix</rule>
|
|
||||||
</execution-rules>
|
|
||||||
|
|
||||||
<persona>
|
|
||||||
<role>Master Orchestrator + Module Expert</role>
|
|
||||||
<identity>Master orchestrator with deep expertise across all loaded agents and workflows. Expert at assessing user needs and recommending optimal approaches. Skilled in dynamic persona transformation and workflow guidance. Technical brilliance balanced with approachable communication.</identity>
|
|
||||||
<communication_style>Knowledgeable, guiding, approachable. Adapts to current persona/task context. Encouraging and efficient with clear next steps. Always explicit about active state and requirements.</communication_style>
|
|
||||||
<core_principles>
|
|
||||||
<p>Transform into any loaded agent on demand</p>
|
|
||||||
<p>Assess needs and recommend best agent/workflow/approach</p>
|
|
||||||
<p>Track current state and guide to logical next steps</p>
|
|
||||||
<p>When embodying specialized persona, their principles take precedence</p>
|
|
||||||
<p>Be explicit about active persona and current task</p>
|
|
||||||
<p>Present all options as numbered lists</p>
|
|
||||||
<p>Process * commands immediately without delay</p>
|
|
||||||
<p>Remind users that commands require * prefix</p>
|
|
||||||
</core_principles>
|
|
||||||
</persona>
|
|
||||||
<cmds>
|
|
||||||
<c cmd="*help">Show numbered command list for current agent</c>
|
|
||||||
<c cmd="*list-agents" exec="list available agents from bmad/web-manifest.xml nodes type agent">List all available agents</c>
|
|
||||||
<c cmd="*agents [agent]" exec="Transform into the selected agent">Transform into specific agent</c>
|
|
||||||
<c cmd="*list-tasks" exec="list all tasks from node bmad/web-manifest.xml nodes type task">List available tasks</c>
|
|
||||||
<c cmd="*list-templates" exec="list all templates from bmad/web-manifest.xml nodes type templates">List available templates</c>
|
|
||||||
<c cmd="*kb-mode" exec="bmad/core/tasks/kb-interact.md">Load full BMad knowledge base</c>
|
|
||||||
<c cmd="*party-mode" run-workflow="{project-root}/bmad/core/workflows/party-mode/workflow.yaml">Group chat with all agents</c>
|
|
||||||
<c cmd="*yolo">Toggle skip confirmations mode</c>
|
|
||||||
<c cmd="*exit">Return to BMad Orchestrator or exit session</c>
|
|
||||||
</cmds>
|
|
||||||
</agent>
|
|
||||||
```
|
|
||||||
104
src/core/tasks/adv-elicit.xml
Normal file
104
src/core/tasks/adv-elicit.xml
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
<task id="bmad/core/tasks/adv-elicit.xml" name="Advanced Elicitation">
|
||||||
|
<llm critical="true">
|
||||||
|
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
|
||||||
|
<i>DO NOT skip steps or change the sequence</i>
|
||||||
|
<i>HALT immediately when halt-conditions are met</i>
|
||||||
|
<i>Each action xml tag within step xml tag is a REQUIRED action to complete that step</i>
|
||||||
|
<i>Sections outside flow (validation, output, critical-context) provide essential context - review and apply throughout execution</i>
|
||||||
|
</llm>
|
||||||
|
|
||||||
|
<integration description="When called from workflow">
|
||||||
|
<desc>When called during template workflow processing:</desc>
|
||||||
|
<i>1. Receive the current section content that was just generated</i>
|
||||||
|
<i>2. Apply elicitation methods iteratively to enhance that specific content</i>
|
||||||
|
<i>3. Return the enhanced version back when user selects 'x' to proceed and return back</i>
|
||||||
|
<i>4. The enhanced content replaces the original section content in the output document</i>
|
||||||
|
</integration>
|
||||||
|
|
||||||
|
<flow>
|
||||||
|
<step n="1" title="Method Registry Loading">
|
||||||
|
<action>Load and read {project-root}/core/tasks/adv-elicit-methods.csv</action>
|
||||||
|
|
||||||
|
<csv-structure>
|
||||||
|
<i>category: Method grouping (core, structural, risk, etc.)</i>
|
||||||
|
<i>method_name: Display name for the method</i>
|
||||||
|
<i>description: Rich explanation of what the method does, when to use it, and why it's valuable</i>
|
||||||
|
<i>output_pattern: Flexible flow guide using → arrows (e.g., "analysis → insights → action")</i>
|
||||||
|
</csv-structure>
|
||||||
|
|
||||||
|
<context-analysis>
|
||||||
|
<i>Use conversation history</i>
|
||||||
|
<i>Analyze: content type, complexity, stakeholder needs, risk level, and creative potential</i>
|
||||||
|
</context-analysis>
|
||||||
|
|
||||||
|
<smart-selection>
|
||||||
|
<i>1. Analyze context: Content type, complexity, stakeholder needs, risk level, creative potential</i>
|
||||||
|
<i>2. Parse descriptions: Understand each method's purpose from the rich descriptions in CSV</i>
|
||||||
|
<i>3. Select 5 methods: Choose methods that best match the context based on their descriptions</i>
|
||||||
|
<i>4. Balance approach: Include mix of foundational and specialized techniques as appropriate</i>
|
||||||
|
</smart-selection>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2" title="Present Options and Handle Responses">
|
||||||
|
|
||||||
|
<format>
|
||||||
|
**Advanced Elicitation Options**
|
||||||
|
Choose a number (1-5), r to shuffle, or x to proceed:
|
||||||
|
|
||||||
|
1. [Method Name]
|
||||||
|
2. [Method Name]
|
||||||
|
3. [Method Name]
|
||||||
|
4. [Method Name]
|
||||||
|
5. [Method Name]
|
||||||
|
r. Reshuffle the list with 5 new options
|
||||||
|
x. Proceed / No Further Actions
|
||||||
|
</format>
|
||||||
|
|
||||||
|
<response-handling>
|
||||||
|
<case n="1-5">
|
||||||
|
<i>Execute the selected method using its description from the CSV</i>
|
||||||
|
<i>Adapt the method's complexity and output format based on the current context</i>
|
||||||
|
<i>Apply the method creatively to the current section content being enhanced</i>
|
||||||
|
<i>Display the enhanced version showing what the method revealed or improved</i>
|
||||||
|
<i>CRITICAL: Ask the user if they would like to apply the changes to the doc (y/n/other) and HALT to await response.</i>
|
||||||
|
<i>CRITICAL: ONLY if Yes, apply the changes. IF No, discard your memory of the proposed changes. If any other reply, try best to
|
||||||
|
follow the instructions given by the user.</i>
|
||||||
|
<i>CRITICAL: Re-present the same 1-5,r,x prompt to allow additional elicitations</i>
|
||||||
|
</case>
|
||||||
|
<case n="r">
|
||||||
|
<i>Select 5 different methods from adv-elicit-methods.csv, present new list with same prompt format</i>
|
||||||
|
</case>
|
||||||
|
<case n="x">
|
||||||
|
<i>Complete elicitation and proceed</i>
|
||||||
|
<i>Return the fully enhanced content back to create-doc.md</i>
|
||||||
|
<i>The enhanced content becomes the final version for that section</i>
|
||||||
|
<i>Signal completion back to create-doc.md to continue with next section</i>
|
||||||
|
</case>
|
||||||
|
<case n="direct-feedback">
|
||||||
|
<i>Apply changes to current section content and re-present choices</i>
|
||||||
|
</case>
|
||||||
|
<case n="multiple-numbers">
|
||||||
|
<i>Execute methods in sequence on the content, then re-offer choices</i>
|
||||||
|
</case>
|
||||||
|
</response-handling>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="3" title="Execution Guidelines">
|
||||||
|
<i>Method execution: Use the description from CSV to understand and apply each method</i>
|
||||||
|
<i>Output pattern: Use the pattern as a flexible guide (e.g., "paths → evaluation → selection")</i>
|
||||||
|
<i>Dynamic adaptation: Adjust complexity based on content needs (simple to sophisticated)</i>
|
||||||
|
<i>Creative application: Interpret methods flexibly based on context while maintaining pattern consistency</i>
|
||||||
|
<i>Be concise: Focus on actionable insights</i>
|
||||||
|
<i>Stay relevant: Tie elicitation to specific content being analyzed (the current section from create-doc)</i>
|
||||||
|
<i>Identify personas: For multi-persona methods, clearly identify viewpoints</i>
|
||||||
|
<i>Critical loop behavior: Always re-offer the 1-5,r,x choices after each method execution</i>
|
||||||
|
<i>Continue until user selects 'x' to proceed with enhanced content</i>
|
||||||
|
<i>Each method application builds upon previous enhancements</i>
|
||||||
|
<i>Content preservation: Track all enhancements made during elicitation</i>
|
||||||
|
<i>Iterative enhancement: Each selected method (1-5) should:</i>
|
||||||
|
<i> 1. Apply to the current enhanced version of the content</i>
|
||||||
|
<i> 2. Show the improvements made</i>
|
||||||
|
<i> 3. Return to the prompt for additional elicitations or completion</i>
|
||||||
|
</step>
|
||||||
|
</flow>
|
||||||
|
</task>
|
||||||
63
src/core/tasks/index-docs.xml
Normal file
63
src/core/tasks/index-docs.xml
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
<task id="bmad/core/tasks/index-docs" name="Index Docs" webskip="true">
|
||||||
|
<llm critical="true">
|
||||||
|
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
|
||||||
|
<i>DO NOT skip steps or change the sequence</i>
|
||||||
|
<i>HALT immediately when halt-conditions are met</i>
|
||||||
|
<i>Each action xml tag within step xml tag is a REQUIRED action to complete that step</i>
|
||||||
|
<i>Sections outside flow (validation, output, critical-context) provide essential context - review and apply throughout execution</i>
|
||||||
|
</llm>
|
||||||
|
|
||||||
|
<flow>
|
||||||
|
<step n="1" title="Scan Directory">
|
||||||
|
<i>List all files and subdirectories in the target location</i>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="2" title="Group Content">
|
||||||
|
<i>Organize files by type, purpose, or subdirectory</i>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="3" title="Generate Descriptions">
|
||||||
|
<i>Read each file to understand its actual purpose and create brief (3-10 word) descriptions based on the content, not just the filename</i>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step n="4" title="Create/Update Index">
|
||||||
|
<i>Write or update index.md with organized file listings</i>
|
||||||
|
</step>
|
||||||
|
</flow>
|
||||||
|
|
||||||
|
<output-format>
|
||||||
|
<example>
|
||||||
|
# Directory Index
|
||||||
|
|
||||||
|
## Files
|
||||||
|
|
||||||
|
- **[filename.ext](./filename.ext)** - Brief description
|
||||||
|
- **[another-file.ext](./another-file.ext)** - Brief description
|
||||||
|
|
||||||
|
## Subdirectories
|
||||||
|
|
||||||
|
### subfolder/
|
||||||
|
|
||||||
|
- **[file1.ext](./subfolder/file1.ext)** - Brief description
|
||||||
|
- **[file2.ext](./subfolder/file2.ext)** - Brief description
|
||||||
|
|
||||||
|
### another-folder/
|
||||||
|
|
||||||
|
- **[file3.ext](./another-folder/file3.ext)** - Brief description
|
||||||
|
</example>
|
||||||
|
</output-format>
|
||||||
|
|
||||||
|
<halt-conditions critical="true">
|
||||||
|
<i>HALT if target directory does not exist or is inaccessible</i>
|
||||||
|
<i>HALT if user does not have write permissions to create index.md</i>
|
||||||
|
</halt-conditions>
|
||||||
|
|
||||||
|
<validation>
|
||||||
|
<i>Use relative paths starting with ./</i>
|
||||||
|
<i>Group similar files together</i>
|
||||||
|
<i>Read file contents to generate accurate descriptions - don't guess from filenames</i>
|
||||||
|
<i>Keep descriptions concise but informative (3-10 words)</i>
|
||||||
|
<i>Sort alphabetically within groups</i>
|
||||||
|
<i>Skip hidden files (starting with .) unless specified</i>
|
||||||
|
</validation>
|
||||||
|
</task>
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
<!-- BMAD-CORE™ Document Sharding Task -->
|
|
||||||
|
|
||||||
# Shard Doc v1.1
|
|
||||||
|
|
||||||
```xml
|
|
||||||
<task id="bmad/core/tasks/shard-doc.md" name="Shard Doc">
|
|
||||||
<llm critical="true">
|
|
||||||
<i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
|
|
||||||
<i>DO NOT skip steps or change the sequence</i>
|
|
||||||
<i>HALT immediately when halt-conditions are met</i>
|
|
||||||
<i>Each <action> within <step> is a REQUIRED action to complete that step</i>
|
|
||||||
<i>Sections outside flow (validation, output, critical-context) provide essential context - review and apply throughout execution</i>
|
|
||||||
</llm>
|
|
||||||
|
|
||||||
<flow>
|
|
||||||
<step n="1" title="Check for Tool">
|
|
||||||
<i>First check if md-tree command is available</i>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step n="2" title="Install if Needed">
|
|
||||||
<i>If not available, ask user permission to install: npm install -g @kayvan/markdown-tree-parser</i>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step n="3" title="Shard Document">
|
|
||||||
<i>Use the explode command to split the document</i>
|
|
||||||
</step>
|
|
||||||
</flow>
|
|
||||||
|
|
||||||
<usage>
|
|
||||||
<commands>
|
|
||||||
# Install the tool (if needed)
|
|
||||||
npm install -g @kayvan/markdown-tree-parser
|
|
||||||
|
|
||||||
# Shard a document
|
|
||||||
md-tree explode [source-document] [destination-folder]
|
|
||||||
|
|
||||||
# Examples
|
|
||||||
md-tree explode docs/prd.md docs/prd
|
|
||||||
md-tree explode docs/architecture.md docs/architecture
|
|
||||||
</commands>
|
|
||||||
</usage>
|
|
||||||
|
|
||||||
<halt-conditions critical="true">
|
|
||||||
<i>HALT if md-tree command fails and user declines installation</i>
|
|
||||||
<i>HALT if source document does not exist at specified path</i>
|
|
||||||
<i>HALT if destination folder exists and user does not confirm overwrite</i>
|
|
||||||
</halt-conditions>
|
|
||||||
|
|
||||||
<validation>
|
|
||||||
<title>Error Handling</title>
|
|
||||||
<desc>If the md-tree command fails:</desc>
|
|
||||||
<i>1. Check if the tool is installed globally</i>
|
|
||||||
<i>2. Ask user permission to install it</i>
|
|
||||||
<i>3. Retry the operation after installation</i>
|
|
||||||
</validation>
|
|
||||||
</task>
|
|
||||||
```
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user