bmad-method 6.0.0-alpha.15 → 6.0.0-alpha.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (512) hide show
  1. package/.coderabbit.yaml +8 -4
  2. package/.github/scripts/discord-helpers.sh +21 -2
  3. package/.github/workflows/discord.yaml +31 -7
  4. package/.github/workflows/manual-release.yaml +12 -42
  5. package/.markdownlint-cli2.yaml +2 -2
  6. package/.prettierignore +2 -2
  7. package/.vscode/settings.json +1 -1
  8. package/CHANGELOG.md +126 -1
  9. package/LICENSE +1 -1
  10. package/README.md +29 -2
  11. package/docs/agent-customization-guide.md +10 -10
  12. package/docs/custom-content-installation.md +100 -196
  13. package/docs/custom-content.md +122 -0
  14. package/docs/ide-info/crush.md +1 -1
  15. package/docs/ide-info/cursor.md +7 -7
  16. package/docs/ide-info/iflow.md +3 -3
  17. package/docs/ide-info/opencode.md +1 -1
  18. package/docs/ide-info/rovo-dev.md +1 -1
  19. package/docs/index.md +2 -2
  20. package/docs/installers-bundlers/ide-injections.md +2 -2
  21. package/docs/installers-bundlers/installers-modules-platforms-reference.md +25 -25
  22. package/docs/sample-custom-modules/README.md +11 -0
  23. package/docs/sample-custom-modules/sample-unitary-module/README.md +8 -0
  24. package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/agents/commit-poet/commit-poet.agent.yaml +1 -1
  25. package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/agents/toolsmith/toolsmith.agent.yaml +14 -14
  26. package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/module.yaml +5 -1
  27. package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/workflows/quiz-master/steps/step-01-init.md +2 -2
  28. package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/workflows/quiz-master/steps/step-02-q1.md +1 -1
  29. package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/workflows/quiz-master/steps/step-03-q2.md +1 -1
  30. package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/workflows/quiz-master/steps/step-04-q3.md +1 -1
  31. package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/workflows/quiz-master/steps/step-05-q4.md +1 -1
  32. package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/workflows/quiz-master/steps/step-06-q5.md +1 -1
  33. package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/workflows/quiz-master/steps/step-07-q6.md +1 -1
  34. package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/workflows/quiz-master/steps/step-08-q7.md +1 -1
  35. package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/workflows/quiz-master/steps/step-09-q8.md +1 -1
  36. package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/workflows/quiz-master/steps/step-10-q9.md +1 -1
  37. package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/workflows/quiz-master/steps/step-11-q10.md +1 -1
  38. package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/workflows/quiz-master/steps/step-12-results.md +1 -1
  39. package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/workflows/quiz-master/workflow.md +1 -1
  40. package/docs/sample-custom-modules/sample-wellness-module/README.md +6 -0
  41. package/{example-custom-module/mwm → docs/sample-custom-modules/sample-wellness-module}/agents/meditation-guide.agent.yaml +37 -39
  42. package/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/foo.md +3 -0
  43. package/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/addition1.md +1 -0
  44. package/{example-custom-module/mwm → docs/sample-custom-modules/sample-wellness-module}/agents/wellness-companion/wellness-companion.agent.yaml +8 -13
  45. package/docs/sample-custom-modules/sample-wellness-module/module.yaml +17 -0
  46. package/{example-custom-module/mwm → docs/sample-custom-modules/sample-wellness-module}/workflows/wellness-journal/workflow.md +3 -3
  47. package/docs/v4-to-v6-upgrade.md +27 -27
  48. package/docs/web-bundles-gemini-gpt-guide.md +6 -458
  49. package/eslint.config.mjs +2 -2
  50. package/package.json +1 -1
  51. package/src/core/agents/bmad-master.agent.yaml +6 -11
  52. package/src/core/module.yaml +10 -24
  53. package/src/core/resources/excalidraw/README.md +6 -6
  54. package/src/core/tasks/advanced-elicitation.xml +3 -3
  55. package/src/core/tasks/index-docs.xml +1 -1
  56. package/src/core/tasks/validate-workflow.xml +1 -1
  57. package/src/core/tasks/workflow.xml +4 -4
  58. package/src/core/tools/shard-doc.xml +12 -12
  59. package/src/core/workflows/brainstorming/workflow.md +3 -3
  60. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +2 -2
  61. package/src/core/workflows/party-mode/workflow.md +4 -4
  62. package/src/modules/bmb/agents/bmad-builder.agent.yaml +15 -15
  63. package/src/modules/bmb/{README.md → docs/README.md} +15 -27
  64. package/src/modules/bmb/docs/agents/agent-compilation.md +3 -3
  65. package/src/modules/bmb/docs/agents/agent-menu-patterns.md +23 -24
  66. package/src/modules/bmb/docs/agents/expert-agent-architecture.md +21 -22
  67. package/src/modules/bmb/docs/agents/index.md +1 -1
  68. package/src/modules/bmb/docs/agents/simple-agent-architecture.md +17 -52
  69. package/src/modules/bmb/docs/agents/understanding-agent-types.md +6 -6
  70. package/src/modules/bmb/docs/workflows/architecture.md +1 -1
  71. package/src/modules/bmb/docs/workflows/common-workflow-tools.csv +3 -3
  72. package/src/modules/bmb/docs/workflows/templates/step-01-init-continuable-template.md +1 -1
  73. package/src/modules/bmb/docs/workflows/templates/step-1b-template.md +1 -1
  74. package/src/modules/bmb/docs/workflows/templates/step-file.md +3 -3
  75. package/src/modules/bmb/docs/workflows/templates/step-template.md +3 -3
  76. package/src/modules/bmb/docs/workflows/templates/workflow-template.md +2 -2
  77. package/src/modules/bmb/docs/workflows/templates/workflow.md +1 -1
  78. package/src/modules/bmb/module.yaml +6 -16
  79. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +7 -7
  80. package/src/modules/bmb/reference/agents/module-examples/README.md +3 -4
  81. package/src/modules/bmb/reference/agents/module-examples/security-engineer.agent.yaml +5 -5
  82. package/src/modules/bmb/reference/agents/module-examples/trend-analyst.agent.yaml +7 -7
  83. package/src/modules/bmb/reference/agents/simple-examples/README.md +1 -1
  84. package/src/modules/bmb/reference/agents/simple-examples/commit-poet.agent.yaml +1 -1
  85. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +1 -1
  86. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +1 -1
  87. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +3 -3
  88. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +3 -3
  89. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +5 -5
  90. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +5 -5
  91. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +5 -5
  92. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/workflow.md +2 -2
  93. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/README.md +1 -3
  94. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/security-engineer.agent.yaml +6 -6
  95. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/trend-analyst.agent.yaml +7 -7
  96. package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/README.md +1 -1
  97. package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/commit-poet.agent.yaml +1 -1
  98. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +1 -1
  99. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +1 -1
  100. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +3 -3
  101. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +3 -3
  102. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +5 -5
  103. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +5 -5
  104. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +5 -5
  105. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/workflow.md +2 -2
  106. package/src/modules/bmb/workflows/create-agent/data/validation-complete.md +5 -5
  107. package/src/modules/bmb/workflows/create-agent/steps/step-01-brainstorm.md +5 -5
  108. package/src/modules/bmb/workflows/create-agent/steps/step-02-discover.md +7 -11
  109. package/src/modules/bmb/workflows/create-agent/steps/step-03-persona.md +7 -7
  110. package/src/modules/bmb/workflows/create-agent/steps/step-04-commands.md +10 -10
  111. package/src/modules/bmb/workflows/create-agent/steps/step-05-name.md +7 -6
  112. package/src/modules/bmb/workflows/create-agent/steps/step-06-build.md +20 -58
  113. package/src/modules/bmb/workflows/create-agent/steps/step-07-validate.md +6 -6
  114. package/src/modules/bmb/workflows/create-agent/steps/{step-11-celebrate.md → step-08-celebrate.md} +3 -7
  115. package/src/modules/bmb/workflows/create-agent/templates/agent-plan.template.md +3 -0
  116. package/src/modules/bmb/workflows/create-agent/templates/expert-agent.template.md +364 -0
  117. package/src/modules/bmb/workflows/create-agent/templates/simple-agent.template.md +257 -0
  118. package/src/modules/bmb/workflows/create-agent/workflow.md +2 -35
  119. package/src/modules/bmb/workflows/create-module/steps/step-01-init.md +4 -4
  120. package/src/modules/bmb/workflows/create-module/steps/step-01b-continue.md +2 -2
  121. package/src/modules/bmb/workflows/create-module/steps/step-02-concept.md +5 -5
  122. package/src/modules/bmb/workflows/create-module/steps/step-03-components.md +5 -5
  123. package/src/modules/bmb/workflows/create-module/steps/step-04-structure.md +6 -6
  124. package/src/modules/bmb/workflows/create-module/steps/step-05-config.md +5 -5
  125. package/src/modules/bmb/workflows/create-module/steps/step-06-agents.md +9 -9
  126. package/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md +5 -5
  127. package/src/modules/bmb/workflows/create-module/steps/step-08-installer.md +8 -8
  128. package/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md +7 -7
  129. package/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md +7 -7
  130. package/src/modules/bmb/workflows/create-module/steps/step-11-validate.md +6 -6
  131. package/src/modules/bmb/workflows/create-module/templates/agent.template.md +15 -19
  132. package/src/modules/bmb/workflows/create-module/templates/module.template.yaml +1 -1
  133. package/src/modules/bmb/workflows/create-module/workflow.md +3 -3
  134. package/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md +4 -4
  135. package/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md +6 -6
  136. package/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md +5 -5
  137. package/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md +4 -4
  138. package/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md +4 -4
  139. package/src/modules/bmb/workflows/create-workflow/steps/step-06-design.md +11 -11
  140. package/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md +14 -14
  141. package/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md +4 -4
  142. package/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md +2 -2
  143. package/src/modules/bmb/workflows/create-workflow/workflow.md +2 -2
  144. package/src/modules/bmb/workflows/edit-agent/steps/step-01-discover-intent.md +3 -3
  145. package/src/modules/bmb/workflows/edit-agent/steps/step-02-analyze-agent.md +13 -13
  146. package/src/modules/bmb/workflows/edit-agent/steps/step-03-propose-changes.md +5 -5
  147. package/src/modules/bmb/workflows/edit-agent/steps/step-04-apply-changes.md +3 -3
  148. package/src/modules/bmb/workflows/edit-agent/steps/step-05-validate.md +5 -5
  149. package/src/modules/bmb/workflows/edit-agent/workflow.md +1 -1
  150. package/src/modules/bmb/workflows/edit-workflow/steps/step-01-analyze.md +4 -4
  151. package/src/modules/bmb/workflows/edit-workflow/steps/step-02-discover.md +3 -3
  152. package/src/modules/bmb/workflows/edit-workflow/steps/step-03-improve.md +6 -6
  153. package/src/modules/bmb/workflows/edit-workflow/steps/step-04-validate.md +3 -3
  154. package/src/modules/bmb/workflows/edit-workflow/steps/step-05-compliance-check.md +3 -3
  155. package/src/modules/bmb/workflows/edit-workflow/workflow.md +1 -1
  156. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +3 -3
  157. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +5 -5
  158. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +6 -6
  159. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +4 -4
  160. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +4 -4
  161. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +4 -4
  162. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +4 -4
  163. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +3 -3
  164. package/src/modules/bmb/workflows/workflow-compliance-check/workflow.md +1 -1
  165. package/src/modules/bmb/workflows-legacy/edit-module/README.md +1 -17
  166. package/src/modules/bmb/workflows-legacy/edit-module/checklist.md +3 -4
  167. package/src/modules/bmb/workflows-legacy/edit-module/instructions.md +4 -5
  168. package/src/modules/bmb/workflows-legacy/edit-module/workflow.yaml +10 -10
  169. package/src/modules/bmb/workflows-legacy/module-brief/README.md +2 -2
  170. package/src/modules/bmb/workflows-legacy/module-brief/instructions.md +2 -2
  171. package/src/modules/bmb/workflows-legacy/module-brief/workflow.yaml +4 -4
  172. package/src/modules/bmgd/README.md +1 -1
  173. package/src/modules/bmgd/agents/game-architect.agent.yaml +6 -6
  174. package/src/modules/bmgd/agents/game-designer.agent.yaml +7 -7
  175. package/src/modules/bmgd/agents/game-dev.agent.yaml +10 -10
  176. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +21 -21
  177. package/src/modules/bmgd/module.yaml +2 -8
  178. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +1 -1
  179. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +9 -9
  180. package/src/modules/bmgd/workflows/1-preproduction/game-brief/instructions.md +1 -1
  181. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.yaml +8 -8
  182. package/src/modules/bmgd/workflows/2-design/gdd/instructions-gdd.md +4 -4
  183. package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +30 -30
  184. package/src/modules/bmgd/workflows/2-design/narrative/instructions-narrative.md +1 -1
  185. package/src/modules/bmgd/workflows/2-design/narrative/workflow.yaml +5 -5
  186. package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +1 -1
  187. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +2 -2
  188. package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +4 -4
  189. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +2 -2
  190. package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +1 -1
  191. package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +2 -2
  192. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +2 -2
  193. package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +2 -2
  194. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +2 -2
  195. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +2 -2
  196. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +2 -2
  197. package/src/modules/bmgd/workflows/4-production/epic-tech-context/checklist.md +1 -1
  198. package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +2 -2
  199. package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +2 -2
  200. package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +2 -2
  201. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +3 -3
  202. package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +2 -2
  203. package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +2 -2
  204. package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +1 -1
  205. package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +2 -2
  206. package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +2 -2
  207. package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +2 -2
  208. package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +1 -1
  209. package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +2 -2
  210. package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +1 -1
  211. package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +2 -2
  212. package/src/modules/bmm/README.md +1 -1
  213. package/src/modules/bmm/agents/analyst.agent.yaml +9 -9
  214. package/src/modules/bmm/agents/architect.agent.yaml +8 -8
  215. package/src/modules/bmm/agents/dev.agent.yaml +5 -5
  216. package/src/modules/bmm/agents/pm.agent.yaml +8 -8
  217. package/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml +5 -5
  218. package/src/modules/bmm/agents/sm.agent.yaml +11 -11
  219. package/src/modules/bmm/agents/tea.agent.yaml +13 -13
  220. package/src/modules/bmm/agents/tech-writer.agent.yaml +9 -9
  221. package/src/modules/bmm/agents/ux-designer.agent.yaml +6 -6
  222. package/src/modules/bmm/docs/README.md +0 -25
  223. package/src/modules/bmm/docs/agents-guide.md +16 -14
  224. package/src/modules/bmm/docs/brownfield-guide.md +6 -6
  225. package/src/modules/bmm/docs/enterprise-agentic-development.md +3 -3
  226. package/src/modules/bmm/docs/faq.md +5 -18
  227. package/src/modules/bmm/docs/glossary.md +3 -4
  228. package/src/modules/bmm/docs/images/README.md +1 -1
  229. package/src/modules/bmm/docs/images/workflow-method-greenfield.excalidraw +8 -8
  230. package/src/modules/bmm/docs/party-mode.md +3 -3
  231. package/src/modules/bmm/docs/quick-flow-solo-dev.md +5 -5
  232. package/src/modules/bmm/docs/quick-spec-flow.md +2 -16
  233. package/src/modules/bmm/docs/quick-start.md +3 -3
  234. package/src/modules/bmm/docs/test-architecture.md +15 -23
  235. package/src/modules/bmm/docs/troubleshooting.md +6 -25
  236. package/src/modules/bmm/docs/workflow-document-project-reference.md +1 -1
  237. package/src/modules/bmm/docs/workflows-implementation.md +3 -104
  238. package/src/modules/bmm/module.yaml +25 -24
  239. package/src/modules/bmm/testarch/knowledge/overview.md +0 -1
  240. package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-01-init.md +1 -1
  241. package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-01b-continue.md +1 -1
  242. package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-02-vision.md +3 -3
  243. package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-03-users.md +3 -3
  244. package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-04-metrics.md +3 -3
  245. package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-05-scope.md +3 -3
  246. package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-06-complete.md +5 -3
  247. package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/workflow.md +2 -2
  248. package/src/modules/bmm/workflows/1-analysis/research/workflow.md +2 -2
  249. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +4 -4
  250. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +4 -4
  251. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +4 -4
  252. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +4 -4
  253. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +4 -4
  254. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +4 -4
  255. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +4 -4
  256. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +4 -4
  257. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +4 -4
  258. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +4 -4
  259. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +4 -4
  260. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +4 -4
  261. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +2 -2
  262. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01-init.md +1 -1
  263. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01b-continue.md +1 -1
  264. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +3 -3
  265. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md +7 -7
  266. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +8 -8
  267. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +12 -12
  268. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +12 -12
  269. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +10 -10
  270. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +7 -7
  271. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md +9 -9
  272. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +9 -9
  273. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +1 -1
  274. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md +2 -2
  275. package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-01-document-discovery.md +1 -1
  276. package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-02-prd-analysis.md +1 -1
  277. package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-03-epic-coverage-validation.md +6 -6
  278. package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-04-ux-alignment.md +1 -1
  279. package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-05-epic-quality-review.md +2 -2
  280. package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-06-final-assessment.md +1 -1
  281. package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/workflow.md +1 -1
  282. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-01-init.md +1 -1
  283. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-02-context.md +4 -4
  284. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-03-starter.md +4 -4
  285. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-04-decisions.md +4 -4
  286. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-05-patterns.md +4 -4
  287. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-06-structure.md +4 -4
  288. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-07-validation.md +4 -4
  289. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-08-complete.md +3 -3
  290. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/workflow.md +2 -2
  291. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +3 -3
  292. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +3 -3
  293. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +3 -3
  294. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +3 -3
  295. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +3 -3
  296. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml +4 -3
  297. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +2 -2
  298. package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +1 -1
  299. package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +2 -2
  300. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +2 -2
  301. package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +2 -2
  302. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml +5 -5
  303. package/src/modules/bmm/workflows/4-implementation/create-story/template.md +3 -5
  304. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +2 -2
  305. package/src/modules/bmm/workflows/4-implementation/dev-story/checklist.md +2 -2
  306. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml +11 -8
  307. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +2 -2
  308. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +3 -3
  309. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +3 -3
  310. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +15 -22
  311. package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +4 -5
  312. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +2 -2
  313. package/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md +90 -35
  314. package/src/modules/bmm/workflows/4-implementation/sprint-status/workflow.yaml +2 -2
  315. package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml +5 -5
  316. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.yaml +7 -7
  317. package/src/modules/bmm/workflows/document-project/instructions.md +5 -5
  318. package/src/modules/bmm/workflows/document-project/workflow.yaml +2 -2
  319. package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +5 -5
  320. package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +5 -5
  321. package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-dataflow/instructions.md +1 -1
  322. package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-dataflow/workflow.yaml +6 -6
  323. package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-diagram/instructions.md +2 -2
  324. package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-diagram/workflow.yaml +6 -6
  325. package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-flowchart/instructions.md +2 -2
  326. package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-flowchart/workflow.yaml +6 -6
  327. package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-wireframe/instructions.md +1 -1
  328. package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-wireframe/workflow.yaml +6 -6
  329. package/src/modules/bmm/workflows/generate-project-context/steps/step-01-discover.md +2 -2
  330. package/src/modules/bmm/workflows/generate-project-context/steps/step-02-generate.md +3 -3
  331. package/src/modules/bmm/workflows/generate-project-context/steps/step-03-complete.md +2 -2
  332. package/src/modules/bmm/workflows/generate-project-context/workflow.md +5 -5
  333. package/src/modules/bmm/workflows/testarch/atdd/instructions.md +2 -2
  334. package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +2 -2
  335. package/src/modules/bmm/workflows/testarch/automate/instructions.md +2 -2
  336. package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +2 -2
  337. package/src/modules/bmm/workflows/testarch/ci/instructions.md +1 -1
  338. package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +2 -2
  339. package/src/modules/bmm/workflows/testarch/framework/instructions.md +3 -3
  340. package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +2 -2
  341. package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +1 -1
  342. package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +2 -2
  343. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +3 -3
  344. package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +1 -1
  345. package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +10 -4
  346. package/src/modules/bmm/workflows/testarch/test-review/instructions.md +1 -1
  347. package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +2 -2
  348. package/src/modules/bmm/workflows/testarch/trace/instructions.md +6 -6
  349. package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +2 -2
  350. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +1 -1
  351. package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +4 -4
  352. package/src/modules/bmm/workflows/workflow-status/instructions.md +3 -3
  353. package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +1 -1
  354. package/src/modules/bmm/workflows/workflow-status/workflow.yaml +2 -2
  355. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +4 -4
  356. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +4 -4
  357. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +4 -4
  358. package/src/modules/cis/agents/innovation-strategist.agent.yaml +4 -4
  359. package/src/modules/cis/agents/presentation-master.agent.yaml +3 -3
  360. package/src/modules/cis/agents/storyteller/storyteller-sidecar/stories-told.md +7 -0
  361. package/src/modules/cis/agents/storyteller/storyteller-sidecar/story-preferences.md +7 -0
  362. package/src/modules/cis/agents/{storyteller.agent.yaml → storyteller/storyteller.agent.yaml} +9 -4
  363. package/src/modules/cis/module.yaml +3 -8
  364. package/src/modules/cis/{README.md → readme.md} +1 -1
  365. package/src/modules/cis/workflows/README.md +1 -1
  366. package/src/modules/cis/workflows/design-thinking/instructions.md +2 -2
  367. package/src/modules/cis/workflows/design-thinking/workflow.yaml +7 -7
  368. package/src/modules/cis/workflows/innovation-strategy/instructions.md +2 -2
  369. package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +7 -7
  370. package/src/modules/cis/workflows/problem-solving/instructions.md +2 -2
  371. package/src/modules/cis/workflows/problem-solving/workflow.yaml +7 -7
  372. package/src/modules/cis/workflows/storytelling/instructions.md +2 -2
  373. package/src/modules/cis/workflows/storytelling/workflow.yaml +7 -7
  374. package/src/utility/agent-components/activation-rules.txt +7 -0
  375. package/src/utility/agent-components/activation-steps.txt +13 -0
  376. package/src/utility/agent-components/agent-command-header.md +1 -0
  377. package/src/utility/{templates → agent-components}/agent.customize.template.yaml +0 -1
  378. package/src/utility/agent-components/handler-action.txt +4 -0
  379. package/src/utility/agent-components/handler-exec.txt +6 -0
  380. package/src/utility/agent-components/handler-multi.txt +14 -0
  381. package/src/utility/agent-components/handler-tmpl.txt +5 -0
  382. package/src/utility/agent-components/handler-validate-workflow.txt +7 -0
  383. package/src/utility/agent-components/handler-workflow.txt +10 -0
  384. package/src/utility/agent-components/menu-handlers.txt +6 -0
  385. package/test/README.md +1 -1
  386. package/test/test-agent-schema.js +2 -2
  387. package/tools/cli/README.md +1 -607
  388. package/tools/cli/commands/build.js +7 -7
  389. package/tools/cli/commands/install.js +9 -20
  390. package/tools/cli/commands/list.js +13 -1
  391. package/tools/cli/installers/lib/core/config-collector.js +243 -73
  392. package/tools/cli/installers/lib/core/custom-module-cache.js +36 -16
  393. package/tools/cli/installers/lib/core/dependency-resolver.js +2 -2
  394. package/tools/cli/installers/lib/core/detector.js +16 -16
  395. package/tools/cli/installers/lib/core/ide-config-manager.js +9 -7
  396. package/tools/cli/installers/lib/core/installer.js +595 -1006
  397. package/tools/cli/installers/lib/core/manifest-generator.js +43 -40
  398. package/tools/cli/installers/lib/core/manifest.js +23 -20
  399. package/tools/cli/installers/lib/custom/handler.js +16 -49
  400. package/tools/cli/installers/lib/ide/_base-ide.js +26 -33
  401. package/tools/cli/installers/lib/ide/antigravity.js +3 -3
  402. package/tools/cli/installers/lib/ide/claude-code.js +3 -3
  403. package/tools/cli/installers/lib/ide/codex.js +2 -2
  404. package/tools/cli/installers/lib/ide/gemini.js +6 -6
  405. package/tools/cli/installers/lib/ide/kiro-cli.js +2 -2
  406. package/tools/cli/installers/lib/ide/opencode.js +2 -2
  407. package/tools/cli/installers/lib/ide/roo.js +15 -5
  408. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +2 -2
  409. package/tools/cli/installers/lib/ide/shared/module-injections.js +2 -2
  410. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +2 -2
  411. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +4 -4
  412. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +1 -1
  413. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +3 -3
  414. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +3 -3
  415. package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +1 -1
  416. package/tools/cli/installers/lib/modules/manager.js +304 -313
  417. package/tools/cli/lib/activation-builder.js +8 -13
  418. package/tools/cli/lib/agent/compiler.js +68 -168
  419. package/tools/cli/lib/agent/installer.js +8 -128
  420. package/tools/cli/lib/agent-analyzer.js +2 -2
  421. package/tools/cli/lib/agent-party-generator.js +5 -17
  422. package/tools/cli/lib/config.js +2 -2
  423. package/tools/cli/lib/platform-codes.js +2 -2
  424. package/tools/cli/lib/ui.js +610 -551
  425. package/tools/cli/lib/xml-handler.js +3 -55
  426. package/tools/cli/lib/yaml-format.js +4 -6
  427. package/tools/cli/lib/yaml-xml-builder.js +14 -26
  428. package/tools/flattener/ignoreRules.js +1 -1
  429. package/tools/flattener/xml.js +1 -7
  430. package/tools/lib/xml-utils.js +13 -0
  431. package/tools/migrate-custom-module-paths.js +2 -2
  432. package/tools/validate-agent-schema.js +2 -2
  433. package/docs/v6-open-items.md +0 -17
  434. package/example-custom-content/README.md +0 -8
  435. package/example-custom-module/mwm/README.md +0 -9
  436. package/example-custom-module/mwm/agents/cbt-coach/cbt-coach-sidecar/cognitive-distortions.md +0 -47
  437. package/example-custom-module/mwm/agents/cbt-coach/cbt-coach-sidecar/thought-records.md +0 -17
  438. package/example-custom-module/mwm/agents/cbt-coach/cbt-coach.agent.yaml +0 -151
  439. package/example-custom-module/mwm/agents/crisis-navigator.agent.yaml +0 -138
  440. package/example-custom-module/mwm/module.yaml +0 -28
  441. package/example-custom-module/mwm/workflows/cbt-thought-record/README.md +0 -31
  442. package/example-custom-module/mwm/workflows/cbt-thought-record/workflow.md +0 -45
  443. package/example-custom-module/mwm/workflows/crisis-support/README.md +0 -31
  444. package/example-custom-module/mwm/workflows/crisis-support/workflow.md +0 -45
  445. package/src/core/agents/bmad-web-orchestrator.agent.xml +0 -113
  446. package/src/modules/bmb/_module-installer/installer.js +0 -76
  447. package/src/modules/bmb/docs/agents/module-agent-architecture.md +0 -367
  448. package/src/modules/bmb/workflows/create-agent/steps/step-08-setup.md +0 -179
  449. package/src/modules/bmb/workflows/create-agent/steps/step-09-customize.md +0 -197
  450. package/src/modules/bmb/workflows/create-agent/steps/step-10-build-tools.md +0 -180
  451. package/src/modules/bmb/workflows/create-agent/templates/agent_commands.md +0 -21
  452. package/src/modules/bmb/workflows/create-agent/templates/agent_persona.md +0 -25
  453. package/src/modules/bmb/workflows/create-agent/templates/agent_purpose_and_type.md +0 -23
  454. package/src/modules/bmm/tasks/daily-standup.xml +0 -85
  455. package/src/modules/cis/agents/README.md +0 -104
  456. package/src/utility/models/action-command-header.md +0 -0
  457. package/src/utility/models/agent-activation-ide.xml +0 -51
  458. package/src/utility/models/agent-activation-web.xml +0 -50
  459. package/src/utility/models/agent-command-header.md +0 -1
  460. package/src/utility/models/agent-config-template.md +0 -23
  461. package/src/utility/models/agent-in-team-activation.xml +0 -3
  462. package/src/utility/models/fragments/activation-rules.xml +0 -7
  463. package/src/utility/models/fragments/activation-steps.xml +0 -16
  464. package/src/utility/models/fragments/handler-action.xml +0 -4
  465. package/src/utility/models/fragments/handler-exec.xml +0 -6
  466. package/src/utility/models/fragments/handler-multi.xml +0 -14
  467. package/src/utility/models/fragments/handler-tmpl.xml +0 -5
  468. package/src/utility/models/fragments/handler-validate-workflow.xml +0 -7
  469. package/src/utility/models/fragments/handler-workflow.xml +0 -9
  470. package/src/utility/models/fragments/menu-handlers.xml +0 -6
  471. package/src/utility/models/fragments/web-bundle-activation-steps.xml +0 -32
  472. package/tools/cli/bundlers/bundle-web.js +0 -179
  473. package/tools/cli/bundlers/test-analyst.js +0 -28
  474. package/tools/cli/bundlers/test-bundler.js +0 -118
  475. package/tools/cli/bundlers/web-bundler.js +0 -1764
  476. package/tools/cli/installers/lib/core/post-install-sidecar-replacement.js +0 -79
  477. package/tools/cli/lib/replace-project-root.js +0 -239
  478. package/tools/cli/regenerate-manifests.js +0 -28
  479. package/tools/cli/test-yaml-builder.js +0 -43
  480. /package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/agents/toolsmith/toolsmith-sidecar/instructions.md +0 -0
  481. /package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/agents/toolsmith/toolsmith-sidecar/knowledge/bundlers.md +0 -0
  482. /package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/agents/toolsmith/toolsmith-sidecar/knowledge/deploy.md +0 -0
  483. /package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/agents/toolsmith/toolsmith-sidecar/knowledge/docs.md +0 -0
  484. /package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +0 -0
  485. /package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +0 -0
  486. /package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/agents/toolsmith/toolsmith-sidecar/knowledge/tests.md +0 -0
  487. /package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/agents/toolsmith/toolsmith-sidecar/memories.md +0 -0
  488. /package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/workflows/quiz-master/templates/csv-headers.template +0 -0
  489. /package/{example-custom-content → docs/sample-custom-modules/sample-unitary-module}/workflows/wassup/workflow.md +0 -0
  490. /package/{example-custom-module/mwm → docs/sample-custom-modules/sample-wellness-module}/agents/wellness-companion/wellness-companion-sidecar/insights.md +0 -0
  491. /package/{example-custom-module/mwm → docs/sample-custom-modules/sample-wellness-module}/agents/wellness-companion/wellness-companion-sidecar/instructions.md +0 -0
  492. /package/{example-custom-module/mwm → docs/sample-custom-modules/sample-wellness-module}/agents/wellness-companion/wellness-companion-sidecar/memories.md +0 -0
  493. /package/{example-custom-module/mwm → docs/sample-custom-modules/sample-wellness-module}/agents/wellness-companion/wellness-companion-sidecar/patterns.md +0 -0
  494. /package/{example-custom-module/mwm → docs/sample-custom-modules/sample-wellness-module}/workflows/daily-checkin/README.md +0 -0
  495. /package/{example-custom-module/mwm → docs/sample-custom-modules/sample-wellness-module}/workflows/daily-checkin/workflow.md +0 -0
  496. /package/{example-custom-module/mwm → docs/sample-custom-modules/sample-wellness-module}/workflows/guided-meditation/README.md +0 -0
  497. /package/{example-custom-module/mwm → docs/sample-custom-modules/sample-wellness-module}/workflows/guided-meditation/workflow.md +0 -0
  498. /package/{example-custom-module/mwm → docs/sample-custom-modules/sample-wellness-module}/workflows/wellness-journal/README.md +0 -0
  499. /package/src/modules/bmgd/workflows/4-production/code-review/{backlog_template.md → backlog-template.md} +0 -0
  500. /package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/product-brief.template.md +0 -0
  501. /package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/templates/readiness-report-template.md +0 -0
  502. /package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/architecture-decision-template.md +0 -0
  503. /package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/data/domain-complexity.csv +0 -0
  504. /package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/data/project-types.csv +0 -0
  505. /package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-01b-continue.md +0 -0
  506. /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/_shared/excalidraw-library.json +0 -0
  507. /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/_shared/excalidraw-templates.yaml +0 -0
  508. /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-dataflow/checklist.md +0 -0
  509. /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-diagram/checklist.md +0 -0
  510. /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-flowchart/checklist.md +0 -0
  511. /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-wireframe/checklist.md +0 -0
  512. /package/src/utility/{models/fragments/handler-data.xml → agent-components/handler-data.txt} +0 -0
@@ -7,13 +7,13 @@ const { getSourcePath } = require('./project-root');
7
7
  */
8
8
  class ActivationBuilder {
9
9
  constructor() {
10
- this.fragmentsDir = getSourcePath('utility', 'models', 'fragments');
10
+ this.agentComponents = getSourcePath('utility', 'agent-components');
11
11
  this.fragmentCache = new Map();
12
12
  }
13
13
 
14
14
  /**
15
15
  * Load a fragment file
16
- * @param {string} fragmentName - Name of fragment file (e.g., 'activation-init.xml')
16
+ * @param {string} fragmentName - Name of fragment file (e.g., 'activation-init.txt')
17
17
  * @returns {string} Fragment content
18
18
  */
19
19
  async loadFragment(fragmentName) {
@@ -22,7 +22,7 @@ class ActivationBuilder {
22
22
  return this.fragmentCache.get(fragmentName);
23
23
  }
24
24
 
25
- const fragmentPath = path.join(this.fragmentsDir, fragmentName);
25
+ const fragmentPath = path.join(this.agentComponents, fragmentName);
26
26
 
27
27
  if (!(await fs.pathExists(fragmentPath))) {
28
28
  throw new Error(`Fragment not found: ${fragmentName}`);
@@ -49,7 +49,7 @@ class ActivationBuilder {
49
49
  activation += this.indent(steps, 2) + '\n';
50
50
 
51
51
  // 2. Build menu handlers section with dynamic handlers
52
- const menuHandlers = await this.loadFragment('menu-handlers.xml');
52
+ const menuHandlers = await this.loadFragment('menu-handlers.txt');
53
53
 
54
54
  // Build handlers (load only needed handlers)
55
55
  const handlers = await this.buildHandlers(profile);
@@ -63,11 +63,8 @@ class ActivationBuilder {
63
63
 
64
64
  activation += '\n' + this.indent(processedHandlers, 2) + '\n';
65
65
 
66
- // 3. Include rules (skip for web bundles as they're in web-bundle-activation-steps.xml)
67
- if (!forWebBundle) {
68
- const rules = await this.loadFragment('activation-rules.xml');
69
- activation += this.indent(rules, 2) + '\n';
70
- }
66
+ const rules = await this.loadFragment('activation-rules.txt');
67
+ activation += this.indent(rules, 2) + '\n';
71
68
 
72
69
  activation += '</activation>';
73
70
 
@@ -83,7 +80,7 @@ class ActivationBuilder {
83
80
  const handlerFragments = [];
84
81
 
85
82
  for (const attrType of profile.usedAttributes) {
86
- const fragmentName = `handler-${attrType}.xml`;
83
+ const fragmentName = `handler-${attrType}.txt`;
87
84
  try {
88
85
  const handler = await this.loadFragment(fragmentName);
89
86
  handlerFragments.push(handler);
@@ -103,9 +100,7 @@ class ActivationBuilder {
103
100
  * @returns {string} Steps XML
104
101
  */
105
102
  async buildSteps(metadata = {}, agentSpecificActions = [], forWebBundle = false) {
106
- // Use web-specific fragment for web bundles, standard fragment otherwise
107
- const fragmentName = forWebBundle ? 'web-bundle-activation-steps.xml' : 'activation-steps.xml';
108
- const stepsTemplate = await this.loadFragment(fragmentName);
103
+ const stepsTemplate = await this.loadFragment('activation-steps.txt');
109
104
 
110
105
  // Extract basename from agent ID (e.g., "bmad/bmm/agents/pm.md" → "pm")
111
106
  const agentBasename = metadata.id ? metadata.id.split('/').pop().replace('.md', '') : metadata.name || 'agent';
@@ -8,22 +8,9 @@ const yaml = require('yaml');
8
8
  const fs = require('node:fs');
9
9
  const path = require('node:path');
10
10
  const { processAgentYaml, extractInstallConfig, stripInstallConfig, getDefaultValues } = require('./template-engine');
11
-
12
- // Use existing BMAD builder if available
13
- let YamlXmlBuilder;
14
- try {
15
- YamlXmlBuilder = require('../../lib/yaml-xml-builder').YamlXmlBuilder;
16
- } catch {
17
- YamlXmlBuilder = null;
18
- }
19
-
20
- /**
21
- * Escape XML special characters
22
- */
23
- function escapeXml(text) {
24
- if (!text) return '';
25
- return text.replaceAll('&', '&amp;').replaceAll('<', '&lt;').replaceAll('>', '&gt;').replaceAll('"', '&quot;').replaceAll("'", '&apos;');
26
- }
11
+ const { escapeXml } = require('../../../lib/xml-utils');
12
+ const { ActivationBuilder } = require('../activation-builder');
13
+ const { AgentAnalyzer } = require('../agent-analyzer');
27
14
 
28
15
  /**
29
16
  * Build frontmatter for agent
@@ -45,137 +32,7 @@ You must fully embody this agent's persona and follow all activation instruction
45
32
  `;
46
33
  }
47
34
 
48
- /**
49
- * Build simple activation block for custom agents
50
- * @param {Array} criticalActions - Agent-specific critical actions
51
- * @param {Array} menuItems - Menu items to determine which handlers to include
52
- * @param {string} deploymentType - 'ide' or 'web' - filters commands based on ide-only/web-only flags
53
- * @returns {string} Activation XML
54
- */
55
- function buildSimpleActivation(criticalActions = [], menuItems = [], deploymentType = 'ide') {
56
- let activation = '<activation critical="MANDATORY">\n';
57
-
58
- let stepNum = 1;
59
-
60
- // Standard steps
61
- activation += ` <step n="${stepNum++}">Load persona from this current agent file (already in context)</step>\n`;
62
- activation += ` <step n="${stepNum++}">Load and read {project-root}/{bmad_folder}/core/config.yaml to get {user_name}, {communication_language}, {output_folder}</step>\n`;
63
- activation += ` <step n="${stepNum++}">Remember: user's name is {user_name}</step>\n`;
64
-
65
- // Agent-specific steps from critical_actions
66
- for (const action of criticalActions) {
67
- activation += ` <step n="${stepNum++}">${action}</step>\n`;
68
- }
69
-
70
- // Menu and interaction steps
71
- activation += ` <step n="${stepNum++}">ALWAYS communicate in {communication_language}</step>\n`;
72
- activation += ` <step n="${stepNum++}">Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of
73
- ALL menu items from menu section</step>\n`;
74
- activation += ` <step n="${stepNum++}">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or cmd trigger or fuzzy command
75
- match</step>\n`;
76
- activation += ` <step n="${stepNum++}">On user input: Number → execute menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user
77
- to clarify | No match → show "Not recognized"</step>\n`;
78
-
79
- // Filter menu items based on deployment type
80
- const filteredMenuItems = menuItems.filter((item) => {
81
- // Skip web-only commands for IDE deployment
82
- if (deploymentType === 'ide' && item['web-only'] === true) {
83
- return false;
84
- }
85
- // Skip ide-only commands for web deployment
86
- if (deploymentType === 'web' && item['ide-only'] === true) {
87
- return false;
88
- }
89
- return true;
90
- });
91
-
92
- // Detect which handlers are actually used in the filtered menu
93
- const usedHandlers = new Set();
94
- for (const item of filteredMenuItems) {
95
- if (item.action) usedHandlers.add('action');
96
- if (item.workflow) usedHandlers.add('workflow');
97
- if (item.exec) usedHandlers.add('exec');
98
- if (item.tmpl) usedHandlers.add('tmpl');
99
- if (item.data) usedHandlers.add('data');
100
- if (item['validate-workflow']) usedHandlers.add('validate-workflow');
101
- }
102
-
103
- // Only include menu-handlers section if handlers are used
104
- if (usedHandlers.size > 0) {
105
- activation += ` <step n="${stepNum++}">When executing a menu item: Check menu-handlers section below - extract any attributes from the selected menu item and follow the corresponding handler instructions</step>\n`;
106
-
107
- // Menu handlers - only include what's used
108
- activation += `
109
- <menu-handlers>
110
- <handlers>\n`;
111
-
112
- if (usedHandlers.has('action')) {
113
- activation += ` <handler type="action">
114
- When menu item has: action="#id" → Find prompt with id="id" in current agent XML, execute its content
115
- When menu item has: action="text" → Execute the text directly as an inline instruction
116
- </handler>\n`;
117
- }
118
-
119
- if (usedHandlers.has('workflow')) {
120
- activation += ` <handler type="workflow">
121
- When menu item has: workflow="path/to/workflow.yaml"
122
- 1. CRITICAL: Always LOAD {project-root}/{bmad_folder}/core/tasks/workflow.xml
123
- 2. Read the complete file - this is the CORE OS for executing BMAD workflows
124
- 3. Pass the yaml path as 'workflow-config' parameter to those instructions
125
- 4. Execute workflow.xml instructions precisely following all steps
126
- 5. Save outputs after completing EACH workflow step (never batch multiple steps together)
127
- 6. If workflow.yaml path is "todo", inform user the workflow hasn't been implemented yet
128
- </handler>\n`;
129
- }
130
-
131
- if (usedHandlers.has('exec')) {
132
- activation += ` <handler type="exec">
133
- When menu item has: exec="command" → Execute the command directly
134
- </handler>\n`;
135
- }
136
-
137
- if (usedHandlers.has('tmpl')) {
138
- activation += ` <handler type="tmpl">
139
- When menu item has: tmpl="template-path" → Load and apply the template
140
- </handler>\n`;
141
- }
142
-
143
- if (usedHandlers.has('data')) {
144
- activation += ` <handler type="data">
145
- When menu item has: data="path/to/x.json|yaml|yml"
146
- Load the file, parse as JSON/YAML, make available as {data} to subsequent operations
147
- </handler>\n`;
148
- }
149
-
150
- if (usedHandlers.has('validate-workflow')) {
151
- activation += ` <handler type="validate-workflow">
152
- When menu item has: validate-workflow="path/to/workflow.yaml"
153
- 1. CRITICAL: Always LOAD {project-root}/{bmad_folder}/core/tasks/validate-workflow.xml
154
- 2. Read the complete file - this is the CORE OS for validating BMAD workflows
155
- 3. Pass the workflow.yaml path as 'workflow' parameter to those instructions
156
- 4. Pass any checklist.md from the workflow location as 'checklist' parameter if available
157
- 5. Execute validate-workflow.xml instructions precisely following all steps
158
- 6. Generate validation report with thorough analysis
159
- </handler>\n`;
160
- }
161
-
162
- activation += ` </handlers>
163
- </menu-handlers>\n`;
164
- }
165
-
166
- activation += `
167
- <rules>
168
- - ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style
169
- - Stay in character until exit selected
170
- - Menu triggers use asterisk (*) - NOT markdown, display exactly as shown
171
- - Number all lists, use letters for sub-options
172
- - Load files ONLY when executing menu items or a workflow or command requires it. EXCEPTION: Config file MUST be loaded at startup step 2
173
- - CRITICAL: Written File Output in workflows will be +2sd your communication style and use professional {communication_language}.
174
- </rules>
175
- </activation>\n`;
176
-
177
- return activation;
178
- }
35
+ // buildSimpleActivation function removed - replaced by ActivationBuilder for proper fragment loading from src/utility/agent-components/
179
36
 
180
37
  /**
181
38
  * Build persona XML section
@@ -385,9 +242,9 @@ function processExecArray(execArray) {
385
242
  * @param {Object} agentYaml - Parsed and processed agent YAML
386
243
  * @param {string} agentName - Final agent name (for ID and frontmatter)
387
244
  * @param {string} targetPath - Target path for agent ID
388
- * @returns {string} Compiled XML string with frontmatter
245
+ * @returns {Promise<string>} Compiled XML string with frontmatter
389
246
  */
390
- function compileToXml(agentYaml, agentName = '', targetPath = '') {
247
+ async function compileToXml(agentYaml, agentName = '', targetPath = '') {
391
248
  const agent = agentYaml.agent;
392
249
  const meta = agent.metadata;
393
250
 
@@ -409,8 +266,16 @@ function compileToXml(agentYaml, agentName = '', targetPath = '') {
409
266
 
410
267
  xml += `<agent ${agentAttrs.join(' ')}>\n`;
411
268
 
412
- // Activation block - pass menu items and deployment type to determine which handlers to include
413
- xml += buildSimpleActivation(agent.critical_actions || [], agent.menu || [], 'ide');
269
+ // Activation block - use ActivationBuilder for proper fragment loading
270
+ const activationBuilder = new ActivationBuilder();
271
+ const analyzer = new AgentAnalyzer();
272
+ const profile = analyzer.analyzeAgentObject(agentYaml);
273
+ xml += await activationBuilder.buildActivation(
274
+ profile,
275
+ meta,
276
+ agent.critical_actions || [],
277
+ false, // forWebBundle - set to false for IDE deployment
278
+ );
414
279
 
415
280
  // Persona section
416
281
  xml += buildPersonaXml(agent.persona);
@@ -439,15 +304,24 @@ function compileToXml(agentYaml, agentName = '', targetPath = '') {
439
304
  * @param {string} agentName - Optional final agent name (user's custom persona name)
440
305
  * @param {string} targetPath - Optional target path for agent ID
441
306
  * @param {Object} options - Additional options including config
442
- * @returns {Object} { xml: string, metadata: Object }
307
+ * @returns {Promise<Object>} { xml: string, metadata: Object }
443
308
  */
444
- function compileAgent(yamlContent, answers = {}, agentName = '', targetPath = '', options = {}) {
309
+ async function compileAgent(yamlContent, answers = {}, agentName = '', targetPath = '', options = {}) {
445
310
  // Parse YAML
446
- const agentYaml = yaml.parse(yamlContent);
447
-
448
- // Note: agentName parameter is for UI display only, not for modifying the YAML
449
- // The persona name (metadata.name) should always come from the YAML file
450
- // We should NEVER modify metadata.name as it's part of the agent's identity
311
+ let agentYaml = yaml.parse(yamlContent);
312
+
313
+ // Apply customization merges before template processing
314
+ // Handle metadata overrides (like name)
315
+ if (answers.metadata) {
316
+ // Filter out empty values from metadata
317
+ const filteredMetadata = filterCustomizationData(answers.metadata);
318
+ if (Object.keys(filteredMetadata).length > 0) {
319
+ agentYaml.agent.metadata = { ...agentYaml.agent.metadata, ...filteredMetadata };
320
+ }
321
+ // Remove from answers so it doesn't get processed as template variables
322
+ const { metadata, ...templateAnswers } = answers;
323
+ answers = templateAnswers;
324
+ }
451
325
 
452
326
  // Extract install_config
453
327
  const installConfig = extractInstallConfig(agentYaml);
@@ -459,21 +333,17 @@ function compileAgent(yamlContent, answers = {}, agentName = '', targetPath = ''
459
333
  finalAnswers = { ...defaults, ...answers };
460
334
  }
461
335
 
462
- // Add agent_sidecar_folder to answers if provided in config
463
- if (options.config && options.config.agent_sidecar_folder) {
464
- finalAnswers.agent_sidecar_folder = options.config.agent_sidecar_folder;
465
- }
466
-
467
336
  // Process templates with answers
468
337
  const processedYaml = processAgentYaml(agentYaml, finalAnswers);
469
338
 
470
339
  // Strip install_config from output
471
340
  const cleanYaml = stripInstallConfig(processedYaml);
472
341
 
473
- // Replace {agent_sidecar_folder} in XML content
474
- let xml = compileToXml(cleanYaml, agentName, targetPath);
475
- if (finalAnswers.agent_sidecar_folder) {
476
- xml = xml.replaceAll('{agent_sidecar_folder}', finalAnswers.agent_sidecar_folder);
342
+ let xml = await compileToXml(cleanYaml, agentName, targetPath);
343
+
344
+ // Ensure xml is a string before attempting replaceAll
345
+ if (typeof xml !== 'string') {
346
+ throw new TypeError('compileToXml did not return a string');
477
347
  }
478
348
 
479
349
  return {
@@ -483,6 +353,36 @@ function compileAgent(yamlContent, answers = {}, agentName = '', targetPath = ''
483
353
  };
484
354
  }
485
355
 
356
+ /**
357
+ * Filter customization data to remove empty/null values
358
+ * @param {Object} data - Raw customization data
359
+ * @returns {Object} Filtered customization data
360
+ */
361
+ function filterCustomizationData(data) {
362
+ const filtered = {};
363
+
364
+ for (const [key, value] of Object.entries(data)) {
365
+ if (value === null || value === undefined || value === '') {
366
+ continue; // Skip null/undefined/empty values
367
+ }
368
+
369
+ if (Array.isArray(value)) {
370
+ if (value.length > 0) {
371
+ filtered[key] = value;
372
+ }
373
+ } else if (typeof value === 'object') {
374
+ const nested = filterCustomizationData(value);
375
+ if (Object.keys(nested).length > 0) {
376
+ filtered[key] = nested;
377
+ }
378
+ } else {
379
+ filtered[key] = value;
380
+ }
381
+ }
382
+
383
+ return filtered;
384
+ }
385
+
486
386
  /**
487
387
  * Process TTS injection markers in content
488
388
  * @param {string} content - Content to process
@@ -558,8 +458,8 @@ module.exports = {
558
458
  compileAgentFile,
559
459
  escapeXml,
560
460
  buildFrontmatter,
561
- buildSimpleActivation,
562
461
  buildPersonaXml,
563
462
  buildPromptsXml,
564
463
  buildMenuXml,
464
+ filterCustomizationData,
565
465
  };
@@ -17,7 +17,7 @@ const { extractInstallConfig, getDefaultValues } = require('./template-engine');
17
17
  */
18
18
  function findBmadConfig(startPath = process.cwd()) {
19
19
  // Look for common BMAD folder names
20
- const possibleNames = ['.bmad', 'bmad', '.bmad-method'];
20
+ const possibleNames = ['_bmad'];
21
21
 
22
22
  for (const name of possibleNames) {
23
23
  const configPath = path.join(startPath, name, 'bmb', 'config.yaml');
@@ -42,7 +42,7 @@ function findBmadConfig(startPath = process.cwd()) {
42
42
  * @returns {string} Resolved path
43
43
  */
44
44
  function resolvePath(pathStr, context) {
45
- return pathStr.replaceAll('{project-root}', context.projectRoot).replaceAll('{bmad-folder}', context.bmadFolder);
45
+ return pathStr.replaceAll('{project-root}', context.projectRoot).replaceAll('{bmad-folder}', context_bmadFolder);
46
46
  }
47
47
 
48
48
  /**
@@ -262,129 +262,11 @@ function installAgent(agentInfo, answers, targetPath, options = {}) {
262
262
  agentName: metadata.name || agentInfo.name,
263
263
  targetDir: agentTargetDir,
264
264
  compiledFile: compiledPath,
265
- sidecarCopied: false,
266
265
  };
267
266
 
268
- // Handle sidecar files for agents with hasSidecar flag
269
- if (agentInfo.hasSidecar === true && agentInfo.type === 'expert') {
270
- // Get agent sidecar folder from config or use default
271
- const agentSidecarFolder = options.config?.agent_sidecar_folder || '{project-root}/.myagent-data';
272
-
273
- // Resolve path variables
274
- const resolvedSidecarFolder = agentSidecarFolder
275
- .replaceAll('{project-root}', options.projectRoot || process.cwd())
276
- .replaceAll('{bmad_folder}', options.bmadFolder || '.bmad');
277
-
278
- // Create sidecar directory for this agent
279
- const agentSidecarDir = path.join(resolvedSidecarFolder, agentFolderName);
280
- if (!fs.existsSync(agentSidecarDir)) {
281
- fs.mkdirSync(agentSidecarDir, { recursive: true });
282
- }
283
-
284
- // Find and copy sidecar folder
285
- const sidecarFiles = copyAgentSidecarFiles(agentInfo.path, agentSidecarDir, agentInfo.yamlFile);
286
- result.sidecarCopied = true;
287
- result.sidecarFiles = sidecarFiles;
288
- result.sidecarDir = agentSidecarDir;
289
- }
290
-
291
267
  return result;
292
268
  }
293
269
 
294
- /**
295
- * Recursively copy sidecar files (everything except the .agent.yaml)
296
- * @param {string} sourceDir - Source agent directory
297
- * @param {string} targetDir - Target agent directory
298
- * @param {string} excludeYaml - The .agent.yaml file to exclude
299
- * @returns {Array} List of copied files
300
- */
301
- function copySidecarFiles(sourceDir, targetDir, excludeYaml) {
302
- const copied = [];
303
-
304
- function copyDir(src, dest) {
305
- if (!fs.existsSync(dest)) {
306
- fs.mkdirSync(dest, { recursive: true });
307
- }
308
-
309
- const entries = fs.readdirSync(src, { withFileTypes: true });
310
- for (const entry of entries) {
311
- const srcPath = path.join(src, entry.name);
312
- const destPath = path.join(dest, entry.name);
313
-
314
- // Skip the source YAML file
315
- if (srcPath === excludeYaml) {
316
- continue;
317
- }
318
-
319
- if (entry.isDirectory()) {
320
- copyDir(srcPath, destPath);
321
- } else {
322
- fs.copyFileSync(srcPath, destPath);
323
- copied.push(destPath);
324
- }
325
- }
326
- }
327
-
328
- copyDir(sourceDir, targetDir);
329
- return copied;
330
- }
331
-
332
- /**
333
- * Find and copy agent sidecar folders
334
- * @param {string} sourceDir - Source agent directory
335
- * @param {string} targetSidecarDir - Target sidecar directory for the agent
336
- * @param {string} excludeYaml - The .agent.yaml file to exclude
337
- * @returns {Array} List of copied files
338
- */
339
- function copyAgentSidecarFiles(sourceDir, targetSidecarDir, excludeYaml) {
340
- const copied = [];
341
- const preserved = [];
342
-
343
- // Find folders with "sidecar" in the name
344
- const entries = fs.readdirSync(sourceDir, { withFileTypes: true });
345
-
346
- for (const entry of entries) {
347
- if (entry.isDirectory() && entry.name.toLowerCase().includes('sidecar')) {
348
- const sidecarSourcePath = path.join(sourceDir, entry.name);
349
-
350
- // Recursively sync the sidecar folder contents (preserve existing, add new)
351
- function syncSidecarDir(src, dest) {
352
- if (!fs.existsSync(dest)) {
353
- fs.mkdirSync(dest, { recursive: true });
354
- }
355
-
356
- // Get all files in source
357
- const sourceEntries = fs.readdirSync(src, { withFileTypes: true });
358
-
359
- for (const sourceEntry of sourceEntries) {
360
- const srcPath = path.join(src, sourceEntry.name);
361
- const destPath = path.join(dest, sourceEntry.name);
362
-
363
- if (sourceEntry.isDirectory()) {
364
- // Recursively sync subdirectories
365
- syncSidecarDir(srcPath, destPath);
366
- } else {
367
- // Check if file already exists in destination
368
- if (fs.existsSync(destPath)) {
369
- // File exists - preserve it
370
- preserved.push(destPath);
371
- } else {
372
- // File doesn't exist - copy it
373
- fs.copyFileSync(srcPath, destPath);
374
- copied.push(destPath);
375
- }
376
- }
377
- }
378
- }
379
-
380
- syncSidecarDir(sidecarSourcePath, targetSidecarDir);
381
- }
382
- }
383
-
384
- // Return info about what was preserved and what was copied
385
- return { copied, preserved };
386
- }
387
-
388
270
  /**
389
271
  * Update agent metadata ID to reflect installed location
390
272
  * @param {string} compiledContent - Compiled XML content
@@ -407,10 +289,10 @@ function detectBmadProject(targetPath) {
407
289
 
408
290
  // Walk up directory tree looking for BMAD installation
409
291
  while (checkPath !== root) {
410
- const possibleNames = ['.bmad', 'bmad'];
292
+ const possibleNames = ['_bmad'];
411
293
  for (const name of possibleNames) {
412
294
  const bmadFolder = path.join(checkPath, name);
413
- const cfgFolder = path.join(bmadFolder, '_cfg');
295
+ const cfgFolder = path.join(bmadFolder, '_config');
414
296
  const manifestFile = path.join(cfgFolder, 'agent-manifest.csv');
415
297
 
416
298
  if (fs.existsSync(manifestFile)) {
@@ -596,16 +478,16 @@ function addToManifest(manifestFile, agentData) {
596
478
  }
597
479
 
598
480
  /**
599
- * Save agent source YAML to _cfg/custom/agents/ for reinstallation
481
+ * Save agent source YAML to _config/custom/agents/ for reinstallation
600
482
  * Stores user answers in a top-level saved_answers section (cleaner than overwriting defaults)
601
483
  * @param {Object} agentInfo - Agent info (path, type, etc.)
602
- * @param {string} cfgFolder - Path to _cfg folder
484
+ * @param {string} cfgFolder - Path to _config folder
603
485
  * @param {string} agentName - Final agent name (e.g., "fred-commit-poet")
604
486
  * @param {Object} answers - User answers to save for reinstallation
605
487
  * @returns {Object} Info about saved source
606
488
  */
607
489
  function saveAgentSource(agentInfo, cfgFolder, agentName, answers = {}) {
608
- // Save to _cfg/custom/agents/ instead of _cfg/agents/
490
+ // Save to _config/custom/agents/ instead of _config/agents/
609
491
  const customAgentsCfgDir = path.join(cfgFolder, 'custom', 'agents');
610
492
 
611
493
  if (!fs.existsSync(customAgentsCfgDir)) {
@@ -689,7 +571,7 @@ function saveAgentSource(agentInfo, cfgFolder, agentName, answers = {}) {
689
571
  */
690
572
  async function createIdeSlashCommands(projectRoot, agentName, agentPath, metadata) {
691
573
  // Read manifest.yaml to get installed IDEs
692
- const manifestPath = path.join(projectRoot, '.bmad', '_cfg', 'manifest.yaml');
574
+ const manifestPath = path.join(projectRoot, '_bmad', '_config', 'manifest.yaml');
693
575
  let installedIdes = ['claude-code']; // Default to Claude Code if no manifest
694
576
 
695
577
  if (fs.existsSync(manifestPath)) {
@@ -820,8 +702,6 @@ module.exports = {
820
702
  loadAgentConfig,
821
703
  promptInstallQuestions,
822
704
  installAgent,
823
- copySidecarFiles,
824
- copyAgentSidecarFiles,
825
705
  updateAgentId,
826
706
  detectBmadProject,
827
707
  addToManifest,
@@ -1,4 +1,4 @@
1
- const yaml = require('js-yaml');
1
+ const yaml = require('yaml');
2
2
  const fs = require('fs-extra');
3
3
 
4
4
  /**
@@ -91,7 +91,7 @@ class AgentAnalyzer {
91
91
  */
92
92
  async analyzeAgentFile(filePath) {
93
93
  const content = await fs.readFile(filePath, 'utf8');
94
- const agentYaml = yaml.load(content);
94
+ const agentYaml = yaml.parse(content);
95
95
  return this.analyzeAgentObject(agentYaml);
96
96
  }
97
97
 
@@ -1,5 +1,6 @@
1
1
  const path = require('node:path');
2
2
  const fs = require('fs-extra');
3
+ const { escapeXml } = require('../../lib/xml-utils');
3
4
 
4
5
  const AgentPartyGenerator = {
5
6
  /**
@@ -28,7 +29,7 @@ const AgentPartyGenerator = {
28
29
  let xmlContent = `<!-- Powered by BMAD-CORE™ -->
29
30
  <!-- Agent Manifest - Generated during BMAD ${forWeb ? 'bundling' : 'installation'} -->
30
31
  <!-- This file contains a summary of all ${forWeb ? 'bundled' : 'installed'} agents for quick reference -->
31
- <manifest id="bmad/_cfg/agent-manifest.csv" version="1.0" generated="${new Date().toISOString()}">
32
+ <manifest id="bmad/_config/agent-manifest.csv" version="1.0" generated="${new Date().toISOString()}">
32
33
  <description>
33
34
  Complete roster of ${forWeb ? 'bundled' : 'installed'} BMAD agents with summarized personas for efficient multi-agent orchestration.
34
35
  Used by party-mode and other multi-agent coordination features.
@@ -47,9 +48,9 @@ const AgentPartyGenerator = {
47
48
  for (const agent of agents) {
48
49
  xmlContent += ` <agent id="${agent.id}" name="${agent.name}" title="${agent.title || ''}" icon="${agent.icon || ''}">
49
50
  <persona>
50
- <role>${this.escapeXml(agent.role || '')}</role>
51
- <identity>${this.escapeXml(agent.identity || '')}</identity>
52
- <communication_style>${this.escapeXml(agent.communicationStyle || '')}</communication_style>
51
+ <role>${escapeXml(agent.role || '')}</role>
52
+ <identity>${escapeXml(agent.identity || '')}</identity>
53
+ <communication_style>${escapeXml(agent.communicationStyle || '')}</communication_style>
53
54
  <principles>${agent.principles || ''}</principles>
54
55
  </persona>
55
56
  </agent>\n`;
@@ -124,19 +125,6 @@ const AgentPartyGenerator = {
124
125
  return match ? match[1] : '';
125
126
  },
126
127
 
127
- /**
128
- * Escape XML special characters
129
- */
130
- escapeXml(text) {
131
- if (!text) return '';
132
- return text
133
- .replaceAll('&', '&amp;')
134
- .replaceAll('<', '&lt;')
135
- .replaceAll('>', '&gt;')
136
- .replaceAll('"', '&quot;')
137
- .replaceAll("'", '&apos;');
138
- },
139
-
140
128
  /**
141
129
  * Apply config overrides to agent details
142
130
  * @param {Object} details - Original agent details
@@ -1,5 +1,5 @@
1
1
  const fs = require('fs-extra');
2
- const yaml = require('js-yaml');
2
+ const yaml = require('yaml');
3
3
  const path = require('node:path');
4
4
  const packageJson = require('../../../package.json');
5
5
 
@@ -18,7 +18,7 @@ class Config {
18
18
  }
19
19
 
20
20
  const content = await fs.readFile(configPath, 'utf8');
21
- return yaml.load(content);
21
+ return yaml.parse(content);
22
22
  }
23
23
 
24
24
  /**
@@ -1,6 +1,6 @@
1
1
  const fs = require('fs-extra');
2
2
  const path = require('node:path');
3
- const yaml = require('js-yaml');
3
+ const yaml = require('yaml');
4
4
  const { getProjectRoot } = require('./project-root');
5
5
 
6
6
  /**
@@ -20,7 +20,7 @@ class PlatformCodes {
20
20
  try {
21
21
  if (fs.existsSync(this.configPath)) {
22
22
  const content = fs.readFileSync(this.configPath, 'utf8');
23
- this.config = yaml.load(content);
23
+ this.config = yaml.parse(content);
24
24
  } else {
25
25
  console.warn(`Platform codes config not found at ${this.configPath}`);
26
26
  this.config = { platforms: {} };