bmad-method 6.0.0-alpha.2 → 6.0.0-alpha.20

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 (1280) hide show
  1. package/.coderabbit.yaml +40 -0
  2. package/.github/CODE_OF_CONDUCT.md +128 -0
  3. package/.github/ISSUE_TEMPLATE/idea_submission.md +2 -2
  4. package/.github/scripts/discord-helpers.sh +34 -0
  5. package/.github/workflows/bundle-latest.yaml +329 -0
  6. package/.github/workflows/discord.yaml +302 -8
  7. package/.github/workflows/docs.yaml +72 -0
  8. package/.github/workflows/manual-release.yaml +35 -18
  9. package/.github/workflows/quality.yaml +94 -0
  10. package/.husky/pre-commit +4 -0
  11. package/.markdownlint-cli2.yaml +42 -0
  12. package/.prettierignore +7 -0
  13. package/.vscode/settings.json +4 -2
  14. package/CHANGELOG.md +678 -13
  15. package/CONTRIBUTING.md +2 -16
  16. package/LICENSE +1 -1
  17. package/README.md +159 -177
  18. package/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
  19. package/docs/agent-customization-guide.md +208 -0
  20. package/docs/custom-content-installation.md +149 -0
  21. package/docs/custom-content.md +122 -0
  22. package/docs/document-sharding-guide.md +449 -0
  23. package/docs/getting-started/installation.md +76 -0
  24. package/docs/ide-info/crush.md +1 -1
  25. package/docs/ide-info/cursor.md +7 -7
  26. package/docs/ide-info/iflow.md +3 -3
  27. package/docs/ide-info/index.md +24 -0
  28. package/docs/ide-info/opencode.md +1 -1
  29. package/docs/ide-info/rovo-dev.md +22 -0
  30. package/docs/index.md +143 -0
  31. package/docs/v4-to-v6-upgrade.md +38 -36
  32. package/docs/web-bundles-gemini-gpt-guide.md +21 -0
  33. package/eslint.config.mjs +23 -2
  34. package/package.json +24 -9
  35. package/samples/sample-custom-modules/README.md +11 -0
  36. package/samples/sample-custom-modules/sample-unitary-module/README.md +8 -0
  37. package/samples/sample-custom-modules/sample-unitary-module/agents/commit-poet/commit-poet.agent.yaml +129 -0
  38. package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/instructions.md +70 -0
  39. package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/bundlers.md +111 -0
  40. package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/deploy.md +70 -0
  41. package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/docs.md +114 -0
  42. package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +134 -0
  43. package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +161 -0
  44. package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/tests.md +103 -0
  45. package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/memories.md +17 -0
  46. package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith.agent.yaml +109 -0
  47. package/samples/sample-custom-modules/sample-unitary-module/module.yaml +8 -0
  48. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-01-init.md +168 -0
  49. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-02-q1.md +155 -0
  50. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-03-q2.md +89 -0
  51. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-04-q3.md +36 -0
  52. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-05-q4.md +36 -0
  53. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-06-q5.md +36 -0
  54. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-07-q6.md +36 -0
  55. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-08-q7.md +36 -0
  56. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-09-q8.md +36 -0
  57. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-10-q9.md +36 -0
  58. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-11-q10.md +36 -0
  59. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-12-results.md +150 -0
  60. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/templates/csv-headers.template +1 -0
  61. package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/workflow.md +54 -0
  62. package/samples/sample-custom-modules/sample-unitary-module/workflows/wassup/workflow.md +26 -0
  63. package/samples/sample-custom-modules/sample-wellness-module/README.md +6 -0
  64. package/samples/sample-custom-modules/sample-wellness-module/agents/meditation-guide.agent.yaml +136 -0
  65. package/samples/sample-custom-modules/sample-wellness-module/agents/wellness-companion/foo.md +3 -0
  66. package/samples/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/addition1.md +1 -0
  67. package/samples/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/insights.md +13 -0
  68. package/samples/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/instructions.md +30 -0
  69. package/samples/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/memories.md +13 -0
  70. package/samples/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/patterns.md +17 -0
  71. package/samples/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion.agent.yaml +120 -0
  72. package/samples/sample-custom-modules/sample-wellness-module/module.yaml +17 -0
  73. package/samples/sample-custom-modules/sample-wellness-module/workflows/daily-checkin/README.md +32 -0
  74. package/samples/sample-custom-modules/sample-wellness-module/workflows/daily-checkin/workflow.md +45 -0
  75. package/samples/sample-custom-modules/sample-wellness-module/workflows/guided-meditation/README.md +31 -0
  76. package/samples/sample-custom-modules/sample-wellness-module/workflows/guided-meditation/workflow.md +45 -0
  77. package/samples/sample-custom-modules/sample-wellness-module/workflows/wellness-journal/README.md +31 -0
  78. package/samples/sample-custom-modules/sample-wellness-module/workflows/wellness-journal/workflow.md +45 -0
  79. package/src/core/_module-installer/installer.js +1 -9
  80. package/src/core/agents/bmad-master.agent.yaml +6 -11
  81. package/src/core/module.yaml +25 -0
  82. package/src/core/resources/excalidraw/README.md +160 -0
  83. package/src/core/resources/excalidraw/excalidraw-helpers.md +127 -0
  84. package/src/core/resources/excalidraw/library-loader.md +50 -0
  85. package/src/core/resources/excalidraw/validate-json-instructions.md +79 -0
  86. package/src/core/tasks/advanced-elicitation-methods.csv +51 -0
  87. package/src/core/tasks/advanced-elicitation.xml +116 -0
  88. package/src/core/tasks/index-docs.xml +1 -1
  89. package/src/core/tasks/review-adversarial-general.xml +41 -0
  90. package/src/core/tasks/validate-workflow.xml +1 -1
  91. package/src/core/tasks/workflow.xml +126 -57
  92. package/src/core/tools/shard-doc.xml +53 -44
  93. package/src/core/workflows/brainstorming/brain-methods.csv +62 -36
  94. package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +196 -0
  95. package/src/core/workflows/brainstorming/steps/step-01b-continue.md +121 -0
  96. package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +224 -0
  97. package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +236 -0
  98. package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +208 -0
  99. package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +263 -0
  100. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +339 -0
  101. package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +302 -0
  102. package/src/core/workflows/brainstorming/template.md +13 -100
  103. package/src/core/workflows/brainstorming/workflow.md +51 -0
  104. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
  105. package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +203 -0
  106. package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +158 -0
  107. package/src/core/workflows/party-mode/workflow.md +206 -0
  108. package/src/modules/bmb/README.md +12 -119
  109. package/src/modules/bmb/agents/bmad-builder.agent.yaml +77 -41
  110. package/src/modules/bmb/docs/agents/agent-compilation.md +340 -0
  111. package/src/modules/bmb/docs/agents/agent-menu-patterns.md +523 -0
  112. package/src/modules/bmb/docs/agents/expert-agent-architecture.md +363 -0
  113. package/src/modules/bmb/docs/agents/index.md +55 -0
  114. package/src/modules/bmb/docs/agents/kb.csv +0 -0
  115. package/src/modules/bmb/docs/agents/simple-agent-architecture.md +257 -0
  116. package/src/modules/bmb/docs/agents/understanding-agent-types.md +184 -0
  117. package/src/modules/bmb/docs/index.md +247 -0
  118. package/src/modules/bmb/docs/workflows/architecture.md +220 -0
  119. package/src/modules/bmb/docs/workflows/common-workflow-tools.csv +19 -0
  120. package/src/modules/bmb/docs/workflows/csv-data-file-standards.md +206 -0
  121. package/src/modules/bmb/docs/workflows/index.md +45 -0
  122. package/src/modules/bmb/docs/workflows/intent-vs-prescriptive-spectrum.md +220 -0
  123. package/src/modules/bmb/docs/workflows/kb.csv +0 -0
  124. package/src/modules/bmb/docs/workflows/templates/step-01-init-continuable-template.md +241 -0
  125. package/src/modules/bmb/docs/workflows/templates/step-1b-template.md +223 -0
  126. package/src/modules/bmb/docs/workflows/templates/step-file.md +139 -0
  127. package/src/modules/bmb/docs/workflows/templates/step-template.md +290 -0
  128. package/src/modules/bmb/docs/workflows/templates/workflow-template.md +104 -0
  129. package/src/modules/bmb/docs/workflows/templates/workflow.md +58 -0
  130. package/src/modules/bmb/docs/workflows/terms.md +97 -0
  131. package/src/modules/bmb/module.yaml +16 -0
  132. package/src/modules/bmb/reference/README.md +3 -0
  133. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/README.md +242 -0
  134. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/breakthroughs.md +24 -0
  135. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/instructions.md +108 -0
  136. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/memories.md +46 -0
  137. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/mood-patterns.md +39 -0
  138. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +152 -0
  139. package/src/modules/bmb/reference/agents/module-examples/README.md +49 -0
  140. package/src/modules/bmb/reference/agents/module-examples/security-engineer.agent.yaml +53 -0
  141. package/src/modules/bmb/reference/agents/module-examples/trend-analyst.agent.yaml +57 -0
  142. package/src/modules/bmb/reference/agents/simple-examples/README.md +223 -0
  143. package/src/modules/bmb/reference/agents/simple-examples/commit-poet.agent.yaml +126 -0
  144. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +18 -0
  145. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +16 -0
  146. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +28 -0
  147. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +176 -0
  148. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +120 -0
  149. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +164 -0
  150. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +153 -0
  151. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +182 -0
  152. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +167 -0
  153. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -0
  154. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -0
  155. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -0
  156. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -0
  157. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -0
  158. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -0
  159. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -0
  160. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/workflow.md +58 -0
  161. package/src/modules/bmb/workflows/create-agent/data/agent-validation-checklist.md +174 -0
  162. package/src/modules/bmb/workflows/create-agent/data/brainstorm-context.md +153 -0
  163. package/src/modules/bmb/workflows/create-agent/data/communication-presets.csv +61 -0
  164. package/src/modules/bmb/workflows/create-agent/data/info-and-installation-guide.md +29 -0
  165. package/src/modules/bmb/workflows/create-agent/data/reference/README.md +3 -0
  166. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/README.md +242 -0
  167. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/breakthroughs.md +24 -0
  168. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/instructions.md +108 -0
  169. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/memories.md +46 -0
  170. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/mood-patterns.md +39 -0
  171. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +152 -0
  172. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/README.md +48 -0
  173. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/security-engineer.agent.yaml +53 -0
  174. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/trend-analyst.agent.yaml +57 -0
  175. package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/README.md +223 -0
  176. package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/commit-poet.agent.yaml +126 -0
  177. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +18 -0
  178. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +16 -0
  179. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +28 -0
  180. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +177 -0
  181. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +150 -0
  182. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +164 -0
  183. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +152 -0
  184. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +182 -0
  185. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +167 -0
  186. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -0
  187. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -0
  188. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -0
  189. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -0
  190. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -0
  191. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -0
  192. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -0
  193. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/workflow.md +58 -0
  194. package/src/modules/bmb/workflows/create-agent/data/validation-complete.md +305 -0
  195. package/src/modules/bmb/workflows/create-agent/steps/step-01-brainstorm.md +145 -0
  196. package/src/modules/bmb/workflows/create-agent/steps/step-02-discover.md +206 -0
  197. package/src/modules/bmb/workflows/create-agent/steps/step-03-persona.md +260 -0
  198. package/src/modules/bmb/workflows/create-agent/steps/step-04-commands.md +237 -0
  199. package/src/modules/bmb/workflows/create-agent/steps/step-05-name.md +232 -0
  200. package/src/modules/bmb/workflows/create-agent/steps/step-06-build.md +186 -0
  201. package/src/modules/bmb/workflows/create-agent/steps/step-07-validate.md +234 -0
  202. package/src/modules/bmb/workflows/create-agent/steps/step-08-celebrate.md +218 -0
  203. package/src/modules/bmb/workflows/create-agent/templates/agent-plan.template.md +3 -0
  204. package/src/modules/bmb/workflows/create-agent/templates/expert-agent.template.md +364 -0
  205. package/src/modules/bmb/workflows/create-agent/templates/simple-agent.template.md +257 -0
  206. package/src/modules/bmb/workflows/create-agent/workflow.md +58 -0
  207. package/src/modules/bmb/workflows/create-module/steps/step-01-init.md +155 -0
  208. package/src/modules/bmb/workflows/create-module/steps/step-01b-continue.md +169 -0
  209. package/src/modules/bmb/workflows/create-module/steps/step-02-concept.md +217 -0
  210. package/src/modules/bmb/workflows/create-module/steps/step-03-components.md +267 -0
  211. package/src/modules/bmb/workflows/create-module/steps/step-04-structure.md +228 -0
  212. package/src/modules/bmb/workflows/create-module/steps/step-05-config.md +233 -0
  213. package/src/modules/bmb/workflows/create-module/steps/step-06-agents.md +296 -0
  214. package/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md +228 -0
  215. package/src/modules/bmb/workflows/create-module/steps/step-08-installer.md +186 -0
  216. package/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md +309 -0
  217. package/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md +337 -0
  218. package/src/modules/bmb/workflows/create-module/steps/step-11-validate.md +335 -0
  219. package/src/modules/bmb/workflows/create-module/templates/agent.template.md +313 -0
  220. package/src/modules/bmb/workflows/create-module/templates/installer.template.js +47 -0
  221. package/src/modules/bmb/workflows/create-module/templates/module-plan.template.md +5 -0
  222. package/src/modules/bmb/workflows/create-module/templates/module.template.yaml +53 -0
  223. package/src/modules/bmb/workflows/create-module/templates/workflow-plan-template.md +23 -0
  224. package/src/modules/bmb/workflows/create-module/validation.md +126 -0
  225. package/src/modules/bmb/workflows/create-module/workflow.md +55 -0
  226. package/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md +157 -0
  227. package/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md +211 -0
  228. package/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md +250 -0
  229. package/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md +216 -0
  230. package/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md +289 -0
  231. package/src/modules/bmb/workflows/create-workflow/steps/step-06-design.md +271 -0
  232. package/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md +308 -0
  233. package/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md +284 -0
  234. package/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md +187 -0
  235. package/src/modules/bmb/workflows/create-workflow/workflow.md +58 -0
  236. package/src/modules/bmb/workflows/edit-agent/steps/step-01-discover-intent.md +134 -0
  237. package/src/modules/bmb/workflows/edit-agent/steps/step-02-analyze-agent.md +202 -0
  238. package/src/modules/bmb/workflows/edit-agent/steps/step-03-propose-changes.md +157 -0
  239. package/src/modules/bmb/workflows/edit-agent/steps/step-04-apply-changes.md +150 -0
  240. package/src/modules/bmb/workflows/edit-agent/steps/step-05-validate.md +150 -0
  241. package/src/modules/bmb/workflows/edit-agent/workflow.md +58 -0
  242. package/src/modules/bmb/workflows/edit-workflow/steps/step-01-analyze.md +217 -0
  243. package/src/modules/bmb/workflows/edit-workflow/steps/step-02-discover.md +253 -0
  244. package/src/modules/bmb/workflows/edit-workflow/steps/step-03-improve.md +217 -0
  245. package/src/modules/bmb/workflows/edit-workflow/steps/step-04-validate.md +193 -0
  246. package/src/modules/bmb/workflows/edit-workflow/steps/step-05-compliance-check.md +245 -0
  247. package/src/modules/bmb/workflows/edit-workflow/templates/completion-summary.md +75 -0
  248. package/src/modules/bmb/workflows/edit-workflow/templates/improvement-goals.md +68 -0
  249. package/src/modules/bmb/workflows/edit-workflow/templates/improvement-log.md +40 -0
  250. package/src/modules/bmb/workflows/edit-workflow/templates/validation-results.md +51 -0
  251. package/src/modules/bmb/workflows/edit-workflow/templates/workflow-analysis.md +56 -0
  252. package/src/modules/bmb/workflows/edit-workflow/workflow.md +58 -0
  253. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +152 -0
  254. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +243 -0
  255. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +274 -0
  256. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +295 -0
  257. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +264 -0
  258. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +360 -0
  259. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +258 -0
  260. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +301 -0
  261. package/src/modules/bmb/workflows/workflow-compliance-check/templates/compliance-report.md +140 -0
  262. package/src/modules/bmb/workflows/workflow-compliance-check/workflow.md +58 -0
  263. package/src/modules/bmb/workflows-legacy/edit-module/README.md +171 -0
  264. package/src/modules/bmb/workflows-legacy/edit-module/checklist.md +163 -0
  265. package/src/modules/bmb/workflows-legacy/edit-module/instructions.md +340 -0
  266. package/src/modules/bmb/workflows-legacy/edit-module/workflow.yaml +34 -0
  267. package/src/modules/bmb/workflows-legacy/module-brief/README.md +264 -0
  268. package/src/modules/bmb/workflows-legacy/module-brief/checklist.md +116 -0
  269. package/src/modules/bmb/workflows-legacy/module-brief/instructions.md +268 -0
  270. package/src/modules/bmb/workflows-legacy/module-brief/workflow.yaml +36 -0
  271. package/src/modules/bmgd/_module-installer/installer.js +160 -0
  272. package/src/modules/bmgd/_module-installer/platform-specifics/claude-code.js +23 -0
  273. package/src/modules/bmgd/_module-installer/platform-specifics/windsurf.js +18 -0
  274. package/src/modules/bmgd/agents/game-architect.agent.yaml +52 -0
  275. package/src/modules/bmgd/agents/game-designer.agent.yaml +60 -0
  276. package/src/modules/bmgd/agents/game-dev.agent.yaml +56 -0
  277. package/src/modules/bmgd/agents/game-qa.agent.yaml +64 -0
  278. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +63 -0
  279. package/src/modules/bmgd/agents/game-solo-dev.agent.yaml +56 -0
  280. package/src/modules/bmgd/docs/agents-guide.md +407 -0
  281. package/src/modules/bmgd/docs/game-types-guide.md +503 -0
  282. package/src/modules/bmgd/docs/glossary.md +294 -0
  283. package/src/modules/bmgd/docs/index.md +180 -0
  284. package/src/modules/bmgd/docs/quick-flow-guide.md +288 -0
  285. package/src/modules/bmgd/docs/quick-start.md +250 -0
  286. package/src/modules/bmgd/docs/troubleshooting.md +259 -0
  287. package/src/modules/bmgd/docs/workflow-overview.jpg +0 -0
  288. package/src/modules/bmgd/docs/workflows-guide.md +463 -0
  289. package/src/modules/bmgd/gametest/knowledge/balance-testing.md +220 -0
  290. package/src/modules/bmgd/gametest/knowledge/certification-testing.md +319 -0
  291. package/src/modules/bmgd/gametest/knowledge/compatibility-testing.md +228 -0
  292. package/src/modules/bmgd/gametest/knowledge/godot-testing.md +376 -0
  293. package/src/modules/bmgd/gametest/knowledge/input-testing.md +315 -0
  294. package/src/modules/bmgd/gametest/knowledge/localization-testing.md +304 -0
  295. package/src/modules/bmgd/gametest/knowledge/multiplayer-testing.md +322 -0
  296. package/src/modules/bmgd/gametest/knowledge/performance-testing.md +204 -0
  297. package/src/modules/bmgd/gametest/knowledge/playtesting.md +384 -0
  298. package/src/modules/bmgd/gametest/knowledge/qa-automation.md +190 -0
  299. package/src/modules/bmgd/gametest/knowledge/regression-testing.md +280 -0
  300. package/src/modules/bmgd/gametest/knowledge/save-testing.md +280 -0
  301. package/src/modules/bmgd/gametest/knowledge/smoke-testing.md +404 -0
  302. package/src/modules/bmgd/gametest/knowledge/test-priorities.md +271 -0
  303. package/src/modules/bmgd/gametest/knowledge/unity-testing.md +383 -0
  304. package/src/modules/bmgd/gametest/knowledge/unreal-testing.md +388 -0
  305. package/src/modules/bmgd/gametest/qa-index.csv +17 -0
  306. package/src/modules/bmgd/module.yaml +64 -0
  307. package/src/modules/bmgd/teams/default-party.csv +12 -0
  308. package/src/modules/bmgd/teams/team-gamedev.yaml +29 -0
  309. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +130 -0
  310. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md +164 -0
  311. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-02-context.md +210 -0
  312. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-03-ideation.md +289 -0
  313. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md +275 -0
  314. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md +49 -0
  315. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +62 -0
  316. package/src/modules/bmgd/workflows/1-preproduction/game-brief/instructions.md +373 -0
  317. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01-init.md +223 -0
  318. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01b-continue.md +151 -0
  319. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-02-vision.md +218 -0
  320. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-03-market.md +218 -0
  321. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-04-fundamentals.md +231 -0
  322. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-05-scope.md +242 -0
  323. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-06-references.md +224 -0
  324. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-07-content.md +282 -0
  325. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-08-complete.md +296 -0
  326. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.md +62 -0
  327. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.yaml +67 -0
  328. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01-init.md +248 -0
  329. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01b-continue.md +173 -0
  330. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-02-context.md +332 -0
  331. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-03-platforms.md +245 -0
  332. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-04-vision.md +229 -0
  333. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-05-core-gameplay.md +258 -0
  334. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-06-mechanics.md +249 -0
  335. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-07-game-type.md +266 -0
  336. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-08-progression.md +272 -0
  337. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-09-levels.md +264 -0
  338. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-10-art-audio.md +255 -0
  339. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-11-technical.md +275 -0
  340. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-12-epics.md +284 -0
  341. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-13-metrics.md +250 -0
  342. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-14-complete.md +335 -0
  343. package/src/modules/bmgd/workflows/2-design/gdd/workflow.md +61 -0
  344. package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +101 -0
  345. package/src/modules/bmgd/workflows/2-design/narrative/instructions-narrative.md +604 -0
  346. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01-init.md +228 -0
  347. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01b-continue.md +163 -0
  348. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-02-foundation.md +262 -0
  349. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-03-story.md +238 -0
  350. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-04-characters.md +297 -0
  351. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-05-world.md +262 -0
  352. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-06-dialogue.md +250 -0
  353. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-07-environmental.md +244 -0
  354. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-08-delivery.md +264 -0
  355. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-09-integration.md +254 -0
  356. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-10-production.md +262 -0
  357. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md +331 -0
  358. package/src/modules/bmgd/workflows/2-design/narrative/workflow.md +57 -0
  359. package/src/modules/bmgd/workflows/2-design/narrative/workflow.yaml +77 -0
  360. package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-patterns.yaml +321 -0
  361. package/src/modules/bmgd/workflows/3-technical/game-architecture/checklist.md +240 -0
  362. package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +701 -0
  363. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01-init.md +223 -0
  364. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01b-continue.md +153 -0
  365. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-02-context.md +262 -0
  366. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-03-starter.md +290 -0
  367. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-04-decisions.md +300 -0
  368. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md +319 -0
  369. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-06-structure.md +304 -0
  370. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-07-patterns.md +349 -0
  371. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-08-validation.md +293 -0
  372. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md +356 -0
  373. package/src/modules/bmgd/workflows/3-technical/game-architecture/templates/architecture-template.md +103 -0
  374. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.md +55 -0
  375. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +98 -0
  376. package/src/modules/bmgd/workflows/3-technical/generate-project-context/project-context-template.md +20 -0
  377. package/src/modules/bmgd/workflows/3-technical/generate-project-context/steps/step-01-discover.md +201 -0
  378. package/src/modules/bmgd/workflows/3-technical/generate-project-context/steps/step-02-generate.md +373 -0
  379. package/src/modules/bmgd/workflows/3-technical/generate-project-context/steps/step-03-complete.md +279 -0
  380. package/src/modules/bmgd/workflows/3-technical/generate-project-context/workflow.md +48 -0
  381. package/src/modules/bmgd/workflows/4-production/code-review/checklist.md +23 -0
  382. package/src/modules/bmgd/workflows/4-production/code-review/instructions.xml +225 -0
  383. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +64 -0
  384. package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +279 -0
  385. package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +206 -0
  386. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +63 -0
  387. package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +358 -0
  388. package/src/modules/bmgd/workflows/4-production/create-story/instructions.xml +298 -0
  389. package/src/modules/bmgd/workflows/4-production/create-story/template.md +49 -0
  390. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +79 -0
  391. package/src/modules/bmgd/workflows/4-production/dev-story/checklist.md +80 -0
  392. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.xml +409 -0
  393. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +68 -0
  394. package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +1443 -0
  395. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +62 -0
  396. package/src/modules/bmgd/workflows/4-production/sprint-planning/checklist.md +33 -0
  397. package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +234 -0
  398. package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +55 -0
  399. package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +56 -0
  400. package/src/modules/bmgd/workflows/4-production/sprint-status/instructions.md +229 -0
  401. package/src/modules/bmgd/workflows/4-production/sprint-status/workflow.yaml +35 -0
  402. package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/instructions.md +140 -0
  403. package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/workflow.yaml +27 -0
  404. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/checklist.md +37 -0
  405. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/instructions.md +220 -0
  406. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml +45 -0
  407. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/checklist.md +26 -0
  408. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/instructions.md +156 -0
  409. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml +36 -0
  410. package/src/modules/bmgd/workflows/gametest/automate/checklist.md +93 -0
  411. package/src/modules/bmgd/workflows/gametest/automate/instructions.md +317 -0
  412. package/src/modules/bmgd/workflows/gametest/automate/workflow.yaml +50 -0
  413. package/src/modules/bmgd/workflows/gametest/performance/checklist.md +96 -0
  414. package/src/modules/bmgd/workflows/gametest/performance/instructions.md +323 -0
  415. package/src/modules/bmgd/workflows/gametest/performance/performance-template.md +256 -0
  416. package/src/modules/bmgd/workflows/gametest/performance/workflow.yaml +48 -0
  417. package/src/modules/bmgd/workflows/gametest/playtest-plan/checklist.md +93 -0
  418. package/src/modules/bmgd/workflows/gametest/playtest-plan/instructions.md +297 -0
  419. package/src/modules/bmgd/workflows/gametest/playtest-plan/playtest-template.md +208 -0
  420. package/src/modules/bmgd/workflows/gametest/playtest-plan/workflow.yaml +59 -0
  421. package/src/modules/bmgd/workflows/gametest/test-design/checklist.md +98 -0
  422. package/src/modules/bmgd/workflows/gametest/test-design/instructions.md +280 -0
  423. package/src/modules/bmgd/workflows/gametest/test-design/test-design-template.md +205 -0
  424. package/src/modules/bmgd/workflows/gametest/test-design/workflow.yaml +47 -0
  425. package/src/modules/bmgd/workflows/gametest/test-framework/checklist.md +103 -0
  426. package/src/modules/bmgd/workflows/gametest/test-framework/instructions.md +348 -0
  427. package/src/modules/bmgd/workflows/gametest/test-framework/workflow.yaml +48 -0
  428. package/src/modules/bmgd/workflows/gametest/test-review/checklist.md +87 -0
  429. package/src/modules/bmgd/workflows/gametest/test-review/instructions.md +272 -0
  430. package/src/modules/bmgd/workflows/gametest/test-review/test-review-template.md +203 -0
  431. package/src/modules/bmgd/workflows/gametest/test-review/workflow.yaml +48 -0
  432. package/src/modules/bmgd/workflows/workflow-status/init/instructions.md +299 -0
  433. package/src/modules/bmgd/workflows/workflow-status/init/workflow.yaml +29 -0
  434. package/src/modules/bmgd/workflows/workflow-status/instructions.md +395 -0
  435. package/src/modules/bmgd/workflows/workflow-status/paths/gamedev-brownfield.yaml +65 -0
  436. package/src/modules/bmgd/workflows/workflow-status/paths/gamedev-greenfield.yaml +71 -0
  437. package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-brownfield.yaml +29 -0
  438. package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-greenfield.yaml +39 -0
  439. package/src/modules/bmgd/workflows/workflow-status/project-levels.yaml +63 -0
  440. package/src/modules/bmgd/workflows/workflow-status/workflow-status-template.yaml +24 -0
  441. package/src/modules/bmgd/workflows/workflow-status/workflow.yaml +30 -0
  442. package/src/modules/bmm/README.md +78 -92
  443. package/src/modules/bmm/_module-installer/installer.js +3 -3
  444. package/src/modules/bmm/_module-installer/platform-specifics/claude-code.js +1 -1
  445. package/src/modules/bmm/_module-installer/platform-specifics/windsurf.js +1 -1
  446. package/src/modules/bmm/agents/analyst.agent.yaml +32 -23
  447. package/src/modules/bmm/agents/architect.agent.yaml +32 -25
  448. package/src/modules/bmm/agents/dev.agent.yaml +32 -27
  449. package/src/modules/bmm/agents/pm.agent.yaml +30 -30
  450. package/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml +27 -0
  451. package/src/modules/bmm/agents/sm.agent.yaml +35 -44
  452. package/src/modules/bmm/agents/tea.agent.yaml +31 -20
  453. package/src/modules/bmm/agents/tech-writer.agent.yaml +67 -0
  454. package/src/modules/bmm/agents/ux-designer.agent.yaml +35 -20
  455. package/src/modules/bmm/data/README.md +29 -0
  456. package/src/modules/bmm/data/documentation-standards.md +262 -0
  457. package/src/modules/bmm/data/project-context-template.md +40 -0
  458. package/src/modules/bmm/docs/agents-guide.md +144 -0
  459. package/src/modules/bmm/docs/bmad-quick-flow.md +506 -0
  460. package/src/modules/bmm/docs/brownfield-guide.md +748 -0
  461. package/src/modules/bmm/docs/enterprise-agentic-development.md +686 -0
  462. package/src/modules/bmm/docs/faq.md +542 -0
  463. package/src/modules/bmm/docs/glossary.md +306 -0
  464. package/src/modules/bmm/docs/images/README.md +37 -0
  465. package/src/modules/bmm/docs/images/workflow-method-greenfield.excalidraw +5034 -0
  466. package/src/modules/bmm/docs/images/workflow-method-greenfield.svg +4 -0
  467. package/src/modules/bmm/docs/index.md +168 -0
  468. package/src/modules/bmm/docs/party-mode.md +224 -0
  469. package/src/modules/bmm/docs/quick-flow-solo-dev.md +337 -0
  470. package/src/modules/bmm/docs/quick-spec-flow.md +638 -0
  471. package/src/modules/bmm/docs/quick-start.md +366 -0
  472. package/src/modules/bmm/docs/scale-adaptive-system.md +618 -0
  473. package/src/modules/bmm/docs/test-architecture.md +455 -0
  474. package/src/modules/bmm/docs/troubleshooting.md +661 -0
  475. package/src/modules/bmm/docs/workflow-architecture-reference.md +366 -0
  476. package/src/modules/bmm/docs/workflow-document-project-reference.md +489 -0
  477. package/src/modules/bmm/docs/workflows-analysis.md +266 -0
  478. package/src/modules/bmm/docs/workflows-implementation.md +210 -0
  479. package/src/modules/bmm/docs/workflows-planning.md +451 -0
  480. package/src/modules/bmm/docs/workflows-solutioning.md +509 -0
  481. package/src/modules/bmm/module.yaml +56 -0
  482. package/src/modules/bmm/teams/default-party.csv +21 -0
  483. package/src/modules/bmm/teams/team-fullstack.yaml +1 -0
  484. package/src/modules/bmm/testarch/knowledge/api-request.md +303 -0
  485. package/src/modules/bmm/testarch/knowledge/auth-session.md +356 -0
  486. package/src/modules/bmm/testarch/knowledge/burn-in.md +273 -0
  487. package/src/modules/bmm/testarch/knowledge/ci-burn-in.md +1 -1
  488. package/src/modules/bmm/testarch/knowledge/file-utils.md +260 -0
  489. package/src/modules/bmm/testarch/knowledge/fixtures-composition.md +382 -0
  490. package/src/modules/bmm/testarch/knowledge/intercept-network-call.md +280 -0
  491. package/src/modules/bmm/testarch/knowledge/log.md +294 -0
  492. package/src/modules/bmm/testarch/knowledge/network-error-monitor.md +272 -0
  493. package/src/modules/bmm/testarch/knowledge/network-recorder.md +265 -0
  494. package/src/modules/bmm/testarch/knowledge/overview.md +283 -0
  495. package/src/modules/bmm/testarch/knowledge/recurse.md +296 -0
  496. package/src/modules/bmm/testarch/tea-index.csv +11 -0
  497. package/src/modules/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
  498. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +192 -0
  499. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +165 -0
  500. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +203 -0
  501. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +206 -0
  502. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +209 -0
  503. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +223 -0
  504. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +198 -0
  505. package/src/modules/bmm/workflows/1-analysis/create-product-brief/workflow.md +58 -0
  506. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +136 -0
  507. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +228 -0
  508. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +237 -0
  509. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +205 -0
  510. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +233 -0
  511. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +442 -0
  512. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +181 -0
  513. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +236 -0
  514. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +199 -0
  515. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +248 -0
  516. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +258 -0
  517. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +176 -0
  518. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +474 -0
  519. package/src/modules/bmm/workflows/1-analysis/research/research.template.md +29 -0
  520. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +136 -0
  521. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +238 -0
  522. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +247 -0
  523. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +201 -0
  524. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +238 -0
  525. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +485 -0
  526. package/src/modules/bmm/workflows/1-analysis/research/workflow.md +173 -0
  527. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +159 -0
  528. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +126 -0
  529. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +189 -0
  530. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +215 -0
  531. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +218 -0
  532. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +233 -0
  533. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +251 -0
  534. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +253 -0
  535. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +223 -0
  536. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +223 -0
  537. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +240 -0
  538. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +247 -0
  539. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +236 -0
  540. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +263 -0
  541. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +226 -0
  542. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +6 -138
  543. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +57 -0
  544. package/src/modules/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
  545. package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +12 -58
  546. package/src/modules/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
  547. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01-init.md +243 -0
  548. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01b-continue.md +165 -0
  549. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +420 -0
  550. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md +289 -0
  551. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +290 -0
  552. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +270 -0
  553. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +261 -0
  554. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +257 -0
  555. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +298 -0
  556. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md +269 -0
  557. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +293 -0
  558. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +223 -0
  559. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md +61 -0
  560. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +189 -0
  561. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +177 -0
  562. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +178 -0
  563. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +138 -0
  564. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +251 -0
  565. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +132 -0
  566. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
  567. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +54 -0
  568. package/src/modules/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
  569. package/src/modules/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +11 -0
  570. package/src/modules/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
  571. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +182 -0
  572. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +163 -0
  573. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +223 -0
  574. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +330 -0
  575. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +317 -0
  576. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +358 -0
  577. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +378 -0
  578. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +358 -0
  579. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +351 -0
  580. package/src/modules/bmm/workflows/3-solutioning/create-architecture/workflow.md +49 -0
  581. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +258 -0
  582. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +232 -0
  583. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +271 -0
  584. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +144 -0
  585. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  586. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +58 -0
  587. package/src/modules/bmm/workflows/4-implementation/code-review/checklist.md +2 -1
  588. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml +225 -0
  589. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +34 -36
  590. package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +1 -1
  591. package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +7 -2
  592. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +42 -27
  593. package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +332 -214
  594. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml +344 -0
  595. package/src/modules/bmm/workflows/4-implementation/create-story/template.md +3 -5
  596. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +38 -27
  597. package/src/modules/bmm/workflows/4-implementation/dev-story/checklist.md +65 -23
  598. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml +409 -0
  599. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +9 -10
  600. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +1208 -244
  601. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +38 -26
  602. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +59 -55
  603. package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +14 -14
  604. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +21 -8
  605. package/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md +229 -0
  606. package/src/modules/bmm/workflows/4-implementation/sprint-status/workflow.yaml +36 -0
  607. package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/instructions.md +115 -0
  608. package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml +28 -0
  609. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +156 -0
  610. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -0
  611. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +113 -0
  612. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -0
  613. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -0
  614. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +140 -0
  615. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +51 -0
  616. package/src/modules/bmm/workflows/document-project/checklist.md +1 -1
  617. package/src/modules/bmm/workflows/document-project/instructions.md +31 -32
  618. package/src/modules/bmm/workflows/document-project/workflow.yaml +4 -10
  619. package/src/modules/bmm/workflows/document-project/workflows/deep-dive-instructions.md +6 -6
  620. package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +5 -5
  621. package/src/modules/bmm/workflows/document-project/workflows/full-scan-instructions.md +13 -13
  622. package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +5 -5
  623. package/src/modules/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +90 -0
  624. package/src/modules/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +127 -0
  625. package/src/modules/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +39 -0
  626. package/src/modules/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +130 -0
  627. package/src/modules/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +27 -0
  628. package/src/modules/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +43 -0
  629. package/src/modules/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +141 -0
  630. package/src/modules/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +27 -0
  631. package/src/modules/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +49 -0
  632. package/src/modules/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +241 -0
  633. package/src/modules/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +27 -0
  634. package/src/modules/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +38 -0
  635. package/src/modules/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +133 -0
  636. package/src/modules/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +27 -0
  637. package/src/modules/bmm/workflows/generate-project-context/project-context-template.md +21 -0
  638. package/src/modules/bmm/workflows/generate-project-context/steps/step-01-discover.md +183 -0
  639. package/src/modules/bmm/workflows/generate-project-context/steps/step-02-generate.md +317 -0
  640. package/src/modules/bmm/workflows/generate-project-context/steps/step-03-complete.md +277 -0
  641. package/src/modules/bmm/workflows/generate-project-context/workflow.md +48 -0
  642. package/src/modules/bmm/workflows/testarch/atdd/atdd-checklist-template.md +10 -9
  643. package/src/modules/bmm/workflows/testarch/atdd/checklist.md +1 -0
  644. package/src/modules/bmm/workflows/testarch/atdd/instructions.md +26 -5
  645. package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +2 -9
  646. package/src/modules/bmm/workflows/testarch/automate/checklist.md +2 -0
  647. package/src/modules/bmm/workflows/testarch/automate/instructions.md +25 -4
  648. package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +2 -11
  649. package/src/modules/bmm/workflows/testarch/ci/checklist.md +7 -5
  650. package/src/modules/bmm/workflows/testarch/ci/github-actions-template.yaml +36 -3
  651. package/src/modules/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +25 -4
  652. package/src/modules/bmm/workflows/testarch/ci/instructions.md +23 -4
  653. package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +2 -10
  654. package/src/modules/bmm/workflows/testarch/framework/checklist.md +4 -4
  655. package/src/modules/bmm/workflows/testarch/framework/instructions.md +28 -2
  656. package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +2 -8
  657. package/src/modules/bmm/workflows/testarch/nfr-assess/checklist.md +2 -0
  658. package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +1 -1
  659. package/src/modules/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +2 -0
  660. package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +2 -11
  661. package/src/modules/bmm/workflows/testarch/test-design/checklist.md +7 -6
  662. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +182 -15
  663. package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +13 -4
  664. package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +13 -11
  665. package/src/modules/bmm/workflows/testarch/test-review/checklist.md +2 -0
  666. package/src/modules/bmm/workflows/testarch/test-review/instructions.md +29 -9
  667. package/src/modules/bmm/workflows/testarch/test-review/test-review-template.md +2 -0
  668. package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +2 -9
  669. package/src/modules/bmm/workflows/testarch/trace/checklist.md +1 -0
  670. package/src/modules/bmm/workflows/testarch/trace/instructions.md +11 -9
  671. package/src/modules/bmm/workflows/testarch/trace/trace-template.md +2 -0
  672. package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +2 -13
  673. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +259 -210
  674. package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +6 -5
  675. package/src/modules/bmm/workflows/workflow-status/instructions.md +188 -117
  676. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +122 -0
  677. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +110 -0
  678. package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +106 -0
  679. package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +96 -0
  680. package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +1 -1
  681. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -0
  682. package/src/modules/bmm/workflows/workflow-status/workflow.yaml +7 -5
  683. package/src/modules/cis/_module-installer/installer.js +1 -1
  684. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +15 -9
  685. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +14 -8
  686. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +14 -8
  687. package/src/modules/cis/agents/innovation-strategist.agent.yaml +14 -8
  688. package/src/modules/cis/agents/presentation-master.agent.yaml +61 -0
  689. package/src/modules/cis/agents/storyteller/storyteller-sidecar/stories-told.md +7 -0
  690. package/src/modules/cis/agents/storyteller/storyteller-sidecar/story-preferences.md +7 -0
  691. package/src/modules/cis/agents/storyteller/storyteller.agent.yaml +34 -0
  692. package/src/modules/cis/docs/index.md +149 -0
  693. package/src/modules/cis/module.yaml +11 -0
  694. package/src/modules/cis/teams/creative-squad.yaml +1 -0
  695. package/src/modules/cis/teams/default-party.csv +12 -0
  696. package/src/modules/cis/workflows/README.md +102 -30
  697. package/src/modules/cis/workflows/design-thinking/instructions.md +4 -2
  698. package/src/modules/cis/workflows/design-thinking/workflow.yaml +7 -12
  699. package/src/modules/cis/workflows/innovation-strategy/instructions.md +7 -5
  700. package/src/modules/cis/workflows/innovation-strategy/template.md +3 -3
  701. package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +7 -12
  702. package/src/modules/cis/workflows/problem-solving/instructions.md +4 -2
  703. package/src/modules/cis/workflows/problem-solving/workflow.yaml +7 -12
  704. package/src/modules/cis/workflows/storytelling/instructions.md +14 -4
  705. package/src/modules/cis/workflows/storytelling/workflow.yaml +7 -12
  706. package/src/utility/agent-components/activation-rules.txt +7 -0
  707. package/src/utility/agent-components/activation-steps.txt +13 -0
  708. package/src/utility/agent-components/agent-command-header.md +1 -0
  709. package/src/utility/agent-components/agent.customize.template.yaml +41 -0
  710. package/src/utility/agent-components/handler-action.txt +4 -0
  711. package/src/utility/agent-components/handler-exec.txt +6 -0
  712. package/src/utility/agent-components/handler-multi.txt +14 -0
  713. package/src/utility/agent-components/handler-tmpl.txt +5 -0
  714. package/src/utility/agent-components/handler-validate-workflow.txt +7 -0
  715. package/src/utility/agent-components/handler-workflow.txt +10 -0
  716. package/src/utility/agent-components/menu-handlers.txt +6 -0
  717. package/test/README.md +2 -2
  718. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +24 -0
  719. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +24 -0
  720. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-wrong-shortcut.agent.yaml +24 -0
  721. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +1 -3
  722. package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +30 -0
  723. package/test/test-agent-schema.js +2 -2
  724. package/test/test-installation-components.js +214 -0
  725. package/tools/build-docs.js +630 -0
  726. package/tools/cli/README.md +1 -588
  727. package/tools/cli/commands/install.js +61 -20
  728. package/tools/cli/installers/install-messages.yaml +52 -0
  729. package/tools/cli/installers/lib/core/config-collector.js +595 -98
  730. package/tools/cli/installers/lib/core/custom-module-cache.js +259 -0
  731. package/tools/cli/installers/lib/core/dependency-resolver.js +2 -2
  732. package/tools/cli/installers/lib/core/detector.js +75 -16
  733. package/tools/cli/installers/lib/core/ide-config-manager.js +12 -8
  734. package/tools/cli/installers/lib/core/installer.js +1277 -722
  735. package/tools/cli/installers/lib/core/manifest-generator.js +285 -142
  736. package/tools/cli/installers/lib/core/manifest.js +74 -20
  737. package/tools/cli/installers/lib/custom/handler.js +363 -0
  738. package/tools/cli/installers/lib/ide/_base-ide.js +94 -12
  739. package/tools/cli/installers/lib/ide/antigravity.js +507 -0
  740. package/tools/cli/installers/lib/ide/auggie.js +148 -240
  741. package/tools/cli/installers/lib/ide/claude-code.js +92 -32
  742. package/tools/cli/installers/lib/ide/cline.js +64 -18
  743. package/tools/cli/installers/lib/ide/codex.js +226 -72
  744. package/tools/cli/installers/lib/ide/crush.js +79 -55
  745. package/tools/cli/installers/lib/ide/cursor.js +144 -20
  746. package/tools/cli/installers/lib/ide/gemini.js +180 -35
  747. package/tools/cli/installers/lib/ide/github-copilot.js +154 -57
  748. package/tools/cli/installers/lib/ide/iflow.js +79 -30
  749. package/tools/cli/installers/lib/ide/kilo.js +94 -16
  750. package/tools/cli/installers/lib/ide/kiro-cli.js +327 -0
  751. package/tools/cli/installers/lib/ide/manager.js +50 -0
  752. package/tools/cli/installers/lib/ide/opencode.js +66 -22
  753. package/tools/cli/installers/lib/ide/qwen.js +93 -11
  754. package/tools/cli/installers/lib/ide/roo.js +158 -176
  755. package/tools/cli/installers/lib/ide/rovo-dev.js +290 -0
  756. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +96 -0
  757. package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +34 -19
  758. package/tools/cli/installers/lib/ide/shared/module-injections.js +2 -2
  759. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +119 -0
  760. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +241 -0
  761. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
  762. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
  763. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
  764. package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +13 -0
  765. package/tools/cli/installers/lib/ide/templates/workflow-commander.md +5 -0
  766. package/tools/cli/installers/lib/ide/trae.js +67 -32
  767. package/tools/cli/installers/lib/ide/windsurf.js +65 -8
  768. package/tools/cli/installers/lib/message-loader.js +85 -0
  769. package/tools/cli/installers/lib/modules/manager.js +785 -97
  770. package/tools/cli/lib/activation-builder.js +8 -13
  771. package/tools/cli/lib/agent/compiler.js +564 -0
  772. package/tools/cli/lib/agent/installer.js +716 -0
  773. package/tools/cli/lib/agent/template-engine.js +152 -0
  774. package/tools/cli/lib/agent-analyzer.js +48 -20
  775. package/tools/cli/lib/agent-party-generator.js +5 -17
  776. package/tools/cli/lib/cli-utils.js +65 -46
  777. package/tools/cli/lib/config.js +7 -4
  778. package/tools/cli/lib/platform-codes.js +2 -2
  779. package/tools/cli/lib/ui.js +1132 -81
  780. package/tools/cli/lib/xml-handler.js +4 -55
  781. package/tools/cli/lib/yaml-format.js +6 -7
  782. package/tools/cli/lib/yaml-xml-builder.js +196 -56
  783. package/tools/flattener/ignoreRules.js +1 -1
  784. package/tools/flattener/xml.js +1 -7
  785. package/tools/lib/xml-utils.js +13 -0
  786. package/tools/maintainer/review-pr-README.md +55 -0
  787. package/tools/maintainer/review-pr.md +242 -0
  788. package/tools/migrate-custom-module-paths.js +124 -0
  789. package/tools/platform-codes.yaml +12 -0
  790. package/tools/schema/agent.js +304 -23
  791. package/tools/validate-agent-schema.js +2 -2
  792. package/tools/validate-svg-changes.sh +356 -0
  793. package/website/css/custom.css +52 -0
  794. package/website/docusaurus.config.js +179 -0
  795. package/website/sidebars.js +157 -0
  796. package/website/src/pages/downloads.md +81 -0
  797. package/website/src/pages/index.js +50 -0
  798. package/website/static/favicon.ico +0 -0
  799. package/website/static/img/logo.svg +4 -0
  800. package/website/static/robots.txt +37 -0
  801. package/.claude/commands/bmad/bmb/agents/bmad-builder.md +0 -70
  802. package/.claude/commands/bmad/bmb/workflows/README.md +0 -67
  803. package/.claude/commands/bmad/bmb/workflows/audit-workflow.md +0 -15
  804. package/.claude/commands/bmad/bmb/workflows/convert-legacy.md +0 -15
  805. package/.claude/commands/bmad/bmb/workflows/create-agent.md +0 -15
  806. package/.claude/commands/bmad/bmb/workflows/create-module.md +0 -15
  807. package/.claude/commands/bmad/bmb/workflows/create-workflow.md +0 -15
  808. package/.claude/commands/bmad/bmb/workflows/edit-agent.md +0 -15
  809. package/.claude/commands/bmad/bmb/workflows/edit-module.md +0 -15
  810. package/.claude/commands/bmad/bmb/workflows/edit-workflow.md +0 -15
  811. package/.claude/commands/bmad/bmb/workflows/module-brief.md +0 -15
  812. package/.claude/commands/bmad/bmb/workflows/redoc.md +0 -15
  813. package/.claude/commands/bmad/bmd/agents/cli-chief.md +0 -108
  814. package/.claude/commands/bmad/bmd/agents/doc-keeper.md +0 -115
  815. package/.claude/commands/bmad/bmd/agents/release-chief.md +0 -109
  816. package/.claude/commands/bmad/core/agents/bmad-master.md +0 -71
  817. package/.claude/commands/bmad/core/tasks/index-docs.md +0 -9
  818. package/.claude/commands/bmad/core/tools/shard-doc.md +0 -9
  819. package/.claude/commands/bmad/core/workflows/README.md +0 -27
  820. package/.claude/commands/bmad/core/workflows/brainstorming.md +0 -15
  821. package/.claude/commands/bmad/core/workflows/party-mode.md +0 -15
  822. package/.claude/hooks/bmad-tts-injector.sh +0 -415
  823. package/.claude/hooks/bmad-voice-manager.sh +0 -511
  824. package/.claude/hooks/check-output-style.sh +0 -112
  825. package/.claude/hooks/download-extra-voices.sh +0 -244
  826. package/.claude/hooks/github-star-reminder.sh +0 -154
  827. package/.claude/hooks/language-manager.sh +0 -392
  828. package/.claude/hooks/learn-manager.sh +0 -475
  829. package/.claude/hooks/personality-manager.sh +0 -438
  830. package/.claude/hooks/piper-download-voices.sh +0 -165
  831. package/.claude/hooks/piper-installer.sh +0 -178
  832. package/.claude/hooks/piper-multispeaker-registry.sh +0 -165
  833. package/.claude/hooks/piper-voice-manager.sh +0 -293
  834. package/.claude/hooks/play-tts-elevenlabs.sh +0 -404
  835. package/.claude/hooks/play-tts-piper.sh +0 -338
  836. package/.claude/hooks/play-tts.sh +0 -100
  837. package/.claude/hooks/provider-commands.sh +0 -540
  838. package/.claude/hooks/provider-manager.sh +0 -298
  839. package/.claude/hooks/replay-target-audio.sh +0 -95
  840. package/.claude/hooks/sentiment-manager.sh +0 -201
  841. package/.claude/hooks/speed-manager.sh +0 -291
  842. package/.claude/hooks/voice-manager.sh +0 -594
  843. package/.claude/hooks/voices-config.sh +0 -70
  844. package/.claude/settings.local.json +0 -41
  845. package/.github/workflows/lint.yaml +0 -61
  846. package/bmad/_cfg/agent-manifest.csv +0 -7
  847. package/bmad/_cfg/agents/bmb-bmad-builder.customize.yaml +0 -42
  848. package/bmad/_cfg/agents/bmd-cli-chief.customize.yaml +0 -32
  849. package/bmad/_cfg/agents/bmd-doc-keeper.customize.yaml +0 -42
  850. package/bmad/_cfg/agents/bmd-release-chief.customize.yaml +0 -42
  851. package/bmad/_cfg/agents/core-bmad-master.customize.yaml +0 -42
  852. package/bmad/_cfg/files-manifest.csv +0 -83
  853. package/bmad/_cfg/manifest.yaml +0 -12
  854. package/bmad/_cfg/task-manifest.csv +0 -5
  855. package/bmad/_cfg/tool-manifest.csv +0 -2
  856. package/bmad/_cfg/workflow-manifest.csv +0 -15
  857. package/bmad/bmb/README.md +0 -132
  858. package/bmad/bmb/agents/bmad-builder.md +0 -70
  859. package/bmad/bmb/config.yaml +0 -14
  860. package/bmad/bmb/workflows/audit-workflow/checklist.md +0 -143
  861. package/bmad/bmb/workflows/audit-workflow/instructions.md +0 -341
  862. package/bmad/bmb/workflows/audit-workflow/template.md +0 -118
  863. package/bmad/bmb/workflows/audit-workflow/workflow.yaml +0 -23
  864. package/bmad/bmb/workflows/audit-workflow/workflow.yaml.bak +0 -21
  865. package/bmad/bmb/workflows/convert-legacy/README.md +0 -262
  866. package/bmad/bmb/workflows/convert-legacy/checklist.md +0 -205
  867. package/bmad/bmb/workflows/convert-legacy/instructions.md +0 -377
  868. package/bmad/bmb/workflows/convert-legacy/workflow.yaml +0 -32
  869. package/bmad/bmb/workflows/create-agent/README.md +0 -320
  870. package/bmad/bmb/workflows/create-agent/agent-architecture.md +0 -419
  871. package/bmad/bmb/workflows/create-agent/agent-architecture.md.bak +0 -412
  872. package/bmad/bmb/workflows/create-agent/agent-command-patterns.md +0 -759
  873. package/bmad/bmb/workflows/create-agent/agent-command-patterns.md.bak +0 -759
  874. package/bmad/bmb/workflows/create-agent/agent-types.md +0 -292
  875. package/bmad/bmb/workflows/create-agent/brainstorm-context.md +0 -174
  876. package/bmad/bmb/workflows/create-agent/checklist.md +0 -62
  877. package/bmad/bmb/workflows/create-agent/communication-styles.md +0 -202
  878. package/bmad/bmb/workflows/create-agent/instructions.md +0 -430
  879. package/bmad/bmb/workflows/create-agent/workflow.yaml +0 -37
  880. package/bmad/bmb/workflows/create-module/README.md +0 -220
  881. package/bmad/bmb/workflows/create-module/README.md.bak +0 -218
  882. package/bmad/bmb/workflows/create-module/brainstorm-context.md +0 -137
  883. package/bmad/bmb/workflows/create-module/checklist.md +0 -244
  884. package/bmad/bmb/workflows/create-module/checklist.md.bak +0 -245
  885. package/bmad/bmb/workflows/create-module/installer-templates/install-config.yaml +0 -92
  886. package/bmad/bmb/workflows/create-module/installer-templates/installer.js +0 -231
  887. package/bmad/bmb/workflows/create-module/installer-templates/installer.js.bak +0 -231
  888. package/bmad/bmb/workflows/create-module/instructions.md +0 -581
  889. package/bmad/bmb/workflows/create-module/instructions.md.bak +0 -521
  890. package/bmad/bmb/workflows/create-module/module-structure.md +0 -366
  891. package/bmad/bmb/workflows/create-module/module-structure.md.bak +0 -310
  892. package/bmad/bmb/workflows/create-module/workflow.yaml +0 -42
  893. package/bmad/bmb/workflows/create-module/workflow.yaml.bak +0 -40
  894. package/bmad/bmb/workflows/create-workflow/README.md +0 -277
  895. package/bmad/bmb/workflows/create-workflow/brainstorm-context.md +0 -197
  896. package/bmad/bmb/workflows/create-workflow/checklist.md +0 -94
  897. package/bmad/bmb/workflows/create-workflow/instructions.md +0 -716
  898. package/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md +0 -1150
  899. package/bmad/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -24
  900. package/bmad/bmb/workflows/create-workflow/workflow-template/instructions.md +0 -13
  901. package/bmad/bmb/workflows/create-workflow/workflow-template/template.md +0 -9
  902. package/bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml +0 -39
  903. package/bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml.bak +0 -39
  904. package/bmad/bmb/workflows/create-workflow/workflow.yaml +0 -40
  905. package/bmad/bmb/workflows/create-workflow/workflow.yaml.bak +0 -38
  906. package/bmad/bmb/workflows/edit-agent/README.md +0 -112
  907. package/bmad/bmb/workflows/edit-agent/checklist.md +0 -112
  908. package/bmad/bmb/workflows/edit-agent/instructions.md +0 -290
  909. package/bmad/bmb/workflows/edit-agent/workflow.yaml +0 -33
  910. package/bmad/bmb/workflows/edit-module/README.md +0 -187
  911. package/bmad/bmb/workflows/edit-module/checklist.md +0 -165
  912. package/bmad/bmb/workflows/edit-module/instructions.md +0 -339
  913. package/bmad/bmb/workflows/edit-module/workflow.yaml +0 -34
  914. package/bmad/bmb/workflows/edit-workflow/README.md +0 -119
  915. package/bmad/bmb/workflows/edit-workflow/checklist.md +0 -70
  916. package/bmad/bmb/workflows/edit-workflow/instructions.md +0 -342
  917. package/bmad/bmb/workflows/edit-workflow/workflow.yaml +0 -27
  918. package/bmad/bmb/workflows/edit-workflow/workflow.yaml.bak +0 -25
  919. package/bmad/bmb/workflows/module-brief/README.md +0 -264
  920. package/bmad/bmb/workflows/module-brief/checklist.md +0 -116
  921. package/bmad/bmb/workflows/module-brief/instructions.md +0 -267
  922. package/bmad/bmb/workflows/module-brief/workflow.yaml +0 -29
  923. package/bmad/bmb/workflows/module-brief/workflow.yaml.bak +0 -27
  924. package/bmad/bmb/workflows/redoc/README.md +0 -87
  925. package/bmad/bmb/workflows/redoc/checklist.md +0 -99
  926. package/bmad/bmb/workflows/redoc/instructions.md +0 -265
  927. package/bmad/bmb/workflows/redoc/workflow.yaml +0 -32
  928. package/bmad/bmb/workflows/redoc/workflow.yaml.bak +0 -31
  929. package/bmad/bmd/README.md +0 -193
  930. package/bmad/bmd/README.md.bak +0 -193
  931. package/bmad/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
  932. package/bmad/bmd/agents/cli-chief-sidecar/instructions.md.bak +0 -102
  933. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
  934. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md.bak +0 -68
  935. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
  936. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md.bak +0 -123
  937. package/bmad/bmd/agents/cli-chief-sidecar/memories.md +0 -53
  938. package/bmad/bmd/agents/cli-chief-sidecar/memories.md.bak +0 -53
  939. package/bmad/bmd/agents/cli-chief.md +0 -108
  940. package/bmad/bmd/agents/cli-chief.md.bak +0 -108
  941. package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
  942. package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md.bak +0 -177
  943. package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
  944. package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md.bak +0 -81
  945. package/bmad/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
  946. package/bmad/bmd/agents/doc-keeper-sidecar/memories.md.bak +0 -88
  947. package/bmad/bmd/agents/doc-keeper.md +0 -115
  948. package/bmad/bmd/agents/doc-keeper.md.bak +0 -115
  949. package/bmad/bmd/agents/release-chief-sidecar/instructions.md +0 -164
  950. package/bmad/bmd/agents/release-chief-sidecar/instructions.md.bak +0 -164
  951. package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
  952. package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md.bak +0 -82
  953. package/bmad/bmd/agents/release-chief-sidecar/memories.md +0 -73
  954. package/bmad/bmd/agents/release-chief-sidecar/memories.md.bak +0 -73
  955. package/bmad/bmd/agents/release-chief.md +0 -109
  956. package/bmad/bmd/agents/release-chief.md.bak +0 -109
  957. package/bmad/bmd/config.yaml +0 -10
  958. package/bmad/core/agents/bmad-master.md +0 -71
  959. package/bmad/core/agents/bmad-web-orchestrator.agent.xml +0 -122
  960. package/bmad/core/config.yaml +0 -9
  961. package/bmad/core/tasks/adv-elicit-methods.csv +0 -39
  962. package/bmad/core/tasks/adv-elicit.xml +0 -104
  963. package/bmad/core/tasks/index-docs.xml +0 -65
  964. package/bmad/core/tasks/validate-workflow.xml +0 -89
  965. package/bmad/core/tasks/workflow.xml +0 -174
  966. package/bmad/core/tools/shard-doc.xml +0 -100
  967. package/bmad/core/workflows/brainstorming/README.md +0 -271
  968. package/bmad/core/workflows/brainstorming/brain-methods.csv +0 -36
  969. package/bmad/core/workflows/brainstorming/instructions.md +0 -314
  970. package/bmad/core/workflows/brainstorming/template.md +0 -102
  971. package/bmad/core/workflows/brainstorming/workflow.yaml +0 -43
  972. package/bmad/core/workflows/party-mode/instructions.md +0 -188
  973. package/bmad/core/workflows/party-mode/workflow.yaml +0 -23
  974. package/bmad/docs/claude-code-instructions.md +0 -25
  975. package/bmad/docs/codex-instructions.md +0 -21
  976. package/bmd/README.md +0 -193
  977. package/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
  978. package/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
  979. package/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
  980. package/bmd/agents/cli-chief-sidecar/memories.md +0 -53
  981. package/bmd/agents/cli-chief.agent.yaml +0 -126
  982. package/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
  983. package/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
  984. package/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
  985. package/bmd/agents/doc-keeper.agent.yaml +0 -137
  986. package/bmd/agents/release-chief-sidecar/instructions.md +0 -164
  987. package/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
  988. package/bmd/agents/release-chief-sidecar/memories.md +0 -73
  989. package/bmd/agents/release-chief.agent.yaml +0 -127
  990. package/bmd/bmad-custom-module-installer-plan.md +0 -1176
  991. package/bmd/config.yaml +0 -12
  992. package/docs/bmad-brownfield-guide.md +0 -1260
  993. package/docs/conversion-report-shard-doc-2025-10-26.md +0 -188
  994. package/docs/installers-bundlers/ide-injections.md +0 -186
  995. package/docs/installers-bundlers/installers-modules-platforms-reference.md +0 -327
  996. package/docs/installers-bundlers/web-bundler-usage.md +0 -54
  997. package/src/core/_module-installer/install-config.yaml +0 -28
  998. package/src/core/agents/bmad-web-orchestrator.agent.xml +0 -122
  999. package/src/core/tasks/adv-elicit-methods.csv +0 -39
  1000. package/src/core/tasks/adv-elicit.xml +0 -104
  1001. package/src/core/workflows/brainstorming/README.md +0 -271
  1002. package/src/core/workflows/brainstorming/instructions.md +0 -314
  1003. package/src/core/workflows/brainstorming/workflow.yaml +0 -43
  1004. package/src/core/workflows/party-mode/instructions.md +0 -188
  1005. package/src/core/workflows/party-mode/workflow.yaml +0 -23
  1006. package/src/modules/bmb/_module-installer/install-config.yaml +0 -26
  1007. package/src/modules/bmb/workflows/audit-workflow/checklist.md +0 -143
  1008. package/src/modules/bmb/workflows/audit-workflow/instructions.md +0 -341
  1009. package/src/modules/bmb/workflows/audit-workflow/template.md +0 -118
  1010. package/src/modules/bmb/workflows/audit-workflow/workflow.yaml +0 -25
  1011. package/src/modules/bmb/workflows/convert-legacy/README.md +0 -262
  1012. package/src/modules/bmb/workflows/convert-legacy/checklist.md +0 -205
  1013. package/src/modules/bmb/workflows/convert-legacy/instructions.md +0 -377
  1014. package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +0 -34
  1015. package/src/modules/bmb/workflows/create-agent/README.md +0 -320
  1016. package/src/modules/bmb/workflows/create-agent/agent-architecture.md +0 -419
  1017. package/src/modules/bmb/workflows/create-agent/agent-command-patterns.md +0 -759
  1018. package/src/modules/bmb/workflows/create-agent/agent-types.md +0 -292
  1019. package/src/modules/bmb/workflows/create-agent/brainstorm-context.md +0 -174
  1020. package/src/modules/bmb/workflows/create-agent/checklist.md +0 -62
  1021. package/src/modules/bmb/workflows/create-agent/communication-styles.md +0 -202
  1022. package/src/modules/bmb/workflows/create-agent/instructions.md +0 -430
  1023. package/src/modules/bmb/workflows/create-agent/workflow.yaml +0 -49
  1024. package/src/modules/bmb/workflows/create-module/README.md +0 -220
  1025. package/src/modules/bmb/workflows/create-module/brainstorm-context.md +0 -137
  1026. package/src/modules/bmb/workflows/create-module/checklist.md +0 -244
  1027. package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +0 -92
  1028. package/src/modules/bmb/workflows/create-module/installer-templates/installer.js +0 -231
  1029. package/src/modules/bmb/workflows/create-module/instructions.md +0 -581
  1030. package/src/modules/bmb/workflows/create-module/module-structure.md +0 -366
  1031. package/src/modules/bmb/workflows/create-module/workflow.yaml +0 -44
  1032. package/src/modules/bmb/workflows/create-workflow/README.md +0 -277
  1033. package/src/modules/bmb/workflows/create-workflow/brainstorm-context.md +0 -197
  1034. package/src/modules/bmb/workflows/create-workflow/checklist.md +0 -94
  1035. package/src/modules/bmb/workflows/create-workflow/instructions.md +0 -716
  1036. package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +0 -1150
  1037. package/src/modules/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -24
  1038. package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +0 -13
  1039. package/src/modules/bmb/workflows/create-workflow/workflow-template/template.md +0 -9
  1040. package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +0 -65
  1041. package/src/modules/bmb/workflows/create-workflow/workflow.yaml +0 -42
  1042. package/src/modules/bmb/workflows/edit-agent/README.md +0 -112
  1043. package/src/modules/bmb/workflows/edit-agent/checklist.md +0 -112
  1044. package/src/modules/bmb/workflows/edit-agent/instructions.md +0 -290
  1045. package/src/modules/bmb/workflows/edit-agent/workflow.yaml +0 -35
  1046. package/src/modules/bmb/workflows/edit-module/README.md +0 -187
  1047. package/src/modules/bmb/workflows/edit-module/checklist.md +0 -165
  1048. package/src/modules/bmb/workflows/edit-module/instructions.md +0 -339
  1049. package/src/modules/bmb/workflows/edit-module/workflow.yaml +0 -36
  1050. package/src/modules/bmb/workflows/edit-workflow/README.md +0 -119
  1051. package/src/modules/bmb/workflows/edit-workflow/checklist.md +0 -70
  1052. package/src/modules/bmb/workflows/edit-workflow/instructions.md +0 -342
  1053. package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +0 -29
  1054. package/src/modules/bmb/workflows/module-brief/README.md +0 -264
  1055. package/src/modules/bmb/workflows/module-brief/checklist.md +0 -116
  1056. package/src/modules/bmb/workflows/module-brief/instructions.md +0 -267
  1057. package/src/modules/bmb/workflows/module-brief/template.md +0 -275
  1058. package/src/modules/bmb/workflows/module-brief/workflow.yaml +0 -31
  1059. package/src/modules/bmb/workflows/redoc/README.md +0 -87
  1060. package/src/modules/bmb/workflows/redoc/checklist.md +0 -99
  1061. package/src/modules/bmb/workflows/redoc/instructions.md +0 -265
  1062. package/src/modules/bmb/workflows/redoc/workflow.yaml +0 -34
  1063. package/src/modules/bmm/_module-installer/assets/bmm-kb.md +0 -1
  1064. package/src/modules/bmm/_module-installer/assets/technical-decisions.md +0 -30
  1065. package/src/modules/bmm/_module-installer/install-config.yaml +0 -74
  1066. package/src/modules/bmm/agents/game-architect.agent.yaml +0 -35
  1067. package/src/modules/bmm/agents/game-designer.agent.yaml +0 -47
  1068. package/src/modules/bmm/agents/game-dev.agent.yaml +0 -39
  1069. package/src/modules/bmm/sub-modules/claude-code/config.yaml +0 -5
  1070. package/src/modules/bmm/sub-modules/claude-code/injections.yaml +0 -242
  1071. package/src/modules/bmm/sub-modules/claude-code/readme.md +0 -87
  1072. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/api-documenter.md +0 -102
  1073. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/codebase-analyzer.md +0 -82
  1074. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/data-analyst.md +0 -101
  1075. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/pattern-detector.md +0 -84
  1076. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/dependency-mapper.md +0 -83
  1077. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/epic-optimizer.md +0 -81
  1078. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/requirements-analyst.md +0 -61
  1079. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/technical-decisions-curator.md +0 -168
  1080. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/trend-spotter.md +0 -115
  1081. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-journey-mapper.md +0 -123
  1082. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-researcher.md +0 -72
  1083. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/market-researcher.md +0 -51
  1084. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/tech-debt-auditor.md +0 -106
  1085. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/document-reviewer.md +0 -102
  1086. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/technical-evaluator.md +0 -68
  1087. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/test-coverage-analyzer.md +0 -108
  1088. package/src/modules/bmm/tasks/daily-standup.xml +0 -85
  1089. package/src/modules/bmm/tasks/retrospective.xml +0 -104
  1090. package/src/modules/bmm/teams/team-gamedev.yaml +0 -14
  1091. package/src/modules/bmm/testarch/README.md +0 -311
  1092. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/README.md +0 -38
  1093. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/instructions.md +0 -109
  1094. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/workflow.yaml +0 -41
  1095. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/README.md +0 -29
  1096. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +0 -91
  1097. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/project-context.md +0 -25
  1098. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +0 -39
  1099. package/src/modules/bmm/workflows/1-analysis/game-brief/README.md +0 -221
  1100. package/src/modules/bmm/workflows/1-analysis/game-brief/instructions.md +0 -357
  1101. package/src/modules/bmm/workflows/1-analysis/game-brief/workflow.yaml +0 -44
  1102. package/src/modules/bmm/workflows/1-analysis/product-brief/README.md +0 -180
  1103. package/src/modules/bmm/workflows/1-analysis/product-brief/checklist.md +0 -115
  1104. package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +0 -321
  1105. package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +0 -165
  1106. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +0 -43
  1107. package/src/modules/bmm/workflows/1-analysis/research/README.md +0 -454
  1108. package/src/modules/bmm/workflows/1-analysis/research/checklist.md +0 -202
  1109. package/src/modules/bmm/workflows/1-analysis/research/claude-code/injections.yaml +0 -114
  1110. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-competitor-analyzer.md +0 -259
  1111. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-data-analyst.md +0 -190
  1112. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-market-researcher.md +0 -337
  1113. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-trend-spotter.md +0 -107
  1114. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-user-researcher.md +0 -329
  1115. package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +0 -433
  1116. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +0 -613
  1117. package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +0 -125
  1118. package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +0 -501
  1119. package/src/modules/bmm/workflows/1-analysis/research/template-deep-prompt.md +0 -94
  1120. package/src/modules/bmm/workflows/1-analysis/research/template-market.md +0 -311
  1121. package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +0 -210
  1122. package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +0 -49
  1123. package/src/modules/bmm/workflows/2-plan-workflows/README.md +0 -258
  1124. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +0 -310
  1125. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +0 -1283
  1126. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +0 -42
  1127. package/src/modules/bmm/workflows/2-plan-workflows/gdd/README.md +0 -222
  1128. package/src/modules/bmm/workflows/2-plan-workflows/gdd/instructions-gdd.md +0 -475
  1129. package/src/modules/bmm/workflows/2-plan-workflows/gdd/workflow.yaml +0 -67
  1130. package/src/modules/bmm/workflows/2-plan-workflows/narrative/instructions-narrative.md +0 -557
  1131. package/src/modules/bmm/workflows/2-plan-workflows/narrative/workflow.yaml +0 -38
  1132. package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +0 -117
  1133. package/src/modules/bmm/workflows/2-plan-workflows/prd/epics-template.md +0 -63
  1134. package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +0 -449
  1135. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +0 -46
  1136. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +0 -107
  1137. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -11
  1138. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +0 -167
  1139. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +0 -278
  1140. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +0 -269
  1141. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +0 -55
  1142. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +0 -56
  1143. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +0 -52
  1144. package/src/modules/bmm/workflows/3-solutioning/README.md +0 -1
  1145. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -347
  1146. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +0 -103
  1147. package/src/modules/bmm/workflows/3-solutioning/architecture/checklist.md +0 -244
  1148. package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +0 -703
  1149. package/src/modules/bmm/workflows/3-solutioning/architecture/readme.md +0 -318
  1150. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +0 -54
  1151. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/README.md +0 -177
  1152. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/checklist.md +0 -175
  1153. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +0 -273
  1154. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/template.md +0 -146
  1155. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/validation-criteria.yaml +0 -189
  1156. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +0 -40
  1157. package/src/modules/bmm/workflows/4-implementation/README.md +0 -221
  1158. package/src/modules/bmm/workflows/4-implementation/code-review/README.md +0 -69
  1159. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +0 -391
  1160. package/src/modules/bmm/workflows/4-implementation/correct-course/README.md +0 -73
  1161. package/src/modules/bmm/workflows/4-implementation/create-story/README.md +0 -129
  1162. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +0 -252
  1163. package/src/modules/bmm/workflows/4-implementation/dev-story/AUDIT-REPORT.md +0 -367
  1164. package/src/modules/bmm/workflows/4-implementation/dev-story/README.md +0 -206
  1165. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +0 -262
  1166. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/README.md +0 -195
  1167. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/checklist.md +0 -17
  1168. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +0 -160
  1169. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/template.md +0 -76
  1170. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +0 -34
  1171. package/src/modules/bmm/workflows/4-implementation/retrospective/README.md +0 -77
  1172. package/src/modules/bmm/workflows/4-implementation/sprint-planning/README.md +0 -156
  1173. package/src/modules/bmm/workflows/4-implementation/story-context/README.md +0 -234
  1174. package/src/modules/bmm/workflows/4-implementation/story-context/checklist.md +0 -16
  1175. package/src/modules/bmm/workflows/4-implementation/story-context/context-template.xml +0 -34
  1176. package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +0 -201
  1177. package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +0 -32
  1178. package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +0 -111
  1179. package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +0 -27
  1180. package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +0 -117
  1181. package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +0 -27
  1182. package/src/modules/bmm/workflows/README.md +0 -577
  1183. package/src/modules/bmm/workflows/document-project/README.md +0 -444
  1184. package/src/modules/bmm/workflows/document-project/templates/README.md +0 -38
  1185. package/src/modules/bmm/workflows/testarch/README.md +0 -26
  1186. package/src/modules/bmm/workflows/testarch/atdd/README.md +0 -672
  1187. package/src/modules/bmm/workflows/testarch/automate/README.md +0 -869
  1188. package/src/modules/bmm/workflows/testarch/ci/README.md +0 -493
  1189. package/src/modules/bmm/workflows/testarch/framework/README.md +0 -340
  1190. package/src/modules/bmm/workflows/testarch/nfr-assess/README.md +0 -469
  1191. package/src/modules/bmm/workflows/testarch/test-design/README.md +0 -493
  1192. package/src/modules/bmm/workflows/testarch/test-review/README.md +0 -775
  1193. package/src/modules/bmm/workflows/testarch/trace/README.md +0 -802
  1194. package/src/modules/bmm/workflows/workflow-status/README.md +0 -241
  1195. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-0.yaml +0 -54
  1196. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-1.yaml +0 -58
  1197. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-2.yaml +0 -76
  1198. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-3.yaml +0 -95
  1199. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-4.yaml +0 -88
  1200. package/src/modules/bmm/workflows/workflow-status/paths/game-design.yaml +0 -75
  1201. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-0.yaml +0 -45
  1202. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-1.yaml +0 -49
  1203. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-2.yaml +0 -78
  1204. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-3.yaml +0 -73
  1205. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-4.yaml +0 -75
  1206. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.md +0 -30
  1207. package/src/modules/cis/_module-installer/install-config.yaml +0 -14
  1208. package/src/modules/cis/agents/README.md +0 -104
  1209. package/src/modules/cis/agents/storyteller.agent.yaml +0 -23
  1210. package/src/modules/cis/readme.md +0 -86
  1211. package/src/utility/models/agent-activation-ide.xml +0 -51
  1212. package/src/utility/models/agent-activation-web.xml +0 -60
  1213. package/src/utility/models/agent-config-template.md +0 -23
  1214. package/src/utility/models/agent-in-team-activation.xml +0 -3
  1215. package/src/utility/models/fragments/activation-rules.xml +0 -8
  1216. package/src/utility/models/fragments/activation-steps.xml +0 -15
  1217. package/src/utility/models/fragments/handler-action.xml +0 -4
  1218. package/src/utility/models/fragments/handler-exec.xml +0 -5
  1219. package/src/utility/models/fragments/handler-tmpl.xml +0 -5
  1220. package/src/utility/models/fragments/handler-validate-workflow.xml +0 -7
  1221. package/src/utility/models/fragments/handler-workflow.xml +0 -9
  1222. package/src/utility/models/fragments/menu-handlers.xml +0 -6
  1223. package/src/utility/models/fragments/web-bundle-activation-steps.xml +0 -32
  1224. package/src/utility/templates/agent.customize.template.yaml +0 -42
  1225. package/test/fixtures/agent-schema/invalid/persona/principles-as-string.agent.yaml +0 -23
  1226. package/tools/cli/bundlers/bundle-web.js +0 -179
  1227. package/tools/cli/bundlers/test-analyst.js +0 -28
  1228. package/tools/cli/bundlers/test-bundler.js +0 -118
  1229. package/tools/cli/bundlers/web-bundler.js +0 -1479
  1230. package/tools/cli/commands/build.js +0 -458
  1231. package/tools/cli/commands/list.js +0 -28
  1232. package/tools/cli/commands/status.js +0 -47
  1233. package/tools/cli/commands/uninstall.js +0 -44
  1234. package/tools/cli/commands/update.js +0 -28
  1235. package/tools/cli/installers/lib/ide/task-tool-command-generator.js +0 -119
  1236. package/tools/cli/installers/lib/ide/workflow-command-generator.js +0 -235
  1237. package/tools/cli/installers/lib/ide/workflow-command-template.md +0 -15
  1238. package/tools/cli/lib/replace-project-root.js +0 -239
  1239. package/tools/cli/regenerate-manifests.js +0 -28
  1240. package/tools/cli/test-yaml-builder.js +0 -43
  1241. package/tools/validate-bundles.js +0 -87
  1242. package/v6-open-items.md +0 -23
  1243. /package/{bmad/bmb/workflows → src/modules/bmb/workflows-legacy}/module-brief/template.md +0 -0
  1244. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-brain-methods.csv +0 -0
  1245. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-context.md +0 -0
  1246. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/checklist.md +0 -0
  1247. /package/src/modules/{bmm/workflows/1-analysis/game-brief/template.md → bmgd/workflows/1-preproduction/game-brief/templates/game-brief-template.md} +0 -0
  1248. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/checklist.md +0 -0
  1249. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/action-platformer.md +0 -0
  1250. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/adventure.md +0 -0
  1251. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/card-game.md +0 -0
  1252. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/fighting.md +0 -0
  1253. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/horror.md +0 -0
  1254. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/idle-incremental.md +0 -0
  1255. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/metroidvania.md +0 -0
  1256. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/moba.md +0 -0
  1257. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/party-game.md +0 -0
  1258. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/puzzle.md +0 -0
  1259. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/racing.md +0 -0
  1260. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/rhythm.md +0 -0
  1261. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/roguelike.md +0 -0
  1262. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/rpg.md +0 -0
  1263. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/sandbox.md +0 -0
  1264. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/shooter.md +0 -0
  1265. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/simulation.md +0 -0
  1266. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/sports.md +0 -0
  1267. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/strategy.md +0 -0
  1268. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/survival.md +0 -0
  1269. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/text-based.md +0 -0
  1270. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/tower-defense.md +0 -0
  1271. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/turn-based-tactics.md +0 -0
  1272. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/visual-novel.md +0 -0
  1273. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types.csv +0 -0
  1274. /package/src/modules/{bmm/workflows/2-plan-workflows/gdd → bmgd/workflows/2-design/gdd/templates}/gdd-template.md +0 -0
  1275. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/checklist.md +0 -0
  1276. /package/src/modules/{bmm/workflows/2-plan-workflows/narrative → bmgd/workflows/2-design/narrative/templates}/narrative-template.md +0 -0
  1277. /package/src/modules/{bmm/workflows/3-solutioning/architecture → bmgd/workflows/3-technical/game-architecture}/decision-catalog.yaml +0 -0
  1278. /package/src/modules/{bmm/workflows/3-solutioning/architecture → bmgd/workflows/3-technical/game-architecture}/pattern-categories.csv +0 -0
  1279. /package/src/modules/{bmm/workflows/4-implementation/code-review/backlog_template.md → bmgd/workflows/4-production/code-review/backlog-template.md} +0 -0
  1280. /package/src/utility/{models/fragments/handler-data.xml → agent-components/handler-data.txt} +0 -0
@@ -1,9 +1,10 @@
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 { XmlHandler } = require('../../../lib/xml-handler');
6
6
  const { getProjectRoot, getSourcePath, getModulePath } = require('../../../lib/project-root');
7
+ const { filterCustomizationData } = require('../../../lib/agent/compiler');
7
8
 
8
9
  /**
9
10
  * Manages the installation, updating, and removal of BMAD modules.
@@ -12,7 +13,7 @@ const { getProjectRoot, getSourcePath, getModulePath } = require('../../../lib/p
12
13
  *
13
14
  * @class ModuleManager
14
15
  * @requires fs-extra
15
- * @requires js-yaml
16
+ * @requires yaml
16
17
  * @requires chalk
17
18
  * @requires XmlHandler
18
19
  *
@@ -22,74 +23,354 @@ const { getProjectRoot, getSourcePath, getModulePath } = require('../../../lib/p
22
23
  * await manager.install('core-module', '/path/to/bmad');
23
24
  */
24
25
  class ModuleManager {
25
- constructor() {
26
+ constructor(options = {}) {
26
27
  // Path to source modules directory
27
28
  this.modulesSourcePath = getSourcePath('modules');
28
29
  this.xmlHandler = new XmlHandler();
30
+ this.bmadFolderName = 'bmad'; // Default, can be overridden
31
+ this.customModulePaths = new Map(); // Initialize custom module paths
29
32
  }
30
33
 
31
34
  /**
32
- * List all available modules
33
- * @returns {Array} List of available modules with metadata
35
+ * Set the bmad folder name for placeholder replacement
36
+ * @param {string} bmadFolderName - The bmad folder name
34
37
  */
35
- async listAvailable() {
36
- const modules = [];
38
+ setBmadFolderName(bmadFolderName) {
39
+ this.bmadFolderName = bmadFolderName;
40
+ }
37
41
 
38
- if (!(await fs.pathExists(this.modulesSourcePath))) {
39
- console.warn(chalk.yellow('Warning: src/modules directory not found'));
40
- return modules;
41
- }
42
+ /**
43
+ * Set the core configuration for access during module installation
44
+ * @param {Object} coreConfig - Core configuration object
45
+ */
46
+ setCoreConfig(coreConfig) {
47
+ this.coreConfig = coreConfig;
48
+ }
49
+
50
+ /**
51
+ * Set custom module paths for priority lookup
52
+ * @param {Map<string, string>} customModulePaths - Map of module ID to source path
53
+ */
54
+ setCustomModulePaths(customModulePaths) {
55
+ this.customModulePaths = customModulePaths;
56
+ }
57
+
58
+ /**
59
+ * Copy a file to the target location
60
+ * @param {string} sourcePath - Source file path
61
+ * @param {string} targetPath - Target file path
62
+ * @param {boolean} overwrite - Whether to overwrite existing files (default: true)
63
+ */
64
+ async copyFileWithPlaceholderReplacement(sourcePath, targetPath, overwrite = true) {
65
+ await fs.copy(sourcePath, targetPath, { overwrite });
66
+ }
42
67
 
43
- const entries = await fs.readdir(this.modulesSourcePath, { withFileTypes: true });
68
+ /**
69
+ * Copy a directory recursively
70
+ * @param {string} sourceDir - Source directory path
71
+ * @param {string} targetDir - Target directory path
72
+ * @param {boolean} overwrite - Whether to overwrite existing files (default: true)
73
+ */
74
+ async copyDirectoryWithPlaceholderReplacement(sourceDir, targetDir, overwrite = true) {
75
+ await fs.ensureDir(targetDir);
76
+ const entries = await fs.readdir(sourceDir, { withFileTypes: true });
44
77
 
45
78
  for (const entry of entries) {
79
+ const sourcePath = path.join(sourceDir, entry.name);
80
+ const targetPath = path.join(targetDir, entry.name);
81
+
46
82
  if (entry.isDirectory()) {
47
- const modulePath = path.join(this.modulesSourcePath, entry.name);
48
- // Check for new structure first
49
- const installerConfigPath = path.join(modulePath, '_module-installer', 'install-config.yaml');
50
- // Fallback to old structure
51
- const configPath = path.join(modulePath, 'config.yaml');
52
-
53
- const moduleInfo = {
54
- id: entry.name,
55
- path: modulePath,
56
- name: entry.name.toUpperCase(),
57
- description: 'BMAD Module',
58
- version: '5.0.0',
59
- };
83
+ await this.copyDirectoryWithPlaceholderReplacement(sourcePath, targetPath, overwrite);
84
+ } else {
85
+ await this.copyFileWithPlaceholderReplacement(sourcePath, targetPath, overwrite);
86
+ }
87
+ }
88
+ }
89
+
90
+ /**
91
+ * Copy sidecar directory to _bmad/_memory location with update-safe handling
92
+ * @param {string} sourceSidecarPath - Source sidecar directory path
93
+ * @param {string} agentName - Name of the agent (for naming)
94
+ * @param {string} bmadMemoryPath - This should ALWAYS be _bmad/_memory
95
+ * @param {boolean} isUpdate - Whether this is an update (default: false)
96
+ * @param {string} bmadDir - BMAD installation directory
97
+ * @param {Object} installer - Installer instance for file tracking
98
+ */
99
+ async copySidecarToMemory(sourceSidecarPath, agentName, bmadMemoryPath, isUpdate = false, bmadDir = null, installer = null) {
100
+ const crypto = require('node:crypto');
101
+ const sidecarTargetDir = path.join(bmadMemoryPath, `${agentName}-sidecar`);
102
+
103
+ // Ensure target directory exists
104
+ await fs.ensureDir(bmadMemoryPath);
105
+ await fs.ensureDir(sidecarTargetDir);
106
+
107
+ // Get existing files manifest for update checking
108
+ let existingFilesManifest = [];
109
+ if (isUpdate && installer) {
110
+ existingFilesManifest = await installer.readFilesManifest(bmadDir);
111
+ }
112
+
113
+ // Build map of existing sidecar files with their hashes
114
+ const existingSidecarFiles = new Map();
115
+ for (const fileEntry of existingFilesManifest) {
116
+ if (fileEntry.path && fileEntry.path.includes(`${agentName}-sidecar/`)) {
117
+ existingSidecarFiles.set(fileEntry.path, fileEntry.hash);
118
+ }
119
+ }
60
120
 
61
- // Try to read module config for metadata (prefer new location)
62
- const configToRead = (await fs.pathExists(installerConfigPath)) ? installerConfigPath : configPath;
63
- if (await fs.pathExists(configToRead)) {
64
- try {
65
- const configContent = await fs.readFile(configToRead, 'utf8');
66
- const config = yaml.load(configContent);
121
+ // Get all files in source sidecar
122
+ const sourceFiles = await this.getFileList(sourceSidecarPath);
67
123
 
68
- // Use the code property as the id if available
69
- if (config.code) {
70
- moduleInfo.id = config.code;
124
+ for (const file of sourceFiles) {
125
+ const sourceFilePath = path.join(sourceSidecarPath, file);
126
+ const targetFilePath = path.join(sidecarTargetDir, file);
127
+
128
+ // Calculate current source file hash
129
+ const sourceHash = crypto
130
+ .createHash('sha256')
131
+ .update(await fs.readFile(sourceFilePath))
132
+ .digest('hex');
133
+
134
+ // Path relative to bmad directory
135
+ const relativeToBmad = path.join('_memory', `${agentName}-sidecar`, file);
136
+
137
+ if (isUpdate && (await fs.pathExists(targetFilePath))) {
138
+ // Calculate current target file hash
139
+ const currentTargetHash = crypto
140
+ .createHash('sha256')
141
+ .update(await fs.readFile(targetFilePath))
142
+ .digest('hex');
143
+
144
+ // Get the last known hash from files-manifest
145
+ const lastKnownHash = existingSidecarFiles.get(relativeToBmad);
146
+
147
+ if (lastKnownHash) {
148
+ // We have a record of this file
149
+ if (currentTargetHash === lastKnownHash) {
150
+ // File hasn't been modified by user, safe to update
151
+ await this.copyFileWithPlaceholderReplacement(sourceFilePath, targetFilePath, true);
152
+ if (process.env.BMAD_VERBOSE_INSTALL === 'true') {
153
+ console.log(chalk.dim(` Updated sidecar file: ${relativeToBmad}`));
154
+ }
155
+ } else {
156
+ // User has modified the file, preserve it
157
+ if (process.env.BMAD_VERBOSE_INSTALL === 'true') {
158
+ console.log(chalk.dim(` Preserving user-modified file: ${relativeToBmad}`));
71
159
  }
160
+ }
161
+ } else {
162
+ // First time seeing this file in manifest, copy it
163
+ await this.copyFileWithPlaceholderReplacement(sourceFilePath, targetFilePath, true);
164
+ if (process.env.BMAD_VERBOSE_INSTALL === 'true') {
165
+ console.log(chalk.dim(` Added new sidecar file: ${relativeToBmad}`));
166
+ }
167
+ }
168
+ } else {
169
+ // New installation
170
+ await this.copyFileWithPlaceholderReplacement(sourceFilePath, targetFilePath, true);
171
+ if (process.env.BMAD_VERBOSE_INSTALL === 'true') {
172
+ console.log(chalk.dim(` Copied sidecar file: ${relativeToBmad}`));
173
+ }
174
+ }
72
175
 
73
- moduleInfo.name = config.name || moduleInfo.name;
74
- moduleInfo.description = config.description || moduleInfo.description;
75
- moduleInfo.version = config.version || moduleInfo.version;
76
- moduleInfo.dependencies = config.dependencies || [];
77
- moduleInfo.defaultSelected = config.default_selected === undefined ? false : config.default_selected;
78
- } catch (error) {
79
- console.warn(`Failed to read config for ${entry.name}:`, error.message);
176
+ // Track the file in the installer's file tracking system
177
+ if (installer && installer.installedFiles) {
178
+ installer.installedFiles.add(targetFilePath);
179
+ }
180
+ }
181
+
182
+ // Return list of files that were processed
183
+ const processedFiles = sourceFiles.map((file) => path.join('_memory', `${agentName}-sidecar`, file));
184
+ return processedFiles;
185
+ }
186
+
187
+ /**
188
+ * List all available modules (excluding core which is always installed)
189
+ * @returns {Object} Object with modules array and customModules array
190
+ */
191
+ async listAvailable() {
192
+ const modules = [];
193
+ const customModules = [];
194
+
195
+ // First, scan src/modules (the standard location)
196
+ if (await fs.pathExists(this.modulesSourcePath)) {
197
+ const entries = await fs.readdir(this.modulesSourcePath, { withFileTypes: true });
198
+
199
+ for (const entry of entries) {
200
+ if (entry.isDirectory()) {
201
+ const modulePath = path.join(this.modulesSourcePath, entry.name);
202
+ // Check for module structure (module.yaml OR custom.yaml)
203
+ const moduleConfigPath = path.join(modulePath, 'module.yaml');
204
+ const installerConfigPath = path.join(modulePath, '_module-installer', 'module.yaml');
205
+ const customConfigPath = path.join(modulePath, '_module-installer', 'custom.yaml');
206
+
207
+ // Skip if this doesn't look like a module
208
+ if (
209
+ !(await fs.pathExists(moduleConfigPath)) &&
210
+ !(await fs.pathExists(installerConfigPath)) &&
211
+ !(await fs.pathExists(customConfigPath))
212
+ ) {
213
+ continue;
214
+ }
215
+
216
+ // Skip core module - it's always installed first and not selectable
217
+ if (entry.name === 'core') {
218
+ continue;
219
+ }
220
+
221
+ const moduleInfo = await this.getModuleInfo(modulePath, entry.name, 'src/modules');
222
+ if (moduleInfo) {
223
+ modules.push(moduleInfo);
224
+ }
225
+ }
226
+ }
227
+ }
228
+
229
+ // Check for cached custom modules in _config/custom/
230
+ if (this.bmadDir) {
231
+ const customCacheDir = path.join(this.bmadDir, '_config', 'custom');
232
+ if (await fs.pathExists(customCacheDir)) {
233
+ const cacheEntries = await fs.readdir(customCacheDir, { withFileTypes: true });
234
+ for (const entry of cacheEntries) {
235
+ if (entry.isDirectory()) {
236
+ const cachePath = path.join(customCacheDir, entry.name);
237
+ const moduleInfo = await this.getModuleInfo(cachePath, entry.name, '_config/custom');
238
+ if (moduleInfo && !modules.some((m) => m.id === moduleInfo.id) && !customModules.some((m) => m.id === moduleInfo.id)) {
239
+ moduleInfo.isCustom = true;
240
+ moduleInfo.fromCache = true;
241
+ customModules.push(moduleInfo);
242
+ }
80
243
  }
81
244
  }
245
+ }
246
+ }
82
247
 
83
- modules.push(moduleInfo);
248
+ return { modules, customModules };
249
+ }
250
+
251
+ /**
252
+ * Get module information from a module path
253
+ * @param {string} modulePath - Path to the module directory
254
+ * @param {string} defaultName - Default name for the module
255
+ * @param {string} sourceDescription - Description of where the module was found
256
+ * @returns {Object|null} Module info or null if not a valid module
257
+ */
258
+ async getModuleInfo(modulePath, defaultName, sourceDescription) {
259
+ // Check for module structure (module.yaml OR custom.yaml)
260
+ const moduleConfigPath = path.join(modulePath, 'module.yaml');
261
+ const installerConfigPath = path.join(modulePath, '_module-installer', 'module.yaml');
262
+ const customConfigPath = path.join(modulePath, '_module-installer', 'custom.yaml');
263
+ const rootCustomConfigPath = path.join(modulePath, 'custom.yaml');
264
+ let configPath = null;
265
+
266
+ if (await fs.pathExists(moduleConfigPath)) {
267
+ configPath = moduleConfigPath;
268
+ } else if (await fs.pathExists(installerConfigPath)) {
269
+ configPath = installerConfigPath;
270
+ } else if (await fs.pathExists(customConfigPath)) {
271
+ configPath = customConfigPath;
272
+ } else if (await fs.pathExists(rootCustomConfigPath)) {
273
+ configPath = rootCustomConfigPath;
274
+ }
275
+
276
+ // Skip if this doesn't look like a module
277
+ if (!configPath) {
278
+ return null;
279
+ }
280
+
281
+ // Mark as custom if it's using custom.yaml OR if it's outside src/modules
282
+ const isCustomSource = sourceDescription !== 'src/modules';
283
+ const moduleInfo = {
284
+ id: defaultName,
285
+ path: modulePath,
286
+ name: defaultName
287
+ .split('-')
288
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
289
+ .join(' '),
290
+ description: 'BMAD Module',
291
+ version: '5.0.0',
292
+ source: sourceDescription,
293
+ isCustom: configPath === customConfigPath || configPath === rootCustomConfigPath || isCustomSource,
294
+ };
295
+
296
+ // Read module config for metadata
297
+ try {
298
+ const configContent = await fs.readFile(configPath, 'utf8');
299
+ const config = yaml.parse(configContent);
300
+
301
+ // Use the code property as the id if available
302
+ if (config.code) {
303
+ moduleInfo.id = config.code;
84
304
  }
305
+
306
+ moduleInfo.name = config.name || moduleInfo.name;
307
+ moduleInfo.description = config.description || moduleInfo.description;
308
+ moduleInfo.version = config.version || moduleInfo.version;
309
+ moduleInfo.dependencies = config.dependencies || [];
310
+ moduleInfo.defaultSelected = config.default_selected === undefined ? false : config.default_selected;
311
+ } catch (error) {
312
+ console.warn(`Failed to read config for ${defaultName}:`, error.message);
85
313
  }
86
314
 
87
- return modules;
315
+ return moduleInfo;
316
+ }
317
+
318
+ /**
319
+ * Find the source path for a module by searching all possible locations
320
+ * @param {string} moduleCode - Code of the module to find (from module.yaml)
321
+ * @returns {string|null} Path to the module source or null if not found
322
+ */
323
+ async findModuleSource(moduleCode) {
324
+ const projectRoot = getProjectRoot();
325
+
326
+ // First check custom module paths if they exist
327
+ if (this.customModulePaths && this.customModulePaths.has(moduleCode)) {
328
+ return this.customModulePaths.get(moduleCode);
329
+ }
330
+
331
+ // Search in src/modules by READING module.yaml files to match by code
332
+ if (await fs.pathExists(this.modulesSourcePath)) {
333
+ const entries = await fs.readdir(this.modulesSourcePath, { withFileTypes: true });
334
+ for (const entry of entries) {
335
+ if (entry.isDirectory()) {
336
+ const modulePath = path.join(this.modulesSourcePath, entry.name);
337
+
338
+ // Read module.yaml to get the code
339
+ const moduleConfigPath = path.join(modulePath, 'module.yaml');
340
+ const installerConfigPath = path.join(modulePath, '_module-installer', 'module.yaml');
341
+ const customConfigPath = path.join(modulePath, '_module-installer', 'custom.yaml');
342
+
343
+ let configPath = null;
344
+ if (await fs.pathExists(moduleConfigPath)) {
345
+ configPath = moduleConfigPath;
346
+ } else if (await fs.pathExists(installerConfigPath)) {
347
+ configPath = installerConfigPath;
348
+ } else if (await fs.pathExists(customConfigPath)) {
349
+ configPath = customConfigPath;
350
+ }
351
+
352
+ if (configPath) {
353
+ try {
354
+ const configContent = await fs.readFile(configPath, 'utf8');
355
+ const config = yaml.parse(configContent);
356
+ if (config.code === moduleCode) {
357
+ return modulePath;
358
+ }
359
+ } catch (error) {
360
+ // Continue to next module if parse fails
361
+ console.warn(`Warning: Failed to parse module config at ${configPath}: ${error.message}`);
362
+ }
363
+ }
364
+ }
365
+ }
366
+ }
367
+
368
+ return null;
88
369
  }
89
370
 
90
371
  /**
91
372
  * Install a module
92
- * @param {string} moduleName - Name of the module to install
373
+ * @param {string} moduleName - Code of the module to install (from module.yaml)
93
374
  * @param {string} bmadDir - Target bmad directory
94
375
  * @param {Function} fileTrackingCallback - Optional callback to track installed files
95
376
  * @param {Object} options - Additional installation options
@@ -98,23 +379,61 @@ class ModuleManager {
98
379
  * @param {Object} options.logger - Logger instance for output
99
380
  */
100
381
  async install(moduleName, bmadDir, fileTrackingCallback = null, options = {}) {
101
- const sourcePath = path.join(this.modulesSourcePath, moduleName);
382
+ const sourcePath = await this.findModuleSource(moduleName);
102
383
  const targetPath = path.join(bmadDir, moduleName);
103
384
 
104
385
  // Check if source module exists
105
- if (!(await fs.pathExists(sourcePath))) {
106
- throw new Error(`Module '${moduleName}' not found in ${this.modulesSourcePath}`);
386
+ if (!sourcePath) {
387
+ // Provide a more user-friendly error message
388
+ throw new Error(
389
+ `Source for module '${moduleName}' is not available. It will be retained but cannot be updated without its source files.`,
390
+ );
391
+ }
392
+
393
+ // Check if this is a custom module and read its custom.yaml values
394
+ let customConfig = null;
395
+ const rootCustomConfigPath = path.join(sourcePath, 'custom.yaml');
396
+ const moduleInstallerCustomPath = path.join(sourcePath, '_module-installer', 'custom.yaml');
397
+
398
+ if (await fs.pathExists(rootCustomConfigPath)) {
399
+ try {
400
+ const customContent = await fs.readFile(rootCustomConfigPath, 'utf8');
401
+ customConfig = yaml.parse(customContent);
402
+ } catch (error) {
403
+ console.warn(chalk.yellow(`Warning: Failed to read custom.yaml for ${moduleName}:`, error.message));
404
+ }
405
+ } else if (await fs.pathExists(moduleInstallerCustomPath)) {
406
+ try {
407
+ const customContent = await fs.readFile(moduleInstallerCustomPath, 'utf8');
408
+ customConfig = yaml.parse(customContent);
409
+ } catch (error) {
410
+ console.warn(chalk.yellow(`Warning: Failed to read custom.yaml for ${moduleName}:`, error.message));
411
+ }
412
+ }
413
+
414
+ // If this is a custom module, merge its values into the module config
415
+ if (customConfig) {
416
+ options.moduleConfig = { ...options.moduleConfig, ...customConfig };
417
+ if (options.logger) {
418
+ options.logger.log(chalk.cyan(` Merged custom configuration for ${moduleName}`));
419
+ }
107
420
  }
108
421
 
109
422
  // Check if already installed
110
423
  if (await fs.pathExists(targetPath)) {
111
- console.log(chalk.yellow(`Module '${moduleName}' already installed, updating...`));
112
424
  await fs.remove(targetPath);
113
425
  }
114
426
 
427
+ // Vendor cross-module workflows BEFORE copying
428
+ // This reads source agent.yaml files and copies referenced workflows
429
+ await this.vendorCrossModuleWorkflows(sourcePath, targetPath, moduleName);
430
+
115
431
  // Copy module files with filtering
116
432
  await this.copyModuleWithFiltering(sourcePath, targetPath, fileTrackingCallback, options.moduleConfig);
117
433
 
434
+ // Compile any .agent.yaml files to .md format
435
+ await this.compileModuleAgents(sourcePath, targetPath, moduleName, bmadDir, options.installer);
436
+
118
437
  // Process agent files to inject activation block
119
438
  await this.processAgentFiles(targetPath, moduleName);
120
439
 
@@ -137,12 +456,12 @@ class ModuleManager {
137
456
  * @param {boolean} force - Force update (overwrite modifications)
138
457
  */
139
458
  async update(moduleName, bmadDir, force = false) {
140
- const sourcePath = path.join(this.modulesSourcePath, moduleName);
459
+ const sourcePath = await this.findModuleSource(moduleName);
141
460
  const targetPath = path.join(bmadDir, moduleName);
142
461
 
143
462
  // Check if source module exists
144
- if (!(await fs.pathExists(sourcePath))) {
145
- throw new Error(`Module '${moduleName}' not found in source`);
463
+ if (!sourcePath) {
464
+ throw new Error(`Module '${moduleName}' not found in any source location`);
146
465
  }
147
466
 
148
467
  // Check if module is installed
@@ -157,6 +476,10 @@ class ModuleManager {
157
476
  } else {
158
477
  // Selective update - preserve user modifications
159
478
  await this.syncModule(sourcePath, targetPath);
479
+
480
+ // Recompile agents (#1133)
481
+ await this.compileModuleAgents(sourcePath, targetPath, moduleName, bmadDir, options.installer);
482
+ await this.processAgentFiles(targetPath, moduleName);
160
483
  }
161
484
 
162
485
  return {
@@ -220,7 +543,7 @@ class ModuleManager {
220
543
  if (await fs.pathExists(configPath)) {
221
544
  try {
222
545
  const configContent = await fs.readFile(configPath, 'utf8');
223
- const config = yaml.load(configContent);
546
+ const config = yaml.parse(configContent);
224
547
  Object.assign(moduleInfo, config);
225
548
  } catch (error) {
226
549
  console.warn(`Failed to read installed module config:`, error.message);
@@ -241,24 +564,26 @@ class ModuleManager {
241
564
  // Get all files in source
242
565
  const sourceFiles = await this.getFileList(sourcePath);
243
566
 
244
- // Game development files to conditionally exclude
245
- const gameDevFiles = [
246
- 'agents/game-architect.agent.yaml',
247
- 'agents/game-designer.agent.yaml',
248
- 'agents/game-dev.agent.yaml',
249
- 'workflows/1-analysis/brainstorm-game',
250
- 'workflows/1-analysis/game-brief',
251
- 'workflows/2-plan-workflows/gdd',
252
- ];
253
-
254
567
  for (const file of sourceFiles) {
255
568
  // Skip sub-modules directory - these are IDE-specific and handled separately
256
569
  if (file.startsWith('sub-modules/')) {
257
570
  continue;
258
571
  }
259
572
 
573
+ // Only skip sidecar directories - they are handled separately during agent compilation
574
+ // But still allow other files in agent directories
575
+ const isInAgentDirectory = file.startsWith('agents/');
576
+ const isInSidecarDirectory = path
577
+ .dirname(file)
578
+ .split('/')
579
+ .some((dir) => dir.toLowerCase().endsWith('-sidecar'));
580
+
581
+ if (isInSidecarDirectory) {
582
+ continue;
583
+ }
584
+
260
585
  // Skip _module-installer directory - it's only needed at install time
261
- if (file.startsWith('_module-installer/')) {
586
+ if (file.startsWith('_module-installer/') || file === 'module.yaml') {
262
587
  continue;
263
588
  }
264
589
 
@@ -267,17 +592,9 @@ class ModuleManager {
267
592
  continue;
268
593
  }
269
594
 
270
- // Skip game development content if include_game_planning is false
271
- if (moduleConfig.include_game_planning === false) {
272
- const shouldSkipGameDev = gameDevFiles.some((gamePath) => {
273
- // Check if file path starts with or is within any game dev directory
274
- return file === gamePath || file.startsWith(gamePath + '/') || file.startsWith(gamePath + '\\');
275
- });
276
-
277
- if (shouldSkipGameDev) {
278
- console.log(chalk.dim(` Skipping game dev content: ${file}`));
279
- continue;
280
- }
595
+ // Skip .agent.yaml files - they will be compiled separately
596
+ if (file.endsWith('.agent.yaml')) {
597
+ continue;
281
598
  }
282
599
 
283
600
  const sourceFile = path.join(sourcePath, file);
@@ -301,9 +618,8 @@ class ModuleManager {
301
618
  await fs.ensureDir(path.dirname(targetFile));
302
619
  await this.copyWorkflowYamlStripped(sourceFile, targetFile);
303
620
  } else {
304
- // Copy the file normally
305
- await fs.ensureDir(path.dirname(targetFile));
306
- await fs.copy(sourceFile, targetFile, { overwrite: true });
621
+ // Copy the file with placeholder replacement
622
+ await this.copyFileWithPlaceholderReplacement(sourceFile, targetFile);
307
623
  }
308
624
 
309
625
  // Track the file if callback provided
@@ -323,12 +639,17 @@ class ModuleManager {
323
639
  // Read the source YAML file
324
640
  let yamlContent = await fs.readFile(sourceFile, 'utf8');
325
641
 
642
+ // IMPORTANT: Replace escape sequence and placeholder BEFORE parsing YAML
643
+ // Otherwise parsing will fail on the placeholder
644
+ yamlContent = yamlContent.replaceAll('_bmad', '_bmad');
645
+ yamlContent = yamlContent.replaceAll('_bmad', this.bmadFolderName);
646
+
326
647
  try {
327
648
  // First check if web_bundle exists by parsing
328
- const workflowConfig = yaml.load(yamlContent);
649
+ const workflowConfig = yaml.parse(yamlContent);
329
650
 
330
651
  if (workflowConfig.web_bundle === undefined) {
331
- // No web_bundle section, just copy as-is
652
+ // No web_bundle section, just write (placeholders already replaced above)
332
653
  await fs.writeFile(targetFile, yamlContent, 'utf8');
333
654
  return;
334
655
  }
@@ -390,6 +711,7 @@ class ModuleManager {
390
711
  // Clean up any double blank lines that might result
391
712
  const strippedYaml = newLines.join('\n').replaceAll(/\n\n\n+/g, '\n\n');
392
713
 
714
+ // Placeholders already replaced at the beginning of this function
393
715
  await fs.writeFile(targetFile, strippedYaml, 'utf8');
394
716
  } catch {
395
717
  // If anything fails, just copy the file as-is
@@ -398,34 +720,396 @@ class ModuleManager {
398
720
  }
399
721
  }
400
722
 
723
+ /**
724
+ * Compile .agent.yaml files to .md format in modules
725
+ * @param {string} sourcePath - Source module path
726
+ * @param {string} targetPath - Target module path
727
+ * @param {string} moduleName - Module name
728
+ * @param {string} bmadDir - BMAD installation directory
729
+ * @param {Object} installer - Installer instance for file tracking
730
+ */
731
+ async compileModuleAgents(sourcePath, targetPath, moduleName, bmadDir, installer = null) {
732
+ const sourceAgentsPath = path.join(sourcePath, 'agents');
733
+ const targetAgentsPath = path.join(targetPath, 'agents');
734
+ const cfgAgentsDir = path.join(bmadDir, '_config', 'agents');
735
+
736
+ // Check if agents directory exists in source
737
+ if (!(await fs.pathExists(sourceAgentsPath))) {
738
+ return; // No agents to compile
739
+ }
740
+
741
+ // Get all agent YAML files recursively
742
+ const agentFiles = await this.findAgentFiles(sourceAgentsPath);
743
+
744
+ for (const agentFile of agentFiles) {
745
+ if (!agentFile.endsWith('.agent.yaml')) continue;
746
+
747
+ const relativePath = path.relative(sourceAgentsPath, agentFile);
748
+ const targetDir = path.join(targetAgentsPath, path.dirname(relativePath));
749
+
750
+ await fs.ensureDir(targetDir);
751
+
752
+ const agentName = path.basename(agentFile, '.agent.yaml');
753
+ const sourceYamlPath = agentFile;
754
+ const targetMdPath = path.join(targetDir, `${agentName}.md`);
755
+ const customizePath = path.join(cfgAgentsDir, `${moduleName}-${agentName}.customize.yaml`);
756
+
757
+ // Read and compile the YAML
758
+ try {
759
+ const yamlContent = await fs.readFile(sourceYamlPath, 'utf8');
760
+ const { compileAgent } = require('../../../lib/agent/compiler');
761
+
762
+ // Create customize template if it doesn't exist
763
+ if (!(await fs.pathExists(customizePath))) {
764
+ const { getSourcePath } = require('../../../lib/project-root');
765
+ const genericTemplatePath = getSourcePath('utility', 'agent-components', 'agent.customize.template.yaml');
766
+ if (await fs.pathExists(genericTemplatePath)) {
767
+ await this.copyFileWithPlaceholderReplacement(genericTemplatePath, customizePath);
768
+ // Only show customize creation in verbose mode
769
+ if (process.env.BMAD_VERBOSE_INSTALL === 'true') {
770
+ console.log(chalk.dim(` Created customize: ${moduleName}-${agentName}.customize.yaml`));
771
+ }
772
+
773
+ // Store original hash for modification detection
774
+ const crypto = require('node:crypto');
775
+ const customizeContent = await fs.readFile(customizePath, 'utf8');
776
+ const originalHash = crypto.createHash('sha256').update(customizeContent).digest('hex');
777
+
778
+ // Store in main manifest
779
+ const manifestPath = path.join(bmadDir, '_config', 'manifest.yaml');
780
+ let manifestData = {};
781
+ if (await fs.pathExists(manifestPath)) {
782
+ const manifestContent = await fs.readFile(manifestPath, 'utf8');
783
+ const yaml = require('yaml');
784
+ manifestData = yaml.parse(manifestContent);
785
+ }
786
+ if (!manifestData.agentCustomizations) {
787
+ manifestData.agentCustomizations = {};
788
+ }
789
+ manifestData.agentCustomizations[path.relative(bmadDir, customizePath)] = originalHash;
790
+
791
+ // Write back to manifest
792
+ const yaml = require('yaml');
793
+ // Clean the manifest data to remove any non-serializable values
794
+ const cleanManifestData = structuredClone(manifestData);
795
+
796
+ const updatedContent = yaml.stringify(cleanManifestData, {
797
+ indent: 2,
798
+ lineWidth: 0,
799
+ });
800
+ await fs.writeFile(manifestPath, updatedContent, 'utf8');
801
+ }
802
+ }
803
+
804
+ // Check for customizations and build answers object
805
+ let customizedFields = [];
806
+ let answers = {};
807
+ if (await fs.pathExists(customizePath)) {
808
+ const customizeContent = await fs.readFile(customizePath, 'utf8');
809
+ const customizeData = yaml.parse(customizeContent);
810
+ customizedFields = customizeData.customized_fields || [];
811
+
812
+ // Build answers object from customizations
813
+ if (customizeData.persona) {
814
+ answers.persona = customizeData.persona;
815
+ }
816
+ if (customizeData.agent?.metadata) {
817
+ const filteredMetadata = filterCustomizationData(customizeData.agent.metadata);
818
+ if (Object.keys(filteredMetadata).length > 0) {
819
+ Object.assign(answers, { metadata: filteredMetadata });
820
+ }
821
+ }
822
+ if (customizeData.critical_actions && customizeData.critical_actions.length > 0) {
823
+ answers.critical_actions = customizeData.critical_actions;
824
+ }
825
+ if (customizeData.memories && customizeData.memories.length > 0) {
826
+ answers.memories = customizeData.memories;
827
+ }
828
+ if (customizeData.menu && customizeData.menu.length > 0) {
829
+ answers.menu = customizeData.menu;
830
+ }
831
+ if (customizeData.prompts && customizeData.prompts.length > 0) {
832
+ answers.prompts = customizeData.prompts;
833
+ }
834
+ }
835
+
836
+ // Check if agent has sidecar
837
+ let hasSidecar = false;
838
+ try {
839
+ const agentYaml = yaml.parse(yamlContent);
840
+ hasSidecar = agentYaml?.agent?.metadata?.hasSidecar === true;
841
+ } catch {
842
+ // Continue without sidecar processing
843
+ }
844
+
845
+ // Compile with customizations if any
846
+ const { xml } = await compileAgent(yamlContent, answers, agentName, relativePath, { config: this.coreConfig || {} });
847
+
848
+ // Process TTS injection points if installer is available
849
+ let finalXml = xml;
850
+ if (installer && installer.processTTSInjectionPoints) {
851
+ finalXml = installer.processTTSInjectionPoints(xml, targetMdPath);
852
+ }
853
+
854
+ // Write the compiled agent
855
+ await fs.writeFile(targetMdPath, finalXml, 'utf8');
856
+
857
+ // Handle sidecar copying if present
858
+ if (hasSidecar) {
859
+ // Get the agent's directory to look for sidecar
860
+ const agentDir = path.dirname(agentFile);
861
+ const sidecarDirName = `${agentName}-sidecar`;
862
+ const sourceSidecarPath = path.join(agentDir, sidecarDirName);
863
+
864
+ // Check if sidecar directory exists
865
+ if (await fs.pathExists(sourceSidecarPath)) {
866
+ // Memory is always in _bmad/_memory
867
+ const bmadMemoryPath = path.join(bmadDir, '_memory');
868
+
869
+ // Determine if this is an update (by checking if agent already exists)
870
+ const isUpdate = await fs.pathExists(targetMdPath);
871
+
872
+ // Copy sidecar to memory location with update-safe handling
873
+ const copiedFiles = await this.copySidecarToMemory(sourceSidecarPath, agentName, bmadMemoryPath, isUpdate, bmadDir, installer);
874
+
875
+ if (process.env.BMAD_VERBOSE_INSTALL === 'true' && copiedFiles.length > 0) {
876
+ console.log(chalk.dim(` Sidecar files processed: ${copiedFiles.length} files`));
877
+ }
878
+ } else if (process.env.BMAD_VERBOSE_INSTALL === 'true') {
879
+ console.log(chalk.yellow(` Warning: Agent marked as having sidecar but ${sidecarDirName} directory not found`));
880
+ }
881
+ }
882
+
883
+ // Copy any non-sidecar files from agent directory (e.g., foo.md)
884
+ const agentDir = path.dirname(agentFile);
885
+ const agentEntries = await fs.readdir(agentDir, { withFileTypes: true });
886
+
887
+ for (const entry of agentEntries) {
888
+ if (entry.isFile() && !entry.name.endsWith('.agent.yaml') && !entry.name.endsWith('.md')) {
889
+ // Copy additional files (like foo.md) to the agent target directory
890
+ const sourceFile = path.join(agentDir, entry.name);
891
+ const targetFile = path.join(targetDir, entry.name);
892
+ await this.copyFileWithPlaceholderReplacement(sourceFile, targetFile);
893
+ }
894
+ }
895
+
896
+ // Only show compilation details in verbose mode
897
+ if (process.env.BMAD_VERBOSE_INSTALL === 'true') {
898
+ console.log(
899
+ chalk.dim(
900
+ ` Compiled agent: ${agentName} -> ${path.relative(targetPath, targetMdPath)}${hasSidecar ? ' (with sidecar)' : ''}`,
901
+ ),
902
+ );
903
+ }
904
+ } catch (error) {
905
+ console.warn(chalk.yellow(` Failed to compile agent ${agentName}:`, error.message));
906
+ }
907
+ }
908
+ }
909
+
910
+ /**
911
+ * Find all .agent.yaml files recursively in a directory
912
+ * @param {string} dir - Directory to search
913
+ * @returns {Array} List of .agent.yaml file paths
914
+ */
915
+ async findAgentFiles(dir) {
916
+ const agentFiles = [];
917
+
918
+ async function searchDirectory(searchDir) {
919
+ const entries = await fs.readdir(searchDir, { withFileTypes: true });
920
+
921
+ for (const entry of entries) {
922
+ const fullPath = path.join(searchDir, entry.name);
923
+
924
+ if (entry.isFile() && entry.name.endsWith('.agent.yaml')) {
925
+ agentFiles.push(fullPath);
926
+ } else if (entry.isDirectory()) {
927
+ await searchDirectory(fullPath);
928
+ }
929
+ }
930
+ }
931
+
932
+ await searchDirectory(dir);
933
+ return agentFiles;
934
+ }
935
+
401
936
  /**
402
937
  * Process agent files to inject activation block
403
938
  * @param {string} modulePath - Path to installed module
404
939
  * @param {string} moduleName - Module name
405
940
  */
406
941
  async processAgentFiles(modulePath, moduleName) {
407
- const agentsPath = path.join(modulePath, 'agents');
942
+ // const agentsPath = path.join(modulePath, 'agents');
943
+ // // Check if agents directory exists
944
+ // if (!(await fs.pathExists(agentsPath))) {
945
+ // return; // No agents to process
946
+ // }
947
+ // // Get all agent MD files recursively
948
+ // const agentFiles = await this.findAgentMdFiles(agentsPath);
949
+ // for (const agentFile of agentFiles) {
950
+ // if (!agentFile.endsWith('.md')) continue;
951
+ // let content = await fs.readFile(agentFile, 'utf8');
952
+ // // Check if content has agent XML and no activation block
953
+ // if (content.includes('<agent') && !content.includes('<activation')) {
954
+ // // Inject the activation block using XML handler
955
+ // content = this.xmlHandler.injectActivationSimple(content);
956
+ // await fs.writeFile(agentFile, content, 'utf8');
957
+ // }
958
+ // }
959
+ }
960
+
961
+ /**
962
+ * Find all .md agent files recursively in a directory
963
+ * @param {string} dir - Directory to search
964
+ * @returns {Array} List of .md agent file paths
965
+ */
966
+ async findAgentMdFiles(dir) {
967
+ const agentFiles = [];
968
+
969
+ async function searchDirectory(searchDir) {
970
+ const entries = await fs.readdir(searchDir, { withFileTypes: true });
971
+
972
+ for (const entry of entries) {
973
+ const fullPath = path.join(searchDir, entry.name);
974
+
975
+ if (entry.isFile() && entry.name.endsWith('.md')) {
976
+ agentFiles.push(fullPath);
977
+ } else if (entry.isDirectory()) {
978
+ await searchDirectory(fullPath);
979
+ }
980
+ }
981
+ }
982
+
983
+ await searchDirectory(dir);
984
+ return agentFiles;
985
+ }
986
+
987
+ /**
988
+ * Vendor cross-module workflows referenced in agent files
989
+ * Scans SOURCE agent.yaml files for workflow-install and copies workflows to destination
990
+ * @param {string} sourcePath - Source module path
991
+ * @param {string} targetPath - Target module path (destination)
992
+ * @param {string} moduleName - Module name being installed
993
+ */
994
+ async vendorCrossModuleWorkflows(sourcePath, targetPath, moduleName) {
995
+ const sourceAgentsPath = path.join(sourcePath, 'agents');
408
996
 
409
- // Check if agents directory exists
410
- if (!(await fs.pathExists(agentsPath))) {
997
+ // Check if source agents directory exists
998
+ if (!(await fs.pathExists(sourceAgentsPath))) {
411
999
  return; // No agents to process
412
1000
  }
413
1001
 
414
- // Get all agent files
415
- const agentFiles = await fs.readdir(agentsPath);
1002
+ // Get all agent YAML files from source
1003
+ const agentFiles = await fs.readdir(sourceAgentsPath);
1004
+ const yamlFiles = agentFiles.filter((f) => f.endsWith('.agent.yaml') || f.endsWith('.yaml'));
416
1005
 
417
- for (const agentFile of agentFiles) {
418
- if (!agentFile.endsWith('.md')) continue;
1006
+ if (yamlFiles.length === 0) {
1007
+ return; // No YAML agent files
1008
+ }
1009
+
1010
+ let workflowsVendored = false;
419
1011
 
420
- const agentPath = path.join(agentsPath, agentFile);
421
- let content = await fs.readFile(agentPath, 'utf8');
1012
+ for (const agentFile of yamlFiles) {
1013
+ const agentPath = path.join(sourceAgentsPath, agentFile);
1014
+ const agentYaml = yaml.parse(await fs.readFile(agentPath, 'utf8'));
422
1015
 
423
- // Check if content has agent XML and no activation block
424
- if (content.includes('<agent') && !content.includes('<activation')) {
425
- // Inject the activation block using XML handler
426
- content = this.xmlHandler.injectActivationSimple(content);
427
- await fs.writeFile(agentPath, content, 'utf8');
1016
+ // Check if agent has menu items with workflow-install
1017
+ const menuItems = agentYaml?.agent?.menu || [];
1018
+ const workflowInstallItems = menuItems.filter((item) => item['workflow-install']);
1019
+
1020
+ if (workflowInstallItems.length === 0) {
1021
+ continue; // No workflow-install in this agent
428
1022
  }
1023
+
1024
+ if (!workflowsVendored) {
1025
+ console.log(chalk.cyan(`\n Vendoring cross-module workflows for ${moduleName}...`));
1026
+ workflowsVendored = true;
1027
+ }
1028
+
1029
+ console.log(chalk.dim(` Processing: ${agentFile}`));
1030
+
1031
+ for (const item of workflowInstallItems) {
1032
+ const sourceWorkflowPath = item.workflow; // Where to copy FROM
1033
+ const installWorkflowPath = item['workflow-install']; // Where to copy TO
1034
+
1035
+ // Parse SOURCE workflow path
1036
+ // Handle both _bmad placeholder and hardcoded 'bmad'
1037
+ // Example: {project-root}/_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml
1038
+ // Or: {project-root}/bmad/bmm/workflows/4-implementation/create-story/workflow.yaml
1039
+ const sourceMatch = sourceWorkflowPath.match(/\{project-root\}\/(?:_bmad)\/([^/]+)\/workflows\/(.+)/);
1040
+ if (!sourceMatch) {
1041
+ console.warn(chalk.yellow(` Could not parse workflow path: ${sourceWorkflowPath}`));
1042
+ continue;
1043
+ }
1044
+
1045
+ const [, sourceModule, sourceWorkflowSubPath] = sourceMatch;
1046
+
1047
+ // Parse INSTALL workflow path
1048
+ // Handle_bmad
1049
+ // Example: {project-root}/_bmad/bmgd/workflows/4-production/create-story/workflow.yaml
1050
+ const installMatch = installWorkflowPath.match(/\{project-root\}\/(_bmad)\/([^/]+)\/workflows\/(.+)/);
1051
+ if (!installMatch) {
1052
+ console.warn(chalk.yellow(` Could not parse workflow-install path: ${installWorkflowPath}`));
1053
+ continue;
1054
+ }
1055
+
1056
+ const installWorkflowSubPath = installMatch[2];
1057
+
1058
+ // Determine actual filesystem paths
1059
+ const sourceModulePath = path.join(this.modulesSourcePath, sourceModule);
1060
+ const actualSourceWorkflowPath = path.join(sourceModulePath, 'workflows', sourceWorkflowSubPath.replace(/\/workflow\.yaml$/, ''));
1061
+
1062
+ const actualDestWorkflowPath = path.join(targetPath, 'workflows', installWorkflowSubPath.replace(/\/workflow\.yaml$/, ''));
1063
+
1064
+ // Check if source workflow exists
1065
+ if (!(await fs.pathExists(actualSourceWorkflowPath))) {
1066
+ console.warn(chalk.yellow(` Source workflow not found: ${actualSourceWorkflowPath}`));
1067
+ continue;
1068
+ }
1069
+
1070
+ // Copy the entire workflow folder
1071
+ console.log(
1072
+ chalk.dim(
1073
+ ` Vendoring: ${sourceModule}/workflows/${sourceWorkflowSubPath.replace(/\/workflow\.yaml$/, '')} → ${moduleName}/workflows/${installWorkflowSubPath.replace(/\/workflow\.yaml$/, '')}`,
1074
+ ),
1075
+ );
1076
+
1077
+ await fs.ensureDir(path.dirname(actualDestWorkflowPath));
1078
+ // Copy the workflow directory recursively with placeholder replacement
1079
+ await this.copyDirectoryWithPlaceholderReplacement(actualSourceWorkflowPath, actualDestWorkflowPath);
1080
+
1081
+ // Update the workflow.yaml config_source reference
1082
+ const workflowYamlPath = path.join(actualDestWorkflowPath, 'workflow.yaml');
1083
+ if (await fs.pathExists(workflowYamlPath)) {
1084
+ await this.updateWorkflowConfigSource(workflowYamlPath, moduleName);
1085
+ }
1086
+ }
1087
+ }
1088
+
1089
+ if (workflowsVendored) {
1090
+ console.log(chalk.green(` ✓ Workflow vendoring complete\n`));
1091
+ }
1092
+ }
1093
+
1094
+ /**
1095
+ * Update workflow.yaml config_source to point to new module
1096
+ * @param {string} workflowYamlPath - Path to workflow.yaml file
1097
+ * @param {string} newModuleName - New module name to reference
1098
+ */
1099
+ async updateWorkflowConfigSource(workflowYamlPath, newModuleName) {
1100
+ let yamlContent = await fs.readFile(workflowYamlPath, 'utf8');
1101
+
1102
+ // Replace config_source: "{project-root}/_bmad/OLD_MODULE/config.yaml"
1103
+ // with config_source: "{project-root}/_bmad/NEW_MODULE/config.yaml"
1104
+ // Note: At this point _bmad has already been replaced with actual folder name
1105
+ const configSourcePattern = /config_source:\s*["']?\{project-root\}\/[^/]+\/[^/]+\/config\.yaml["']?/g;
1106
+ const newConfigSource = `config_source: "{project-root}/${this.bmadFolderName}/${newModuleName}/config.yaml"`;
1107
+
1108
+ const updatedYaml = yamlContent.replaceAll(configSourcePattern, newConfigSource);
1109
+
1110
+ if (updatedYaml !== yamlContent) {
1111
+ await fs.writeFile(workflowYamlPath, updatedYaml, 'utf8');
1112
+ console.log(chalk.dim(` Updated config_source to: ${this.bmadFolderName}/${newModuleName}/config.yaml`));
429
1113
  }
430
1114
  }
431
1115
 
@@ -441,7 +1125,11 @@ class ModuleManager {
441
1125
  if (moduleName === 'core') {
442
1126
  sourcePath = getSourcePath('core');
443
1127
  } else {
444
- sourcePath = path.join(this.modulesSourcePath, moduleName);
1128
+ sourcePath = await this.findModuleSource(moduleName);
1129
+ if (!sourcePath) {
1130
+ // No source found, skip module installer
1131
+ return;
1132
+ }
445
1133
  }
446
1134
 
447
1135
  const installerPath = path.join(sourcePath, '_module-installer', 'installer.js');
@@ -470,6 +1158,7 @@ class ModuleManager {
470
1158
  const result = await moduleInstaller.install({
471
1159
  projectRoot,
472
1160
  config: options.moduleConfig || {},
1161
+ coreConfig: options.coreConfig || {},
473
1162
  installedIDEs: options.installedIDEs || [],
474
1163
  logger,
475
1164
  });
@@ -530,9 +1219,8 @@ class ModuleManager {
530
1219
  }
531
1220
  }
532
1221
 
533
- // Copy file
534
- await fs.ensureDir(path.dirname(targetFile));
535
- await fs.copy(sourceFile, targetFile, { overwrite: true });
1222
+ // Copy file with placeholder replacement
1223
+ await this.copyFileWithPlaceholderReplacement(sourceFile, targetFile);
536
1224
  }
537
1225
  }
538
1226