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

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 (1278) 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 +772 -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 +25 -10
  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 +9 -18
  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/agent-builder.agent.yaml +36 -0
  110. package/src/modules/bmb/agents/module-builder.agent.yaml +48 -0
  111. package/src/modules/bmb/agents/workflow-builder.agent.yaml +40 -0
  112. package/src/modules/bmb/docs/agents/agent-compilation.md +340 -0
  113. package/src/modules/bmb/docs/agents/agent-menu-patterns.md +523 -0
  114. package/src/modules/bmb/docs/agents/expert-agent-architecture.md +363 -0
  115. package/src/modules/bmb/docs/agents/index.md +55 -0
  116. package/src/modules/bmb/docs/agents/kb.csv +0 -0
  117. package/src/modules/bmb/docs/agents/simple-agent-architecture.md +257 -0
  118. package/src/modules/bmb/docs/agents/understanding-agent-types.md +184 -0
  119. package/src/modules/bmb/docs/index.md +247 -0
  120. package/src/modules/bmb/docs/workflows/architecture.md +220 -0
  121. package/src/modules/bmb/docs/workflows/common-workflow-tools.csv +19 -0
  122. package/src/modules/bmb/docs/workflows/csv-data-file-standards.md +206 -0
  123. package/src/modules/bmb/docs/workflows/index.md +45 -0
  124. package/src/modules/bmb/docs/workflows/intent-vs-prescriptive-spectrum.md +220 -0
  125. package/src/modules/bmb/docs/workflows/kb.csv +0 -0
  126. package/src/modules/bmb/docs/workflows/templates/step-01-init-continuable-template.md +241 -0
  127. package/src/modules/bmb/docs/workflows/templates/step-1b-template.md +223 -0
  128. package/src/modules/bmb/docs/workflows/templates/step-file.md +139 -0
  129. package/src/modules/bmb/docs/workflows/templates/step-template.md +290 -0
  130. package/src/modules/bmb/docs/workflows/templates/workflow-template.md +104 -0
  131. package/src/modules/bmb/docs/workflows/templates/workflow.md +58 -0
  132. package/src/modules/bmb/docs/workflows/terms.md +97 -0
  133. package/src/modules/bmb/module.yaml +16 -0
  134. package/src/modules/bmb/reference/README.md +3 -0
  135. package/src/modules/bmb/reference/agents/simple-examples/README.md +223 -0
  136. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +18 -0
  137. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +16 -0
  138. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +28 -0
  139. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +176 -0
  140. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +120 -0
  141. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +164 -0
  142. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +153 -0
  143. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +182 -0
  144. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +167 -0
  145. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -0
  146. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -0
  147. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -0
  148. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -0
  149. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -0
  150. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -0
  151. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -0
  152. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/workflow.md +58 -0
  153. package/src/modules/bmb/workflows/create-agent/data/agent-validation-checklist.md +174 -0
  154. package/src/modules/bmb/workflows/create-agent/data/brainstorm-context.md +153 -0
  155. package/src/modules/bmb/workflows/create-agent/data/communication-presets.csv +61 -0
  156. package/src/modules/bmb/workflows/create-agent/data/info-and-installation-guide.md +29 -0
  157. package/src/modules/bmb/workflows/create-agent/data/reference/README.md +3 -0
  158. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/README.md +242 -0
  159. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/breakthroughs.md +24 -0
  160. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/instructions.md +108 -0
  161. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/memories.md +46 -0
  162. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/mood-patterns.md +39 -0
  163. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +153 -0
  164. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/README.md +48 -0
  165. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/security-engineer.agent.yaml +48 -0
  166. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/trend-analyst.agent.yaml +53 -0
  167. package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/README.md +223 -0
  168. package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/commit-poet.agent.yaml +126 -0
  169. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +18 -0
  170. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +16 -0
  171. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +28 -0
  172. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +177 -0
  173. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +150 -0
  174. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +164 -0
  175. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +152 -0
  176. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +182 -0
  177. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +167 -0
  178. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -0
  179. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -0
  180. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -0
  181. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -0
  182. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -0
  183. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -0
  184. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -0
  185. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/workflow.md +58 -0
  186. package/src/modules/bmb/workflows/create-agent/data/validation-complete.md +305 -0
  187. package/src/modules/bmb/workflows/create-agent/steps/step-01-brainstorm.md +145 -0
  188. package/src/modules/bmb/workflows/create-agent/steps/step-02-discover.md +206 -0
  189. package/src/modules/bmb/workflows/create-agent/steps/step-03-persona.md +260 -0
  190. package/src/modules/bmb/workflows/create-agent/steps/step-04-commands.md +237 -0
  191. package/src/modules/bmb/workflows/create-agent/steps/step-05-name.md +232 -0
  192. package/src/modules/bmb/workflows/create-agent/steps/step-06-build.md +186 -0
  193. package/src/modules/bmb/workflows/create-agent/steps/step-07-validate.md +234 -0
  194. package/src/modules/bmb/workflows/create-agent/steps/step-08-celebrate.md +218 -0
  195. package/src/modules/bmb/workflows/create-agent/templates/agent-plan.template.md +3 -0
  196. package/src/modules/bmb/workflows/create-agent/templates/expert-agent.template.md +364 -0
  197. package/src/modules/bmb/workflows/create-agent/templates/simple-agent.template.md +257 -0
  198. package/src/modules/bmb/workflows/create-agent/workflow.md +58 -0
  199. package/src/modules/bmb/workflows/create-module/steps/step-01-init.md +155 -0
  200. package/src/modules/bmb/workflows/create-module/steps/step-01b-continue.md +169 -0
  201. package/src/modules/bmb/workflows/create-module/steps/step-02-concept.md +217 -0
  202. package/src/modules/bmb/workflows/create-module/steps/step-03-components.md +267 -0
  203. package/src/modules/bmb/workflows/create-module/steps/step-04-structure.md +228 -0
  204. package/src/modules/bmb/workflows/create-module/steps/step-05-config.md +233 -0
  205. package/src/modules/bmb/workflows/create-module/steps/step-06-agents.md +296 -0
  206. package/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md +228 -0
  207. package/src/modules/bmb/workflows/create-module/steps/step-08-installer.md +186 -0
  208. package/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md +309 -0
  209. package/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md +337 -0
  210. package/src/modules/bmb/workflows/create-module/steps/step-11-validate.md +335 -0
  211. package/src/modules/bmb/workflows/create-module/templates/agent.template.md +313 -0
  212. package/src/modules/bmb/workflows/create-module/templates/installer.template.js +47 -0
  213. package/src/modules/bmb/workflows/create-module/templates/module-plan.template.md +5 -0
  214. package/src/modules/bmb/workflows/create-module/templates/module.template.yaml +53 -0
  215. package/src/modules/bmb/workflows/create-module/templates/workflow-plan-template.md +23 -0
  216. package/src/modules/bmb/workflows/create-module/validation.md +126 -0
  217. package/src/modules/bmb/workflows/create-module/workflow.md +55 -0
  218. package/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md +157 -0
  219. package/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md +211 -0
  220. package/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md +250 -0
  221. package/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md +216 -0
  222. package/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md +289 -0
  223. package/src/modules/bmb/workflows/create-workflow/steps/step-06-design.md +271 -0
  224. package/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md +308 -0
  225. package/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md +284 -0
  226. package/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md +187 -0
  227. package/src/modules/bmb/workflows/create-workflow/workflow.md +58 -0
  228. package/src/modules/bmb/workflows/edit-agent/steps/step-01-discover-intent.md +134 -0
  229. package/src/modules/bmb/workflows/edit-agent/steps/step-02-analyze-agent.md +202 -0
  230. package/src/modules/bmb/workflows/edit-agent/steps/step-03-propose-changes.md +157 -0
  231. package/src/modules/bmb/workflows/edit-agent/steps/step-04-apply-changes.md +150 -0
  232. package/src/modules/bmb/workflows/edit-agent/steps/step-05-validate.md +150 -0
  233. package/src/modules/bmb/workflows/edit-agent/workflow.md +58 -0
  234. package/src/modules/bmb/workflows/edit-workflow/steps/step-01-analyze.md +217 -0
  235. package/src/modules/bmb/workflows/edit-workflow/steps/step-02-discover.md +253 -0
  236. package/src/modules/bmb/workflows/edit-workflow/steps/step-03-improve.md +217 -0
  237. package/src/modules/bmb/workflows/edit-workflow/steps/step-04-validate.md +193 -0
  238. package/src/modules/bmb/workflows/edit-workflow/steps/step-05-compliance-check.md +245 -0
  239. package/src/modules/bmb/workflows/edit-workflow/templates/completion-summary.md +75 -0
  240. package/src/modules/bmb/workflows/edit-workflow/templates/improvement-goals.md +68 -0
  241. package/src/modules/bmb/workflows/edit-workflow/templates/improvement-log.md +40 -0
  242. package/src/modules/bmb/workflows/edit-workflow/templates/validation-results.md +51 -0
  243. package/src/modules/bmb/workflows/edit-workflow/templates/workflow-analysis.md +56 -0
  244. package/src/modules/bmb/workflows/edit-workflow/workflow.md +58 -0
  245. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +152 -0
  246. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +243 -0
  247. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +274 -0
  248. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +295 -0
  249. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +264 -0
  250. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +360 -0
  251. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +258 -0
  252. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +301 -0
  253. package/src/modules/bmb/workflows/workflow-compliance-check/templates/compliance-report.md +140 -0
  254. package/src/modules/bmb/workflows/workflow-compliance-check/workflow.md +58 -0
  255. package/src/modules/bmb/workflows-legacy/edit-module/README.md +171 -0
  256. package/src/modules/bmb/workflows-legacy/edit-module/checklist.md +163 -0
  257. package/src/modules/bmb/workflows-legacy/edit-module/instructions.md +340 -0
  258. package/src/modules/bmb/workflows-legacy/edit-module/workflow.yaml +34 -0
  259. package/src/modules/bmb/workflows-legacy/module-brief/README.md +264 -0
  260. package/src/modules/bmb/workflows-legacy/module-brief/checklist.md +116 -0
  261. package/src/modules/bmb/workflows-legacy/module-brief/instructions.md +268 -0
  262. package/src/modules/bmb/workflows-legacy/module-brief/workflow.yaml +36 -0
  263. package/src/modules/bmgd/_module-installer/installer.js +160 -0
  264. package/src/modules/bmgd/_module-installer/platform-specifics/claude-code.js +23 -0
  265. package/src/modules/bmgd/_module-installer/platform-specifics/windsurf.js +18 -0
  266. package/src/modules/bmgd/agents/game-architect.agent.yaml +43 -0
  267. package/src/modules/bmgd/agents/game-designer.agent.yaml +48 -0
  268. package/src/modules/bmgd/agents/game-dev.agent.yaml +52 -0
  269. package/src/modules/bmgd/agents/game-qa.agent.yaml +60 -0
  270. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +59 -0
  271. package/src/modules/bmgd/agents/game-solo-dev.agent.yaml +52 -0
  272. package/src/modules/bmgd/docs/agents-guide.md +407 -0
  273. package/src/modules/bmgd/docs/game-types-guide.md +503 -0
  274. package/src/modules/bmgd/docs/glossary.md +294 -0
  275. package/src/modules/bmgd/docs/index.md +180 -0
  276. package/src/modules/bmgd/docs/quick-flow-guide.md +288 -0
  277. package/src/modules/bmgd/docs/quick-start.md +250 -0
  278. package/src/modules/bmgd/docs/troubleshooting.md +259 -0
  279. package/src/modules/bmgd/docs/workflow-overview.jpg +0 -0
  280. package/src/modules/bmgd/docs/workflows-guide.md +463 -0
  281. package/src/modules/bmgd/gametest/knowledge/balance-testing.md +220 -0
  282. package/src/modules/bmgd/gametest/knowledge/certification-testing.md +319 -0
  283. package/src/modules/bmgd/gametest/knowledge/compatibility-testing.md +228 -0
  284. package/src/modules/bmgd/gametest/knowledge/godot-testing.md +376 -0
  285. package/src/modules/bmgd/gametest/knowledge/input-testing.md +315 -0
  286. package/src/modules/bmgd/gametest/knowledge/localization-testing.md +304 -0
  287. package/src/modules/bmgd/gametest/knowledge/multiplayer-testing.md +322 -0
  288. package/src/modules/bmgd/gametest/knowledge/performance-testing.md +204 -0
  289. package/src/modules/bmgd/gametest/knowledge/playtesting.md +384 -0
  290. package/src/modules/bmgd/gametest/knowledge/qa-automation.md +190 -0
  291. package/src/modules/bmgd/gametest/knowledge/regression-testing.md +280 -0
  292. package/src/modules/bmgd/gametest/knowledge/save-testing.md +280 -0
  293. package/src/modules/bmgd/gametest/knowledge/smoke-testing.md +404 -0
  294. package/src/modules/bmgd/gametest/knowledge/test-priorities.md +271 -0
  295. package/src/modules/bmgd/gametest/knowledge/unity-testing.md +383 -0
  296. package/src/modules/bmgd/gametest/knowledge/unreal-testing.md +388 -0
  297. package/src/modules/bmgd/gametest/qa-index.csv +17 -0
  298. package/src/modules/bmgd/module.yaml +64 -0
  299. package/src/modules/bmgd/teams/default-party.csv +12 -0
  300. package/src/modules/bmgd/teams/team-gamedev.yaml +29 -0
  301. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +130 -0
  302. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md +164 -0
  303. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-02-context.md +210 -0
  304. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-03-ideation.md +289 -0
  305. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md +275 -0
  306. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md +49 -0
  307. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +62 -0
  308. package/src/modules/bmgd/workflows/1-preproduction/game-brief/instructions.md +373 -0
  309. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01-init.md +223 -0
  310. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01b-continue.md +151 -0
  311. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-02-vision.md +218 -0
  312. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-03-market.md +218 -0
  313. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-04-fundamentals.md +231 -0
  314. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-05-scope.md +242 -0
  315. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-06-references.md +224 -0
  316. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-07-content.md +282 -0
  317. package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-08-complete.md +296 -0
  318. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.md +62 -0
  319. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.yaml +67 -0
  320. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01-init.md +248 -0
  321. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01b-continue.md +173 -0
  322. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-02-context.md +332 -0
  323. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-03-platforms.md +245 -0
  324. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-04-vision.md +229 -0
  325. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-05-core-gameplay.md +258 -0
  326. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-06-mechanics.md +249 -0
  327. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-07-game-type.md +266 -0
  328. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-08-progression.md +272 -0
  329. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-09-levels.md +264 -0
  330. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-10-art-audio.md +255 -0
  331. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-11-technical.md +275 -0
  332. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-12-epics.md +284 -0
  333. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-13-metrics.md +250 -0
  334. package/src/modules/bmgd/workflows/2-design/gdd/steps/step-14-complete.md +335 -0
  335. package/src/modules/bmgd/workflows/2-design/gdd/workflow.md +61 -0
  336. package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +101 -0
  337. package/src/modules/bmgd/workflows/2-design/narrative/instructions-narrative.md +604 -0
  338. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01-init.md +228 -0
  339. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01b-continue.md +163 -0
  340. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-02-foundation.md +262 -0
  341. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-03-story.md +238 -0
  342. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-04-characters.md +297 -0
  343. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-05-world.md +262 -0
  344. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-06-dialogue.md +250 -0
  345. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-07-environmental.md +244 -0
  346. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-08-delivery.md +264 -0
  347. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-09-integration.md +254 -0
  348. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-10-production.md +262 -0
  349. package/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md +331 -0
  350. package/src/modules/bmgd/workflows/2-design/narrative/workflow.md +57 -0
  351. package/src/modules/bmgd/workflows/2-design/narrative/workflow.yaml +77 -0
  352. package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-patterns.yaml +321 -0
  353. package/src/modules/bmgd/workflows/3-technical/game-architecture/checklist.md +240 -0
  354. package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +701 -0
  355. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01-init.md +223 -0
  356. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01b-continue.md +153 -0
  357. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-02-context.md +262 -0
  358. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-03-starter.md +290 -0
  359. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-04-decisions.md +300 -0
  360. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md +319 -0
  361. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-06-structure.md +304 -0
  362. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-07-patterns.md +349 -0
  363. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-08-validation.md +293 -0
  364. package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md +356 -0
  365. package/src/modules/bmgd/workflows/3-technical/game-architecture/templates/architecture-template.md +103 -0
  366. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.md +55 -0
  367. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +98 -0
  368. package/src/modules/bmgd/workflows/3-technical/generate-project-context/project-context-template.md +20 -0
  369. package/src/modules/bmgd/workflows/3-technical/generate-project-context/steps/step-01-discover.md +201 -0
  370. package/src/modules/bmgd/workflows/3-technical/generate-project-context/steps/step-02-generate.md +373 -0
  371. package/src/modules/bmgd/workflows/3-technical/generate-project-context/steps/step-03-complete.md +279 -0
  372. package/src/modules/bmgd/workflows/3-technical/generate-project-context/workflow.md +48 -0
  373. package/src/modules/bmgd/workflows/4-production/code-review/checklist.md +23 -0
  374. package/src/modules/bmgd/workflows/4-production/code-review/instructions.xml +225 -0
  375. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +64 -0
  376. package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +279 -0
  377. package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +206 -0
  378. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +63 -0
  379. package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +358 -0
  380. package/src/modules/bmgd/workflows/4-production/create-story/instructions.xml +298 -0
  381. package/src/modules/bmgd/workflows/4-production/create-story/template.md +49 -0
  382. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +79 -0
  383. package/src/modules/bmgd/workflows/4-production/dev-story/checklist.md +80 -0
  384. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.xml +409 -0
  385. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +68 -0
  386. package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +1443 -0
  387. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +62 -0
  388. package/src/modules/bmgd/workflows/4-production/sprint-planning/checklist.md +33 -0
  389. package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +234 -0
  390. package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +55 -0
  391. package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +56 -0
  392. package/src/modules/bmgd/workflows/4-production/sprint-status/instructions.md +229 -0
  393. package/src/modules/bmgd/workflows/4-production/sprint-status/workflow.yaml +35 -0
  394. package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/instructions.md +140 -0
  395. package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/workflow.yaml +27 -0
  396. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/checklist.md +37 -0
  397. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/instructions.md +220 -0
  398. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml +45 -0
  399. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/checklist.md +26 -0
  400. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/instructions.md +156 -0
  401. package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml +36 -0
  402. package/src/modules/bmgd/workflows/gametest/automate/checklist.md +93 -0
  403. package/src/modules/bmgd/workflows/gametest/automate/instructions.md +317 -0
  404. package/src/modules/bmgd/workflows/gametest/automate/workflow.yaml +50 -0
  405. package/src/modules/bmgd/workflows/gametest/performance/checklist.md +96 -0
  406. package/src/modules/bmgd/workflows/gametest/performance/instructions.md +323 -0
  407. package/src/modules/bmgd/workflows/gametest/performance/performance-template.md +256 -0
  408. package/src/modules/bmgd/workflows/gametest/performance/workflow.yaml +48 -0
  409. package/src/modules/bmgd/workflows/gametest/playtest-plan/checklist.md +93 -0
  410. package/src/modules/bmgd/workflows/gametest/playtest-plan/instructions.md +297 -0
  411. package/src/modules/bmgd/workflows/gametest/playtest-plan/playtest-template.md +208 -0
  412. package/src/modules/bmgd/workflows/gametest/playtest-plan/workflow.yaml +59 -0
  413. package/src/modules/bmgd/workflows/gametest/test-design/checklist.md +98 -0
  414. package/src/modules/bmgd/workflows/gametest/test-design/instructions.md +280 -0
  415. package/src/modules/bmgd/workflows/gametest/test-design/test-design-template.md +205 -0
  416. package/src/modules/bmgd/workflows/gametest/test-design/workflow.yaml +47 -0
  417. package/src/modules/bmgd/workflows/gametest/test-framework/checklist.md +103 -0
  418. package/src/modules/bmgd/workflows/gametest/test-framework/instructions.md +348 -0
  419. package/src/modules/bmgd/workflows/gametest/test-framework/workflow.yaml +48 -0
  420. package/src/modules/bmgd/workflows/gametest/test-review/checklist.md +87 -0
  421. package/src/modules/bmgd/workflows/gametest/test-review/instructions.md +272 -0
  422. package/src/modules/bmgd/workflows/gametest/test-review/test-review-template.md +203 -0
  423. package/src/modules/bmgd/workflows/gametest/test-review/workflow.yaml +48 -0
  424. package/src/modules/bmgd/workflows/workflow-status/init/instructions.md +299 -0
  425. package/src/modules/bmgd/workflows/workflow-status/init/workflow.yaml +29 -0
  426. package/src/modules/bmgd/workflows/workflow-status/instructions.md +395 -0
  427. package/src/modules/bmgd/workflows/workflow-status/paths/gamedev-brownfield.yaml +65 -0
  428. package/src/modules/bmgd/workflows/workflow-status/paths/gamedev-greenfield.yaml +71 -0
  429. package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-brownfield.yaml +29 -0
  430. package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-greenfield.yaml +39 -0
  431. package/src/modules/bmgd/workflows/workflow-status/project-levels.yaml +63 -0
  432. package/src/modules/bmgd/workflows/workflow-status/workflow-status-template.yaml +24 -0
  433. package/src/modules/bmgd/workflows/workflow-status/workflow.yaml +30 -0
  434. package/src/modules/bmm/README.md +78 -92
  435. package/src/modules/bmm/_module-installer/installer.js +3 -37
  436. package/src/modules/bmm/_module-installer/platform-specifics/claude-code.js +1 -1
  437. package/src/modules/bmm/_module-installer/platform-specifics/windsurf.js +1 -1
  438. package/src/modules/bmm/agents/analyst.agent.yaml +27 -30
  439. package/src/modules/bmm/agents/architect.agent.yaml +16 -26
  440. package/src/modules/bmm/agents/dev.agent.yaml +29 -28
  441. package/src/modules/bmm/agents/pm.agent.yaml +27 -36
  442. package/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml +31 -0
  443. package/src/modules/bmm/agents/sm.agent.yaml +31 -52
  444. package/src/modules/bmm/agents/tea.agent.yaml +41 -35
  445. package/src/modules/bmm/agents/tech-writer.agent.yaml +54 -0
  446. package/src/modules/bmm/agents/ux-designer.agent.yaml +21 -18
  447. package/src/modules/bmm/data/README.md +29 -0
  448. package/src/modules/bmm/data/documentation-standards.md +262 -0
  449. package/src/modules/bmm/data/project-context-template.md +40 -0
  450. package/src/modules/bmm/docs/agents-guide.md +144 -0
  451. package/src/modules/bmm/docs/bmad-quick-flow.md +506 -0
  452. package/src/modules/bmm/docs/brownfield-guide.md +748 -0
  453. package/src/modules/bmm/docs/enterprise-agentic-development.md +686 -0
  454. package/src/modules/bmm/docs/faq.md +542 -0
  455. package/src/modules/bmm/docs/glossary.md +306 -0
  456. package/src/modules/bmm/docs/images/README.md +37 -0
  457. package/src/modules/bmm/docs/images/workflow-method-greenfield.excalidraw +5034 -0
  458. package/src/modules/bmm/docs/images/workflow-method-greenfield.svg +4 -0
  459. package/src/modules/bmm/docs/index.md +168 -0
  460. package/src/modules/bmm/docs/party-mode.md +224 -0
  461. package/src/modules/bmm/docs/quick-flow-solo-dev.md +337 -0
  462. package/src/modules/bmm/docs/quick-spec-flow.md +638 -0
  463. package/src/modules/bmm/docs/quick-start.md +366 -0
  464. package/src/modules/bmm/docs/scale-adaptive-system.md +618 -0
  465. package/src/modules/bmm/docs/test-architecture.md +455 -0
  466. package/src/modules/bmm/docs/troubleshooting.md +661 -0
  467. package/src/modules/bmm/docs/workflow-architecture-reference.md +366 -0
  468. package/src/modules/bmm/docs/workflow-document-project-reference.md +489 -0
  469. package/src/modules/bmm/docs/workflows-analysis.md +266 -0
  470. package/src/modules/bmm/docs/workflows-implementation.md +210 -0
  471. package/src/modules/bmm/docs/workflows-planning.md +451 -0
  472. package/src/modules/bmm/docs/workflows-solutioning.md +509 -0
  473. package/src/modules/bmm/module.yaml +56 -0
  474. package/src/modules/bmm/teams/default-party.csv +21 -0
  475. package/src/modules/bmm/teams/team-fullstack.yaml +1 -0
  476. package/src/modules/bmm/testarch/knowledge/api-request.md +303 -0
  477. package/src/modules/bmm/testarch/knowledge/auth-session.md +356 -0
  478. package/src/modules/bmm/testarch/knowledge/burn-in.md +273 -0
  479. package/src/modules/bmm/testarch/knowledge/ci-burn-in.md +1 -1
  480. package/src/modules/bmm/testarch/knowledge/file-utils.md +260 -0
  481. package/src/modules/bmm/testarch/knowledge/fixtures-composition.md +382 -0
  482. package/src/modules/bmm/testarch/knowledge/intercept-network-call.md +280 -0
  483. package/src/modules/bmm/testarch/knowledge/log.md +294 -0
  484. package/src/modules/bmm/testarch/knowledge/network-error-monitor.md +272 -0
  485. package/src/modules/bmm/testarch/knowledge/network-recorder.md +265 -0
  486. package/src/modules/bmm/testarch/knowledge/overview.md +283 -0
  487. package/src/modules/bmm/testarch/knowledge/recurse.md +296 -0
  488. package/src/modules/bmm/testarch/tea-index.csv +11 -0
  489. package/src/modules/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
  490. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +181 -0
  491. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +165 -0
  492. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +203 -0
  493. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +206 -0
  494. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +209 -0
  495. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +223 -0
  496. package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +198 -0
  497. package/src/modules/bmm/workflows/1-analysis/create-product-brief/workflow.md +58 -0
  498. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +136 -0
  499. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +228 -0
  500. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +237 -0
  501. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +205 -0
  502. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +233 -0
  503. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +442 -0
  504. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +181 -0
  505. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +236 -0
  506. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +199 -0
  507. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +248 -0
  508. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +258 -0
  509. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +176 -0
  510. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +474 -0
  511. package/src/modules/bmm/workflows/1-analysis/research/research.template.md +29 -0
  512. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +136 -0
  513. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +238 -0
  514. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +247 -0
  515. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +201 -0
  516. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +238 -0
  517. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +485 -0
  518. package/src/modules/bmm/workflows/1-analysis/research/workflow.md +173 -0
  519. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +134 -0
  520. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +126 -0
  521. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +189 -0
  522. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +215 -0
  523. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +218 -0
  524. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +233 -0
  525. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +251 -0
  526. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +253 -0
  527. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +223 -0
  528. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +223 -0
  529. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +240 -0
  530. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +247 -0
  531. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +236 -0
  532. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +263 -0
  533. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +227 -0
  534. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +6 -138
  535. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +42 -0
  536. package/src/modules/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
  537. package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +7 -58
  538. package/src/modules/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
  539. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01-init.md +196 -0
  540. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01b-continue.md +165 -0
  541. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +420 -0
  542. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md +289 -0
  543. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +290 -0
  544. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +270 -0
  545. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +261 -0
  546. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +257 -0
  547. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +298 -0
  548. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md +269 -0
  549. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +293 -0
  550. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +185 -0
  551. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md +61 -0
  552. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +189 -0
  553. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +177 -0
  554. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +178 -0
  555. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +138 -0
  556. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +251 -0
  557. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +132 -0
  558. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
  559. package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +54 -0
  560. package/src/modules/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
  561. package/src/modules/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +11 -0
  562. package/src/modules/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
  563. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
  564. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +163 -0
  565. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +223 -0
  566. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +330 -0
  567. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +317 -0
  568. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +358 -0
  569. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +378 -0
  570. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +358 -0
  571. package/src/modules/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +351 -0
  572. package/src/modules/bmm/workflows/3-solutioning/create-architecture/workflow.md +49 -0
  573. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +258 -0
  574. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +232 -0
  575. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +271 -0
  576. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +144 -0
  577. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  578. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +58 -0
  579. package/src/modules/bmm/workflows/4-implementation/code-review/checklist.md +2 -1
  580. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml +225 -0
  581. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +34 -36
  582. package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +1 -1
  583. package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +7 -2
  584. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +42 -27
  585. package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +332 -214
  586. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml +344 -0
  587. package/src/modules/bmm/workflows/4-implementation/create-story/template.md +3 -5
  588. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +38 -27
  589. package/src/modules/bmm/workflows/4-implementation/dev-story/checklist.md +65 -23
  590. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml +409 -0
  591. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +9 -10
  592. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +1208 -244
  593. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +38 -26
  594. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +59 -55
  595. package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +14 -14
  596. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +21 -8
  597. package/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md +229 -0
  598. package/src/modules/bmm/workflows/4-implementation/sprint-status/workflow.yaml +36 -0
  599. package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/instructions.md +115 -0
  600. package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml +28 -0
  601. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +156 -0
  602. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -0
  603. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +113 -0
  604. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -0
  605. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -0
  606. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +140 -0
  607. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +51 -0
  608. package/src/modules/bmm/workflows/document-project/checklist.md +1 -1
  609. package/src/modules/bmm/workflows/document-project/instructions.md +31 -32
  610. package/src/modules/bmm/workflows/document-project/workflow.yaml +4 -10
  611. package/src/modules/bmm/workflows/document-project/workflows/deep-dive-instructions.md +6 -6
  612. package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +5 -5
  613. package/src/modules/bmm/workflows/document-project/workflows/full-scan-instructions.md +13 -13
  614. package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +5 -5
  615. package/src/modules/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +90 -0
  616. package/src/modules/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +127 -0
  617. package/src/modules/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +39 -0
  618. package/src/modules/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +130 -0
  619. package/src/modules/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +27 -0
  620. package/src/modules/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +43 -0
  621. package/src/modules/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +141 -0
  622. package/src/modules/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +27 -0
  623. package/src/modules/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +49 -0
  624. package/src/modules/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +241 -0
  625. package/src/modules/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +27 -0
  626. package/src/modules/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +38 -0
  627. package/src/modules/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +133 -0
  628. package/src/modules/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +27 -0
  629. package/src/modules/bmm/workflows/generate-project-context/project-context-template.md +21 -0
  630. package/src/modules/bmm/workflows/generate-project-context/steps/step-01-discover.md +183 -0
  631. package/src/modules/bmm/workflows/generate-project-context/steps/step-02-generate.md +317 -0
  632. package/src/modules/bmm/workflows/generate-project-context/steps/step-03-complete.md +277 -0
  633. package/src/modules/bmm/workflows/generate-project-context/workflow.md +48 -0
  634. package/src/modules/bmm/workflows/testarch/atdd/atdd-checklist-template.md +10 -9
  635. package/src/modules/bmm/workflows/testarch/atdd/checklist.md +1 -0
  636. package/src/modules/bmm/workflows/testarch/atdd/instructions.md +26 -5
  637. package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +2 -9
  638. package/src/modules/bmm/workflows/testarch/automate/checklist.md +2 -0
  639. package/src/modules/bmm/workflows/testarch/automate/instructions.md +25 -4
  640. package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +2 -11
  641. package/src/modules/bmm/workflows/testarch/ci/checklist.md +7 -5
  642. package/src/modules/bmm/workflows/testarch/ci/github-actions-template.yaml +36 -3
  643. package/src/modules/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +25 -4
  644. package/src/modules/bmm/workflows/testarch/ci/instructions.md +23 -4
  645. package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +2 -10
  646. package/src/modules/bmm/workflows/testarch/framework/checklist.md +4 -4
  647. package/src/modules/bmm/workflows/testarch/framework/instructions.md +28 -2
  648. package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +2 -8
  649. package/src/modules/bmm/workflows/testarch/nfr-assess/checklist.md +2 -0
  650. package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +1 -1
  651. package/src/modules/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +2 -0
  652. package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +2 -11
  653. package/src/modules/bmm/workflows/testarch/test-design/checklist.md +7 -6
  654. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +182 -15
  655. package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +13 -4
  656. package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +13 -11
  657. package/src/modules/bmm/workflows/testarch/test-review/checklist.md +2 -0
  658. package/src/modules/bmm/workflows/testarch/test-review/instructions.md +29 -9
  659. package/src/modules/bmm/workflows/testarch/test-review/test-review-template.md +2 -0
  660. package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +2 -9
  661. package/src/modules/bmm/workflows/testarch/trace/checklist.md +1 -0
  662. package/src/modules/bmm/workflows/testarch/trace/instructions.md +11 -9
  663. package/src/modules/bmm/workflows/testarch/trace/trace-template.md +2 -0
  664. package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +2 -13
  665. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +259 -210
  666. package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +6 -5
  667. package/src/modules/bmm/workflows/workflow-status/instructions.md +188 -117
  668. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +122 -0
  669. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +110 -0
  670. package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +106 -0
  671. package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +96 -0
  672. package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +1 -1
  673. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -0
  674. package/src/modules/bmm/workflows/workflow-status/workflow.yaml +7 -5
  675. package/src/modules/cis/_module-installer/installer.js +1 -1
  676. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +7 -10
  677. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +7 -10
  678. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +7 -10
  679. package/src/modules/cis/agents/innovation-strategist.agent.yaml +7 -10
  680. package/src/modules/cis/agents/presentation-master.agent.yaml +52 -0
  681. package/src/modules/cis/agents/storyteller/storyteller-sidecar/stories-told.md +7 -0
  682. package/src/modules/cis/agents/storyteller/storyteller-sidecar/story-preferences.md +7 -0
  683. package/src/modules/cis/agents/storyteller/storyteller.agent.yaml +25 -0
  684. package/src/modules/cis/docs/index.md +149 -0
  685. package/src/modules/cis/module.yaml +11 -0
  686. package/src/modules/cis/teams/creative-squad.yaml +1 -0
  687. package/src/modules/cis/teams/default-party.csv +12 -0
  688. package/src/modules/cis/workflows/README.md +102 -30
  689. package/src/modules/cis/workflows/design-thinking/instructions.md +4 -2
  690. package/src/modules/cis/workflows/design-thinking/workflow.yaml +7 -12
  691. package/src/modules/cis/workflows/innovation-strategy/instructions.md +7 -5
  692. package/src/modules/cis/workflows/innovation-strategy/template.md +3 -3
  693. package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +7 -12
  694. package/src/modules/cis/workflows/problem-solving/instructions.md +4 -2
  695. package/src/modules/cis/workflows/problem-solving/workflow.yaml +7 -12
  696. package/src/modules/cis/workflows/storytelling/instructions.md +14 -4
  697. package/src/modules/cis/workflows/storytelling/workflow.yaml +7 -12
  698. package/src/utility/agent-components/activation-rules.txt +7 -0
  699. package/src/utility/agent-components/activation-steps.txt +13 -0
  700. package/src/utility/agent-components/agent-command-header.md +1 -0
  701. package/src/utility/agent-components/agent.customize.template.yaml +41 -0
  702. package/src/utility/agent-components/handler-action.txt +4 -0
  703. package/src/utility/agent-components/handler-exec.txt +6 -0
  704. package/src/utility/agent-components/handler-multi.txt +14 -0
  705. package/src/utility/agent-components/handler-tmpl.txt +5 -0
  706. package/src/utility/agent-components/handler-validate-workflow.txt +7 -0
  707. package/src/utility/agent-components/handler-workflow.txt +10 -0
  708. package/src/utility/agent-components/menu-handlers.txt +6 -0
  709. package/test/README.md +2 -2
  710. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +24 -0
  711. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +24 -0
  712. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +1 -3
  713. package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +30 -0
  714. package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +23 -0
  715. package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +22 -0
  716. package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +23 -0
  717. package/test/test-agent-schema.js +2 -2
  718. package/test/test-installation-components.js +214 -0
  719. package/tools/build-docs.js +630 -0
  720. package/tools/cli/README.md +1 -588
  721. package/tools/cli/commands/install.js +61 -20
  722. package/tools/cli/installers/install-messages.yaml +52 -0
  723. package/tools/cli/installers/lib/core/config-collector.js +596 -99
  724. package/tools/cli/installers/lib/core/custom-module-cache.js +259 -0
  725. package/tools/cli/installers/lib/core/dependency-resolver.js +2 -2
  726. package/tools/cli/installers/lib/core/detector.js +75 -16
  727. package/tools/cli/installers/lib/core/ide-config-manager.js +12 -8
  728. package/tools/cli/installers/lib/core/installer.js +1279 -724
  729. package/tools/cli/installers/lib/core/manifest-generator.js +285 -142
  730. package/tools/cli/installers/lib/core/manifest.js +74 -20
  731. package/tools/cli/installers/lib/custom/handler.js +363 -0
  732. package/tools/cli/installers/lib/ide/_base-ide.js +94 -12
  733. package/tools/cli/installers/lib/ide/antigravity.js +507 -0
  734. package/tools/cli/installers/lib/ide/auggie.js +148 -240
  735. package/tools/cli/installers/lib/ide/claude-code.js +95 -35
  736. package/tools/cli/installers/lib/ide/cline.js +64 -18
  737. package/tools/cli/installers/lib/ide/codex.js +226 -72
  738. package/tools/cli/installers/lib/ide/crush.js +79 -55
  739. package/tools/cli/installers/lib/ide/cursor.js +144 -20
  740. package/tools/cli/installers/lib/ide/gemini.js +180 -35
  741. package/tools/cli/installers/lib/ide/github-copilot.js +155 -58
  742. package/tools/cli/installers/lib/ide/iflow.js +79 -30
  743. package/tools/cli/installers/lib/ide/kilo.js +94 -16
  744. package/tools/cli/installers/lib/ide/kiro-cli.js +327 -0
  745. package/tools/cli/installers/lib/ide/manager.js +50 -0
  746. package/tools/cli/installers/lib/ide/opencode.js +66 -22
  747. package/tools/cli/installers/lib/ide/qwen.js +93 -11
  748. package/tools/cli/installers/lib/ide/roo.js +158 -176
  749. package/tools/cli/installers/lib/ide/rovo-dev.js +290 -0
  750. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +96 -0
  751. package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +34 -19
  752. package/tools/cli/installers/lib/ide/shared/module-injections.js +2 -2
  753. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +119 -0
  754. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +241 -0
  755. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
  756. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
  757. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
  758. package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +13 -0
  759. package/tools/cli/installers/lib/ide/templates/workflow-commander.md +5 -0
  760. package/tools/cli/installers/lib/ide/trae.js +67 -32
  761. package/tools/cli/installers/lib/ide/windsurf.js +65 -8
  762. package/tools/cli/installers/lib/message-loader.js +85 -0
  763. package/tools/cli/installers/lib/modules/manager.js +785 -97
  764. package/tools/cli/lib/activation-builder.js +8 -13
  765. package/tools/cli/lib/agent/compiler.js +565 -0
  766. package/tools/cli/lib/agent/installer.js +716 -0
  767. package/tools/cli/lib/agent/template-engine.js +152 -0
  768. package/tools/cli/lib/agent-analyzer.js +48 -20
  769. package/tools/cli/lib/agent-party-generator.js +5 -17
  770. package/tools/cli/lib/cli-utils.js +65 -46
  771. package/tools/cli/lib/config.js +7 -4
  772. package/tools/cli/lib/platform-codes.js +2 -2
  773. package/tools/cli/lib/ui.js +1133 -82
  774. package/tools/cli/lib/xml-handler.js +4 -55
  775. package/tools/cli/lib/yaml-format.js +6 -7
  776. package/tools/cli/lib/yaml-xml-builder.js +196 -56
  777. package/tools/flattener/ignoreRules.js +1 -1
  778. package/tools/flattener/xml.js +1 -7
  779. package/tools/lib/xml-utils.js +13 -0
  780. package/tools/maintainer/review-pr-README.md +55 -0
  781. package/tools/maintainer/review-pr.md +242 -0
  782. package/tools/migrate-custom-module-paths.js +124 -0
  783. package/tools/platform-codes.yaml +24 -0
  784. package/tools/schema/agent.js +312 -53
  785. package/tools/validate-agent-schema.js +2 -2
  786. package/tools/validate-svg-changes.sh +356 -0
  787. package/website/css/custom.css +52 -0
  788. package/website/docusaurus.config.js +179 -0
  789. package/website/sidebars.js +157 -0
  790. package/website/src/pages/downloads.md +81 -0
  791. package/website/src/pages/index.js +50 -0
  792. package/website/static/favicon.ico +0 -0
  793. package/website/static/img/logo.svg +4 -0
  794. package/website/static/robots.txt +37 -0
  795. package/.claude/commands/bmad/bmb/agents/bmad-builder.md +0 -70
  796. package/.claude/commands/bmad/bmb/workflows/README.md +0 -67
  797. package/.claude/commands/bmad/bmb/workflows/audit-workflow.md +0 -15
  798. package/.claude/commands/bmad/bmb/workflows/convert-legacy.md +0 -15
  799. package/.claude/commands/bmad/bmb/workflows/create-agent.md +0 -15
  800. package/.claude/commands/bmad/bmb/workflows/create-module.md +0 -15
  801. package/.claude/commands/bmad/bmb/workflows/create-workflow.md +0 -15
  802. package/.claude/commands/bmad/bmb/workflows/edit-agent.md +0 -15
  803. package/.claude/commands/bmad/bmb/workflows/edit-module.md +0 -15
  804. package/.claude/commands/bmad/bmb/workflows/edit-workflow.md +0 -15
  805. package/.claude/commands/bmad/bmb/workflows/module-brief.md +0 -15
  806. package/.claude/commands/bmad/bmb/workflows/redoc.md +0 -15
  807. package/.claude/commands/bmad/bmd/agents/cli-chief.md +0 -108
  808. package/.claude/commands/bmad/bmd/agents/doc-keeper.md +0 -115
  809. package/.claude/commands/bmad/bmd/agents/release-chief.md +0 -109
  810. package/.claude/commands/bmad/core/agents/bmad-master.md +0 -71
  811. package/.claude/commands/bmad/core/tasks/index-docs.md +0 -9
  812. package/.claude/commands/bmad/core/tools/shard-doc.md +0 -9
  813. package/.claude/commands/bmad/core/workflows/README.md +0 -27
  814. package/.claude/commands/bmad/core/workflows/brainstorming.md +0 -15
  815. package/.claude/commands/bmad/core/workflows/party-mode.md +0 -15
  816. package/.claude/hooks/bmad-tts-injector.sh +0 -415
  817. package/.claude/hooks/bmad-voice-manager.sh +0 -511
  818. package/.claude/hooks/check-output-style.sh +0 -112
  819. package/.claude/hooks/download-extra-voices.sh +0 -244
  820. package/.claude/hooks/github-star-reminder.sh +0 -154
  821. package/.claude/hooks/language-manager.sh +0 -392
  822. package/.claude/hooks/learn-manager.sh +0 -475
  823. package/.claude/hooks/personality-manager.sh +0 -438
  824. package/.claude/hooks/piper-download-voices.sh +0 -165
  825. package/.claude/hooks/piper-installer.sh +0 -178
  826. package/.claude/hooks/piper-multispeaker-registry.sh +0 -165
  827. package/.claude/hooks/piper-voice-manager.sh +0 -293
  828. package/.claude/hooks/play-tts-elevenlabs.sh +0 -404
  829. package/.claude/hooks/play-tts-piper.sh +0 -338
  830. package/.claude/hooks/play-tts.sh +0 -100
  831. package/.claude/hooks/provider-commands.sh +0 -540
  832. package/.claude/hooks/provider-manager.sh +0 -298
  833. package/.claude/hooks/replay-target-audio.sh +0 -95
  834. package/.claude/hooks/sentiment-manager.sh +0 -201
  835. package/.claude/hooks/speed-manager.sh +0 -291
  836. package/.claude/hooks/voice-manager.sh +0 -594
  837. package/.claude/hooks/voices-config.sh +0 -70
  838. package/.claude/settings.local.json +0 -41
  839. package/.github/workflows/lint.yaml +0 -61
  840. package/bmad/_cfg/agent-manifest.csv +0 -7
  841. package/bmad/_cfg/agents/bmb-bmad-builder.customize.yaml +0 -42
  842. package/bmad/_cfg/agents/bmd-cli-chief.customize.yaml +0 -32
  843. package/bmad/_cfg/agents/bmd-doc-keeper.customize.yaml +0 -42
  844. package/bmad/_cfg/agents/bmd-release-chief.customize.yaml +0 -42
  845. package/bmad/_cfg/agents/core-bmad-master.customize.yaml +0 -42
  846. package/bmad/_cfg/files-manifest.csv +0 -83
  847. package/bmad/_cfg/manifest.yaml +0 -12
  848. package/bmad/_cfg/task-manifest.csv +0 -5
  849. package/bmad/_cfg/tool-manifest.csv +0 -2
  850. package/bmad/_cfg/workflow-manifest.csv +0 -15
  851. package/bmad/bmb/README.md +0 -132
  852. package/bmad/bmb/agents/bmad-builder.md +0 -70
  853. package/bmad/bmb/config.yaml +0 -14
  854. package/bmad/bmb/workflows/audit-workflow/checklist.md +0 -143
  855. package/bmad/bmb/workflows/audit-workflow/instructions.md +0 -341
  856. package/bmad/bmb/workflows/audit-workflow/template.md +0 -118
  857. package/bmad/bmb/workflows/audit-workflow/workflow.yaml +0 -23
  858. package/bmad/bmb/workflows/audit-workflow/workflow.yaml.bak +0 -21
  859. package/bmad/bmb/workflows/convert-legacy/README.md +0 -262
  860. package/bmad/bmb/workflows/convert-legacy/checklist.md +0 -205
  861. package/bmad/bmb/workflows/convert-legacy/instructions.md +0 -377
  862. package/bmad/bmb/workflows/convert-legacy/workflow.yaml +0 -32
  863. package/bmad/bmb/workflows/create-agent/README.md +0 -320
  864. package/bmad/bmb/workflows/create-agent/agent-architecture.md +0 -419
  865. package/bmad/bmb/workflows/create-agent/agent-architecture.md.bak +0 -412
  866. package/bmad/bmb/workflows/create-agent/agent-command-patterns.md +0 -759
  867. package/bmad/bmb/workflows/create-agent/agent-command-patterns.md.bak +0 -759
  868. package/bmad/bmb/workflows/create-agent/agent-types.md +0 -292
  869. package/bmad/bmb/workflows/create-agent/brainstorm-context.md +0 -174
  870. package/bmad/bmb/workflows/create-agent/checklist.md +0 -62
  871. package/bmad/bmb/workflows/create-agent/communication-styles.md +0 -202
  872. package/bmad/bmb/workflows/create-agent/instructions.md +0 -430
  873. package/bmad/bmb/workflows/create-agent/workflow.yaml +0 -37
  874. package/bmad/bmb/workflows/create-module/README.md +0 -220
  875. package/bmad/bmb/workflows/create-module/README.md.bak +0 -218
  876. package/bmad/bmb/workflows/create-module/brainstorm-context.md +0 -137
  877. package/bmad/bmb/workflows/create-module/checklist.md +0 -244
  878. package/bmad/bmb/workflows/create-module/checklist.md.bak +0 -245
  879. package/bmad/bmb/workflows/create-module/installer-templates/install-config.yaml +0 -92
  880. package/bmad/bmb/workflows/create-module/installer-templates/installer.js +0 -231
  881. package/bmad/bmb/workflows/create-module/installer-templates/installer.js.bak +0 -231
  882. package/bmad/bmb/workflows/create-module/instructions.md +0 -581
  883. package/bmad/bmb/workflows/create-module/instructions.md.bak +0 -521
  884. package/bmad/bmb/workflows/create-module/module-structure.md +0 -366
  885. package/bmad/bmb/workflows/create-module/module-structure.md.bak +0 -310
  886. package/bmad/bmb/workflows/create-module/workflow.yaml +0 -42
  887. package/bmad/bmb/workflows/create-module/workflow.yaml.bak +0 -40
  888. package/bmad/bmb/workflows/create-workflow/README.md +0 -277
  889. package/bmad/bmb/workflows/create-workflow/brainstorm-context.md +0 -197
  890. package/bmad/bmb/workflows/create-workflow/checklist.md +0 -94
  891. package/bmad/bmb/workflows/create-workflow/instructions.md +0 -716
  892. package/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md +0 -1150
  893. package/bmad/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -24
  894. package/bmad/bmb/workflows/create-workflow/workflow-template/instructions.md +0 -13
  895. package/bmad/bmb/workflows/create-workflow/workflow-template/template.md +0 -9
  896. package/bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml +0 -39
  897. package/bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml.bak +0 -39
  898. package/bmad/bmb/workflows/create-workflow/workflow.yaml +0 -40
  899. package/bmad/bmb/workflows/create-workflow/workflow.yaml.bak +0 -38
  900. package/bmad/bmb/workflows/edit-agent/README.md +0 -112
  901. package/bmad/bmb/workflows/edit-agent/checklist.md +0 -112
  902. package/bmad/bmb/workflows/edit-agent/instructions.md +0 -290
  903. package/bmad/bmb/workflows/edit-agent/workflow.yaml +0 -33
  904. package/bmad/bmb/workflows/edit-module/README.md +0 -187
  905. package/bmad/bmb/workflows/edit-module/checklist.md +0 -165
  906. package/bmad/bmb/workflows/edit-module/instructions.md +0 -339
  907. package/bmad/bmb/workflows/edit-module/workflow.yaml +0 -34
  908. package/bmad/bmb/workflows/edit-workflow/README.md +0 -119
  909. package/bmad/bmb/workflows/edit-workflow/checklist.md +0 -70
  910. package/bmad/bmb/workflows/edit-workflow/instructions.md +0 -342
  911. package/bmad/bmb/workflows/edit-workflow/workflow.yaml +0 -27
  912. package/bmad/bmb/workflows/edit-workflow/workflow.yaml.bak +0 -25
  913. package/bmad/bmb/workflows/module-brief/README.md +0 -264
  914. package/bmad/bmb/workflows/module-brief/checklist.md +0 -116
  915. package/bmad/bmb/workflows/module-brief/instructions.md +0 -267
  916. package/bmad/bmb/workflows/module-brief/workflow.yaml +0 -29
  917. package/bmad/bmb/workflows/module-brief/workflow.yaml.bak +0 -27
  918. package/bmad/bmb/workflows/redoc/README.md +0 -87
  919. package/bmad/bmb/workflows/redoc/checklist.md +0 -99
  920. package/bmad/bmb/workflows/redoc/instructions.md +0 -265
  921. package/bmad/bmb/workflows/redoc/workflow.yaml +0 -32
  922. package/bmad/bmb/workflows/redoc/workflow.yaml.bak +0 -31
  923. package/bmad/bmd/README.md +0 -193
  924. package/bmad/bmd/README.md.bak +0 -193
  925. package/bmad/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
  926. package/bmad/bmd/agents/cli-chief-sidecar/instructions.md.bak +0 -102
  927. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
  928. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md.bak +0 -68
  929. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
  930. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md.bak +0 -123
  931. package/bmad/bmd/agents/cli-chief-sidecar/memories.md +0 -53
  932. package/bmad/bmd/agents/cli-chief-sidecar/memories.md.bak +0 -53
  933. package/bmad/bmd/agents/cli-chief.md +0 -108
  934. package/bmad/bmd/agents/cli-chief.md.bak +0 -108
  935. package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
  936. package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md.bak +0 -177
  937. package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
  938. package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md.bak +0 -81
  939. package/bmad/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
  940. package/bmad/bmd/agents/doc-keeper-sidecar/memories.md.bak +0 -88
  941. package/bmad/bmd/agents/doc-keeper.md +0 -115
  942. package/bmad/bmd/agents/doc-keeper.md.bak +0 -115
  943. package/bmad/bmd/agents/release-chief-sidecar/instructions.md +0 -164
  944. package/bmad/bmd/agents/release-chief-sidecar/instructions.md.bak +0 -164
  945. package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
  946. package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md.bak +0 -82
  947. package/bmad/bmd/agents/release-chief-sidecar/memories.md +0 -73
  948. package/bmad/bmd/agents/release-chief-sidecar/memories.md.bak +0 -73
  949. package/bmad/bmd/agents/release-chief.md +0 -109
  950. package/bmad/bmd/agents/release-chief.md.bak +0 -109
  951. package/bmad/bmd/config.yaml +0 -10
  952. package/bmad/core/agents/bmad-master.md +0 -71
  953. package/bmad/core/agents/bmad-web-orchestrator.agent.xml +0 -122
  954. package/bmad/core/config.yaml +0 -9
  955. package/bmad/core/tasks/adv-elicit-methods.csv +0 -39
  956. package/bmad/core/tasks/adv-elicit.xml +0 -104
  957. package/bmad/core/tasks/index-docs.xml +0 -65
  958. package/bmad/core/tasks/validate-workflow.xml +0 -89
  959. package/bmad/core/tasks/workflow.xml +0 -174
  960. package/bmad/core/tools/shard-doc.xml +0 -100
  961. package/bmad/core/workflows/brainstorming/README.md +0 -271
  962. package/bmad/core/workflows/brainstorming/brain-methods.csv +0 -36
  963. package/bmad/core/workflows/brainstorming/instructions.md +0 -314
  964. package/bmad/core/workflows/brainstorming/template.md +0 -102
  965. package/bmad/core/workflows/brainstorming/workflow.yaml +0 -43
  966. package/bmad/core/workflows/party-mode/instructions.md +0 -188
  967. package/bmad/core/workflows/party-mode/workflow.yaml +0 -23
  968. package/bmad/docs/claude-code-instructions.md +0 -25
  969. package/bmad/docs/codex-instructions.md +0 -21
  970. package/bmd/README.md +0 -193
  971. package/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
  972. package/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
  973. package/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
  974. package/bmd/agents/cli-chief-sidecar/memories.md +0 -53
  975. package/bmd/agents/cli-chief.agent.yaml +0 -126
  976. package/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
  977. package/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
  978. package/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
  979. package/bmd/agents/doc-keeper.agent.yaml +0 -137
  980. package/bmd/agents/release-chief-sidecar/instructions.md +0 -164
  981. package/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
  982. package/bmd/agents/release-chief-sidecar/memories.md +0 -73
  983. package/bmd/agents/release-chief.agent.yaml +0 -127
  984. package/bmd/bmad-custom-module-installer-plan.md +0 -1176
  985. package/bmd/config.yaml +0 -12
  986. package/docs/bmad-brownfield-guide.md +0 -1260
  987. package/docs/conversion-report-shard-doc-2025-10-26.md +0 -188
  988. package/docs/installers-bundlers/ide-injections.md +0 -186
  989. package/docs/installers-bundlers/installers-modules-platforms-reference.md +0 -327
  990. package/docs/installers-bundlers/web-bundler-usage.md +0 -54
  991. package/src/core/_module-installer/install-config.yaml +0 -28
  992. package/src/core/agents/bmad-web-orchestrator.agent.xml +0 -122
  993. package/src/core/tasks/adv-elicit-methods.csv +0 -39
  994. package/src/core/tasks/adv-elicit.xml +0 -104
  995. package/src/core/workflows/brainstorming/README.md +0 -271
  996. package/src/core/workflows/brainstorming/instructions.md +0 -314
  997. package/src/core/workflows/brainstorming/workflow.yaml +0 -43
  998. package/src/core/workflows/party-mode/instructions.md +0 -188
  999. package/src/core/workflows/party-mode/workflow.yaml +0 -23
  1000. package/src/modules/bmb/_module-installer/install-config.yaml +0 -26
  1001. package/src/modules/bmb/agents/bmad-builder.agent.yaml +0 -58
  1002. package/src/modules/bmb/workflows/audit-workflow/checklist.md +0 -143
  1003. package/src/modules/bmb/workflows/audit-workflow/instructions.md +0 -341
  1004. package/src/modules/bmb/workflows/audit-workflow/template.md +0 -118
  1005. package/src/modules/bmb/workflows/audit-workflow/workflow.yaml +0 -25
  1006. package/src/modules/bmb/workflows/convert-legacy/README.md +0 -262
  1007. package/src/modules/bmb/workflows/convert-legacy/checklist.md +0 -205
  1008. package/src/modules/bmb/workflows/convert-legacy/instructions.md +0 -377
  1009. package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +0 -34
  1010. package/src/modules/bmb/workflows/create-agent/README.md +0 -320
  1011. package/src/modules/bmb/workflows/create-agent/agent-architecture.md +0 -419
  1012. package/src/modules/bmb/workflows/create-agent/agent-command-patterns.md +0 -759
  1013. package/src/modules/bmb/workflows/create-agent/agent-types.md +0 -292
  1014. package/src/modules/bmb/workflows/create-agent/brainstorm-context.md +0 -174
  1015. package/src/modules/bmb/workflows/create-agent/checklist.md +0 -62
  1016. package/src/modules/bmb/workflows/create-agent/communication-styles.md +0 -202
  1017. package/src/modules/bmb/workflows/create-agent/instructions.md +0 -430
  1018. package/src/modules/bmb/workflows/create-agent/workflow.yaml +0 -49
  1019. package/src/modules/bmb/workflows/create-module/README.md +0 -220
  1020. package/src/modules/bmb/workflows/create-module/brainstorm-context.md +0 -137
  1021. package/src/modules/bmb/workflows/create-module/checklist.md +0 -244
  1022. package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +0 -92
  1023. package/src/modules/bmb/workflows/create-module/installer-templates/installer.js +0 -231
  1024. package/src/modules/bmb/workflows/create-module/instructions.md +0 -581
  1025. package/src/modules/bmb/workflows/create-module/module-structure.md +0 -366
  1026. package/src/modules/bmb/workflows/create-module/workflow.yaml +0 -44
  1027. package/src/modules/bmb/workflows/create-workflow/README.md +0 -277
  1028. package/src/modules/bmb/workflows/create-workflow/brainstorm-context.md +0 -197
  1029. package/src/modules/bmb/workflows/create-workflow/checklist.md +0 -94
  1030. package/src/modules/bmb/workflows/create-workflow/instructions.md +0 -716
  1031. package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +0 -1150
  1032. package/src/modules/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -24
  1033. package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +0 -13
  1034. package/src/modules/bmb/workflows/create-workflow/workflow-template/template.md +0 -9
  1035. package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +0 -65
  1036. package/src/modules/bmb/workflows/create-workflow/workflow.yaml +0 -42
  1037. package/src/modules/bmb/workflows/edit-agent/README.md +0 -112
  1038. package/src/modules/bmb/workflows/edit-agent/checklist.md +0 -112
  1039. package/src/modules/bmb/workflows/edit-agent/instructions.md +0 -290
  1040. package/src/modules/bmb/workflows/edit-agent/workflow.yaml +0 -35
  1041. package/src/modules/bmb/workflows/edit-module/README.md +0 -187
  1042. package/src/modules/bmb/workflows/edit-module/checklist.md +0 -165
  1043. package/src/modules/bmb/workflows/edit-module/instructions.md +0 -339
  1044. package/src/modules/bmb/workflows/edit-module/workflow.yaml +0 -36
  1045. package/src/modules/bmb/workflows/edit-workflow/README.md +0 -119
  1046. package/src/modules/bmb/workflows/edit-workflow/checklist.md +0 -70
  1047. package/src/modules/bmb/workflows/edit-workflow/instructions.md +0 -342
  1048. package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +0 -29
  1049. package/src/modules/bmb/workflows/module-brief/README.md +0 -264
  1050. package/src/modules/bmb/workflows/module-brief/checklist.md +0 -116
  1051. package/src/modules/bmb/workflows/module-brief/instructions.md +0 -267
  1052. package/src/modules/bmb/workflows/module-brief/template.md +0 -275
  1053. package/src/modules/bmb/workflows/module-brief/workflow.yaml +0 -31
  1054. package/src/modules/bmb/workflows/redoc/README.md +0 -87
  1055. package/src/modules/bmb/workflows/redoc/checklist.md +0 -99
  1056. package/src/modules/bmb/workflows/redoc/instructions.md +0 -265
  1057. package/src/modules/bmb/workflows/redoc/workflow.yaml +0 -34
  1058. package/src/modules/bmm/_module-installer/assets/bmm-kb.md +0 -1
  1059. package/src/modules/bmm/_module-installer/assets/technical-decisions.md +0 -30
  1060. package/src/modules/bmm/_module-installer/install-config.yaml +0 -74
  1061. package/src/modules/bmm/agents/game-architect.agent.yaml +0 -35
  1062. package/src/modules/bmm/agents/game-designer.agent.yaml +0 -47
  1063. package/src/modules/bmm/agents/game-dev.agent.yaml +0 -39
  1064. package/src/modules/bmm/sub-modules/claude-code/config.yaml +0 -5
  1065. package/src/modules/bmm/sub-modules/claude-code/injections.yaml +0 -242
  1066. package/src/modules/bmm/sub-modules/claude-code/readme.md +0 -87
  1067. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/api-documenter.md +0 -102
  1068. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/codebase-analyzer.md +0 -82
  1069. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/data-analyst.md +0 -101
  1070. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/pattern-detector.md +0 -84
  1071. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/dependency-mapper.md +0 -83
  1072. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/epic-optimizer.md +0 -81
  1073. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/requirements-analyst.md +0 -61
  1074. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/technical-decisions-curator.md +0 -168
  1075. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/trend-spotter.md +0 -115
  1076. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-journey-mapper.md +0 -123
  1077. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-researcher.md +0 -72
  1078. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/market-researcher.md +0 -51
  1079. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/tech-debt-auditor.md +0 -106
  1080. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/document-reviewer.md +0 -102
  1081. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/technical-evaluator.md +0 -68
  1082. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/test-coverage-analyzer.md +0 -108
  1083. package/src/modules/bmm/tasks/daily-standup.xml +0 -85
  1084. package/src/modules/bmm/tasks/retrospective.xml +0 -104
  1085. package/src/modules/bmm/teams/team-gamedev.yaml +0 -14
  1086. package/src/modules/bmm/testarch/README.md +0 -311
  1087. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/README.md +0 -38
  1088. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/instructions.md +0 -109
  1089. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/workflow.yaml +0 -41
  1090. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/README.md +0 -29
  1091. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +0 -91
  1092. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/project-context.md +0 -25
  1093. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +0 -39
  1094. package/src/modules/bmm/workflows/1-analysis/game-brief/README.md +0 -221
  1095. package/src/modules/bmm/workflows/1-analysis/game-brief/instructions.md +0 -357
  1096. package/src/modules/bmm/workflows/1-analysis/game-brief/workflow.yaml +0 -44
  1097. package/src/modules/bmm/workflows/1-analysis/product-brief/README.md +0 -180
  1098. package/src/modules/bmm/workflows/1-analysis/product-brief/checklist.md +0 -115
  1099. package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +0 -321
  1100. package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +0 -165
  1101. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +0 -43
  1102. package/src/modules/bmm/workflows/1-analysis/research/README.md +0 -454
  1103. package/src/modules/bmm/workflows/1-analysis/research/checklist.md +0 -202
  1104. package/src/modules/bmm/workflows/1-analysis/research/claude-code/injections.yaml +0 -114
  1105. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-competitor-analyzer.md +0 -259
  1106. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-data-analyst.md +0 -190
  1107. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-market-researcher.md +0 -337
  1108. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-trend-spotter.md +0 -107
  1109. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-user-researcher.md +0 -329
  1110. package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +0 -433
  1111. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +0 -613
  1112. package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +0 -125
  1113. package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +0 -501
  1114. package/src/modules/bmm/workflows/1-analysis/research/template-deep-prompt.md +0 -94
  1115. package/src/modules/bmm/workflows/1-analysis/research/template-market.md +0 -311
  1116. package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +0 -210
  1117. package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +0 -49
  1118. package/src/modules/bmm/workflows/2-plan-workflows/README.md +0 -258
  1119. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +0 -310
  1120. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +0 -1283
  1121. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +0 -42
  1122. package/src/modules/bmm/workflows/2-plan-workflows/gdd/README.md +0 -222
  1123. package/src/modules/bmm/workflows/2-plan-workflows/gdd/instructions-gdd.md +0 -475
  1124. package/src/modules/bmm/workflows/2-plan-workflows/gdd/workflow.yaml +0 -67
  1125. package/src/modules/bmm/workflows/2-plan-workflows/narrative/instructions-narrative.md +0 -557
  1126. package/src/modules/bmm/workflows/2-plan-workflows/narrative/workflow.yaml +0 -38
  1127. package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +0 -117
  1128. package/src/modules/bmm/workflows/2-plan-workflows/prd/epics-template.md +0 -63
  1129. package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +0 -449
  1130. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +0 -46
  1131. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +0 -107
  1132. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -11
  1133. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +0 -167
  1134. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +0 -278
  1135. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +0 -269
  1136. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +0 -55
  1137. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +0 -56
  1138. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +0 -52
  1139. package/src/modules/bmm/workflows/3-solutioning/README.md +0 -1
  1140. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -347
  1141. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +0 -103
  1142. package/src/modules/bmm/workflows/3-solutioning/architecture/checklist.md +0 -244
  1143. package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +0 -703
  1144. package/src/modules/bmm/workflows/3-solutioning/architecture/readme.md +0 -318
  1145. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +0 -54
  1146. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/README.md +0 -177
  1147. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/checklist.md +0 -175
  1148. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +0 -273
  1149. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/template.md +0 -146
  1150. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/validation-criteria.yaml +0 -189
  1151. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +0 -40
  1152. package/src/modules/bmm/workflows/4-implementation/README.md +0 -221
  1153. package/src/modules/bmm/workflows/4-implementation/code-review/README.md +0 -69
  1154. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +0 -391
  1155. package/src/modules/bmm/workflows/4-implementation/correct-course/README.md +0 -73
  1156. package/src/modules/bmm/workflows/4-implementation/create-story/README.md +0 -129
  1157. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +0 -252
  1158. package/src/modules/bmm/workflows/4-implementation/dev-story/AUDIT-REPORT.md +0 -367
  1159. package/src/modules/bmm/workflows/4-implementation/dev-story/README.md +0 -206
  1160. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +0 -262
  1161. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/README.md +0 -195
  1162. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/checklist.md +0 -17
  1163. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +0 -160
  1164. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/template.md +0 -76
  1165. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +0 -34
  1166. package/src/modules/bmm/workflows/4-implementation/retrospective/README.md +0 -77
  1167. package/src/modules/bmm/workflows/4-implementation/sprint-planning/README.md +0 -156
  1168. package/src/modules/bmm/workflows/4-implementation/story-context/README.md +0 -234
  1169. package/src/modules/bmm/workflows/4-implementation/story-context/checklist.md +0 -16
  1170. package/src/modules/bmm/workflows/4-implementation/story-context/context-template.xml +0 -34
  1171. package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +0 -201
  1172. package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +0 -32
  1173. package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +0 -111
  1174. package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +0 -27
  1175. package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +0 -117
  1176. package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +0 -27
  1177. package/src/modules/bmm/workflows/README.md +0 -577
  1178. package/src/modules/bmm/workflows/document-project/README.md +0 -444
  1179. package/src/modules/bmm/workflows/document-project/templates/README.md +0 -38
  1180. package/src/modules/bmm/workflows/testarch/README.md +0 -26
  1181. package/src/modules/bmm/workflows/testarch/atdd/README.md +0 -672
  1182. package/src/modules/bmm/workflows/testarch/automate/README.md +0 -869
  1183. package/src/modules/bmm/workflows/testarch/ci/README.md +0 -493
  1184. package/src/modules/bmm/workflows/testarch/framework/README.md +0 -340
  1185. package/src/modules/bmm/workflows/testarch/nfr-assess/README.md +0 -469
  1186. package/src/modules/bmm/workflows/testarch/test-design/README.md +0 -493
  1187. package/src/modules/bmm/workflows/testarch/test-review/README.md +0 -775
  1188. package/src/modules/bmm/workflows/testarch/trace/README.md +0 -802
  1189. package/src/modules/bmm/workflows/workflow-status/README.md +0 -241
  1190. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-0.yaml +0 -54
  1191. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-1.yaml +0 -58
  1192. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-2.yaml +0 -76
  1193. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-3.yaml +0 -95
  1194. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-4.yaml +0 -88
  1195. package/src/modules/bmm/workflows/workflow-status/paths/game-design.yaml +0 -75
  1196. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-0.yaml +0 -45
  1197. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-1.yaml +0 -49
  1198. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-2.yaml +0 -78
  1199. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-3.yaml +0 -73
  1200. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-4.yaml +0 -75
  1201. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.md +0 -30
  1202. package/src/modules/cis/_module-installer/install-config.yaml +0 -14
  1203. package/src/modules/cis/agents/README.md +0 -104
  1204. package/src/modules/cis/agents/storyteller.agent.yaml +0 -23
  1205. package/src/modules/cis/readme.md +0 -86
  1206. package/src/utility/models/agent-activation-ide.xml +0 -51
  1207. package/src/utility/models/agent-activation-web.xml +0 -60
  1208. package/src/utility/models/agent-config-template.md +0 -23
  1209. package/src/utility/models/agent-in-team-activation.xml +0 -3
  1210. package/src/utility/models/fragments/activation-rules.xml +0 -8
  1211. package/src/utility/models/fragments/activation-steps.xml +0 -15
  1212. package/src/utility/models/fragments/handler-action.xml +0 -4
  1213. package/src/utility/models/fragments/handler-exec.xml +0 -5
  1214. package/src/utility/models/fragments/handler-tmpl.xml +0 -5
  1215. package/src/utility/models/fragments/handler-validate-workflow.xml +0 -7
  1216. package/src/utility/models/fragments/handler-workflow.xml +0 -9
  1217. package/src/utility/models/fragments/menu-handlers.xml +0 -6
  1218. package/src/utility/models/fragments/web-bundle-activation-steps.xml +0 -32
  1219. package/src/utility/templates/agent.customize.template.yaml +0 -42
  1220. package/test/fixtures/agent-schema/invalid/metadata/core-agent-with-module.agent.yaml +0 -26
  1221. package/test/fixtures/agent-schema/invalid/metadata/module-agent-missing-module.agent.yaml +0 -25
  1222. package/test/fixtures/agent-schema/invalid/metadata/wrong-module-value.agent.yaml +0 -26
  1223. package/test/fixtures/agent-schema/invalid/persona/principles-as-string.agent.yaml +0 -23
  1224. package/tools/cli/bundlers/bundle-web.js +0 -179
  1225. package/tools/cli/bundlers/test-analyst.js +0 -28
  1226. package/tools/cli/bundlers/test-bundler.js +0 -118
  1227. package/tools/cli/bundlers/web-bundler.js +0 -1479
  1228. package/tools/cli/commands/build.js +0 -458
  1229. package/tools/cli/commands/list.js +0 -28
  1230. package/tools/cli/commands/status.js +0 -47
  1231. package/tools/cli/commands/uninstall.js +0 -44
  1232. package/tools/cli/commands/update.js +0 -28
  1233. package/tools/cli/installers/lib/ide/task-tool-command-generator.js +0 -119
  1234. package/tools/cli/installers/lib/ide/workflow-command-generator.js +0 -235
  1235. package/tools/cli/installers/lib/ide/workflow-command-template.md +0 -15
  1236. package/tools/cli/lib/replace-project-root.js +0 -239
  1237. package/tools/cli/regenerate-manifests.js +0 -28
  1238. package/tools/cli/test-yaml-builder.js +0 -43
  1239. package/tools/validate-bundles.js +0 -87
  1240. package/v6-open-items.md +0 -23
  1241. /package/{bmad/bmb/workflows → src/modules/bmb/workflows-legacy}/module-brief/template.md +0 -0
  1242. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-brain-methods.csv +0 -0
  1243. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-context.md +0 -0
  1244. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/checklist.md +0 -0
  1245. /package/src/modules/{bmm/workflows/1-analysis/game-brief/template.md → bmgd/workflows/1-preproduction/game-brief/templates/game-brief-template.md} +0 -0
  1246. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/checklist.md +0 -0
  1247. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/action-platformer.md +0 -0
  1248. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/adventure.md +0 -0
  1249. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/card-game.md +0 -0
  1250. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/fighting.md +0 -0
  1251. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/horror.md +0 -0
  1252. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/idle-incremental.md +0 -0
  1253. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/metroidvania.md +0 -0
  1254. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/moba.md +0 -0
  1255. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/party-game.md +0 -0
  1256. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/puzzle.md +0 -0
  1257. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/racing.md +0 -0
  1258. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/rhythm.md +0 -0
  1259. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/roguelike.md +0 -0
  1260. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/rpg.md +0 -0
  1261. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/sandbox.md +0 -0
  1262. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/shooter.md +0 -0
  1263. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/simulation.md +0 -0
  1264. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/sports.md +0 -0
  1265. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/strategy.md +0 -0
  1266. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/survival.md +0 -0
  1267. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/text-based.md +0 -0
  1268. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/tower-defense.md +0 -0
  1269. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/turn-based-tactics.md +0 -0
  1270. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/visual-novel.md +0 -0
  1271. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types.csv +0 -0
  1272. /package/src/modules/{bmm/workflows/2-plan-workflows/gdd → bmgd/workflows/2-design/gdd/templates}/gdd-template.md +0 -0
  1273. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/checklist.md +0 -0
  1274. /package/src/modules/{bmm/workflows/2-plan-workflows/narrative → bmgd/workflows/2-design/narrative/templates}/narrative-template.md +0 -0
  1275. /package/src/modules/{bmm/workflows/3-solutioning/architecture → bmgd/workflows/3-technical/game-architecture}/decision-catalog.yaml +0 -0
  1276. /package/src/modules/{bmm/workflows/3-solutioning/architecture → bmgd/workflows/3-technical/game-architecture}/pattern-categories.csv +0 -0
  1277. /package/src/modules/{bmm/workflows/4-implementation/code-review/backlog_template.md → bmgd/workflows/4-production/code-review/backlog-template.md} +0 -0
  1278. /package/src/utility/{models/fragments/handler-data.xml → agent-components/handler-data.txt} +0 -0
@@ -1,8 +1,8 @@
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
- const inquirer = require('inquirer');
5
+ const inquirer = require('inquirer').default || require('inquirer');
6
6
  const { getProjectRoot, getModulePath } = require('../../../lib/project-root');
7
7
  const { CLIUtils } = require('../../../lib/cli-utils');
8
8
 
@@ -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
  }