bmad-method 6.0.0-alpha.16 → 6.0.0-alpha.18

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 (643) hide show
  1. package/.coderabbit.yaml +7 -3
  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 +193 -2
  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 +13 -13
  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/docs/sample-custom-modules/sample-unitary-module/agents/commit-poet/commit-poet.agent.yaml +129 -0
  25. package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/instructions.md +70 -0
  26. package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/bundlers.md +111 -0
  27. package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/deploy.md +70 -0
  28. package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/docs.md +114 -0
  29. package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +134 -0
  30. package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +161 -0
  31. package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/tests.md +103 -0
  32. package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/memories.md +17 -0
  33. package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith.agent.yaml +109 -0
  34. package/docs/sample-custom-modules/sample-unitary-module/module.yaml +8 -0
  35. package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-01-init.md +168 -0
  36. package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-02-q1.md +155 -0
  37. package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-03-q2.md +89 -0
  38. package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-04-q3.md +36 -0
  39. package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-05-q4.md +36 -0
  40. package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-06-q5.md +36 -0
  41. package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-07-q6.md +36 -0
  42. package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-08-q7.md +36 -0
  43. package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-09-q8.md +36 -0
  44. package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-10-q9.md +36 -0
  45. package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-11-q10.md +36 -0
  46. package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-12-results.md +150 -0
  47. package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/templates/csv-headers.template +1 -0
  48. package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/workflow.md +54 -0
  49. package/docs/sample-custom-modules/sample-unitary-module/workflows/wassup/workflow.md +26 -0
  50. package/docs/sample-custom-modules/sample-wellness-module/README.md +6 -0
  51. package/docs/sample-custom-modules/sample-wellness-module/agents/meditation-guide.agent.yaml +136 -0
  52. package/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/foo.md +3 -0
  53. package/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/addition1.md +1 -0
  54. package/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/insights.md +13 -0
  55. package/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/instructions.md +30 -0
  56. package/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/memories.md +13 -0
  57. package/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/patterns.md +17 -0
  58. package/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion.agent.yaml +120 -0
  59. package/docs/sample-custom-modules/sample-wellness-module/module.yaml +17 -0
  60. package/docs/sample-custom-modules/sample-wellness-module/workflows/daily-checkin/README.md +32 -0
  61. package/docs/sample-custom-modules/sample-wellness-module/workflows/daily-checkin/workflow.md +45 -0
  62. package/docs/sample-custom-modules/sample-wellness-module/workflows/guided-meditation/README.md +31 -0
  63. package/docs/sample-custom-modules/sample-wellness-module/workflows/guided-meditation/workflow.md +45 -0
  64. package/docs/sample-custom-modules/sample-wellness-module/workflows/wellness-journal/README.md +31 -0
  65. package/docs/sample-custom-modules/sample-wellness-module/workflows/wellness-journal/workflow.md +45 -0
  66. package/docs/v4-to-v6-upgrade.md +27 -27
  67. package/docs/web-bundles-gemini-gpt-guide.md +6 -458
  68. package/eslint.config.mjs +2 -2
  69. package/package.json +1 -1
  70. package/src/core/agents/bmad-master.agent.yaml +6 -11
  71. package/src/core/module.yaml +11 -18
  72. package/src/core/resources/excalidraw/README.md +6 -6
  73. package/src/core/tasks/advanced-elicitation.xml +3 -3
  74. package/src/core/tasks/index-docs.xml +1 -1
  75. package/src/core/tasks/validate-workflow.xml +1 -1
  76. package/src/core/tasks/workflow.xml +4 -4
  77. package/src/core/tools/shard-doc.xml +12 -12
  78. package/src/core/workflows/brainstorming/workflow.md +3 -3
  79. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +2 -2
  80. package/src/core/workflows/party-mode/workflow.md +4 -4
  81. package/src/modules/bmb/agents/bmad-builder.agent.yaml +15 -15
  82. package/src/modules/bmb/{README.md → docs/README.md} +15 -27
  83. package/src/modules/bmb/docs/agents/agent-compilation.md +3 -3
  84. package/src/modules/bmb/docs/agents/agent-menu-patterns.md +23 -24
  85. package/src/modules/bmb/docs/agents/expert-agent-architecture.md +20 -21
  86. package/src/modules/bmb/docs/agents/simple-agent-architecture.md +17 -52
  87. package/src/modules/bmb/docs/agents/understanding-agent-types.md +6 -6
  88. package/src/modules/bmb/docs/workflows/architecture.md +1 -1
  89. package/src/modules/bmb/docs/workflows/common-workflow-tools.csv +3 -3
  90. package/src/modules/bmb/docs/workflows/templates/step-01-init-continuable-template.md +1 -1
  91. package/src/modules/bmb/docs/workflows/templates/step-1b-template.md +1 -1
  92. package/src/modules/bmb/docs/workflows/templates/step-file.md +3 -3
  93. package/src/modules/bmb/docs/workflows/templates/step-template.md +3 -3
  94. package/src/modules/bmb/docs/workflows/templates/workflow-template.md +2 -2
  95. package/src/modules/bmb/docs/workflows/templates/workflow.md +1 -1
  96. package/src/modules/bmb/module.yaml +6 -15
  97. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +7 -7
  98. package/src/modules/bmb/reference/agents/module-examples/README.md +3 -4
  99. package/src/modules/bmb/reference/agents/module-examples/security-engineer.agent.yaml +5 -5
  100. package/src/modules/bmb/reference/agents/module-examples/trend-analyst.agent.yaml +7 -7
  101. package/src/modules/bmb/reference/agents/simple-examples/README.md +1 -1
  102. package/src/modules/bmb/reference/agents/simple-examples/commit-poet.agent.yaml +1 -1
  103. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +1 -1
  104. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +1 -1
  105. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +3 -3
  106. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +3 -3
  107. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +5 -5
  108. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +5 -5
  109. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +5 -5
  110. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/workflow.md +2 -2
  111. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/README.md +1 -3
  112. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/security-engineer.agent.yaml +6 -6
  113. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/trend-analyst.agent.yaml +7 -7
  114. package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/README.md +1 -1
  115. package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/commit-poet.agent.yaml +1 -1
  116. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +1 -1
  117. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +1 -1
  118. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +3 -3
  119. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +3 -3
  120. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +5 -5
  121. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +5 -5
  122. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +5 -5
  123. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/workflow.md +2 -2
  124. package/src/modules/bmb/workflows/create-agent/data/validation-complete.md +3 -3
  125. package/src/modules/bmb/workflows/create-agent/steps/step-01-brainstorm.md +4 -4
  126. package/src/modules/bmb/workflows/create-agent/steps/step-02-discover.md +6 -10
  127. package/src/modules/bmb/workflows/create-agent/steps/step-03-persona.md +6 -6
  128. package/src/modules/bmb/workflows/create-agent/steps/step-04-commands.md +9 -9
  129. package/src/modules/bmb/workflows/create-agent/steps/step-05-name.md +6 -5
  130. package/src/modules/bmb/workflows/create-agent/steps/step-06-build.md +19 -57
  131. package/src/modules/bmb/workflows/create-agent/steps/step-07-validate.md +5 -5
  132. package/src/modules/bmb/workflows/create-agent/steps/{step-11-celebrate.md → step-08-celebrate.md} +2 -6
  133. package/src/modules/bmb/workflows/create-agent/templates/agent-plan.template.md +3 -0
  134. package/src/modules/bmb/workflows/create-agent/templates/expert-agent.template.md +364 -0
  135. package/src/modules/bmb/workflows/create-agent/templates/simple-agent.template.md +257 -0
  136. package/src/modules/bmb/workflows/create-agent/workflow.md +2 -35
  137. package/src/modules/bmb/workflows/create-module/steps/step-01-init.md +4 -4
  138. package/src/modules/bmb/workflows/create-module/steps/step-01b-continue.md +2 -2
  139. package/src/modules/bmb/workflows/create-module/steps/step-02-concept.md +4 -4
  140. package/src/modules/bmb/workflows/create-module/steps/step-03-components.md +4 -4
  141. package/src/modules/bmb/workflows/create-module/steps/step-04-structure.md +6 -6
  142. package/src/modules/bmb/workflows/create-module/steps/step-05-config.md +5 -5
  143. package/src/modules/bmb/workflows/create-module/steps/step-06-agents.md +8 -8
  144. package/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md +5 -5
  145. package/src/modules/bmb/workflows/create-module/steps/step-08-installer.md +8 -8
  146. package/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md +7 -7
  147. package/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md +7 -7
  148. package/src/modules/bmb/workflows/create-module/steps/step-11-validate.md +6 -6
  149. package/src/modules/bmb/workflows/create-module/templates/agent.template.md +15 -19
  150. package/src/modules/bmb/workflows/create-module/templates/module.template.yaml +1 -1
  151. package/src/modules/bmb/workflows/create-module/workflow.md +3 -3
  152. package/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md +4 -4
  153. package/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md +6 -6
  154. package/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md +5 -5
  155. package/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md +4 -4
  156. package/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md +4 -4
  157. package/src/modules/bmb/workflows/create-workflow/steps/step-06-design.md +11 -11
  158. package/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md +14 -14
  159. package/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md +4 -4
  160. package/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md +2 -2
  161. package/src/modules/bmb/workflows/create-workflow/workflow.md +2 -2
  162. package/src/modules/bmb/workflows/edit-agent/steps/step-01-discover-intent.md +2 -2
  163. package/src/modules/bmb/workflows/edit-agent/steps/step-02-analyze-agent.md +12 -12
  164. package/src/modules/bmb/workflows/edit-agent/steps/step-03-propose-changes.md +4 -4
  165. package/src/modules/bmb/workflows/edit-agent/steps/step-04-apply-changes.md +2 -2
  166. package/src/modules/bmb/workflows/edit-agent/steps/step-05-validate.md +4 -4
  167. package/src/modules/bmb/workflows/edit-agent/workflow.md +1 -1
  168. package/src/modules/bmb/workflows/edit-workflow/steps/step-01-analyze.md +4 -4
  169. package/src/modules/bmb/workflows/edit-workflow/steps/step-02-discover.md +3 -3
  170. package/src/modules/bmb/workflows/edit-workflow/steps/step-03-improve.md +6 -6
  171. package/src/modules/bmb/workflows/edit-workflow/steps/step-04-validate.md +3 -3
  172. package/src/modules/bmb/workflows/edit-workflow/steps/step-05-compliance-check.md +3 -3
  173. package/src/modules/bmb/workflows/edit-workflow/workflow.md +1 -1
  174. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +3 -3
  175. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +5 -5
  176. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +6 -6
  177. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +4 -4
  178. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +4 -4
  179. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +4 -4
  180. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +4 -4
  181. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +3 -3
  182. package/src/modules/bmb/workflows/workflow-compliance-check/workflow.md +1 -1
  183. package/src/modules/bmb/workflows-legacy/edit-module/README.md +1 -17
  184. package/src/modules/bmb/workflows-legacy/edit-module/checklist.md +3 -4
  185. package/src/modules/bmb/workflows-legacy/edit-module/instructions.md +4 -5
  186. package/src/modules/bmb/workflows-legacy/edit-module/workflow.yaml +10 -10
  187. package/src/modules/bmb/workflows-legacy/module-brief/README.md +2 -2
  188. package/src/modules/bmb/workflows-legacy/module-brief/instructions.md +2 -2
  189. package/src/modules/bmb/workflows-legacy/module-brief/workflow.yaml +4 -4
  190. package/src/modules/bmgd/README.md +1 -1
  191. package/src/modules/bmgd/_module-installer/installer.js +160 -0
  192. package/src/modules/bmgd/_module-installer/platform-specifics/claude-code.js +23 -0
  193. package/src/modules/bmgd/_module-installer/platform-specifics/windsurf.js +18 -0
  194. package/src/modules/bmgd/agents/game-architect.agent.yaml +26 -11
  195. package/src/modules/bmgd/agents/game-designer.agent.yaml +41 -21
  196. package/src/modules/bmgd/agents/game-dev.agent.yaml +34 -18
  197. package/src/modules/bmgd/agents/game-qa.agent.yaml +64 -0
  198. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +32 -44
  199. package/src/modules/bmgd/agents/game-solo-dev.agent.yaml +56 -0
  200. package/src/modules/bmgd/docs/README.md +180 -0
  201. package/src/modules/bmgd/docs/agents-guide.md +407 -0
  202. package/src/modules/bmgd/docs/game-types-guide.md +503 -0
  203. package/src/modules/bmgd/docs/glossary.md +294 -0
  204. package/src/modules/bmgd/docs/quick-flow-guide.md +288 -0
  205. package/src/modules/bmgd/docs/quick-start.md +250 -0
  206. package/src/modules/bmgd/docs/troubleshooting.md +259 -0
  207. package/src/modules/bmgd/docs/workflow-overview.jpg +0 -0
  208. package/src/modules/bmgd/docs/workflows-guide.md +463 -0
  209. package/src/modules/bmgd/gametest/knowledge/balance-testing.md +220 -0
  210. package/src/modules/bmgd/gametest/knowledge/certification-testing.md +319 -0
  211. package/src/modules/bmgd/gametest/knowledge/compatibility-testing.md +228 -0
  212. package/src/modules/bmgd/gametest/knowledge/godot-testing.md +376 -0
  213. package/src/modules/bmgd/gametest/knowledge/input-testing.md +315 -0
  214. package/src/modules/bmgd/gametest/knowledge/localization-testing.md +304 -0
  215. package/src/modules/bmgd/gametest/knowledge/multiplayer-testing.md +322 -0
  216. package/src/modules/bmgd/gametest/knowledge/performance-testing.md +204 -0
  217. package/src/modules/bmgd/gametest/knowledge/playtesting.md +384 -0
  218. package/src/modules/bmgd/gametest/knowledge/qa-automation.md +190 -0
  219. package/src/modules/bmgd/gametest/knowledge/regression-testing.md +280 -0
  220. package/src/modules/bmgd/gametest/knowledge/save-testing.md +280 -0
  221. package/src/modules/bmgd/gametest/knowledge/smoke-testing.md +404 -0
  222. package/src/modules/bmgd/gametest/knowledge/test-priorities.md +271 -0
  223. package/src/modules/bmgd/gametest/knowledge/unity-testing.md +383 -0
  224. package/src/modules/bmgd/gametest/knowledge/unreal-testing.md +388 -0
  225. package/src/modules/bmgd/gametest/qa-index.csv +17 -0
  226. package/src/modules/bmgd/module.yaml +27 -16
  227. package/src/modules/bmgd/teams/default-party.csv +2 -0
  228. package/src/modules/bmgd/teams/team-gamedev.yaml +12 -1
  229. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +1 -1
  230. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md +164 -0
  231. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-02-context.md +210 -0
  232. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-03-ideation.md +289 -0
  233. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md +275 -0
  234. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md +49 -0
  235. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +35 -14
  236. package/src/modules/bmgd/workflows/1-preproduction/game-brief/instructions.md +1 -1
  237. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01-init.md +223 -0
  238. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01b-continue.md +151 -0
  239. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-02-vision.md +218 -0
  240. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-03-market.md +218 -0
  241. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-04-fundamentals.md +231 -0
  242. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-05-scope.md +242 -0
  243. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-06-references.md +224 -0
  244. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-07-content.md +282 -0
  245. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-08-complete.md +296 -0
  246. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.md +62 -0
  247. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.yaml +43 -12
  248. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01-init.md +248 -0
  249. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01b-continue.md +173 -0
  250. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-02-context.md +332 -0
  251. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-03-platforms.md +245 -0
  252. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-04-vision.md +229 -0
  253. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-05-core-gameplay.md +258 -0
  254. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-06-mechanics.md +249 -0
  255. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-07-game-type.md +266 -0
  256. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-08-progression.md +272 -0
  257. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-09-levels.md +264 -0
  258. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-10-art-audio.md +255 -0
  259. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-11-technical.md +275 -0
  260. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-12-epics.md +284 -0
  261. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-13-metrics.md +250 -0
  262. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-14-complete.md +335 -0
  263. package/src/modules/bmgd/workflows/2-design/gdd/workflow.md +61 -0
  264. package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +54 -34
  265. package/src/modules/bmgd/workflows/2-design/narrative/instructions-narrative.md +1 -1
  266. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01-init.md +228 -0
  267. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01b-continue.md +163 -0
  268. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-02-foundation.md +262 -0
  269. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-03-story.md +238 -0
  270. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-04-characters.md +297 -0
  271. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-05-world.md +262 -0
  272. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-06-dialogue.md +250 -0
  273. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-07-environmental.md +244 -0
  274. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-08-delivery.md +264 -0
  275. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-09-integration.md +254 -0
  276. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-10-production.md +262 -0
  277. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md +331 -0
  278. package/src/modules/bmgd/workflows/2-design/narrative/workflow.md +57 -0
  279. package/src/modules/bmgd/workflows/2-design/narrative/workflow.yaml +55 -10
  280. package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +1 -1
  281. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01-init.md +223 -0
  282. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01b-continue.md +153 -0
  283. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-02-context.md +262 -0
  284. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-03-starter.md +290 -0
  285. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-04-decisions.md +300 -0
  286. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md +319 -0
  287. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-06-structure.md +304 -0
  288. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-07-patterns.md +349 -0
  289. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-08-validation.md +293 -0
  290. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md +302 -0
  291. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.md +55 -0
  292. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +51 -22
  293. package/src/modules/bmgd/workflows/4-production/code-review/checklist.md +23 -0
  294. package/src/modules/bmgd/workflows/4-production/code-review/instructions.xml +225 -0
  295. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +19 -16
  296. package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +1 -1
  297. package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +2 -2
  298. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +12 -7
  299. package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +332 -214
  300. package/src/modules/bmgd/workflows/4-production/create-story/instructions.xml +298 -0
  301. package/src/modules/bmgd/workflows/4-production/create-story/template.md +3 -5
  302. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +13 -8
  303. package/src/modules/bmgd/workflows/4-production/dev-story/checklist.md +65 -23
  304. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.xml +409 -0
  305. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +14 -4
  306. package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +5 -5
  307. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +14 -9
  308. package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +33 -42
  309. package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +13 -13
  310. package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +7 -2
  311. package/src/modules/bmgd/workflows/4-production/sprint-status/instructions.md +229 -0
  312. package/src/modules/bmgd/workflows/4-production/sprint-status/workflow.yaml +35 -0
  313. package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/instructions.md +140 -0
  314. package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/workflow.yaml +27 -0
  315. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/checklist.md +37 -0
  316. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/instructions.md +220 -0
  317. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml +45 -0
  318. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/checklist.md +26 -0
  319. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/instructions.md +156 -0
  320. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml +36 -0
  321. package/src/modules/bmgd/workflows/gametest/automate/checklist.md +93 -0
  322. package/src/modules/bmgd/workflows/gametest/automate/instructions.md +317 -0
  323. package/src/modules/bmgd/workflows/gametest/automate/workflow.yaml +50 -0
  324. package/src/modules/bmgd/workflows/gametest/performance/checklist.md +96 -0
  325. package/src/modules/bmgd/workflows/gametest/performance/instructions.md +323 -0
  326. package/src/modules/bmgd/workflows/gametest/performance/performance-template.md +256 -0
  327. package/src/modules/bmgd/workflows/gametest/performance/workflow.yaml +48 -0
  328. package/src/modules/bmgd/workflows/gametest/playtest-plan/checklist.md +93 -0
  329. package/src/modules/bmgd/workflows/gametest/playtest-plan/instructions.md +297 -0
  330. package/src/modules/bmgd/workflows/gametest/playtest-plan/playtest-template.md +208 -0
  331. package/src/modules/bmgd/workflows/gametest/playtest-plan/workflow.yaml +59 -0
  332. package/src/modules/bmgd/workflows/gametest/test-design/checklist.md +98 -0
  333. package/src/modules/bmgd/workflows/gametest/test-design/instructions.md +280 -0
  334. package/src/modules/bmgd/workflows/gametest/test-design/test-design-template.md +205 -0
  335. package/src/modules/bmgd/workflows/gametest/test-design/workflow.yaml +47 -0
  336. package/src/modules/bmgd/workflows/gametest/test-framework/checklist.md +103 -0
  337. package/src/modules/bmgd/workflows/gametest/test-framework/instructions.md +348 -0
  338. package/src/modules/bmgd/workflows/gametest/test-framework/workflow.yaml +48 -0
  339. package/src/modules/bmgd/workflows/gametest/test-review/checklist.md +87 -0
  340. package/src/modules/bmgd/workflows/gametest/test-review/instructions.md +272 -0
  341. package/src/modules/bmgd/workflows/gametest/test-review/test-review-template.md +203 -0
  342. package/src/modules/bmgd/workflows/gametest/test-review/workflow.yaml +48 -0
  343. package/src/modules/bmgd/workflows/workflow-status/init/instructions.md +299 -0
  344. package/src/modules/bmgd/workflows/workflow-status/init/workflow.yaml +29 -0
  345. package/src/modules/bmgd/workflows/workflow-status/instructions.md +395 -0
  346. package/src/modules/bmgd/workflows/workflow-status/paths/gamedev-brownfield.yaml +65 -0
  347. package/src/modules/bmgd/workflows/workflow-status/paths/gamedev-greenfield.yaml +71 -0
  348. package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-brownfield.yaml +29 -0
  349. package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-greenfield.yaml +39 -0
  350. package/src/modules/bmgd/workflows/workflow-status/project-levels.yaml +63 -0
  351. package/src/modules/bmgd/workflows/workflow-status/workflow-status-template.yaml +24 -0
  352. package/src/modules/bmgd/workflows/workflow-status/workflow.yaml +30 -0
  353. package/src/modules/bmm/README.md +1 -1
  354. package/src/modules/bmm/agents/analyst.agent.yaml +9 -9
  355. package/src/modules/bmm/agents/architect.agent.yaml +8 -8
  356. package/src/modules/bmm/agents/dev.agent.yaml +5 -5
  357. package/src/modules/bmm/agents/pm.agent.yaml +8 -8
  358. package/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml +5 -5
  359. package/src/modules/bmm/agents/sm.agent.yaml +11 -11
  360. package/src/modules/bmm/agents/tea.agent.yaml +13 -13
  361. package/src/modules/bmm/agents/tech-writer.agent.yaml +9 -9
  362. package/src/modules/bmm/agents/ux-designer.agent.yaml +6 -6
  363. package/src/modules/bmm/docs/agents-guide.md +16 -14
  364. package/src/modules/bmm/docs/brownfield-guide.md +6 -6
  365. package/src/modules/bmm/docs/enterprise-agentic-development.md +3 -3
  366. package/src/modules/bmm/docs/faq.md +5 -18
  367. package/src/modules/bmm/docs/glossary.md +3 -4
  368. package/src/modules/bmm/docs/images/README.md +1 -1
  369. package/src/modules/bmm/docs/images/workflow-method-greenfield.excalidraw +8 -8
  370. package/src/modules/bmm/docs/party-mode.md +3 -3
  371. package/src/modules/bmm/docs/quick-flow-solo-dev.md +5 -5
  372. package/src/modules/bmm/docs/quick-spec-flow.md +2 -16
  373. package/src/modules/bmm/docs/quick-start.md +3 -3
  374. package/src/modules/bmm/docs/test-architecture.md +15 -23
  375. package/src/modules/bmm/docs/troubleshooting.md +6 -25
  376. package/src/modules/bmm/docs/workflow-document-project-reference.md +1 -1
  377. package/src/modules/bmm/docs/workflows-implementation.md +3 -4
  378. package/src/modules/bmm/module.yaml +25 -23
  379. package/src/modules/bmm/testarch/knowledge/overview.md +0 -1
  380. package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-01-init.md +1 -1
  381. package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-01b-continue.md +1 -1
  382. package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-02-vision.md +3 -3
  383. package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-03-users.md +3 -3
  384. package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-04-metrics.md +3 -3
  385. package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-05-scope.md +3 -3
  386. package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-06-complete.md +1 -1
  387. package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/workflow.md +2 -2
  388. package/src/modules/bmm/workflows/1-analysis/research/workflow.md +2 -2
  389. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +4 -4
  390. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +4 -4
  391. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +4 -4
  392. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +4 -4
  393. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +4 -4
  394. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +4 -4
  395. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +4 -4
  396. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +4 -4
  397. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +4 -4
  398. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +4 -4
  399. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +4 -4
  400. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +4 -4
  401. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +2 -2
  402. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01-init.md +1 -1
  403. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01b-continue.md +1 -1
  404. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +3 -3
  405. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md +7 -7
  406. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +8 -8
  407. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +12 -12
  408. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +12 -12
  409. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +10 -10
  410. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +7 -7
  411. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md +9 -9
  412. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +9 -9
  413. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +1 -1
  414. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md +2 -2
  415. package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-01-document-discovery.md +1 -1
  416. package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-02-prd-analysis.md +1 -1
  417. package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-03-epic-coverage-validation.md +1 -1
  418. package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-04-ux-alignment.md +1 -1
  419. package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-05-epic-quality-review.md +2 -2
  420. package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-06-final-assessment.md +1 -1
  421. package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/workflow.md +1 -1
  422. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-01-init.md +1 -1
  423. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-02-context.md +4 -4
  424. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-03-starter.md +4 -4
  425. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-04-decisions.md +4 -4
  426. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-05-patterns.md +4 -4
  427. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-06-structure.md +4 -4
  428. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-07-validation.md +4 -4
  429. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-08-complete.md +3 -3
  430. package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/workflow.md +2 -2
  431. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +3 -3
  432. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +3 -3
  433. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +3 -3
  434. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +3 -3
  435. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +3 -3
  436. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml +4 -3
  437. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +2 -2
  438. package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +1 -1
  439. package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +2 -2
  440. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +2 -2
  441. package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +2 -2
  442. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml +5 -5
  443. package/src/modules/bmm/workflows/4-implementation/create-story/template.md +3 -5
  444. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +2 -2
  445. package/src/modules/bmm/workflows/4-implementation/dev-story/checklist.md +2 -2
  446. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml +11 -8
  447. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +2 -2
  448. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +3 -3
  449. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +3 -3
  450. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +15 -22
  451. package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +4 -5
  452. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +2 -2
  453. package/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md +90 -35
  454. package/src/modules/bmm/workflows/4-implementation/sprint-status/workflow.yaml +2 -2
  455. package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml +5 -5
  456. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.yaml +7 -7
  457. package/src/modules/bmm/workflows/document-project/instructions.md +5 -5
  458. package/src/modules/bmm/workflows/document-project/workflow.yaml +2 -2
  459. package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +5 -5
  460. package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +5 -5
  461. package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-dataflow/instructions.md +1 -1
  462. package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-dataflow/workflow.yaml +6 -6
  463. package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-diagram/instructions.md +2 -2
  464. package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-diagram/workflow.yaml +6 -6
  465. package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-flowchart/instructions.md +2 -2
  466. package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-flowchart/workflow.yaml +6 -6
  467. package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-wireframe/instructions.md +1 -1
  468. package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-wireframe/workflow.yaml +6 -6
  469. package/src/modules/bmm/workflows/generate-project-context/steps/step-01-discover.md +2 -2
  470. package/src/modules/bmm/workflows/generate-project-context/steps/step-02-generate.md +3 -3
  471. package/src/modules/bmm/workflows/generate-project-context/steps/step-03-complete.md +2 -2
  472. package/src/modules/bmm/workflows/generate-project-context/workflow.md +5 -5
  473. package/src/modules/bmm/workflows/testarch/atdd/instructions.md +2 -2
  474. package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +2 -2
  475. package/src/modules/bmm/workflows/testarch/automate/instructions.md +2 -2
  476. package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +2 -2
  477. package/src/modules/bmm/workflows/testarch/ci/instructions.md +1 -1
  478. package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +2 -2
  479. package/src/modules/bmm/workflows/testarch/framework/instructions.md +3 -3
  480. package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +2 -2
  481. package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +1 -1
  482. package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +2 -2
  483. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +3 -3
  484. package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +1 -1
  485. package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +10 -4
  486. package/src/modules/bmm/workflows/testarch/test-review/instructions.md +1 -1
  487. package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +2 -2
  488. package/src/modules/bmm/workflows/testarch/trace/instructions.md +6 -6
  489. package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +2 -2
  490. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +1 -1
  491. package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +4 -4
  492. package/src/modules/bmm/workflows/workflow-status/instructions.md +3 -3
  493. package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +1 -1
  494. package/src/modules/bmm/workflows/workflow-status/workflow.yaml +2 -2
  495. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +4 -4
  496. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +4 -4
  497. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +4 -4
  498. package/src/modules/cis/agents/innovation-strategist.agent.yaml +4 -4
  499. package/src/modules/cis/agents/presentation-master.agent.yaml +3 -3
  500. package/src/modules/cis/agents/storyteller/storyteller-sidecar/stories-told.md +7 -0
  501. package/src/modules/cis/agents/storyteller/storyteller-sidecar/story-preferences.md +7 -0
  502. package/src/modules/cis/agents/{storyteller.agent.yaml → storyteller/storyteller.agent.yaml} +9 -4
  503. package/src/modules/cis/module.yaml +3 -7
  504. package/src/modules/cis/{README.md → readme.md} +1 -1
  505. package/src/modules/cis/workflows/README.md +1 -1
  506. package/src/modules/cis/workflows/design-thinking/instructions.md +2 -2
  507. package/src/modules/cis/workflows/design-thinking/workflow.yaml +7 -7
  508. package/src/modules/cis/workflows/innovation-strategy/instructions.md +2 -2
  509. package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +7 -7
  510. package/src/modules/cis/workflows/problem-solving/instructions.md +2 -2
  511. package/src/modules/cis/workflows/problem-solving/workflow.yaml +7 -7
  512. package/src/modules/cis/workflows/storytelling/instructions.md +2 -2
  513. package/src/modules/cis/workflows/storytelling/workflow.yaml +7 -7
  514. package/src/utility/agent-components/activation-rules.txt +7 -0
  515. package/src/utility/agent-components/activation-steps.txt +13 -0
  516. package/src/utility/agent-components/agent-command-header.md +1 -0
  517. package/src/utility/{templates → agent-components}/agent.customize.template.yaml +0 -1
  518. package/src/utility/agent-components/handler-action.txt +4 -0
  519. package/src/utility/agent-components/handler-exec.txt +6 -0
  520. package/src/utility/agent-components/handler-multi.txt +14 -0
  521. package/src/utility/agent-components/handler-tmpl.txt +5 -0
  522. package/src/utility/agent-components/handler-validate-workflow.txt +7 -0
  523. package/src/utility/agent-components/handler-workflow.txt +10 -0
  524. package/src/utility/agent-components/menu-handlers.txt +6 -0
  525. package/test/README.md +1 -1
  526. package/test/test-agent-schema.js +2 -2
  527. package/tools/cli/README.md +1 -607
  528. package/tools/cli/commands/build.js +7 -7
  529. package/tools/cli/commands/install.js +16 -18
  530. package/tools/cli/commands/list.js +13 -1
  531. package/tools/cli/installers/lib/core/config-collector.js +224 -59
  532. package/tools/cli/installers/lib/core/custom-module-cache.js +18 -10
  533. package/tools/cli/installers/lib/core/dependency-resolver.js +2 -2
  534. package/tools/cli/installers/lib/core/detector.js +16 -16
  535. package/tools/cli/installers/lib/core/ide-config-manager.js +9 -7
  536. package/tools/cli/installers/lib/core/installer.js +634 -1040
  537. package/tools/cli/installers/lib/core/installer.js.bak +3204 -0
  538. package/tools/cli/installers/lib/core/manifest-generator.js +43 -40
  539. package/tools/cli/installers/lib/core/manifest.js +23 -20
  540. package/tools/cli/installers/lib/custom/handler.js +16 -46
  541. package/tools/cli/installers/lib/ide/_base-ide.js +26 -33
  542. package/tools/cli/installers/lib/ide/antigravity.js +3 -3
  543. package/tools/cli/installers/lib/ide/claude-code.js +3 -3
  544. package/tools/cli/installers/lib/ide/codex.js +2 -2
  545. package/tools/cli/installers/lib/ide/gemini.js +6 -6
  546. package/tools/cli/installers/lib/ide/kiro-cli.js +2 -2
  547. package/tools/cli/installers/lib/ide/opencode.js +2 -2
  548. package/tools/cli/installers/lib/ide/roo.js +15 -5
  549. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +2 -2
  550. package/tools/cli/installers/lib/ide/shared/module-injections.js +2 -2
  551. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +2 -2
  552. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +4 -4
  553. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +1 -1
  554. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +3 -3
  555. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +3 -3
  556. package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +1 -1
  557. package/tools/cli/installers/lib/modules/manager.js +315 -312
  558. package/tools/cli/lib/activation-builder.js +8 -13
  559. package/tools/cli/lib/agent/compiler.js +166 -167
  560. package/tools/cli/lib/agent/installer.js +8 -128
  561. package/tools/cli/lib/agent-analyzer.js +2 -2
  562. package/tools/cli/lib/agent-party-generator.js +5 -17
  563. package/tools/cli/lib/config.js +2 -2
  564. package/tools/cli/lib/platform-codes.js +2 -2
  565. package/tools/cli/lib/ui.js +678 -564
  566. package/tools/cli/lib/xml-handler.js +3 -55
  567. package/tools/cli/lib/yaml-format.js +4 -6
  568. package/tools/cli/lib/yaml-xml-builder.js +14 -26
  569. package/tools/flattener/ignoreRules.js +1 -1
  570. package/tools/flattener/xml.js +1 -7
  571. package/tools/lib/xml-utils.js +13 -0
  572. package/tools/migrate-custom-module-paths.js +2 -2
  573. package/tools/validate-agent-schema.js +2 -2
  574. package/docs/v6-open-items.md +0 -17
  575. package/src/core/agents/bmad-web-orchestrator.agent.xml +0 -113
  576. package/src/modules/bmb/_module-installer/installer.js +0 -76
  577. package/src/modules/bmb/docs/agents/module-agent-architecture.md +0 -366
  578. package/src/modules/bmb/workflows/create-agent/steps/step-08-setup.md +0 -179
  579. package/src/modules/bmb/workflows/create-agent/steps/step-09-customize.md +0 -197
  580. package/src/modules/bmb/workflows/create-agent/steps/step-10-build-tools.md +0 -180
  581. package/src/modules/bmb/workflows/create-agent/templates/agent_commands.md +0 -21
  582. package/src/modules/bmb/workflows/create-agent/templates/agent_persona.md +0 -25
  583. package/src/modules/bmb/workflows/create-agent/templates/agent_purpose_and_type.md +0 -23
  584. package/src/modules/bmgd/workflows/2-design/gdd/instructions-gdd.md +0 -502
  585. package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +0 -398
  586. package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +0 -256
  587. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +0 -267
  588. package/src/modules/bmgd/workflows/4-production/epic-tech-context/checklist.md +0 -17
  589. package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +0 -164
  590. package/src/modules/bmgd/workflows/4-production/epic-tech-context/template.md +0 -76
  591. package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +0 -58
  592. package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +0 -16
  593. package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +0 -34
  594. package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +0 -209
  595. package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +0 -63
  596. package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +0 -111
  597. package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +0 -28
  598. package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +0 -117
  599. package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +0 -25
  600. package/src/modules/bmm/tasks/daily-standup.xml +0 -85
  601. package/src/modules/cis/agents/README.md +0 -104
  602. package/src/utility/models/action-command-header.md +0 -0
  603. package/src/utility/models/agent-activation-ide.xml +0 -51
  604. package/src/utility/models/agent-activation-web.xml +0 -50
  605. package/src/utility/models/agent-command-header.md +0 -1
  606. package/src/utility/models/agent-config-template.md +0 -23
  607. package/src/utility/models/agent-in-team-activation.xml +0 -3
  608. package/src/utility/models/fragments/activation-rules.xml +0 -7
  609. package/src/utility/models/fragments/activation-steps.xml +0 -16
  610. package/src/utility/models/fragments/handler-action.xml +0 -4
  611. package/src/utility/models/fragments/handler-exec.xml +0 -6
  612. package/src/utility/models/fragments/handler-multi.xml +0 -14
  613. package/src/utility/models/fragments/handler-tmpl.xml +0 -5
  614. package/src/utility/models/fragments/handler-validate-workflow.xml +0 -7
  615. package/src/utility/models/fragments/handler-workflow.xml +0 -9
  616. package/src/utility/models/fragments/menu-handlers.xml +0 -6
  617. package/src/utility/models/fragments/web-bundle-activation-steps.xml +0 -32
  618. package/tools/cli/bundlers/bundle-web.js +0 -179
  619. package/tools/cli/bundlers/test-analyst.js +0 -28
  620. package/tools/cli/bundlers/test-bundler.js +0 -118
  621. package/tools/cli/bundlers/web-bundler.js +0 -1754
  622. package/tools/cli/installers/lib/core/post-install-sidecar-replacement.js +0 -79
  623. package/tools/cli/lib/replace-project-root.js +0 -239
  624. package/tools/cli/regenerate-manifests.js +0 -27
  625. package/tools/cli/test-yaml-builder.js +0 -43
  626. /package/src/modules/bmgd/workflows/1-preproduction/game-brief/{template.md → templates/game-brief-template.md} +0 -0
  627. /package/src/modules/bmgd/workflows/2-design/gdd/{gdd-template.md → templates/gdd-template.md} +0 -0
  628. /package/src/modules/bmgd/workflows/2-design/narrative/{narrative-template.md → templates/narrative-template.md} +0 -0
  629. /package/src/modules/bmgd/workflows/3-technical/game-architecture/{architecture-template.md → templates/architecture-template.md} +0 -0
  630. /package/src/modules/bmgd/workflows/4-production/code-review/{backlog_template.md → backlog-template.md} +0 -0
  631. /package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/product-brief.template.md +0 -0
  632. /package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/templates/readiness-report-template.md +0 -0
  633. /package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/architecture-decision-template.md +0 -0
  634. /package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/data/domain-complexity.csv +0 -0
  635. /package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/data/project-types.csv +0 -0
  636. /package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-01b-continue.md +0 -0
  637. /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/_shared/excalidraw-library.json +0 -0
  638. /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/_shared/excalidraw-templates.yaml +0 -0
  639. /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-dataflow/checklist.md +0 -0
  640. /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-diagram/checklist.md +0 -0
  641. /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-flowchart/checklist.md +0 -0
  642. /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-wireframe/checklist.md +0 -0
  643. /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/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/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/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
@@ -241,6 +98,25 @@ function buildPromptsXml(prompts) {
241
98
  return xml;
242
99
  }
243
100
 
101
+ /**
102
+ * Build memories XML section
103
+ * @param {Array} memories - Memories array
104
+ * @returns {string} Memories XML
105
+ */
106
+ function buildMemoriesXml(memories) {
107
+ if (!memories || memories.length === 0) return '';
108
+
109
+ let xml = ' <memories>\n';
110
+
111
+ for (const memory of memories) {
112
+ xml += ` <memory>${escapeXml(String(memory))}</memory>\n`;
113
+ }
114
+
115
+ xml += ' </memories>\n';
116
+
117
+ return xml;
118
+ }
119
+
244
120
  /**
245
121
  * Build menu XML section
246
122
  * Supports both legacy and multi format menu items
@@ -385,9 +261,9 @@ function processExecArray(execArray) {
385
261
  * @param {Object} agentYaml - Parsed and processed agent YAML
386
262
  * @param {string} agentName - Final agent name (for ID and frontmatter)
387
263
  * @param {string} targetPath - Target path for agent ID
388
- * @returns {string} Compiled XML string with frontmatter
264
+ * @returns {Promise<string>} Compiled XML string with frontmatter
389
265
  */
390
- function compileToXml(agentYaml, agentName = '', targetPath = '') {
266
+ async function compileToXml(agentYaml, agentName = '', targetPath = '') {
391
267
  const agent = agentYaml.agent;
392
268
  const meta = agent.metadata;
393
269
 
@@ -409,8 +285,16 @@ function compileToXml(agentYaml, agentName = '', targetPath = '') {
409
285
 
410
286
  xml += `<agent ${agentAttrs.join(' ')}>\n`;
411
287
 
412
- // Activation block - pass menu items and deployment type to determine which handlers to include
413
- xml += buildSimpleActivation(agent.critical_actions || [], agent.menu || [], 'ide');
288
+ // Activation block - use ActivationBuilder for proper fragment loading
289
+ const activationBuilder = new ActivationBuilder();
290
+ const analyzer = new AgentAnalyzer();
291
+ const profile = analyzer.analyzeAgentObject(agentYaml);
292
+ xml += await activationBuilder.buildActivation(
293
+ profile,
294
+ meta,
295
+ agent.critical_actions || [],
296
+ false, // forWebBundle - set to false for IDE deployment
297
+ );
414
298
 
415
299
  // Persona section
416
300
  xml += buildPersonaXml(agent.persona);
@@ -420,6 +304,11 @@ function compileToXml(agentYaml, agentName = '', targetPath = '') {
420
304
  xml += buildPromptsXml(agent.prompts);
421
305
  }
422
306
 
307
+ // Memories section (if present)
308
+ if (agent.memories && agent.memories.length > 0) {
309
+ xml += buildMemoriesXml(agent.memories);
310
+ }
311
+
423
312
  // Menu section
424
313
  xml += buildMenuXml(agent.menu || []);
425
314
 
@@ -439,15 +328,98 @@ function compileToXml(agentYaml, agentName = '', targetPath = '') {
439
328
  * @param {string} agentName - Optional final agent name (user's custom persona name)
440
329
  * @param {string} targetPath - Optional target path for agent ID
441
330
  * @param {Object} options - Additional options including config
442
- * @returns {Object} { xml: string, metadata: Object }
331
+ * @returns {Promise<Object>} { xml: string, metadata: Object }
443
332
  */
444
- function compileAgent(yamlContent, answers = {}, agentName = '', targetPath = '', options = {}) {
333
+ async function compileAgent(yamlContent, answers = {}, agentName = '', targetPath = '', options = {}) {
445
334
  // Parse YAML
446
- const agentYaml = yaml.parse(yamlContent);
335
+ let agentYaml = yaml.parse(yamlContent);
336
+
337
+ // Apply customization merges before template processing
338
+ // Handle metadata overrides (like name)
339
+ if (answers.metadata) {
340
+ // Filter out empty values from metadata
341
+ const filteredMetadata = filterCustomizationData(answers.metadata);
342
+ if (Object.keys(filteredMetadata).length > 0) {
343
+ agentYaml.agent.metadata = { ...agentYaml.agent.metadata, ...filteredMetadata };
344
+ }
345
+ // Remove from answers so it doesn't get processed as template variables
346
+ const { metadata, ...templateAnswers } = answers;
347
+ answers = templateAnswers;
348
+ }
349
+
350
+ // Handle other customization properties
351
+ // These should be merged into the agent structure, not processed as template variables
352
+ const customizationKeys = ['persona', 'critical_actions', 'memories', 'menu', 'prompts'];
353
+ const customizations = {};
354
+ const remainingAnswers = { ...answers };
355
+
356
+ for (const key of customizationKeys) {
357
+ if (answers[key]) {
358
+ let filtered;
359
+
360
+ // Handle different data types
361
+ if (Array.isArray(answers[key])) {
362
+ // For arrays, filter out empty/null/undefined values
363
+ filtered = answers[key].filter((item) => item !== null && item !== undefined && item !== '');
364
+ } else {
365
+ // For objects, use filterCustomizationData
366
+ filtered = filterCustomizationData(answers[key]);
367
+ }
368
+
369
+ // Check if we have valid content
370
+ const hasContent = Array.isArray(filtered) ? filtered.length > 0 : Object.keys(filtered).length > 0;
371
+
372
+ if (hasContent) {
373
+ customizations[key] = filtered;
374
+ }
375
+ delete remainingAnswers[key];
376
+ }
377
+ }
447
378
 
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
379
+ // Merge customizations into agentYaml
380
+ if (Object.keys(customizations).length > 0) {
381
+ // For persona: replace entire section
382
+ if (customizations.persona) {
383
+ agentYaml.agent.persona = customizations.persona;
384
+ }
385
+
386
+ // For critical_actions: append to existing or create new
387
+ if (customizations.critical_actions) {
388
+ const existing = agentYaml.agent.critical_actions || [];
389
+ agentYaml.agent.critical_actions = [...existing, ...customizations.critical_actions];
390
+ }
391
+
392
+ // For memories: append to existing or create new
393
+ if (customizations.memories) {
394
+ const existing = agentYaml.agent.memories || [];
395
+ agentYaml.agent.memories = [...existing, ...customizations.memories];
396
+ }
397
+
398
+ // For menu: append to existing or create new
399
+ if (customizations.menu) {
400
+ const existing = agentYaml.agent.menu || [];
401
+ agentYaml.agent.menu = [...existing, ...customizations.menu];
402
+ }
403
+
404
+ // For prompts: append to existing or create new (by id)
405
+ if (customizations.prompts) {
406
+ const existing = agentYaml.agent.prompts || [];
407
+ // Merge by id, with customizations taking precedence
408
+ const mergedPrompts = [...existing];
409
+ for (const customPrompt of customizations.prompts) {
410
+ const existingIndex = mergedPrompts.findIndex((p) => p.id === customPrompt.id);
411
+ if (existingIndex === -1) {
412
+ mergedPrompts.push(customPrompt);
413
+ } else {
414
+ mergedPrompts[existingIndex] = customPrompt;
415
+ }
416
+ }
417
+ agentYaml.agent.prompts = mergedPrompts;
418
+ }
419
+ }
420
+
421
+ // Use remaining answers for template processing
422
+ answers = remainingAnswers;
451
423
 
452
424
  // Extract install_config
453
425
  const installConfig = extractInstallConfig(agentYaml);
@@ -459,21 +431,17 @@ function compileAgent(yamlContent, answers = {}, agentName = '', targetPath = ''
459
431
  finalAnswers = { ...defaults, ...answers };
460
432
  }
461
433
 
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
434
  // Process templates with answers
468
435
  const processedYaml = processAgentYaml(agentYaml, finalAnswers);
469
436
 
470
437
  // Strip install_config from output
471
438
  const cleanYaml = stripInstallConfig(processedYaml);
472
439
 
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);
440
+ let xml = await compileToXml(cleanYaml, agentName, targetPath);
441
+
442
+ // Ensure xml is a string before attempting replaceAll
443
+ if (typeof xml !== 'string') {
444
+ throw new TypeError('compileToXml did not return a string');
477
445
  }
478
446
 
479
447
  return {
@@ -483,6 +451,36 @@ function compileAgent(yamlContent, answers = {}, agentName = '', targetPath = ''
483
451
  };
484
452
  }
485
453
 
454
+ /**
455
+ * Filter customization data to remove empty/null values
456
+ * @param {Object} data - Raw customization data
457
+ * @returns {Object} Filtered customization data
458
+ */
459
+ function filterCustomizationData(data) {
460
+ const filtered = {};
461
+
462
+ for (const [key, value] of Object.entries(data)) {
463
+ if (value === null || value === undefined || value === '') {
464
+ continue; // Skip null/undefined/empty values
465
+ }
466
+
467
+ if (Array.isArray(value)) {
468
+ if (value.length > 0) {
469
+ filtered[key] = value;
470
+ }
471
+ } else if (typeof value === 'object') {
472
+ const nested = filterCustomizationData(value);
473
+ if (Object.keys(nested).length > 0) {
474
+ filtered[key] = nested;
475
+ }
476
+ } else {
477
+ filtered[key] = value;
478
+ }
479
+ }
480
+
481
+ return filtered;
482
+ }
483
+
486
484
  /**
487
485
  * Process TTS injection markers in content
488
486
  * @param {string} content - Content to process
@@ -558,8 +556,9 @@ module.exports = {
558
556
  compileAgentFile,
559
557
  escapeXml,
560
558
  buildFrontmatter,
561
- buildSimpleActivation,
562
559
  buildPersonaXml,
563
560
  buildPromptsXml,
561
+ buildMemoriesXml,
564
562
  buildMenuXml,
563
+ filterCustomizationData,
565
564
  };
@@ -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', 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'];
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,