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,6 +1,6 @@
1
1
  const path = require('node:path');
2
2
  const fs = require('fs-extra');
3
- const yaml = require('js-yaml');
3
+ const yaml = require('yaml');
4
4
  const chalk = require('chalk');
5
5
  const inquirer = require('inquirer');
6
6
  const { getProjectRoot, getModulePath } = require('../../../lib/project-root');
@@ -13,14 +13,86 @@ class ConfigCollector {
13
13
  this.currentProjectDir = null;
14
14
  }
15
15
 
16
+ /**
17
+ * Find the bmad installation directory in a project
18
+ * V6+ installations can use ANY folder name but ALWAYS have _config/manifest.yaml
19
+ * @param {string} projectDir - Project directory
20
+ * @returns {Promise<string>} Path to bmad directory
21
+ */
22
+ async findBmadDir(projectDir) {
23
+ // Check if project directory exists
24
+ if (!(await fs.pathExists(projectDir))) {
25
+ // Project doesn't exist yet, return default
26
+ return path.join(projectDir, 'bmad');
27
+ }
28
+
29
+ // V6+ strategy: Look for ANY directory with _config/manifest.yaml
30
+ // This is the definitive marker of a V6+ installation
31
+ try {
32
+ const entries = await fs.readdir(projectDir, { withFileTypes: true });
33
+ for (const entry of entries) {
34
+ if (entry.isDirectory()) {
35
+ const manifestPath = path.join(projectDir, entry.name, '_config', 'manifest.yaml');
36
+ if (await fs.pathExists(manifestPath)) {
37
+ // Found a V6+ installation
38
+ return path.join(projectDir, entry.name);
39
+ }
40
+ }
41
+ }
42
+ } catch {
43
+ // Ignore errors, fall through to default
44
+ }
45
+
46
+ // No V6+ installation found, return default
47
+ // This will be used for new installations
48
+ return path.join(projectDir, 'bmad');
49
+ }
50
+
51
+ /**
52
+ * Detect the existing BMAD folder name in a project
53
+ * @param {string} projectDir - Project directory
54
+ * @returns {Promise<string|null>} Folder name (just the name, not full path) or null if not found
55
+ */
56
+ async detectExistingBmadFolder(projectDir) {
57
+ // Check if project directory exists
58
+ if (!(await fs.pathExists(projectDir))) {
59
+ return null;
60
+ }
61
+
62
+ // Look for ANY directory with _config/manifest.yaml
63
+ try {
64
+ const entries = await fs.readdir(projectDir, { withFileTypes: true });
65
+ for (const entry of entries) {
66
+ if (entry.isDirectory()) {
67
+ const manifestPath = path.join(projectDir, entry.name, '_config', 'manifest.yaml');
68
+ if (await fs.pathExists(manifestPath)) {
69
+ // Found a V6+ installation, return just the folder name
70
+ return entry.name;
71
+ }
72
+ }
73
+ }
74
+ } catch {
75
+ // Ignore errors
76
+ }
77
+
78
+ return null;
79
+ }
80
+
16
81
  /**
17
82
  * Load existing config if it exists from module config files
18
83
  * @param {string} projectDir - Target project directory
19
84
  */
20
85
  async loadExistingConfig(projectDir) {
21
- const bmadDir = path.join(projectDir, 'bmad');
22
86
  this.existingConfig = {};
23
87
 
88
+ // Check if project directory exists first
89
+ if (!(await fs.pathExists(projectDir))) {
90
+ return false;
91
+ }
92
+
93
+ // Find the actual bmad directory (handles custom folder names)
94
+ const bmadDir = await this.findBmadDir(projectDir);
95
+
24
96
  // Check if bmad directory exists
25
97
  if (!(await fs.pathExists(bmadDir))) {
26
98
  return false;
@@ -33,11 +105,17 @@ class ConfigCollector {
33
105
 
34
106
  for (const entry of entries) {
35
107
  if (entry.isDirectory()) {
108
+ // Skip the _config directory - it's for system use
109
+ if (entry.name === '_config' || entry.name === '_memory') {
110
+ continue;
111
+ }
112
+
36
113
  const moduleConfigPath = path.join(bmadDir, entry.name, 'config.yaml');
114
+
37
115
  if (await fs.pathExists(moduleConfigPath)) {
38
116
  try {
39
117
  const content = await fs.readFile(moduleConfigPath, 'utf8');
40
- const moduleConfig = yaml.load(content);
118
+ const moduleConfig = yaml.parse(content);
41
119
  if (moduleConfig) {
42
120
  this.existingConfig[entry.name] = moduleConfig;
43
121
  foundAny = true;
@@ -49,10 +127,6 @@ class ConfigCollector {
49
127
  }
50
128
  }
51
129
 
52
- if (foundAny) {
53
- console.log(chalk.cyan('\n📋 Found existing BMAD module configurations'));
54
- }
55
-
56
130
  return foundAny;
57
131
  }
58
132
 
@@ -60,8 +134,12 @@ class ConfigCollector {
60
134
  * Collect configuration for all modules
61
135
  * @param {Array} modules - List of modules to configure (including 'core')
62
136
  * @param {string} projectDir - Target project directory
137
+ * @param {Object} options - Additional options
138
+ * @param {Map} options.customModulePaths - Map of module ID to source path for custom modules
63
139
  */
64
- async collectAllConfigurations(modules, projectDir) {
140
+ async collectAllConfigurations(modules, projectDir, options = {}) {
141
+ // Store custom module paths for use in collectModuleConfig
142
+ this.customModulePaths = options.customModulePaths || new Map();
65
143
  await this.loadExistingConfig(projectDir);
66
144
 
67
145
  // Check if core was already collected (e.g., in early collection phase)
@@ -110,15 +188,47 @@ class ConfigCollector {
110
188
  }
111
189
 
112
190
  // Load module's install config schema
113
- const installerConfigPath = path.join(getModulePath(moduleName), '_module-installer', 'install-config.yaml');
114
- const legacyConfigPath = path.join(getModulePath(moduleName), 'config.yaml');
191
+ // First, try the standard src/modules location
192
+ let installerConfigPath = path.join(getModulePath(moduleName), '_module-installer', 'module.yaml');
193
+ let moduleConfigPath = path.join(getModulePath(moduleName), 'module.yaml');
194
+
195
+ // If not found in src/modules, we need to find it by searching the project
196
+ if (!(await fs.pathExists(installerConfigPath)) && !(await fs.pathExists(moduleConfigPath))) {
197
+ // Use the module manager to find the module source
198
+ const { ModuleManager } = require('../modules/manager');
199
+ const moduleManager = new ModuleManager();
200
+ const moduleSourcePath = await moduleManager.findModuleSource(moduleName);
201
+
202
+ if (moduleSourcePath) {
203
+ installerConfigPath = path.join(moduleSourcePath, '_module-installer', 'module.yaml');
204
+ moduleConfigPath = path.join(moduleSourcePath, 'module.yaml');
205
+ }
206
+ }
115
207
 
116
208
  let configPath = null;
117
- if (await fs.pathExists(installerConfigPath)) {
209
+ let isCustomModule = false;
210
+
211
+ if (await fs.pathExists(moduleConfigPath)) {
212
+ configPath = moduleConfigPath;
213
+ } else if (await fs.pathExists(installerConfigPath)) {
118
214
  configPath = installerConfigPath;
119
- } else if (await fs.pathExists(legacyConfigPath)) {
120
- configPath = legacyConfigPath;
121
215
  } else {
216
+ // Check if this is a custom module with custom.yaml
217
+ const { ModuleManager } = require('../modules/manager');
218
+ const moduleManager = new ModuleManager();
219
+ const moduleSourcePath = await moduleManager.findModuleSource(moduleName);
220
+
221
+ if (moduleSourcePath) {
222
+ const rootCustomConfigPath = path.join(moduleSourcePath, 'custom.yaml');
223
+ const moduleInstallerCustomPath = path.join(moduleSourcePath, '_module-installer', 'custom.yaml');
224
+
225
+ if ((await fs.pathExists(rootCustomConfigPath)) || (await fs.pathExists(moduleInstallerCustomPath))) {
226
+ isCustomModule = true;
227
+ // For custom modules, we don't have an install-config schema, so just use existing values
228
+ // The custom.yaml values will be loaded and merged during installation
229
+ }
230
+ }
231
+
122
232
  // No config schema for this module - use existing values
123
233
  if (this.existingConfig && this.existingConfig[moduleName]) {
124
234
  if (!this.collectedConfig[moduleName]) {
@@ -130,7 +240,7 @@ class ConfigCollector {
130
240
  }
131
241
 
132
242
  const configContent = await fs.readFile(configPath, 'utf8');
133
- const moduleConfig = yaml.load(configContent);
243
+ const moduleConfig = yaml.parse(configContent);
134
244
 
135
245
  if (!moduleConfig) {
136
246
  return false;
@@ -140,72 +250,142 @@ class ConfigCollector {
140
250
  const configKeys = Object.keys(moduleConfig).filter((key) => key !== 'prompt');
141
251
  const existingKeys = this.existingConfig && this.existingConfig[moduleName] ? Object.keys(this.existingConfig[moduleName]) : [];
142
252
 
253
+ // Check if this module has no configuration keys at all (like CIS)
254
+ // Filter out metadata fields and only count actual config objects
255
+ const metadataFields = new Set(['code', 'name', 'header', 'subheader', 'default_selected']);
256
+ const actualConfigKeys = configKeys.filter((key) => !metadataFields.has(key));
257
+ const hasNoConfig = actualConfigKeys.length === 0;
258
+
259
+ // If module has no config keys at all, handle it specially
260
+ if (hasNoConfig && moduleConfig.subheader) {
261
+ // Add blank line for better readability (matches other modules)
262
+ console.log();
263
+ const moduleDisplayName = moduleConfig.header || `${moduleName.toUpperCase()} Module`;
264
+
265
+ // Display the module name in color first (matches other modules)
266
+ console.log(chalk.cyan('?') + ' ' + chalk.magenta(moduleDisplayName));
267
+
268
+ // Show the subheader since there's no configuration to ask about
269
+ console.log(chalk.dim(` ✓ ${moduleConfig.subheader}`));
270
+ return false; // No new fields
271
+ }
272
+
273
+ // Find new interactive fields (with prompt)
143
274
  const newKeys = configKeys.filter((key) => {
144
275
  const item = moduleConfig[key];
145
276
  // Check if it's a config item and doesn't exist in existing config
146
277
  return item && typeof item === 'object' && item.prompt && !existingKeys.includes(key);
147
278
  });
148
279
 
149
- // If in silent mode and no new keys, use existing config and skip prompts
150
- if (silentMode && newKeys.length === 0) {
280
+ // Find new static fields (without prompt, just result)
281
+ const newStaticKeys = configKeys.filter((key) => {
282
+ const item = moduleConfig[key];
283
+ return item && typeof item === 'object' && !item.prompt && item.result && !existingKeys.includes(key);
284
+ });
285
+
286
+ // If in silent mode and no new keys (neither interactive nor static), use existing config and skip prompts
287
+ if (silentMode && newKeys.length === 0 && newStaticKeys.length === 0) {
151
288
  if (this.existingConfig && this.existingConfig[moduleName]) {
152
289
  if (!this.collectedConfig[moduleName]) {
153
290
  this.collectedConfig[moduleName] = {};
154
291
  }
155
292
  this.collectedConfig[moduleName] = { ...this.existingConfig[moduleName] };
156
293
 
294
+ // Special handling for user_name: ensure it has a value
295
+ if (
296
+ moduleName === 'core' &&
297
+ (!this.collectedConfig[moduleName].user_name || this.collectedConfig[moduleName].user_name === '[USER_NAME]')
298
+ ) {
299
+ this.collectedConfig[moduleName].user_name = this.getDefaultUsername();
300
+ }
301
+
157
302
  // Also populate allAnswers for cross-referencing
158
303
  for (const [key, value] of Object.entries(this.existingConfig[moduleName])) {
159
- this.allAnswers[`${moduleName}_${key}`] = value;
304
+ // Ensure user_name is properly set in allAnswers too
305
+ let finalValue = value;
306
+ if (moduleName === 'core' && key === 'user_name' && (!value || value === '[USER_NAME]')) {
307
+ finalValue = this.getDefaultUsername();
308
+ }
309
+ this.allAnswers[`${moduleName}_${key}`] = finalValue;
310
+ }
311
+ } else if (moduleName === 'core') {
312
+ // No existing core config - ensure we at least have user_name
313
+ if (!this.collectedConfig[moduleName]) {
314
+ this.collectedConfig[moduleName] = {};
315
+ }
316
+ if (!this.collectedConfig[moduleName].user_name) {
317
+ this.collectedConfig[moduleName].user_name = this.getDefaultUsername();
318
+ this.allAnswers[`${moduleName}_user_name`] = this.getDefaultUsername();
160
319
  }
161
320
  }
321
+
322
+ // Show "no config" message for modules with no new questions (that have config keys)
323
+ console.log(chalk.dim(` ✓ ${moduleName.toUpperCase()} module already up to date`));
162
324
  return false; // No new fields
163
325
  }
164
326
 
165
- // If we have new fields, show prompt section and collect only new fields
166
- if (newKeys.length > 0) {
167
- console.log(chalk.yellow(`\n📋 New configuration options available for ${moduleName}`));
168
- if (moduleConfig.prompt) {
169
- const prompts = Array.isArray(moduleConfig.prompt) ? moduleConfig.prompt : [moduleConfig.prompt];
170
- CLIUtils.displayPromptSection(prompts);
171
- }
172
-
327
+ // If we have new fields (interactive or static), process them
328
+ if (newKeys.length > 0 || newStaticKeys.length > 0) {
173
329
  const questions = [];
330
+ const staticAnswers = {};
331
+
332
+ // Build questions for interactive fields
174
333
  for (const key of newKeys) {
175
334
  const item = moduleConfig[key];
176
- const question = await this.buildQuestion(moduleName, key, item);
335
+ const question = await this.buildQuestion(moduleName, key, item, moduleConfig);
177
336
  if (question) {
178
337
  questions.push(question);
179
338
  }
180
339
  }
181
340
 
341
+ // Prepare static answers (no prompt, just result)
342
+ for (const key of newStaticKeys) {
343
+ staticAnswers[`${moduleName}_${key}`] = undefined;
344
+ }
345
+
346
+ // Collect all answers (static + prompted)
347
+ let allAnswers = { ...staticAnswers };
348
+
182
349
  if (questions.length > 0) {
350
+ // Only show header if we actually have questions
351
+ CLIUtils.displayModuleConfigHeader(moduleName, moduleConfig.header, moduleConfig.subheader);
183
352
  console.log(); // Line break before questions
184
- const answers = await inquirer.prompt(questions);
185
-
186
- // Store answers for cross-referencing
187
- Object.assign(this.allAnswers, answers);
188
-
189
- // Process answers and build result values
190
- for (const key of Object.keys(answers)) {
191
- const originalKey = key.replace(`${moduleName}_`, '');
192
- const item = moduleConfig[originalKey];
193
- const value = answers[key];
194
-
195
- let result;
196
- if (Array.isArray(value)) {
197
- result = value;
198
- } else if (item.result) {
199
- result = this.processResultTemplate(item.result, value);
200
- } else {
201
- result = value;
202
- }
353
+ const promptedAnswers = await inquirer.prompt(questions);
203
354
 
204
- if (!this.collectedConfig[moduleName]) {
205
- this.collectedConfig[moduleName] = {};
206
- }
207
- this.collectedConfig[moduleName][originalKey] = result;
355
+ // Merge prompted answers with static answers
356
+ Object.assign(allAnswers, promptedAnswers);
357
+ } else if (newStaticKeys.length > 0) {
358
+ // Only static fields, no questions - show no config message
359
+ console.log(chalk.dim(` ✓ ${moduleName.toUpperCase()} module configuration updated`));
360
+ }
361
+
362
+ // Store all answers for cross-referencing
363
+ Object.assign(this.allAnswers, allAnswers);
364
+
365
+ // Process all answers (both static and prompted)
366
+ // First, copy existing config to preserve values that aren't being updated
367
+ if (this.existingConfig && this.existingConfig[moduleName]) {
368
+ this.collectedConfig[moduleName] = { ...this.existingConfig[moduleName] };
369
+ } else {
370
+ this.collectedConfig[moduleName] = {};
371
+ }
372
+
373
+ for (const key of Object.keys(allAnswers)) {
374
+ const originalKey = key.replace(`${moduleName}_`, '');
375
+ const item = moduleConfig[originalKey];
376
+ const value = allAnswers[key];
377
+
378
+ let result;
379
+ if (Array.isArray(value)) {
380
+ result = value;
381
+ } else if (item.result) {
382
+ result = this.processResultTemplate(item.result, value);
383
+ } else {
384
+ result = value;
208
385
  }
386
+
387
+ // Update the collected config with new/updated values
388
+ this.collectedConfig[moduleName][originalKey] = result;
209
389
  }
210
390
  }
211
391
 
@@ -222,7 +402,7 @@ class ConfigCollector {
222
402
  }
223
403
  }
224
404
 
225
- return newKeys.length > 0; // Return true if we prompted for new fields
405
+ return newKeys.length > 0 || newStaticKeys.length > 0; // Return true if we had any new fields (interactive or static)
226
406
  }
227
407
 
228
408
  /**
@@ -286,6 +466,25 @@ class ConfigCollector {
286
466
  return result;
287
467
  }
288
468
 
469
+ /**
470
+ * Get the default username from the system
471
+ * @returns {string} Capitalized username\
472
+ */
473
+ getDefaultUsername() {
474
+ let result = 'BMad';
475
+ try {
476
+ const os = require('node:os');
477
+ const userInfo = os.userInfo();
478
+ if (userInfo && userInfo.username) {
479
+ const username = userInfo.username;
480
+ result = username.charAt(0).toUpperCase() + username.slice(1);
481
+ }
482
+ } catch {
483
+ // Do nothing, just return 'BMad'
484
+ }
485
+ return result;
486
+ }
487
+
289
488
  /**
290
489
  * Collect configuration for a single module
291
490
  * @param {string} moduleName - Module name
@@ -304,57 +503,133 @@ class ConfigCollector {
304
503
  if (!this.allAnswers) {
305
504
  this.allAnswers = {};
306
505
  }
307
- // Load module's config.yaml (check new location first, then fallback)
308
- const installerConfigPath = path.join(getModulePath(moduleName), '_module-installer', 'install-config.yaml');
309
- const legacyConfigPath = path.join(getModulePath(moduleName), 'config.yaml');
506
+ // Load module's config
507
+ // First, check if we have a custom module path for this module
508
+ let installerConfigPath = null;
509
+ let moduleConfigPath = null;
510
+
511
+ if (this.customModulePaths && this.customModulePaths.has(moduleName)) {
512
+ const customPath = this.customModulePaths.get(moduleName);
513
+ installerConfigPath = path.join(customPath, '_module-installer', 'module.yaml');
514
+ moduleConfigPath = path.join(customPath, 'module.yaml');
515
+ } else {
516
+ // Try the standard src/modules location
517
+ installerConfigPath = path.join(getModulePath(moduleName), '_module-installer', 'module.yaml');
518
+ moduleConfigPath = path.join(getModulePath(moduleName), 'module.yaml');
519
+ }
520
+
521
+ // If not found in src/modules or custom paths, search the project
522
+ if (!(await fs.pathExists(installerConfigPath)) && !(await fs.pathExists(moduleConfigPath))) {
523
+ // Use the module manager to find the module source
524
+ const { ModuleManager } = require('../modules/manager');
525
+ const moduleManager = new ModuleManager();
526
+ const moduleSourcePath = await moduleManager.findModuleSource(moduleName);
527
+
528
+ if (moduleSourcePath) {
529
+ installerConfigPath = path.join(moduleSourcePath, '_module-installer', 'module.yaml');
530
+ moduleConfigPath = path.join(moduleSourcePath, 'module.yaml');
531
+ }
532
+ }
310
533
 
311
534
  let configPath = null;
312
- if (await fs.pathExists(installerConfigPath)) {
535
+ if (await fs.pathExists(moduleConfigPath)) {
536
+ configPath = moduleConfigPath;
537
+ } else if (await fs.pathExists(installerConfigPath)) {
313
538
  configPath = installerConfigPath;
314
- } else if (await fs.pathExists(legacyConfigPath)) {
315
- configPath = legacyConfigPath;
316
539
  } else {
317
540
  // No config for this module
318
541
  return;
319
542
  }
320
543
 
321
544
  const configContent = await fs.readFile(configPath, 'utf8');
322
- const moduleConfig = yaml.load(configContent);
545
+ const moduleConfig = yaml.parse(configContent);
323
546
 
324
547
  if (!moduleConfig) {
325
548
  return;
326
549
  }
327
550
 
328
- // Display module prompts using better formatting
329
- if (moduleConfig.prompt) {
330
- const prompts = Array.isArray(moduleConfig.prompt) ? moduleConfig.prompt : [moduleConfig.prompt];
331
- CLIUtils.displayPromptSection(prompts);
332
- }
333
-
334
551
  // Process each config item
335
552
  const questions = [];
553
+ const staticAnswers = {};
336
554
  const configKeys = Object.keys(moduleConfig).filter((key) => key !== 'prompt');
337
555
 
338
556
  for (const key of configKeys) {
339
557
  const item = moduleConfig[key];
340
558
 
341
559
  // Skip if not a config object
342
- if (!item || typeof item !== 'object' || !item.prompt) {
560
+ if (!item || typeof item !== 'object') {
343
561
  continue;
344
562
  }
345
563
 
346
- const question = await this.buildQuestion(moduleName, key, item);
347
- if (question) {
348
- questions.push(question);
564
+ // Handle static values (no prompt, just result)
565
+ if (!item.prompt && item.result) {
566
+ // Add to static answers with a marker value
567
+ staticAnswers[`${moduleName}_${key}`] = undefined;
568
+ continue;
569
+ }
570
+
571
+ // Handle interactive values (with prompt)
572
+ if (item.prompt) {
573
+ const question = await this.buildQuestion(moduleName, key, item, moduleConfig);
574
+ if (question) {
575
+ questions.push(question);
576
+ }
349
577
  }
350
578
  }
351
579
 
580
+ // Collect all answers (static + prompted)
581
+ let allAnswers = { ...staticAnswers };
582
+
583
+ // If there are questions to ask, prompt for accepting defaults vs customizing
352
584
  if (questions.length > 0) {
353
- console.log(); // Line break before questions
354
- const answers = await inquirer.prompt(questions);
585
+ const moduleDisplayName = moduleConfig.header || `${moduleName.toUpperCase()} Module`;
586
+ console.log();
587
+ console.log(chalk.cyan('?') + ' ' + chalk.magenta(moduleDisplayName));
588
+ let customize = true;
589
+ if (moduleName !== 'core') {
590
+ const customizeAnswer = await inquirer.prompt([
591
+ {
592
+ type: 'confirm',
593
+ name: 'customize',
594
+ message: 'Accept Defaults (no to customize)?',
595
+ default: true,
596
+ },
597
+ ]);
598
+ customize = customizeAnswer.customize;
599
+ }
355
600
 
356
- // Store answers for cross-referencing
357
- Object.assign(this.allAnswers, answers);
601
+ if (customize && moduleName !== 'core') {
602
+ // Accept defaults - only ask questions that have NO default value
603
+ const questionsWithoutDefaults = questions.filter((q) => q.default === undefined || q.default === null || q.default === '');
604
+
605
+ if (questionsWithoutDefaults.length > 0) {
606
+ console.log(chalk.dim(`\n Asking required questions for ${moduleName.toUpperCase()}...`));
607
+ const promptedAnswers = await inquirer.prompt(questionsWithoutDefaults);
608
+ Object.assign(allAnswers, promptedAnswers);
609
+ }
610
+
611
+ // For questions with defaults that weren't asked, we need to process them with their default values
612
+ const questionsWithDefaults = questions.filter((q) => q.default !== undefined && q.default !== null && q.default !== '');
613
+ for (const question of questionsWithDefaults) {
614
+ // Skip function defaults - these are dynamic and will be evaluated later
615
+ if (typeof question.default === 'function') {
616
+ continue;
617
+ }
618
+ allAnswers[question.name] = question.default;
619
+ }
620
+ } else {
621
+ const promptedAnswers = await inquirer.prompt(questions);
622
+ Object.assign(allAnswers, promptedAnswers);
623
+ }
624
+ }
625
+
626
+ // Store all answers for cross-referencing
627
+ Object.assign(this.allAnswers, allAnswers);
628
+
629
+ // Process all answers (both static and prompted)
630
+ // Always process if we have any answers or static answers
631
+ if (Object.keys(allAnswers).length > 0 || Object.keys(staticAnswers).length > 0) {
632
+ const answers = allAnswers;
358
633
 
359
634
  // Process answers and build result values
360
635
  for (const key of Object.keys(answers)) {
@@ -367,8 +642,6 @@ class ConfigCollector {
367
642
 
368
643
  // For arrays (multi-select), handle differently
369
644
  if (Array.isArray(value)) {
370
- // If there's a result template and it's a string, don't use it for arrays
371
- // Just use the array value directly
372
645
  result = value;
373
646
  } else if (item.result) {
374
647
  result = item.result;
@@ -383,11 +656,9 @@ class ConfigCollector {
383
656
  if (result === '{value}') {
384
657
  result = value;
385
658
  } else {
386
- // Otherwise replace in the string
387
659
  result = result.replace('{value}', value);
388
660
  }
389
661
  } else {
390
- // For non-string values, use directly
391
662
  result = value;
392
663
  }
393
664
 
@@ -439,7 +710,6 @@ class ConfigCollector {
439
710
  }
440
711
  }
441
712
  } else {
442
- // No result template, use value directly
443
713
  result = value;
444
714
  }
445
715
 
@@ -450,20 +720,128 @@ class ConfigCollector {
450
720
  this.collectedConfig[moduleName][originalKey] = result;
451
721
  }
452
722
 
453
- // Display module completion message after collecting all answers (unless skipped)
454
- if (!skipCompletion) {
455
- CLIUtils.displayModuleComplete(moduleName);
723
+ // No longer display completion boxes - keep output clean
724
+ } else {
725
+ // No questions for this module - show completion message with header if available
726
+ const moduleDisplayName = moduleConfig.header || `${moduleName.toUpperCase()} Module`;
727
+
728
+ // Check if this module has NO configuration keys at all (like CIS)
729
+ // Filter out metadata fields and only count actual config objects
730
+ const metadataFields = new Set(['code', 'name', 'header', 'subheader', 'default_selected']);
731
+ const actualConfigKeys = configKeys.filter((key) => !metadataFields.has(key));
732
+ const hasNoConfig = actualConfigKeys.length === 0;
733
+
734
+ if (hasNoConfig && (moduleConfig.subheader || moduleConfig.header)) {
735
+ // Module explicitly has no configuration - show with special styling
736
+ // Add blank line for better readability (matches other modules)
737
+ console.log();
738
+
739
+ // Display the module name in color first (matches other modules)
740
+ console.log(chalk.cyan('?') + ' ' + chalk.magenta(moduleDisplayName));
741
+
742
+ // Ask user if they want to accept defaults or customize on the next line
743
+ const { customize } = await inquirer.prompt([
744
+ {
745
+ type: 'confirm',
746
+ name: 'customize',
747
+ message: 'Accept Defaults (no to customize)?',
748
+ default: true,
749
+ },
750
+ ]);
751
+
752
+ // Show the subheader if available, otherwise show a default message
753
+ if (moduleConfig.subheader) {
754
+ console.log(chalk.dim(` ✓ ${moduleConfig.subheader}`));
755
+ } else {
756
+ console.log(chalk.dim(` ✓ No custom configuration required`));
757
+ }
758
+ } else {
759
+ // Module has config but just no questions to ask
760
+ console.log(chalk.dim(` ✓ ${moduleName.toUpperCase()} module configured`));
761
+ }
762
+ }
763
+
764
+ // If we have no collected config for this module, but we have a module schema,
765
+ // ensure we have at least an empty object
766
+ if (!this.collectedConfig[moduleName]) {
767
+ this.collectedConfig[moduleName] = {};
768
+
769
+ // If we accepted defaults and have no answers, we still need to check
770
+ // if there are any static values in the schema that should be applied
771
+ if (moduleConfig) {
772
+ for (const key of Object.keys(moduleConfig)) {
773
+ if (key !== 'prompt' && moduleConfig[key] && typeof moduleConfig[key] === 'object') {
774
+ const item = moduleConfig[key];
775
+ // For static items (no prompt, just result), apply the result
776
+ if (!item.prompt && item.result) {
777
+ // Apply any placeholder replacements to the result
778
+ let result = item.result;
779
+ if (typeof result === 'string') {
780
+ result = this.replacePlaceholders(result, moduleName, moduleConfig);
781
+ }
782
+ this.collectedConfig[moduleName][key] = result;
783
+ }
784
+ }
785
+ }
456
786
  }
457
787
  }
458
788
  }
459
789
 
790
+ /**
791
+ * Replace placeholders in a string with collected config values
792
+ * @param {string} str - String with placeholders
793
+ * @param {string} currentModule - Current module name (to look up defaults in same module)
794
+ * @param {Object} moduleConfig - Current module's config schema (to look up defaults)
795
+ * @returns {string} String with placeholders replaced
796
+ */
797
+ replacePlaceholders(str, currentModule = null, moduleConfig = null) {
798
+ if (typeof str !== 'string') {
799
+ return str;
800
+ }
801
+
802
+ return str.replaceAll(/{([^}]+)}/g, (match, configKey) => {
803
+ // Preserve special placeholders
804
+ if (configKey === 'project-root' || configKey === 'value' || configKey === 'directory_name') {
805
+ return match;
806
+ }
807
+
808
+ // Look for the config value in allAnswers (already answered questions)
809
+ let configValue = this.allAnswers[configKey] || this.allAnswers[`core_${configKey}`];
810
+
811
+ // Check in already collected config
812
+ if (!configValue) {
813
+ for (const mod of Object.keys(this.collectedConfig)) {
814
+ if (mod !== '_meta' && this.collectedConfig[mod] && this.collectedConfig[mod][configKey]) {
815
+ configValue = this.collectedConfig[mod][configKey];
816
+ // Remove {project-root}/ prefix if present for cleaner display
817
+ if (typeof configValue === 'string' && configValue.includes('{project-root}/')) {
818
+ configValue = configValue.replace('{project-root}/', '');
819
+ }
820
+ break;
821
+ }
822
+ }
823
+ }
824
+
825
+ // If still not found and we're in the same module, use the default from the config schema
826
+ if (!configValue && currentModule && moduleConfig && moduleConfig[configKey]) {
827
+ const referencedItem = moduleConfig[configKey];
828
+ if (referencedItem && referencedItem.default !== undefined) {
829
+ configValue = referencedItem.default;
830
+ }
831
+ }
832
+
833
+ return configValue || match;
834
+ });
835
+ }
836
+
460
837
  /**
461
838
  * Build an inquirer question from a config item
462
839
  * @param {string} moduleName - Module name
463
840
  * @param {string} key - Config key
464
841
  * @param {Object} item - Config item definition
842
+ * @param {Object} moduleConfig - Full module config schema (for resolving defaults)
465
843
  */
466
- async buildQuestion(moduleName, key, item) {
844
+ async buildQuestion(moduleName, key, item, moduleConfig = null) {
467
845
  const questionName = `${moduleName}_${key}`;
468
846
 
469
847
  // Check for existing value
@@ -478,34 +856,100 @@ class ConfigCollector {
478
856
  }
479
857
  }
480
858
 
859
+ // Special handling for user_name: default to system user
860
+ if (moduleName === 'core' && key === 'user_name' && !existingValue) {
861
+ item.default = this.getDefaultUsername();
862
+ }
863
+
481
864
  // Determine question type and default value
482
865
  let questionType = 'input';
483
866
  let defaultValue = item.default;
484
867
  let choices = null;
485
868
 
486
- if (typeof defaultValue === 'string' && defaultValue.includes('{directory_name}') && this.currentProjectDir) {
487
- const dirName = path.basename(this.currentProjectDir);
488
- defaultValue = defaultValue.replaceAll('{directory_name}', dirName);
869
+ // Check if default contains references to other fields in the same module
870
+ const hasSameModuleReference = typeof defaultValue === 'string' && defaultValue.match(/{([^}]+)}/);
871
+ let dynamicDefault = false;
872
+
873
+ // Replace placeholders in default value with collected config values
874
+ if (typeof defaultValue === 'string') {
875
+ if (defaultValue.includes('{directory_name}') && this.currentProjectDir) {
876
+ const dirName = path.basename(this.currentProjectDir);
877
+ defaultValue = defaultValue.replaceAll('{directory_name}', dirName);
878
+ }
879
+
880
+ // Check if this references another field in the same module (for dynamic defaults)
881
+ if (hasSameModuleReference && moduleConfig) {
882
+ const matches = defaultValue.match(/{([^}]+)}/g);
883
+ if (matches) {
884
+ for (const match of matches) {
885
+ const fieldName = match.slice(1, -1); // Remove { }
886
+ // Check if this field exists in the same module config
887
+ if (moduleConfig[fieldName]) {
888
+ dynamicDefault = true;
889
+ break;
890
+ }
891
+ }
892
+ }
893
+ }
894
+
895
+ // If not dynamic, replace placeholders now
896
+ if (!dynamicDefault) {
897
+ defaultValue = this.replacePlaceholders(defaultValue, moduleName, moduleConfig);
898
+ }
899
+
900
+ // Strip {project-root}/ from defaults since it will be added back by result template
901
+ // This makes the display cleaner and user input simpler
902
+ if (defaultValue.includes('{project-root}/')) {
903
+ defaultValue = defaultValue.replace('{project-root}/', '');
904
+ }
489
905
  }
490
906
 
491
907
  // Handle different question types
492
908
  if (item['single-select']) {
493
909
  questionType = 'list';
494
- choices = item['single-select'];
495
- if (existingValue && choices.includes(existingValue)) {
910
+ choices = item['single-select'].map((choice) => {
911
+ // If choice is an object with label and value
912
+ if (typeof choice === 'object' && choice.label && choice.value !== undefined) {
913
+ return {
914
+ name: choice.label,
915
+ value: choice.value,
916
+ };
917
+ }
918
+ // Otherwise it's a simple string choice
919
+ return {
920
+ name: choice,
921
+ value: choice,
922
+ };
923
+ });
924
+ if (existingValue) {
496
925
  defaultValue = existingValue;
497
926
  }
498
927
  } else if (item['multi-select']) {
499
928
  questionType = 'checkbox';
500
- choices = item['multi-select'].map((choice) => ({
501
- name: choice,
502
- value: choice,
503
- checked: existingValue
504
- ? existingValue.includes(choice)
505
- : item.default && Array.isArray(item.default)
506
- ? item.default.includes(choice)
507
- : false,
508
- }));
929
+ choices = item['multi-select'].map((choice) => {
930
+ // If choice is an object with label and value
931
+ if (typeof choice === 'object' && choice.label && choice.value !== undefined) {
932
+ return {
933
+ name: choice.label,
934
+ value: choice.value,
935
+ checked: existingValue
936
+ ? existingValue.includes(choice.value)
937
+ : item.default && Array.isArray(item.default)
938
+ ? item.default.includes(choice.value)
939
+ : false,
940
+ };
941
+ }
942
+ // Otherwise it's a simple string choice
943
+ return {
944
+ name: choice,
945
+ value: choice,
946
+ checked: existingValue
947
+ ? existingValue.includes(choice)
948
+ : item.default && Array.isArray(item.default)
949
+ ? item.default.includes(choice)
950
+ : false,
951
+ };
952
+ });
509
953
  } else if (typeof defaultValue === 'boolean') {
510
954
  questionType = 'confirm';
511
955
  }
@@ -520,31 +964,67 @@ class ConfigCollector {
520
964
  message = item.prompt;
521
965
  }
522
966
 
967
+ // Replace placeholders in prompt message with collected config values
968
+ if (typeof message === 'string') {
969
+ message = this.replacePlaceholders(message, moduleName, moduleConfig);
970
+ }
971
+
523
972
  // Add current value indicator for existing configs
524
973
  if (existingValue !== null && existingValue !== undefined) {
525
974
  if (typeof existingValue === 'boolean') {
526
975
  message += chalk.dim(` (current: ${existingValue ? 'true' : 'false'})`);
527
- defaultValue = existingValue;
528
976
  } else if (Array.isArray(existingValue)) {
529
977
  message += chalk.dim(` (current: ${existingValue.join(', ')})`);
530
978
  } else if (questionType !== 'list') {
531
979
  // Show the cleaned value (without {project-root}/) for display
532
980
  message += chalk.dim(` (current: ${existingValue})`);
533
- defaultValue = existingValue;
534
981
  }
535
982
  } else if (item.example && questionType === 'input') {
536
983
  // Show example for input fields
537
- const exampleText = typeof item.example === 'string' ? item.example.replace('{project-root}/', '') : JSON.stringify(item.example);
984
+ let exampleText = typeof item.example === 'string' ? item.example : JSON.stringify(item.example);
985
+ // Replace placeholders in example
986
+ if (typeof exampleText === 'string') {
987
+ exampleText = this.replacePlaceholders(exampleText, moduleName, moduleConfig);
988
+ exampleText = exampleText.replace('{project-root}/', '');
989
+ }
538
990
  message += chalk.dim(` (e.g., ${exampleText})`);
539
991
  }
540
992
 
993
+ // Build the question object
541
994
  const question = {
542
995
  type: questionType,
543
996
  name: questionName,
544
997
  message: message,
545
- default: defaultValue,
546
998
  };
547
999
 
1000
+ // Set default - if it's dynamic, use a function that inquirer will evaluate with current answers
1001
+ // But if we have an existing value, always use that instead
1002
+ if (existingValue !== null && existingValue !== undefined && questionType !== 'list') {
1003
+ question.default = existingValue;
1004
+ } else if (dynamicDefault && typeof item.default === 'string') {
1005
+ const originalDefault = item.default;
1006
+ question.default = (answers) => {
1007
+ // Replace placeholders using answers from previous questions in the same batch
1008
+ let resolved = originalDefault;
1009
+ resolved = resolved.replaceAll(/{([^}]+)}/g, (match, fieldName) => {
1010
+ // Look for the answer in the current batch (prefixed with module name)
1011
+ const answerKey = `${moduleName}_${fieldName}`;
1012
+ if (answers[answerKey] !== undefined) {
1013
+ return answers[answerKey];
1014
+ }
1015
+ // Fall back to collected config
1016
+ return this.collectedConfig[moduleName]?.[fieldName] || match;
1017
+ });
1018
+ // Strip {project-root}/ for cleaner display
1019
+ if (resolved.includes('{project-root}/')) {
1020
+ resolved = resolved.replace('{project-root}/', '');
1021
+ }
1022
+ return resolved;
1023
+ };
1024
+ } else {
1025
+ question.default = defaultValue;
1026
+ }
1027
+
548
1028
  // Add choices for select types
549
1029
  if (choices) {
550
1030
  question.choices = choices;
@@ -556,6 +1036,23 @@ class ConfigCollector {
556
1036
  if (!input && item.required) {
557
1037
  return 'This field is required';
558
1038
  }
1039
+ // Validate against regex pattern if provided
1040
+ if (input && item.regex) {
1041
+ const regex = new RegExp(item.regex);
1042
+ if (!regex.test(input)) {
1043
+ return `Invalid format. Must match pattern: ${item.regex}`;
1044
+ }
1045
+ }
1046
+ return true;
1047
+ };
1048
+ }
1049
+
1050
+ // Add validation for checkbox (multi-select) fields
1051
+ if (questionType === 'checkbox' && item.required) {
1052
+ question.validate = (answers) => {
1053
+ if (!answers || answers.length === 0) {
1054
+ return 'At least one option must be selected';
1055
+ }
559
1056
  return true;
560
1057
  };
561
1058
  }