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
@@ -21,27 +21,27 @@ module.exports = {
21
21
  return;
22
22
  }
23
23
 
24
- // Handle agent compilation separately
25
- if (config.actionType === 'compile') {
26
- const result = await installer.compileAgents(config);
27
- console.log(chalk.green('\n✨ Agent compilation complete!'));
28
- console.log(chalk.cyan(`Rebuilt ${result.agentCount} agents and ${result.taskCount} tasks`));
29
- process.exit(0);
30
- return;
31
- }
32
-
33
24
  // Handle quick update separately
34
25
  if (config.actionType === 'quick-update') {
35
26
  const result = await installer.quickUpdate(config);
36
27
  console.log(chalk.green('\n✨ Quick update complete!'));
37
28
  console.log(chalk.cyan(`Updated ${result.moduleCount} modules with preserved settings`));
29
+ console.log(
30
+ chalk.magenta(
31
+ "\n📋 Want to see what's new? Check out the changelog: https://github.com/bmad-code-org/BMAD-METHOD/blob/main/CHANGELOG.md",
32
+ ),
33
+ );
38
34
  process.exit(0);
39
35
  return;
40
36
  }
41
37
 
42
- // Handle reinstall by setting force flag
43
- if (config.actionType === 'reinstall') {
44
- config._requestedReinstall = true;
38
+ // Handle compile agents separately
39
+ if (config.actionType === 'compile-agents') {
40
+ const result = await installer.compileAgents(config);
41
+ console.log(chalk.green('\n✨ Agent recompilation complete!'));
42
+ console.log(chalk.cyan(`Recompiled ${result.agentCount} agents with customizations applied`));
43
+ process.exit(0);
44
+ return;
45
45
  }
46
46
 
47
47
  // Regular install/update flow
@@ -55,14 +55,11 @@ module.exports = {
55
55
 
56
56
  // Check if installation succeeded
57
57
  if (result && result.success) {
58
- console.log(chalk.green('\n✨ Installation complete!'));
59
- console.log(chalk.cyan('BMAD Core and Selected Modules have been installed to:'), chalk.bold(result.path));
60
- console.log(chalk.yellow('\nThank you for helping test the early release version of the new BMad Core and BMad Method!'));
61
- console.log(chalk.cyan('Stable Beta coming soon - please read the full README.md and linked documentation to get started!'));
62
-
63
58
  // Run AgentVibes installer if needed
64
59
  if (result.needsAgentVibes) {
65
- console.log(chalk.magenta('\n🎙️ AgentVibes TTS Setup'));
60
+ // Add some spacing before AgentVibes setup
61
+ console.log('');
62
+ console.log(chalk.magenta('🎙️ AgentVibes TTS Setup'));
66
63
  console.log(chalk.cyan('AgentVibes provides voice synthesis for BMAD agents with:'));
67
64
  console.log(chalk.dim(' • ElevenLabs AI (150+ premium voices)'));
68
65
  console.log(chalk.dim(' • Piper TTS (50+ free voices)\n'));
@@ -91,6 +88,7 @@ module.exports = {
91
88
  shell: true,
92
89
  });
93
90
  console.log(chalk.green('\n✓ AgentVibes installation complete'));
91
+ console.log(chalk.cyan('\n✨ BMAD with TTS is ready to use!'));
94
92
  } catch {
95
93
  console.log(chalk.yellow('\n⚠ AgentVibes installation was interrupted or failed'));
96
94
  console.log(chalk.cyan('You can run it manually later with:'));
@@ -9,7 +9,9 @@ module.exports = {
9
9
  options: [],
10
10
  action: async () => {
11
11
  try {
12
- const modules = await installer.getAvailableModules();
12
+ const result = await installer.getAvailableModules();
13
+ const { modules, customModules } = result;
14
+
13
15
  console.log(chalk.cyan('\n📦 Available BMAD Modules:\n'));
14
16
 
15
17
  for (const module of modules) {
@@ -19,6 +21,16 @@ module.exports = {
19
21
  console.log();
20
22
  }
21
23
 
24
+ if (customModules && customModules.length > 0) {
25
+ console.log(chalk.cyan('\n🔧 Custom Modules:\n'));
26
+ for (const module of customModules) {
27
+ console.log(chalk.bold(` ${module.id}`));
28
+ console.log(chalk.dim(` ${module.description}`));
29
+ console.log(chalk.dim(` Version: ${module.version}`));
30
+ console.log();
31
+ }
32
+ }
33
+
22
34
  process.exit(0);
23
35
  } catch (error) {
24
36
  console.error(chalk.red('Error:'), error.message);
@@ -1,6 +1,6 @@
1
1
  const path = require('node:path');
2
2
  const fs = require('fs-extra');
3
- const yaml = require('js-yaml');
3
+ const yaml = require('yaml');
4
4
  const chalk = require('chalk');
5
5
  const inquirer = require('inquirer');
6
6
  const { getProjectRoot, getModulePath } = require('../../../lib/project-root');
@@ -15,7 +15,7 @@ class ConfigCollector {
15
15
 
16
16
  /**
17
17
  * Find the bmad installation directory in a project
18
- * V6+ installations can use ANY folder name but ALWAYS have _cfg/manifest.yaml
18
+ * V6+ installations can use ANY folder name but ALWAYS have _config/manifest.yaml
19
19
  * @param {string} projectDir - Project directory
20
20
  * @returns {Promise<string>} Path to bmad directory
21
21
  */
@@ -26,13 +26,13 @@ class ConfigCollector {
26
26
  return path.join(projectDir, 'bmad');
27
27
  }
28
28
 
29
- // V6+ strategy: Look for ANY directory with _cfg/manifest.yaml
29
+ // V6+ strategy: Look for ANY directory with _config/manifest.yaml
30
30
  // This is the definitive marker of a V6+ installation
31
31
  try {
32
32
  const entries = await fs.readdir(projectDir, { withFileTypes: true });
33
33
  for (const entry of entries) {
34
34
  if (entry.isDirectory()) {
35
- const manifestPath = path.join(projectDir, entry.name, '_cfg', 'manifest.yaml');
35
+ const manifestPath = path.join(projectDir, entry.name, '_config', 'manifest.yaml');
36
36
  if (await fs.pathExists(manifestPath)) {
37
37
  // Found a V6+ installation
38
38
  return path.join(projectDir, entry.name);
@@ -59,12 +59,12 @@ class ConfigCollector {
59
59
  return null;
60
60
  }
61
61
 
62
- // Look for ANY directory with _cfg/manifest.yaml
62
+ // Look for ANY directory with _config/manifest.yaml
63
63
  try {
64
64
  const entries = await fs.readdir(projectDir, { withFileTypes: true });
65
65
  for (const entry of entries) {
66
66
  if (entry.isDirectory()) {
67
- const manifestPath = path.join(projectDir, entry.name, '_cfg', 'manifest.yaml');
67
+ const manifestPath = path.join(projectDir, entry.name, '_config', 'manifest.yaml');
68
68
  if (await fs.pathExists(manifestPath)) {
69
69
  // Found a V6+ installation, return just the folder name
70
70
  return entry.name;
@@ -105,11 +105,17 @@ class ConfigCollector {
105
105
 
106
106
  for (const entry of entries) {
107
107
  if (entry.isDirectory()) {
108
+ // Skip the _config directory - it's for system use
109
+ if (entry.name === '_config' || entry.name === '_memory') {
110
+ continue;
111
+ }
112
+
108
113
  const moduleConfigPath = path.join(bmadDir, entry.name, 'config.yaml');
114
+
109
115
  if (await fs.pathExists(moduleConfigPath)) {
110
116
  try {
111
117
  const content = await fs.readFile(moduleConfigPath, 'utf8');
112
- const moduleConfig = yaml.load(content);
118
+ const moduleConfig = yaml.parse(content);
113
119
  if (moduleConfig) {
114
120
  this.existingConfig[entry.name] = moduleConfig;
115
121
  foundAny = true;
@@ -121,10 +127,6 @@ class ConfigCollector {
121
127
  }
122
128
  }
123
129
 
124
- if (foundAny) {
125
- console.log(chalk.cyan('\n📋 Found existing BMAD module configurations'));
126
- }
127
-
128
130
  return foundAny;
129
131
  }
130
132
 
@@ -238,7 +240,7 @@ class ConfigCollector {
238
240
  }
239
241
 
240
242
  const configContent = await fs.readFile(configPath, 'utf8');
241
- const moduleConfig = yaml.load(configContent);
243
+ const moduleConfig = yaml.parse(configContent);
242
244
 
243
245
  if (!moduleConfig) {
244
246
  return false;
@@ -248,14 +250,41 @@ class ConfigCollector {
248
250
  const configKeys = Object.keys(moduleConfig).filter((key) => key !== 'prompt');
249
251
  const existingKeys = this.existingConfig && this.existingConfig[moduleName] ? Object.keys(this.existingConfig[moduleName]) : [];
250
252
 
253
+ // Check if this module has no configuration keys at all (like CIS)
254
+ // Filter out metadata fields and only count actual config objects
255
+ const metadataFields = new Set(['code', 'name', 'header', 'subheader', 'default_selected']);
256
+ const actualConfigKeys = configKeys.filter((key) => !metadataFields.has(key));
257
+ const hasNoConfig = actualConfigKeys.length === 0;
258
+
259
+ // If module has no config keys at all, handle it specially
260
+ if (hasNoConfig && moduleConfig.subheader) {
261
+ // Add blank line for better readability (matches other modules)
262
+ console.log();
263
+ const moduleDisplayName = moduleConfig.header || `${moduleName.toUpperCase()} Module`;
264
+
265
+ // Display the module name in color first (matches other modules)
266
+ console.log(chalk.cyan('?') + ' ' + chalk.magenta(moduleDisplayName));
267
+
268
+ // Show the subheader since there's no configuration to ask about
269
+ console.log(chalk.dim(` ✓ ${moduleConfig.subheader}`));
270
+ return false; // No new fields
271
+ }
272
+
273
+ // Find new interactive fields (with prompt)
251
274
  const newKeys = configKeys.filter((key) => {
252
275
  const item = moduleConfig[key];
253
276
  // Check if it's a config item and doesn't exist in existing config
254
277
  return item && typeof item === 'object' && item.prompt && !existingKeys.includes(key);
255
278
  });
256
279
 
257
- // If in silent mode and no new keys, use existing config and skip prompts
258
- if (silentMode && newKeys.length === 0) {
280
+ // Find new static fields (without prompt, just result)
281
+ const newStaticKeys = configKeys.filter((key) => {
282
+ const item = moduleConfig[key];
283
+ return item && typeof item === 'object' && !item.prompt && item.result && !existingKeys.includes(key);
284
+ });
285
+
286
+ // If in silent mode and no new keys (neither interactive nor static), use existing config and skip prompts
287
+ if (silentMode && newKeys.length === 0 && newStaticKeys.length === 0) {
259
288
  if (this.existingConfig && this.existingConfig[moduleName]) {
260
289
  if (!this.collectedConfig[moduleName]) {
261
290
  this.collectedConfig[moduleName] = {};
@@ -289,14 +318,18 @@ class ConfigCollector {
289
318
  this.allAnswers[`${moduleName}_user_name`] = this.getDefaultUsername();
290
319
  }
291
320
  }
292
- // Show "no config" message for modules with no new questions
293
- CLIUtils.displayModuleNoConfig(moduleName, moduleConfig.header, moduleConfig.subheader);
294
- return false; // No new fields
295
321
  }
296
322
 
297
- // If we have new fields, build questions first
298
- if (newKeys.length > 0) {
323
+ // Show "no config" message for modules with no new questions (that have config keys)
324
+ console.log(chalk.dim(` ✓ ${moduleName.toUpperCase()} module already up to date`));
325
+ return false; // No new fields
326
+
327
+ // If we have new fields (interactive or static), process them
328
+ if (newKeys.length > 0 || newStaticKeys.length > 0) {
299
329
  const questions = [];
330
+ const staticAnswers = {};
331
+
332
+ // Build questions for interactive fields
300
333
  for (const key of newKeys) {
301
334
  const item = moduleConfig[key];
302
335
  const question = await this.buildQuestion(moduleName, key, item, moduleConfig);
@@ -305,38 +338,49 @@ class ConfigCollector {
305
338
  }
306
339
  }
307
340
 
341
+ // Prepare static answers (no prompt, just result)
342
+ for (const key of newStaticKeys) {
343
+ staticAnswers[`${moduleName}_${key}`] = undefined;
344
+ }
345
+
346
+ // Collect all answers (static + prompted)
347
+ let allAnswers = { ...staticAnswers };
348
+
308
349
  if (questions.length > 0) {
309
350
  // Only show header if we actually have questions
310
351
  CLIUtils.displayModuleConfigHeader(moduleName, moduleConfig.header, moduleConfig.subheader);
311
352
  console.log(); // Line break before questions
312
- const answers = await inquirer.prompt(questions);
313
-
314
- // Store answers for cross-referencing
315
- Object.assign(this.allAnswers, answers);
316
-
317
- // Process answers and build result values
318
- for (const key of Object.keys(answers)) {
319
- const originalKey = key.replace(`${moduleName}_`, '');
320
- const item = moduleConfig[originalKey];
321
- const value = answers[key];
322
-
323
- let result;
324
- if (Array.isArray(value)) {
325
- result = value;
326
- } else if (item.result) {
327
- result = this.processResultTemplate(item.result, value);
328
- } else {
329
- result = value;
330
- }
353
+ const promptedAnswers = await inquirer.prompt(questions);
331
354
 
332
- if (!this.collectedConfig[moduleName]) {
333
- this.collectedConfig[moduleName] = {};
334
- }
335
- this.collectedConfig[moduleName][originalKey] = result;
355
+ // Merge prompted answers with static answers
356
+ Object.assign(allAnswers, promptedAnswers);
357
+ } else if (newStaticKeys.length > 0) {
358
+ // Only static fields, no questions - show no config message
359
+ console.log(chalk.dim(` ✓ ${moduleName.toUpperCase()} module configuration updated`));
360
+ }
361
+
362
+ // Store all answers for cross-referencing
363
+ Object.assign(this.allAnswers, allAnswers);
364
+
365
+ // Process all answers (both static and prompted)
366
+ for (const key of Object.keys(allAnswers)) {
367
+ const originalKey = key.replace(`${moduleName}_`, '');
368
+ const item = moduleConfig[originalKey];
369
+ const value = allAnswers[key];
370
+
371
+ let result;
372
+ if (Array.isArray(value)) {
373
+ result = value;
374
+ } else if (item.result) {
375
+ result = this.processResultTemplate(item.result, value);
376
+ } else {
377
+ result = value;
336
378
  }
337
- } else {
338
- // New keys exist but no questions generated - show no config message
339
- CLIUtils.displayModuleNoConfig(moduleName, moduleConfig.header, moduleConfig.subheader);
379
+
380
+ if (!this.collectedConfig[moduleName]) {
381
+ this.collectedConfig[moduleName] = {};
382
+ }
383
+ this.collectedConfig[moduleName][originalKey] = result;
340
384
  }
341
385
  }
342
386
 
@@ -353,7 +397,7 @@ class ConfigCollector {
353
397
  }
354
398
  }
355
399
 
356
- return newKeys.length > 0; // Return true if we prompted for new fields
400
+ return newKeys.length > 0 || newStaticKeys.length > 0; // Return true if we had any new fields (interactive or static)
357
401
  }
358
402
 
359
403
  /**
@@ -493,7 +537,7 @@ class ConfigCollector {
493
537
  }
494
538
 
495
539
  const configContent = await fs.readFile(configPath, 'utf8');
496
- const moduleConfig = yaml.load(configContent);
540
+ const moduleConfig = yaml.parse(configContent);
497
541
 
498
542
  if (!moduleConfig) {
499
543
  return;
@@ -501,30 +545,91 @@ class ConfigCollector {
501
545
 
502
546
  // Process each config item
503
547
  const questions = [];
548
+ const staticAnswers = {};
504
549
  const configKeys = Object.keys(moduleConfig).filter((key) => key !== 'prompt');
505
550
 
506
551
  for (const key of configKeys) {
507
552
  const item = moduleConfig[key];
508
553
 
509
554
  // Skip if not a config object
510
- if (!item || typeof item !== 'object' || !item.prompt) {
555
+ if (!item || typeof item !== 'object') {
511
556
  continue;
512
557
  }
513
558
 
514
- const question = await this.buildQuestion(moduleName, key, item, moduleConfig);
515
- if (question) {
516
- questions.push(question);
559
+ // Handle static values (no prompt, just result)
560
+ if (!item.prompt && item.result) {
561
+ // Add to static answers with a marker value
562
+ staticAnswers[`${moduleName}_${key}`] = undefined;
563
+ continue;
564
+ }
565
+
566
+ // Handle interactive values (with prompt)
567
+ if (item.prompt) {
568
+ const question = await this.buildQuestion(moduleName, key, item, moduleConfig);
569
+ if (question) {
570
+ questions.push(question);
571
+ }
517
572
  }
518
573
  }
519
574
 
520
- // Display appropriate header based on whether there are questions
575
+ // Collect all answers (static + prompted)
576
+ let allAnswers = { ...staticAnswers };
577
+
578
+ // If there are questions to ask, prompt for accepting defaults vs customizing
521
579
  if (questions.length > 0) {
522
- CLIUtils.displayModuleConfigHeader(moduleName, moduleConfig.header, moduleConfig.subheader);
523
- console.log(); // Line break before questions
524
- const answers = await inquirer.prompt(questions);
580
+ // Get friendly module name from config or use uppercase module name
581
+ const moduleDisplayName = moduleConfig.header || `${moduleName.toUpperCase()} Module`;
582
+
583
+ // Add blank line for better readability
584
+ console.log();
585
+
586
+ // Display the module name in color first
587
+ console.log(chalk.cyan('?') + ' ' + chalk.magenta(moduleDisplayName));
588
+
589
+ // Ask user if they want to accept defaults or customize on the next line
590
+ const { customize } = await inquirer.prompt([
591
+ {
592
+ type: 'confirm',
593
+ name: 'customize',
594
+ message: 'Accept Defaults (no to customize)?',
595
+ default: true,
596
+ },
597
+ ]);
598
+
599
+ if (customize) {
600
+ // Accept defaults - only ask questions that have NO default value
601
+ const questionsWithoutDefaults = questions.filter((q) => q.default === undefined || q.default === null || q.default === '');
602
+
603
+ if (questionsWithoutDefaults.length > 0) {
604
+ console.log(chalk.dim(`\n Asking required questions for ${moduleName.toUpperCase()}...`));
605
+ const promptedAnswers = await inquirer.prompt(questionsWithoutDefaults);
606
+ Object.assign(allAnswers, promptedAnswers);
607
+ }
525
608
 
526
- // Store answers for cross-referencing
527
- Object.assign(this.allAnswers, answers);
609
+ // For questions with defaults that weren't asked, we need to process them with their default values
610
+ const questionsWithDefaults = questions.filter((q) => q.default !== undefined && q.default !== null && q.default !== '');
611
+ for (const question of questionsWithDefaults) {
612
+ // Skip function defaults - these are dynamic and will be evaluated later
613
+ if (typeof question.default === 'function') {
614
+ continue;
615
+ }
616
+ allAnswers[question.name] = question.default;
617
+ }
618
+ } else {
619
+ // Customize - ask all questions
620
+ console.log(chalk.dim(`\n Configuring ${moduleName.toUpperCase()}...`));
621
+ const promptedAnswers = await inquirer.prompt(questions);
622
+ Object.assign(allAnswers, promptedAnswers);
623
+ }
624
+ }
625
+
626
+ // Store all answers for cross-referencing
627
+ Object.assign(this.allAnswers, allAnswers);
628
+
629
+ // Process all answers (both static and prompted)
630
+ // Always process if we have any answers or static answers
631
+ if (Object.keys(allAnswers).length > 0 || Object.keys(staticAnswers).length > 0) {
632
+ const answers = allAnswers;
528
633
 
529
634
  // Process answers and build result values
530
635
  for (const key of Object.keys(answers)) {
@@ -622,8 +727,68 @@ class ConfigCollector {
622
727
 
623
728
  // No longer display completion boxes - keep output clean
624
729
  } else {
625
- // No questions for this module - show completion message
626
- CLIUtils.displayModuleNoConfig(moduleName, moduleConfig.header, moduleConfig.subheader);
730
+ // No questions for this module - show completion message with header if available
731
+ const moduleDisplayName = moduleConfig.header || `${moduleName.toUpperCase()} Module`;
732
+
733
+ // Check if this module has NO configuration keys at all (like CIS)
734
+ // Filter out metadata fields and only count actual config objects
735
+ const metadataFields = new Set(['code', 'name', 'header', 'subheader', 'default_selected']);
736
+ const actualConfigKeys = configKeys.filter((key) => !metadataFields.has(key));
737
+ const hasNoConfig = actualConfigKeys.length === 0;
738
+
739
+ if (hasNoConfig && (moduleConfig.subheader || moduleConfig.header)) {
740
+ // Module explicitly has no configuration - show with special styling
741
+ // Add blank line for better readability (matches other modules)
742
+ console.log();
743
+
744
+ // Display the module name in color first (matches other modules)
745
+ console.log(chalk.cyan('?') + ' ' + chalk.magenta(moduleDisplayName));
746
+
747
+ // Ask user if they want to accept defaults or customize on the next line
748
+ const { customize } = await inquirer.prompt([
749
+ {
750
+ type: 'confirm',
751
+ name: 'customize',
752
+ message: 'Accept Defaults (no to customize)?',
753
+ default: true,
754
+ },
755
+ ]);
756
+
757
+ // Show the subheader if available, otherwise show a default message
758
+ if (moduleConfig.subheader) {
759
+ console.log(chalk.dim(` ✓ ${moduleConfig.subheader}`));
760
+ } else {
761
+ console.log(chalk.dim(` ✓ No custom configuration required`));
762
+ }
763
+ } else {
764
+ // Module has config but just no questions to ask
765
+ console.log(chalk.dim(` ✓ ${moduleName.toUpperCase()} module configured`));
766
+ }
767
+ }
768
+
769
+ // If we have no collected config for this module, but we have a module schema,
770
+ // ensure we have at least an empty object
771
+ if (!this.collectedConfig[moduleName]) {
772
+ this.collectedConfig[moduleName] = {};
773
+
774
+ // If we accepted defaults and have no answers, we still need to check
775
+ // if there are any static values in the schema that should be applied
776
+ if (moduleConfig) {
777
+ for (const key of Object.keys(moduleConfig)) {
778
+ if (key !== 'prompt' && moduleConfig[key] && typeof moduleConfig[key] === 'object') {
779
+ const item = moduleConfig[key];
780
+ // For static items (no prompt, just result), apply the result
781
+ if (!item.prompt && item.result) {
782
+ // Apply any placeholder replacements to the result
783
+ let result = item.result;
784
+ if (typeof result === 'string') {
785
+ result = this.replacePlaceholders(result, moduleName, moduleConfig);
786
+ }
787
+ this.collectedConfig[moduleName][key] = result;
788
+ }
789
+ }
790
+ }
791
+ }
627
792
  }
628
793
  }
629
794
 
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Custom Module Source Cache
3
- * Caches custom module sources under _cfg/custom/ to ensure they're never lost
3
+ * Caches custom module sources under _config/custom/ to ensure they're never lost
4
4
  * and can be checked into source control
5
5
  */
6
6
 
@@ -11,7 +11,7 @@ const crypto = require('node:crypto');
11
11
  class CustomModuleCache {
12
12
  constructor(bmadDir) {
13
13
  this.bmadDir = bmadDir;
14
- this.customCacheDir = path.join(bmadDir, '_cfg', 'custom');
14
+ this.customCacheDir = path.join(bmadDir, '_config', 'custom');
15
15
  this.manifestPath = path.join(this.customCacheDir, 'cache-manifest.yaml');
16
16
  }
17
17
 
@@ -31,19 +31,21 @@ class CustomModuleCache {
31
31
  }
32
32
 
33
33
  const content = await fs.readFile(this.manifestPath, 'utf8');
34
- const yaml = require('js-yaml');
35
- return yaml.load(content) || {};
34
+ const yaml = require('yaml');
35
+ return yaml.parse(content) || {};
36
36
  }
37
37
 
38
38
  /**
39
39
  * Update cache manifest
40
40
  */
41
41
  async updateCacheManifest(manifest) {
42
- const yaml = require('js-yaml');
43
- const content = yaml.dump(manifest, {
42
+ const yaml = require('yaml');
43
+ // Clean the manifest to remove any non-serializable values
44
+ const cleanManifest = structuredClone(manifest);
45
+
46
+ const content = yaml.stringify(cleanManifest, {
44
47
  indent: 2,
45
- lineWidth: -1,
46
- noRefs: true,
48
+ lineWidth: 0,
47
49
  sortKeys: false,
48
50
  });
49
51
 
@@ -145,12 +147,18 @@ class CustomModuleCache {
145
147
  const sourceHash = await this.calculateHash(sourcePath);
146
148
  const cacheHash = await this.calculateHash(cacheDir);
147
149
 
148
- // Update manifest - don't store originalPath for source control friendliness
150
+ // Update manifest - don't store absolute paths for portability
151
+ // Clean metadata to remove absolute paths
152
+ const cleanMetadata = { ...metadata };
153
+ if (cleanMetadata.sourcePath) {
154
+ delete cleanMetadata.sourcePath;
155
+ }
156
+
149
157
  cacheManifest[moduleId] = {
150
158
  originalHash: sourceHash,
151
159
  cacheHash: cacheHash,
152
160
  cachedAt: new Date().toISOString(),
153
- ...metadata,
161
+ ...cleanMetadata,
154
162
  };
155
163
 
156
164
  await this.updateCacheManifest(cacheManifest);
@@ -2,7 +2,7 @@ const fs = require('fs-extra');
2
2
  const path = require('node:path');
3
3
  const glob = require('glob');
4
4
  const chalk = require('chalk');
5
- const yaml = require('js-yaml');
5
+ const yaml = require('yaml');
6
6
 
7
7
  /**
8
8
  * Dependency Resolver for BMAD modules
@@ -147,7 +147,7 @@ class DependencyResolver {
147
147
  // Quote values with backticks to make them valid YAML
148
148
  yamlContent = yamlContent.replaceAll(/: `([^`]+)`/g, ': "$1"');
149
149
 
150
- const frontmatter = yaml.load(yamlContent);
150
+ const frontmatter = yaml.parse(yamlContent);
151
151
  if (frontmatter.dependencies) {
152
152
  const deps = Array.isArray(frontmatter.dependencies) ? frontmatter.dependencies : [frontmatter.dependencies];
153
153