bmad-method 6.0.0-alpha.1 → 6.0.0-alpha.11

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 (714) hide show
  1. package/.github/ISSUE_TEMPLATE/idea_submission.md +1 -1
  2. package/.github/workflows/bundle-latest.yaml +277 -0
  3. package/.github/workflows/manual-release.yaml +64 -17
  4. package/.github/workflows/{lint.yaml → quality.yaml} +19 -2
  5. package/.husky/pre-commit +4 -0
  6. package/.prettierignore +4 -0
  7. package/.vscode/settings.json +3 -1
  8. package/CHANGELOG.md +321 -12
  9. package/CONTRIBUTING.md +1 -13
  10. package/README.md +138 -187
  11. package/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
  12. package/docs/agent-customization-guide.md +208 -0
  13. package/docs/custom-agent-installation.md +169 -0
  14. package/docs/document-sharding-guide.md +449 -0
  15. package/docs/ide-info/crush.md +1 -1
  16. package/docs/ide-info/cursor.md +7 -7
  17. package/docs/ide-info/iflow.md +3 -3
  18. package/docs/ide-info/opencode.md +1 -1
  19. package/docs/index.md +227 -0
  20. package/docs/installers-bundlers/ide-injections.md +2 -2
  21. package/docs/installers-bundlers/installers-modules-platforms-reference.md +80 -19
  22. package/docs/v4-to-v6-upgrade.md +21 -19
  23. package/docs/v6-open-items.md +17 -0
  24. package/docs/web-bundles-gemini-gpt-guide.md +473 -0
  25. package/eslint.config.mjs +2 -0
  26. package/package.json +6 -3
  27. package/src/core/_module-installer/install-config.yaml +17 -10
  28. package/src/core/_module-installer/installer.js +0 -8
  29. package/src/core/agents/bmad-master.agent.yaml +5 -5
  30. package/src/core/agents/bmad-web-orchestrator.agent.xml +8 -17
  31. package/src/core/resources/excalidraw/README.md +160 -0
  32. package/src/core/resources/excalidraw/excalidraw-helpers.md +127 -0
  33. package/src/core/resources/excalidraw/library-loader.md +50 -0
  34. package/src/core/resources/excalidraw/validate-json-instructions.md +79 -0
  35. package/src/core/tasks/advanced-elicitation-methods.csv +21 -0
  36. package/{bmad/core/tasks/adv-elicit.xml → src/core/tasks/advanced-elicitation.xml} +6 -4
  37. package/src/core/tasks/index-docs.xml +1 -1
  38. package/src/core/tasks/validate-workflow.xml +1 -1
  39. package/src/core/tasks/workflow.xml +126 -22
  40. package/src/core/tools/shard-doc.xml +54 -45
  41. package/src/core/workflows/brainstorming/README.md +6 -16
  42. package/src/core/workflows/brainstorming/instructions.md +6 -5
  43. package/src/core/workflows/brainstorming/template.md +4 -0
  44. package/src/core/workflows/brainstorming/workflow.yaml +8 -13
  45. package/src/core/workflows/party-mode/instructions.md +2 -7
  46. package/src/core/workflows/party-mode/workflow.yaml +11 -6
  47. package/src/modules/bmb/README.md +135 -73
  48. package/src/modules/bmb/_module-installer/install-config.yaml +9 -4
  49. package/src/modules/bmb/agents/bmad-builder.agent.yaml +11 -12
  50. package/src/modules/bmb/docs/agent-compilation.md +340 -0
  51. package/src/modules/bmb/docs/agent-menu-patterns.md +524 -0
  52. package/src/modules/bmb/docs/expert-agent-architecture.md +364 -0
  53. package/src/modules/bmb/docs/index.md +55 -0
  54. package/src/modules/bmb/docs/module-agent-architecture.md +367 -0
  55. package/src/modules/bmb/docs/simple-agent-architecture.md +288 -0
  56. package/src/modules/bmb/docs/understanding-agent-types.md +184 -0
  57. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/README.md +242 -0
  58. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/breakthroughs.md +24 -0
  59. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/instructions.md +108 -0
  60. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/memories.md +46 -0
  61. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/mood-patterns.md +39 -0
  62. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +152 -0
  63. package/src/modules/bmb/reference/agents/module-examples/README.md +50 -0
  64. package/src/modules/bmb/reference/agents/module-examples/security-engineer.agent.yaml +53 -0
  65. package/src/modules/bmb/reference/agents/module-examples/trend-analyst.agent.yaml +57 -0
  66. package/src/modules/bmb/reference/agents/simple-examples/README.md +223 -0
  67. package/src/modules/bmb/reference/agents/simple-examples/commit-poet.agent.yaml +126 -0
  68. package/src/modules/bmb/reference/readme.md +3 -0
  69. package/src/modules/bmb/workflows/audit-workflow/checklist.md +5 -6
  70. package/src/modules/bmb/workflows/audit-workflow/instructions.md +6 -6
  71. package/src/modules/bmb/workflows/audit-workflow/workflow.yaml +2 -2
  72. package/src/modules/bmb/workflows/convert-legacy/README.md +5 -5
  73. package/src/modules/bmb/workflows/convert-legacy/checklist.md +2 -2
  74. package/src/modules/bmb/workflows/convert-legacy/instructions.md +17 -17
  75. package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +6 -10
  76. package/src/modules/bmb/workflows/create-agent/agent-validation-checklist.md +174 -0
  77. package/src/modules/bmb/workflows/create-agent/brainstorm-context.md +99 -120
  78. package/src/modules/bmb/workflows/create-agent/communication-presets.csv +61 -0
  79. package/src/modules/bmb/workflows/create-agent/instructions.md +171 -82
  80. package/src/modules/bmb/workflows/create-agent/workflow.yaml +26 -20
  81. package/src/modules/bmb/workflows/create-module/README.md +163 -154
  82. package/src/modules/bmb/workflows/create-module/checklist.md +1 -10
  83. package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +1 -1
  84. package/src/modules/bmb/workflows/create-module/instructions.md +13 -17
  85. package/src/modules/bmb/workflows/create-module/module-structure.md +39 -5
  86. package/src/modules/bmb/workflows/create-module/workflow.yaml +21 -13
  87. package/src/modules/bmb/workflows/create-workflow/README.md +4 -4
  88. package/src/modules/bmb/workflows/create-workflow/checklist.md +1 -1
  89. package/src/modules/bmb/workflows/create-workflow/instructions.md +46 -37
  90. package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +219 -42
  91. package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +4 -2
  92. package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +12 -16
  93. package/src/modules/bmb/workflows/create-workflow/workflow.yaml +7 -8
  94. package/src/modules/bmb/workflows/edit-agent/README.md +174 -47
  95. package/src/modules/bmb/workflows/edit-agent/instructions.md +399 -35
  96. package/src/modules/bmb/workflows/edit-agent/workflow.yaml +27 -13
  97. package/src/modules/bmb/workflows/edit-module/README.md +2 -2
  98. package/src/modules/bmb/workflows/edit-module/checklist.md +2 -2
  99. package/src/modules/bmb/workflows/edit-module/instructions.md +7 -5
  100. package/src/modules/bmb/workflows/edit-module/workflow.yaml +11 -13
  101. package/src/modules/bmb/workflows/edit-workflow/instructions.md +4 -4
  102. package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +6 -8
  103. package/src/modules/bmb/workflows/module-brief/README.md +2 -2
  104. package/src/modules/bmb/workflows/module-brief/checklist.md +2 -2
  105. package/src/modules/bmb/workflows/module-brief/instructions.md +3 -2
  106. package/src/modules/bmb/workflows/module-brief/workflow.yaml +12 -7
  107. package/src/modules/bmgd/README.md +208 -0
  108. package/src/modules/bmgd/_module-installer/install-config.yaml +54 -0
  109. package/src/modules/bmgd/agents/game-architect.agent.yaml +33 -0
  110. package/src/modules/bmgd/agents/game-designer.agent.yaml +40 -0
  111. package/src/modules/bmgd/agents/game-dev.agent.yaml +40 -0
  112. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +75 -0
  113. package/src/modules/bmgd/teams/default-party.csv +10 -0
  114. package/src/modules/{bmm → bmgd}/teams/team-gamedev.yaml +5 -1
  115. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +130 -0
  116. package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/workflow.yaml +10 -10
  117. package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/instructions.md +44 -28
  118. package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/workflow.yaml +9 -17
  119. package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/instructions-gdd.md +58 -31
  120. package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +81 -0
  121. package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/instructions-narrative.md +75 -28
  122. package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/workflow.yaml +6 -12
  123. package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-patterns.yaml +321 -0
  124. package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-template.md +103 -0
  125. package/src/modules/bmgd/workflows/3-technical/game-architecture/checklist.md +240 -0
  126. package/src/modules/bmgd/workflows/3-technical/game-architecture/decision-catalog.yaml +222 -0
  127. package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +701 -0
  128. package/src/modules/bmgd/workflows/3-technical/game-architecture/pattern-categories.csv +13 -0
  129. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +69 -0
  130. package/src/modules/bmgd/workflows/4-production/code-review/backlog_template.md +12 -0
  131. package/src/modules/bmgd/workflows/4-production/code-review/checklist.md +22 -0
  132. package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +398 -0
  133. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +61 -0
  134. package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +279 -0
  135. package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +206 -0
  136. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +58 -0
  137. package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +240 -0
  138. package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +256 -0
  139. package/src/modules/bmgd/workflows/4-production/create-story/template.md +51 -0
  140. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +74 -0
  141. package/src/modules/bmgd/workflows/4-production/dev-story/checklist.md +38 -0
  142. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +267 -0
  143. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +58 -0
  144. package/src/modules/bmgd/workflows/4-production/epic-tech-context/checklist.md +17 -0
  145. package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +164 -0
  146. package/src/modules/bmgd/workflows/4-production/epic-tech-context/template.md +76 -0
  147. package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +58 -0
  148. package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +1443 -0
  149. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +57 -0
  150. package/src/modules/bmgd/workflows/4-production/sprint-planning/checklist.md +33 -0
  151. package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +234 -0
  152. package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +55 -0
  153. package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +51 -0
  154. package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +16 -0
  155. package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +34 -0
  156. package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +209 -0
  157. package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +63 -0
  158. package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +111 -0
  159. package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +28 -0
  160. package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +117 -0
  161. package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +25 -0
  162. package/src/modules/bmm/README.md +79 -92
  163. package/src/modules/bmm/_module-installer/install-config.yaml +9 -23
  164. package/src/modules/bmm/_module-installer/installer.js +2 -2
  165. package/src/modules/bmm/agents/analyst.agent.yaml +25 -19
  166. package/src/modules/bmm/agents/architect.agent.yaml +28 -19
  167. package/src/modules/bmm/agents/dev.agent.yaml +12 -15
  168. package/src/modules/bmm/agents/pm.agent.yaml +40 -22
  169. package/src/modules/bmm/agents/sm.agent.yaml +30 -24
  170. package/src/modules/bmm/agents/tea.agent.yaml +25 -17
  171. package/src/modules/bmm/agents/tech-writer.agent.yaml +80 -0
  172. package/src/modules/bmm/agents/ux-designer.agent.yaml +22 -12
  173. package/src/modules/bmm/docs/README.md +240 -0
  174. package/src/modules/bmm/docs/agents-guide.md +1058 -0
  175. package/src/modules/bmm/docs/brownfield-guide.md +762 -0
  176. package/src/modules/bmm/docs/enterprise-agentic-development.md +686 -0
  177. package/src/modules/bmm/docs/faq.md +588 -0
  178. package/src/modules/bmm/docs/glossary.md +320 -0
  179. package/src/modules/bmm/docs/images/workflow-method-greenfield.excalidraw +5919 -0
  180. package/src/modules/bmm/docs/images/workflow-method-greenfield.svg +2 -0
  181. package/src/modules/bmm/docs/party-mode.md +224 -0
  182. package/src/modules/bmm/docs/quick-spec-flow.md +652 -0
  183. package/src/modules/bmm/docs/quick-start.md +382 -0
  184. package/src/modules/bmm/docs/scale-adaptive-system.md +618 -0
  185. package/src/modules/bmm/docs/test-architecture.md +396 -0
  186. package/src/modules/bmm/{workflows/3-solutioning/architecture/readme.md → docs/workflow-architecture-reference.md} +132 -84
  187. package/src/modules/bmm/{workflows/document-project/README.md → docs/workflow-document-project-reference.md} +49 -4
  188. package/src/modules/bmm/docs/workflows-analysis.md +370 -0
  189. package/src/modules/bmm/docs/workflows-implementation.md +296 -0
  190. package/src/modules/bmm/docs/workflows-planning.md +612 -0
  191. package/src/modules/bmm/docs/workflows-solutioning.md +554 -0
  192. package/src/modules/bmm/teams/default-party.csv +20 -0
  193. package/src/modules/bmm/teams/team-fullstack.yaml +2 -0
  194. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +45 -24
  195. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +8 -8
  196. package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +425 -0
  197. package/src/modules/bmm/workflows/1-analysis/domain-research/template.md +180 -0
  198. package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +56 -0
  199. package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +435 -232
  200. package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +93 -77
  201. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +32 -14
  202. package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +144 -0
  203. package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +249 -0
  204. package/src/modules/bmm/workflows/1-analysis/research/checklist.md +156 -59
  205. package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +70 -65
  206. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +205 -143
  207. package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +55 -46
  208. package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +116 -83
  209. package/src/modules/bmm/workflows/1-analysis/research/template-market.md +37 -1
  210. package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +36 -1
  211. package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +25 -12
  212. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +51 -26
  213. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +67 -16
  214. package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +292 -63
  215. package/src/modules/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
  216. package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +544 -290
  217. package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +165 -23
  218. package/src/modules/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
  219. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +50 -18
  220. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +146 -36
  221. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +67 -4
  222. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +436 -0
  223. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +874 -163
  224. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +132 -6
  225. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +54 -20
  226. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +36 -28
  227. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -26
  228. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +1 -1
  229. package/src/modules/bmm/workflows/3-solutioning/architecture/checklist.md +5 -9
  230. package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +215 -150
  231. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +72 -26
  232. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/epics-template.md +80 -0
  233. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/instructions.md +616 -0
  234. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.yaml +63 -0
  235. package/src/modules/bmm/workflows/3-solutioning/{solutioning-gate-check → implementation-readiness}/checklist.md +7 -13
  236. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/instructions.md +332 -0
  237. package/src/modules/bmm/workflows/3-solutioning/{solutioning-gate-check → implementation-readiness}/template.md +1 -1
  238. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/workflow.yaml +64 -0
  239. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +25 -18
  240. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +31 -26
  241. package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +1 -1
  242. package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +7 -2
  243. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +38 -25
  244. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +22 -18
  245. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +38 -14
  246. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +8 -3
  247. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +35 -5
  248. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/checklist.md +1 -1
  249. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +10 -6
  250. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +40 -16
  251. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +1207 -243
  252. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +38 -26
  253. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +28 -15
  254. package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +1 -1
  255. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +16 -6
  256. package/src/modules/bmm/workflows/4-implementation/story-context/checklist.md +1 -1
  257. package/src/modules/bmm/workflows/4-implementation/story-context/context-template.xml +1 -1
  258. package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +23 -15
  259. package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +39 -8
  260. package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +1 -1
  261. package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +5 -4
  262. package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +6 -6
  263. package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +5 -7
  264. package/src/modules/bmm/workflows/diagrams/_shared/excalidraw-library.json +90 -0
  265. package/src/modules/bmm/workflows/diagrams/_shared/excalidraw-templates.yaml +127 -0
  266. package/src/modules/bmm/workflows/diagrams/create-dataflow/checklist.md +39 -0
  267. package/src/modules/bmm/workflows/diagrams/create-dataflow/instructions.md +130 -0
  268. package/src/modules/bmm/workflows/diagrams/create-dataflow/workflow.yaml +27 -0
  269. package/src/modules/bmm/workflows/diagrams/create-diagram/checklist.md +43 -0
  270. package/src/modules/bmm/workflows/diagrams/create-diagram/instructions.md +141 -0
  271. package/src/modules/bmm/workflows/diagrams/create-diagram/workflow.yaml +27 -0
  272. package/src/modules/bmm/workflows/diagrams/create-flowchart/checklist.md +49 -0
  273. package/src/modules/bmm/workflows/diagrams/create-flowchart/instructions.md +241 -0
  274. package/src/modules/bmm/workflows/diagrams/create-flowchart/workflow.yaml +27 -0
  275. package/src/modules/bmm/workflows/diagrams/create-wireframe/checklist.md +38 -0
  276. package/src/modules/bmm/workflows/diagrams/create-wireframe/instructions.md +133 -0
  277. package/src/modules/bmm/workflows/diagrams/create-wireframe/workflow.yaml +27 -0
  278. package/src/modules/bmm/workflows/document-project/checklist.md +1 -1
  279. package/src/modules/bmm/workflows/document-project/instructions.md +5 -5
  280. package/src/modules/bmm/workflows/document-project/workflow.yaml +2 -7
  281. package/src/modules/bmm/workflows/document-project/workflows/deep-dive-instructions.md +4 -4
  282. package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +5 -5
  283. package/src/modules/bmm/workflows/document-project/workflows/full-scan-instructions.md +13 -13
  284. package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +5 -5
  285. package/src/modules/bmm/workflows/techdoc/documentation-standards.md +262 -0
  286. package/src/modules/bmm/workflows/testarch/atdd/atdd-checklist-template.md +2 -2
  287. package/src/modules/bmm/workflows/testarch/atdd/instructions.md +2 -2
  288. package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +2 -9
  289. package/src/modules/bmm/workflows/testarch/automate/instructions.md +2 -2
  290. package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +2 -11
  291. package/src/modules/bmm/workflows/testarch/ci/checklist.md +4 -4
  292. package/src/modules/bmm/workflows/testarch/ci/instructions.md +2 -2
  293. package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +2 -10
  294. package/src/modules/bmm/workflows/testarch/framework/checklist.md +4 -4
  295. package/src/modules/bmm/workflows/testarch/framework/instructions.md +2 -2
  296. package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +2 -8
  297. package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +1 -1
  298. package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +2 -11
  299. package/src/modules/bmm/workflows/testarch/test-design/checklist.md +4 -4
  300. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +175 -14
  301. package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +4 -4
  302. package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +7 -11
  303. package/src/modules/bmm/workflows/testarch/test-review/instructions.md +1 -1
  304. package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +2 -9
  305. package/src/modules/bmm/workflows/testarch/trace/instructions.md +9 -9
  306. package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +2 -13
  307. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +249 -212
  308. package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +6 -5
  309. package/src/modules/bmm/workflows/workflow-status/instructions.md +177 -113
  310. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +126 -0
  311. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +114 -0
  312. package/src/modules/bmm/workflows/workflow-status/paths/{brownfield-level-3.yaml → method-brownfield.yaml} +48 -33
  313. package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +101 -0
  314. package/src/modules/bmm/workflows/workflow-status/paths/{brownfield-level-1.yaml → quick-flow-brownfield.yaml} +18 -18
  315. package/src/modules/bmm/workflows/workflow-status/paths/{greenfield-level-1.yaml → quick-flow-greenfield.yaml} +16 -18
  316. package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +1 -1
  317. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -0
  318. package/src/modules/bmm/workflows/workflow-status/workflow.yaml +5 -5
  319. package/src/modules/cis/README.md +153 -0
  320. package/src/modules/cis/_module-installer/install-config.yaml +6 -4
  321. package/src/modules/cis/agents/README.md +1 -1
  322. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +13 -8
  323. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +13 -8
  324. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +13 -8
  325. package/src/modules/cis/agents/innovation-strategist.agent.yaml +13 -8
  326. package/src/modules/cis/agents/presentation-master.agent.yaml +60 -0
  327. package/src/modules/cis/agents/storyteller.agent.yaml +13 -8
  328. package/src/modules/cis/teams/creative-squad.yaml +1 -0
  329. package/src/modules/cis/teams/default-party.csv +11 -0
  330. package/src/modules/cis/workflows/README.md +102 -30
  331. package/src/modules/cis/workflows/design-thinking/instructions.md +4 -2
  332. package/src/modules/cis/workflows/design-thinking/workflow.yaml +7 -12
  333. package/src/modules/cis/workflows/innovation-strategy/instructions.md +7 -5
  334. package/src/modules/cis/workflows/innovation-strategy/template.md +3 -3
  335. package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +7 -12
  336. package/src/modules/cis/workflows/problem-solving/instructions.md +4 -2
  337. package/src/modules/cis/workflows/problem-solving/workflow.yaml +7 -12
  338. package/src/modules/cis/workflows/storytelling/instructions.md +14 -4
  339. package/src/modules/cis/workflows/storytelling/workflow.yaml +7 -12
  340. package/src/utility/models/action-command-header.md +0 -0
  341. package/src/utility/models/agent-activation-ide.xml +3 -3
  342. package/src/utility/models/agent-activation-web.xml +4 -4
  343. package/src/utility/models/agent-command-header.md +1 -0
  344. package/src/utility/models/fragments/activation-steps.xml +3 -2
  345. package/src/utility/models/fragments/handler-validate-workflow.xml +1 -1
  346. package/src/utility/models/fragments/handler-workflow.xml +1 -1
  347. package/src/utility/models/fragments/web-bundle-activation-steps.xml +3 -3
  348. package/test/test-installation-components.js +214 -0
  349. package/tools/bmad-npx-wrapper.js +10 -98
  350. package/tools/cli/README.md +50 -32
  351. package/tools/cli/bundlers/web-bundler.js +322 -26
  352. package/tools/cli/commands/agent-install.js +409 -0
  353. package/tools/cli/commands/install.js +2 -5
  354. package/tools/cli/installers/lib/core/config-collector.js +279 -39
  355. package/tools/cli/installers/lib/core/detector.js +62 -7
  356. package/tools/cli/installers/lib/core/ide-config-manager.js +3 -1
  357. package/tools/cli/installers/lib/core/installer.js +338 -46
  358. package/tools/cli/installers/lib/core/manifest-generator.js +33 -117
  359. package/tools/cli/installers/lib/core/manifest.js +6 -2
  360. package/tools/cli/installers/lib/ide/_base-ide.js +82 -3
  361. package/tools/cli/installers/lib/ide/antigravity.js +463 -0
  362. package/tools/cli/installers/lib/ide/auggie.js +81 -238
  363. package/tools/cli/installers/lib/ide/claude-code.js +90 -25
  364. package/tools/cli/installers/lib/ide/cline.js +15 -18
  365. package/tools/cli/installers/lib/ide/codex.js +225 -71
  366. package/tools/cli/installers/lib/ide/crush.js +14 -50
  367. package/tools/cli/installers/lib/ide/cursor.js +116 -8
  368. package/tools/cli/installers/lib/ide/gemini.js +87 -37
  369. package/tools/cli/installers/lib/ide/github-copilot.js +121 -35
  370. package/tools/cli/installers/lib/ide/iflow.js +13 -30
  371. package/tools/cli/installers/lib/ide/kilo.js +20 -16
  372. package/tools/cli/installers/lib/ide/manager.js +50 -0
  373. package/tools/cli/installers/lib/ide/opencode.js +61 -17
  374. package/tools/cli/installers/lib/ide/qwen.js +39 -11
  375. package/tools/cli/installers/lib/ide/roo.js +27 -62
  376. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +90 -0
  377. package/tools/cli/installers/lib/ide/{task-tool-command-generator.js → shared/task-tool-command-generator.js} +1 -1
  378. package/tools/cli/installers/lib/ide/{workflow-command-generator.js → shared/workflow-command-generator.js} +11 -9
  379. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
  380. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
  381. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
  382. package/tools/cli/installers/lib/ide/{workflow-command-template.md → templates/workflow-command-template.md} +3 -5
  383. package/tools/cli/installers/lib/ide/trae.js +20 -32
  384. package/tools/cli/installers/lib/ide/windsurf.js +65 -8
  385. package/tools/cli/installers/lib/modules/manager.js +213 -7
  386. package/tools/cli/lib/agent/compiler.js +390 -0
  387. package/tools/cli/lib/agent/installer.js +725 -0
  388. package/tools/cli/lib/agent/template-engine.js +152 -0
  389. package/tools/cli/lib/cli-utils.js +52 -50
  390. package/tools/cli/lib/config.js +3 -1
  391. package/tools/cli/lib/ui.js +34 -17
  392. package/tools/cli/lib/xml-handler.js +1 -0
  393. package/tools/cli/lib/yaml-format.js +2 -1
  394. package/tools/cli/lib/yaml-xml-builder.js +76 -8
  395. package/tools/schema/agent.js +12 -3
  396. package/.claude/commands/bmad/bmb/agents/bmad-builder.md +0 -70
  397. package/.claude/commands/bmad/bmb/workflows/README.md +0 -67
  398. package/.claude/commands/bmad/bmb/workflows/audit-workflow.md +0 -15
  399. package/.claude/commands/bmad/bmb/workflows/convert-legacy.md +0 -15
  400. package/.claude/commands/bmad/bmb/workflows/create-agent.md +0 -15
  401. package/.claude/commands/bmad/bmb/workflows/create-module.md +0 -15
  402. package/.claude/commands/bmad/bmb/workflows/create-workflow.md +0 -15
  403. package/.claude/commands/bmad/bmb/workflows/edit-agent.md +0 -15
  404. package/.claude/commands/bmad/bmb/workflows/edit-module.md +0 -15
  405. package/.claude/commands/bmad/bmb/workflows/edit-workflow.md +0 -15
  406. package/.claude/commands/bmad/bmb/workflows/module-brief.md +0 -15
  407. package/.claude/commands/bmad/bmb/workflows/redoc.md +0 -15
  408. package/.claude/commands/bmad/bmd/agents/cli-chief.md +0 -108
  409. package/.claude/commands/bmad/bmd/agents/doc-keeper.md +0 -115
  410. package/.claude/commands/bmad/bmd/agents/release-chief.md +0 -109
  411. package/.claude/commands/bmad/core/agents/bmad-master.md +0 -71
  412. package/.claude/commands/bmad/core/tasks/index-docs.md +0 -9
  413. package/.claude/commands/bmad/core/tools/shard-doc.md +0 -9
  414. package/.claude/commands/bmad/core/workflows/README.md +0 -27
  415. package/.claude/commands/bmad/core/workflows/brainstorming.md +0 -15
  416. package/.claude/commands/bmad/core/workflows/party-mode.md +0 -15
  417. package/.claude/hooks/bmad-tts-injector.sh +0 -415
  418. package/.claude/hooks/bmad-voice-manager.sh +0 -511
  419. package/.claude/hooks/check-output-style.sh +0 -112
  420. package/.claude/hooks/download-extra-voices.sh +0 -244
  421. package/.claude/hooks/github-star-reminder.sh +0 -154
  422. package/.claude/hooks/language-manager.sh +0 -392
  423. package/.claude/hooks/learn-manager.sh +0 -475
  424. package/.claude/hooks/personality-manager.sh +0 -438
  425. package/.claude/hooks/piper-download-voices.sh +0 -165
  426. package/.claude/hooks/piper-installer.sh +0 -178
  427. package/.claude/hooks/piper-multispeaker-registry.sh +0 -165
  428. package/.claude/hooks/piper-voice-manager.sh +0 -293
  429. package/.claude/hooks/play-tts-elevenlabs.sh +0 -404
  430. package/.claude/hooks/play-tts-piper.sh +0 -338
  431. package/.claude/hooks/play-tts.sh +0 -100
  432. package/.claude/hooks/provider-commands.sh +0 -540
  433. package/.claude/hooks/provider-manager.sh +0 -298
  434. package/.claude/hooks/replay-target-audio.sh +0 -95
  435. package/.claude/hooks/sentiment-manager.sh +0 -201
  436. package/.claude/hooks/speed-manager.sh +0 -291
  437. package/.claude/hooks/voice-manager.sh +0 -594
  438. package/.claude/hooks/voices-config.sh +0 -70
  439. package/.claude/settings.local.json +0 -41
  440. package/bmad/_cfg/agent-manifest.csv +0 -7
  441. package/bmad/_cfg/agents/bmb-bmad-builder.customize.yaml +0 -42
  442. package/bmad/_cfg/agents/bmd-cli-chief.customize.yaml +0 -32
  443. package/bmad/_cfg/agents/bmd-doc-keeper.customize.yaml +0 -42
  444. package/bmad/_cfg/agents/bmd-release-chief.customize.yaml +0 -42
  445. package/bmad/_cfg/agents/core-bmad-master.customize.yaml +0 -42
  446. package/bmad/_cfg/files-manifest.csv +0 -83
  447. package/bmad/_cfg/manifest.yaml +0 -12
  448. package/bmad/_cfg/task-manifest.csv +0 -5
  449. package/bmad/_cfg/tool-manifest.csv +0 -2
  450. package/bmad/_cfg/workflow-manifest.csv +0 -15
  451. package/bmad/bmb/README.md +0 -132
  452. package/bmad/bmb/agents/bmad-builder.md +0 -70
  453. package/bmad/bmb/config.yaml +0 -14
  454. package/bmad/bmb/workflows/audit-workflow/checklist.md +0 -143
  455. package/bmad/bmb/workflows/audit-workflow/instructions.md +0 -341
  456. package/bmad/bmb/workflows/audit-workflow/template.md +0 -118
  457. package/bmad/bmb/workflows/audit-workflow/workflow.yaml +0 -23
  458. package/bmad/bmb/workflows/audit-workflow/workflow.yaml.bak +0 -21
  459. package/bmad/bmb/workflows/convert-legacy/README.md +0 -262
  460. package/bmad/bmb/workflows/convert-legacy/checklist.md +0 -205
  461. package/bmad/bmb/workflows/convert-legacy/instructions.md +0 -377
  462. package/bmad/bmb/workflows/convert-legacy/workflow.yaml +0 -32
  463. package/bmad/bmb/workflows/create-agent/README.md +0 -320
  464. package/bmad/bmb/workflows/create-agent/agent-architecture.md +0 -419
  465. package/bmad/bmb/workflows/create-agent/agent-architecture.md.bak +0 -412
  466. package/bmad/bmb/workflows/create-agent/agent-command-patterns.md +0 -759
  467. package/bmad/bmb/workflows/create-agent/agent-command-patterns.md.bak +0 -759
  468. package/bmad/bmb/workflows/create-agent/agent-types.md +0 -292
  469. package/bmad/bmb/workflows/create-agent/brainstorm-context.md +0 -174
  470. package/bmad/bmb/workflows/create-agent/checklist.md +0 -62
  471. package/bmad/bmb/workflows/create-agent/communication-styles.md +0 -202
  472. package/bmad/bmb/workflows/create-agent/instructions.md +0 -430
  473. package/bmad/bmb/workflows/create-agent/workflow.yaml +0 -37
  474. package/bmad/bmb/workflows/create-module/README.md +0 -220
  475. package/bmad/bmb/workflows/create-module/README.md.bak +0 -218
  476. package/bmad/bmb/workflows/create-module/brainstorm-context.md +0 -137
  477. package/bmad/bmb/workflows/create-module/checklist.md +0 -244
  478. package/bmad/bmb/workflows/create-module/checklist.md.bak +0 -245
  479. package/bmad/bmb/workflows/create-module/installer-templates/install-config.yaml +0 -92
  480. package/bmad/bmb/workflows/create-module/installer-templates/installer.js +0 -231
  481. package/bmad/bmb/workflows/create-module/installer-templates/installer.js.bak +0 -231
  482. package/bmad/bmb/workflows/create-module/instructions.md +0 -581
  483. package/bmad/bmb/workflows/create-module/instructions.md.bak +0 -521
  484. package/bmad/bmb/workflows/create-module/module-structure.md +0 -366
  485. package/bmad/bmb/workflows/create-module/module-structure.md.bak +0 -310
  486. package/bmad/bmb/workflows/create-module/workflow.yaml +0 -42
  487. package/bmad/bmb/workflows/create-module/workflow.yaml.bak +0 -40
  488. package/bmad/bmb/workflows/create-workflow/README.md +0 -277
  489. package/bmad/bmb/workflows/create-workflow/brainstorm-context.md +0 -197
  490. package/bmad/bmb/workflows/create-workflow/checklist.md +0 -94
  491. package/bmad/bmb/workflows/create-workflow/instructions.md +0 -716
  492. package/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md +0 -1150
  493. package/bmad/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -24
  494. package/bmad/bmb/workflows/create-workflow/workflow-template/instructions.md +0 -13
  495. package/bmad/bmb/workflows/create-workflow/workflow-template/template.md +0 -9
  496. package/bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml +0 -39
  497. package/bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml.bak +0 -39
  498. package/bmad/bmb/workflows/create-workflow/workflow.yaml +0 -40
  499. package/bmad/bmb/workflows/create-workflow/workflow.yaml.bak +0 -38
  500. package/bmad/bmb/workflows/edit-agent/README.md +0 -112
  501. package/bmad/bmb/workflows/edit-agent/checklist.md +0 -112
  502. package/bmad/bmb/workflows/edit-agent/instructions.md +0 -290
  503. package/bmad/bmb/workflows/edit-agent/workflow.yaml +0 -33
  504. package/bmad/bmb/workflows/edit-module/README.md +0 -187
  505. package/bmad/bmb/workflows/edit-module/checklist.md +0 -165
  506. package/bmad/bmb/workflows/edit-module/instructions.md +0 -339
  507. package/bmad/bmb/workflows/edit-module/workflow.yaml +0 -34
  508. package/bmad/bmb/workflows/edit-workflow/README.md +0 -119
  509. package/bmad/bmb/workflows/edit-workflow/checklist.md +0 -70
  510. package/bmad/bmb/workflows/edit-workflow/instructions.md +0 -342
  511. package/bmad/bmb/workflows/edit-workflow/workflow.yaml +0 -27
  512. package/bmad/bmb/workflows/edit-workflow/workflow.yaml.bak +0 -25
  513. package/bmad/bmb/workflows/module-brief/README.md +0 -264
  514. package/bmad/bmb/workflows/module-brief/checklist.md +0 -116
  515. package/bmad/bmb/workflows/module-brief/instructions.md +0 -267
  516. package/bmad/bmb/workflows/module-brief/template.md +0 -275
  517. package/bmad/bmb/workflows/module-brief/workflow.yaml +0 -29
  518. package/bmad/bmb/workflows/module-brief/workflow.yaml.bak +0 -27
  519. package/bmad/bmb/workflows/redoc/README.md +0 -87
  520. package/bmad/bmb/workflows/redoc/checklist.md +0 -99
  521. package/bmad/bmb/workflows/redoc/instructions.md +0 -265
  522. package/bmad/bmb/workflows/redoc/workflow.yaml +0 -32
  523. package/bmad/bmb/workflows/redoc/workflow.yaml.bak +0 -31
  524. package/bmad/bmd/README.md +0 -193
  525. package/bmad/bmd/README.md.bak +0 -193
  526. package/bmad/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
  527. package/bmad/bmd/agents/cli-chief-sidecar/instructions.md.bak +0 -102
  528. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
  529. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md.bak +0 -68
  530. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
  531. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md.bak +0 -123
  532. package/bmad/bmd/agents/cli-chief-sidecar/memories.md +0 -53
  533. package/bmad/bmd/agents/cli-chief-sidecar/memories.md.bak +0 -53
  534. package/bmad/bmd/agents/cli-chief.md +0 -108
  535. package/bmad/bmd/agents/cli-chief.md.bak +0 -108
  536. package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
  537. package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md.bak +0 -177
  538. package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
  539. package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md.bak +0 -81
  540. package/bmad/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
  541. package/bmad/bmd/agents/doc-keeper-sidecar/memories.md.bak +0 -88
  542. package/bmad/bmd/agents/doc-keeper.md +0 -115
  543. package/bmad/bmd/agents/doc-keeper.md.bak +0 -115
  544. package/bmad/bmd/agents/release-chief-sidecar/instructions.md +0 -164
  545. package/bmad/bmd/agents/release-chief-sidecar/instructions.md.bak +0 -164
  546. package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
  547. package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md.bak +0 -82
  548. package/bmad/bmd/agents/release-chief-sidecar/memories.md +0 -73
  549. package/bmad/bmd/agents/release-chief-sidecar/memories.md.bak +0 -73
  550. package/bmad/bmd/agents/release-chief.md +0 -109
  551. package/bmad/bmd/agents/release-chief.md.bak +0 -109
  552. package/bmad/bmd/config.yaml +0 -10
  553. package/bmad/core/agents/bmad-master.md +0 -71
  554. package/bmad/core/agents/bmad-web-orchestrator.agent.xml +0 -122
  555. package/bmad/core/config.yaml +0 -9
  556. package/bmad/core/tasks/adv-elicit-methods.csv +0 -39
  557. package/bmad/core/tasks/index-docs.xml +0 -65
  558. package/bmad/core/tasks/validate-workflow.xml +0 -89
  559. package/bmad/core/tasks/workflow.xml +0 -174
  560. package/bmad/core/tools/shard-doc.xml +0 -100
  561. package/bmad/core/workflows/brainstorming/README.md +0 -271
  562. package/bmad/core/workflows/brainstorming/brain-methods.csv +0 -36
  563. package/bmad/core/workflows/brainstorming/instructions.md +0 -314
  564. package/bmad/core/workflows/brainstorming/template.md +0 -102
  565. package/bmad/core/workflows/brainstorming/workflow.yaml +0 -43
  566. package/bmad/core/workflows/party-mode/instructions.md +0 -188
  567. package/bmad/core/workflows/party-mode/workflow.yaml +0 -23
  568. package/bmad/docs/claude-code-instructions.md +0 -25
  569. package/bmad/docs/codex-instructions.md +0 -21
  570. package/bmd/README.md +0 -193
  571. package/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
  572. package/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
  573. package/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
  574. package/bmd/agents/cli-chief-sidecar/memories.md +0 -53
  575. package/bmd/agents/cli-chief.agent.yaml +0 -126
  576. package/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
  577. package/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
  578. package/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
  579. package/bmd/agents/doc-keeper.agent.yaml +0 -137
  580. package/bmd/agents/release-chief-sidecar/instructions.md +0 -164
  581. package/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
  582. package/bmd/agents/release-chief-sidecar/memories.md +0 -73
  583. package/bmd/agents/release-chief.agent.yaml +0 -127
  584. package/bmd/bmad-custom-module-installer-plan.md +0 -1176
  585. package/bmd/config.yaml +0 -12
  586. package/docs/bmad-brownfield-guide.md +0 -1260
  587. package/docs/conversion-report-shard-doc-2025-10-26.md +0 -188
  588. package/docs/installers-bundlers/web-bundler-usage.md +0 -54
  589. package/src/core/tasks/adv-elicit.xml +0 -104
  590. package/src/modules/bmb/workflows/create-agent/README.md +0 -320
  591. package/src/modules/bmb/workflows/create-agent/agent-architecture.md +0 -419
  592. package/src/modules/bmb/workflows/create-agent/agent-command-patterns.md +0 -759
  593. package/src/modules/bmb/workflows/create-agent/agent-types.md +0 -292
  594. package/src/modules/bmb/workflows/create-agent/checklist.md +0 -62
  595. package/src/modules/bmb/workflows/create-agent/communication-styles.md +0 -202
  596. package/src/modules/bmb/workflows/edit-agent/checklist.md +0 -112
  597. package/src/modules/bmb/workflows/redoc/README.md +0 -87
  598. package/src/modules/bmb/workflows/redoc/checklist.md +0 -99
  599. package/src/modules/bmb/workflows/redoc/instructions.md +0 -265
  600. package/src/modules/bmb/workflows/redoc/workflow.yaml +0 -34
  601. package/src/modules/bmm/agents/game-architect.agent.yaml +0 -35
  602. package/src/modules/bmm/agents/game-designer.agent.yaml +0 -47
  603. package/src/modules/bmm/agents/game-dev.agent.yaml +0 -39
  604. package/src/modules/bmm/sub-modules/claude-code/config.yaml +0 -5
  605. package/src/modules/bmm/sub-modules/claude-code/injections.yaml +0 -242
  606. package/src/modules/bmm/sub-modules/claude-code/readme.md +0 -87
  607. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/api-documenter.md +0 -102
  608. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/codebase-analyzer.md +0 -82
  609. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/data-analyst.md +0 -101
  610. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/pattern-detector.md +0 -84
  611. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/dependency-mapper.md +0 -83
  612. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/epic-optimizer.md +0 -81
  613. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/requirements-analyst.md +0 -61
  614. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/technical-decisions-curator.md +0 -168
  615. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/trend-spotter.md +0 -115
  616. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-journey-mapper.md +0 -123
  617. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-researcher.md +0 -72
  618. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/market-researcher.md +0 -51
  619. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/tech-debt-auditor.md +0 -106
  620. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/document-reviewer.md +0 -102
  621. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/technical-evaluator.md +0 -68
  622. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/test-coverage-analyzer.md +0 -108
  623. package/src/modules/bmm/tasks/daily-standup.xml +0 -85
  624. package/src/modules/bmm/tasks/retrospective.xml +0 -104
  625. package/src/modules/bmm/testarch/README.md +0 -311
  626. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/README.md +0 -38
  627. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/instructions.md +0 -109
  628. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/README.md +0 -29
  629. package/src/modules/bmm/workflows/1-analysis/game-brief/README.md +0 -221
  630. package/src/modules/bmm/workflows/1-analysis/product-brief/README.md +0 -180
  631. package/src/modules/bmm/workflows/1-analysis/research/README.md +0 -454
  632. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-competitor-analyzer.md +0 -259
  633. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-data-analyst.md +0 -190
  634. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-market-researcher.md +0 -337
  635. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-trend-spotter.md +0 -107
  636. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-user-researcher.md +0 -329
  637. package/src/modules/bmm/workflows/2-plan-workflows/README.md +0 -258
  638. package/src/modules/bmm/workflows/2-plan-workflows/gdd/README.md +0 -222
  639. package/src/modules/bmm/workflows/2-plan-workflows/gdd/workflow.yaml +0 -67
  640. package/src/modules/bmm/workflows/2-plan-workflows/prd/epics-template.md +0 -63
  641. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +0 -167
  642. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +0 -278
  643. package/src/modules/bmm/workflows/3-solutioning/README.md +0 -1
  644. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/README.md +0 -177
  645. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +0 -273
  646. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/validation-criteria.yaml +0 -189
  647. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +0 -40
  648. package/src/modules/bmm/workflows/4-implementation/README.md +0 -221
  649. package/src/modules/bmm/workflows/4-implementation/code-review/README.md +0 -69
  650. package/src/modules/bmm/workflows/4-implementation/correct-course/README.md +0 -73
  651. package/src/modules/bmm/workflows/4-implementation/create-story/README.md +0 -129
  652. package/src/modules/bmm/workflows/4-implementation/dev-story/AUDIT-REPORT.md +0 -367
  653. package/src/modules/bmm/workflows/4-implementation/dev-story/README.md +0 -206
  654. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/README.md +0 -195
  655. package/src/modules/bmm/workflows/4-implementation/retrospective/README.md +0 -77
  656. package/src/modules/bmm/workflows/4-implementation/sprint-planning/README.md +0 -156
  657. package/src/modules/bmm/workflows/4-implementation/story-context/README.md +0 -234
  658. package/src/modules/bmm/workflows/README.md +0 -577
  659. package/src/modules/bmm/workflows/document-project/templates/README.md +0 -38
  660. package/src/modules/bmm/workflows/testarch/README.md +0 -26
  661. package/src/modules/bmm/workflows/testarch/atdd/README.md +0 -672
  662. package/src/modules/bmm/workflows/testarch/automate/README.md +0 -869
  663. package/src/modules/bmm/workflows/testarch/ci/README.md +0 -493
  664. package/src/modules/bmm/workflows/testarch/framework/README.md +0 -340
  665. package/src/modules/bmm/workflows/testarch/nfr-assess/README.md +0 -469
  666. package/src/modules/bmm/workflows/testarch/test-design/README.md +0 -493
  667. package/src/modules/bmm/workflows/testarch/test-review/README.md +0 -775
  668. package/src/modules/bmm/workflows/testarch/trace/README.md +0 -802
  669. package/src/modules/bmm/workflows/workflow-status/README.md +0 -241
  670. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-0.yaml +0 -54
  671. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-2.yaml +0 -76
  672. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-4.yaml +0 -88
  673. package/src/modules/bmm/workflows/workflow-status/paths/game-design.yaml +0 -75
  674. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-0.yaml +0 -45
  675. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-2.yaml +0 -78
  676. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-3.yaml +0 -73
  677. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-4.yaml +0 -75
  678. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.md +0 -30
  679. package/src/modules/cis/readme.md +0 -86
  680. package/test/fixtures/agent-schema/invalid/persona/principles-as-string.agent.yaml +0 -23
  681. package/v6-open-items.md +0 -23
  682. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-brain-methods.csv +0 -0
  683. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-context.md +0 -0
  684. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/checklist.md +0 -0
  685. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/template.md +0 -0
  686. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/checklist.md +0 -0
  687. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/action-platformer.md +0 -0
  688. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/adventure.md +0 -0
  689. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/card-game.md +0 -0
  690. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/fighting.md +0 -0
  691. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/horror.md +0 -0
  692. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/idle-incremental.md +0 -0
  693. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/metroidvania.md +0 -0
  694. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/moba.md +0 -0
  695. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/party-game.md +0 -0
  696. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/puzzle.md +0 -0
  697. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/racing.md +0 -0
  698. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/rhythm.md +0 -0
  699. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/roguelike.md +0 -0
  700. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/rpg.md +0 -0
  701. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/sandbox.md +0 -0
  702. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/shooter.md +0 -0
  703. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/simulation.md +0 -0
  704. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/sports.md +0 -0
  705. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/strategy.md +0 -0
  706. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/survival.md +0 -0
  707. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/text-based.md +0 -0
  708. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/tower-defense.md +0 -0
  709. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/turn-based-tactics.md +0 -0
  710. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/visual-novel.md +0 -0
  711. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types.csv +0 -0
  712. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/gdd-template.md +0 -0
  713. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/checklist.md +0 -0
  714. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/narrative-template.md +0 -0
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Template Engine for BMAD Agent Install Configuration
3
+ * Processes {{variable}}, {{#if}}, {{#unless}}, and {{/if}} blocks
4
+ */
5
+
6
+ /**
7
+ * Process all template syntax in a string
8
+ * @param {string} content - Content with template syntax
9
+ * @param {Object} variables - Key-value pairs from install_config answers
10
+ * @returns {string} Processed content
11
+ */
12
+ function processTemplate(content, variables = {}) {
13
+ let result = content;
14
+
15
+ // Process conditionals first (they may contain variables)
16
+ result = processConditionals(result, variables);
17
+
18
+ // Then process simple variable replacements
19
+ result = processVariables(result, variables);
20
+
21
+ // Clean up any empty lines left by removed conditionals
22
+ result = cleanupEmptyLines(result);
23
+
24
+ return result;
25
+ }
26
+
27
+ /**
28
+ * Process {{#if}}, {{#unless}}, {{/if}}, {{/unless}} blocks
29
+ */
30
+ function processConditionals(content, variables) {
31
+ let result = content;
32
+
33
+ // Process {{#if variable == "value"}} blocks
34
+ // Handle both regular quotes and JSON-escaped quotes (\")
35
+ const ifEqualsPattern = /\{\{#if\s+(\w+)\s*==\s*\\?"([^"\\]+)\\?"\s*\}\}([\s\S]*?)\{\{\/if\}\}/g;
36
+ result = result.replaceAll(ifEqualsPattern, (match, varName, value, block) => {
37
+ return variables[varName] === value ? block : '';
38
+ });
39
+
40
+ // Process {{#if variable}} blocks (boolean or truthy check)
41
+ const ifBoolPattern = /\{\{#if\s+(\w+)\s*\}\}([\s\S]*?)\{\{\/if\}\}/g;
42
+ result = result.replaceAll(ifBoolPattern, (match, varName, block) => {
43
+ const val = variables[varName];
44
+ // Treat as truthy: true, non-empty string, non-zero number
45
+ const isTruthy = val === true || (typeof val === 'string' && val.length > 0) || (typeof val === 'number' && val !== 0);
46
+ return isTruthy ? block : '';
47
+ });
48
+
49
+ // Process {{#unless variable}} blocks (inverse of if)
50
+ const unlessPattern = /\{\{#unless\s+(\w+)\s*\}\}([\s\S]*?)\{\{\/unless\}\}/g;
51
+ result = result.replaceAll(unlessPattern, (match, varName, block) => {
52
+ const val = variables[varName];
53
+ const isFalsy = val === false || val === '' || val === null || val === undefined || val === 0;
54
+ return isFalsy ? block : '';
55
+ });
56
+
57
+ return result;
58
+ }
59
+
60
+ /**
61
+ * Process {{variable}} replacements
62
+ */
63
+ function processVariables(content, variables) {
64
+ let result = content;
65
+
66
+ // Replace {{variable}} with value
67
+ const varPattern = /\{\{(\w+)\}\}/g;
68
+ result = result.replaceAll(varPattern, (match, varName) => {
69
+ if (Object.hasOwn(variables, varName)) {
70
+ return String(variables[varName]);
71
+ }
72
+ // If variable not found, leave as-is (might be runtime variable like {user_name})
73
+ return match;
74
+ });
75
+
76
+ return result;
77
+ }
78
+
79
+ /**
80
+ * Clean up excessive empty lines left after removing conditional blocks
81
+ */
82
+ function cleanupEmptyLines(content) {
83
+ // Replace 3+ consecutive newlines with 2
84
+ return content.replaceAll(/\n{3,}/g, '\n\n');
85
+ }
86
+
87
+ /**
88
+ * Extract install_config from agent YAML object
89
+ * @param {Object} agentYaml - Parsed agent YAML
90
+ * @returns {Object|null} install_config section or null
91
+ */
92
+ function extractInstallConfig(agentYaml) {
93
+ return agentYaml?.agent?.install_config || null;
94
+ }
95
+
96
+ /**
97
+ * Remove install_config from agent YAML (after processing)
98
+ * @param {Object} agentYaml - Parsed agent YAML
99
+ * @returns {Object} Agent YAML without install_config
100
+ */
101
+ function stripInstallConfig(agentYaml) {
102
+ const result = structuredClone(agentYaml);
103
+ if (result.agent) {
104
+ delete result.agent.install_config;
105
+ }
106
+ return result;
107
+ }
108
+
109
+ /**
110
+ * Process entire agent YAML object with template variables
111
+ * @param {Object} agentYaml - Parsed agent YAML
112
+ * @param {Object} variables - Answers from install_config questions
113
+ * @returns {Object} Processed agent YAML
114
+ */
115
+ function processAgentYaml(agentYaml, variables) {
116
+ // Convert to JSON string, process templates, parse back
117
+ const jsonString = JSON.stringify(agentYaml, null, 2);
118
+ const processed = processTemplate(jsonString, variables);
119
+ return JSON.parse(processed);
120
+ }
121
+
122
+ /**
123
+ * Get default values from install_config questions
124
+ * @param {Object} installConfig - install_config section
125
+ * @returns {Object} Default values keyed by variable name
126
+ */
127
+ function getDefaultValues(installConfig) {
128
+ const defaults = {};
129
+
130
+ if (!installConfig?.questions) {
131
+ return defaults;
132
+ }
133
+
134
+ for (const question of installConfig.questions) {
135
+ if (question.var && question.default !== undefined) {
136
+ defaults[question.var] = question.default;
137
+ }
138
+ }
139
+
140
+ return defaults;
141
+ }
142
+
143
+ module.exports = {
144
+ processTemplate,
145
+ processConditionals,
146
+ processVariables,
147
+ extractInstallConfig,
148
+ stripInstallConfig,
149
+ processAgentYaml,
150
+ getDefaultValues,
151
+ cleanupEmptyLines,
152
+ };
@@ -2,13 +2,31 @@ const chalk = require('chalk');
2
2
  const boxen = require('boxen');
3
3
  const wrapAnsi = require('wrap-ansi');
4
4
  const figlet = require('figlet');
5
+ const path = require('node:path');
5
6
 
6
7
  const CLIUtils = {
8
+ /**
9
+ * Get version from package.json
10
+ */
11
+ getVersion() {
12
+ try {
13
+ const packageJson = require(path.join(__dirname, '..', '..', '..', 'package.json'));
14
+ return packageJson.version || 'Unknown';
15
+ } catch {
16
+ return 'Unknown';
17
+ }
18
+ },
19
+
7
20
  /**
8
21
  * Display BMAD logo
22
+ * @param {boolean} clearScreen - Whether to clear the screen first (default: true for initial display only)
9
23
  */
10
- displayLogo() {
11
- console.clear();
24
+ displayLogo(clearScreen = true) {
25
+ if (clearScreen) {
26
+ console.clear();
27
+ }
28
+
29
+ const version = this.getVersion();
12
30
 
13
31
  // ASCII art logo
14
32
  const logo = `
@@ -20,7 +38,7 @@ const CLIUtils = {
20
38
  ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝`;
21
39
 
22
40
  console.log(chalk.cyan(logo));
23
- console.log(chalk.dim(' Build More, Architect Dreams\n'));
41
+ console.log(chalk.dim(` Build More, Architect Dreams`) + chalk.cyan.bold(` v${version}`) + '\n');
24
42
  },
25
43
 
26
44
  /**
@@ -64,18 +82,35 @@ const CLIUtils = {
64
82
  },
65
83
 
66
84
  /**
67
- * Display prompt section
68
- * @param {string|Array} prompts - Prompts to display
85
+ * Display module configuration header
86
+ * @param {string} moduleName - Module name (fallback if no custom header)
87
+ * @param {string} header - Custom header from install-config.yaml
88
+ * @param {string} subheader - Custom subheader from install-config.yaml
69
89
  */
70
- displayPromptSection(prompts) {
71
- const promptArray = Array.isArray(prompts) ? prompts : [prompts];
72
-
73
- const formattedPrompts = promptArray.map((p) => wrapAnsi(p, 76, { hard: true, wordWrap: true }));
90
+ displayModuleConfigHeader(moduleName, header = null, subheader = null) {
91
+ // Simple blue banner with custom header/subheader if provided
92
+ console.log('\n' + chalk.cyan('─'.repeat(80)));
93
+ console.log(chalk.cyan(header || `Configuring ${moduleName.toUpperCase()} Module`));
94
+ if (subheader) {
95
+ console.log(chalk.dim(`${subheader}`));
96
+ }
97
+ console.log(chalk.cyan('─'.repeat(80)) + '\n');
98
+ },
74
99
 
75
- this.displayBox(formattedPrompts, {
76
- borderColor: 'yellow',
77
- borderStyle: 'double',
78
- });
100
+ /**
101
+ * Display module with no custom configuration
102
+ * @param {string} moduleName - Module name (fallback if no custom header)
103
+ * @param {string} header - Custom header from install-config.yaml
104
+ * @param {string} subheader - Custom subheader from install-config.yaml
105
+ */
106
+ displayModuleNoConfig(moduleName, header = null, subheader = null) {
107
+ // Show full banner with header/subheader, just like modules with config
108
+ console.log('\n' + chalk.cyan('─'.repeat(80)));
109
+ console.log(chalk.cyan(header || `${moduleName.toUpperCase()} Module - No Custom Configuration`));
110
+ if (subheader) {
111
+ console.log(chalk.dim(`${subheader}`));
112
+ }
113
+ console.log(chalk.cyan('─'.repeat(80)) + '\n');
79
114
  },
80
115
 
81
116
  /**
@@ -164,44 +199,11 @@ const CLIUtils = {
164
199
  /**
165
200
  * Display module completion message
166
201
  * @param {string} moduleName - Name of the completed module
167
- * @param {boolean} clearScreen - Whether to clear the screen first
202
+ * @param {boolean} clearScreen - Whether to clear the screen first (deprecated, always false now)
168
203
  */
169
- displayModuleComplete(moduleName, clearScreen = true) {
170
- if (clearScreen) {
171
- console.clear();
172
- this.displayLogo();
173
- }
174
-
175
- let message;
176
-
177
- // Special messages for specific modules
178
- if (moduleName.toLowerCase() === 'bmm') {
179
- message = `Thank you for configuring the BMAD™ Method Module (BMM)!
180
-
181
- Your responses have been saved and will be used to configure your installation.`;
182
- } else if (moduleName.toLowerCase() === 'cis') {
183
- message = `Thank you for choosing the BMAD™ Creative Innovation Suite, an early beta
184
- release with much more planned!
185
-
186
- With this BMAD™ Creative Innovation Suite Configuration, remember that all
187
- paths are relative to project root, with no leading slash.`;
188
- } else if (moduleName.toLowerCase() === 'core') {
189
- message = `Thank you for choosing the BMAD™ Method, your gateway to dreaming, planning
190
- and building with real world proven techniques.
191
-
192
- All paths are relative to project root, with no leading slash.`;
193
- } else {
194
- message = `Thank you for configuring the BMAD™ ${moduleName.toUpperCase()} module!
195
-
196
- Your responses have been saved and will be used to configure your installation.`;
197
- }
198
-
199
- this.displayBox(message, {
200
- borderColor: 'yellow',
201
- borderStyle: 'double',
202
- padding: 1,
203
- margin: 1,
204
- });
204
+ displayModuleComplete(moduleName, clearScreen = false) {
205
+ // No longer clear screen or show boxes - just a simple completion message
206
+ // This is deprecated but kept for backwards compatibility
205
207
  },
206
208
  };
207
209
 
@@ -33,7 +33,9 @@ class Config {
33
33
  });
34
34
 
35
35
  await fs.ensureDir(path.dirname(configPath));
36
- await fs.writeFile(configPath, yamlContent, 'utf8');
36
+ // Ensure POSIX-compliant final newline
37
+ const content = yamlContent.endsWith('\n') ? yamlContent : yamlContent + '\n';
38
+ await fs.writeFile(configPath, content, 'utf8');
37
39
  }
38
40
 
39
41
  /**
@@ -17,14 +17,26 @@ class UI {
17
17
  */
18
18
  async promptInstall() {
19
19
  CLIUtils.displayLogo();
20
- CLIUtils.displaySection('BMAD™ Setup', 'Build More, Architect Dreams');
20
+ const version = CLIUtils.getVersion();
21
+ CLIUtils.displaySection('BMAD™ Setup', `Build More, Architect Dreams v${version}`);
21
22
 
22
23
  const confirmedDirectory = await this.getConfirmedDirectory();
23
24
 
25
+ // Preflight: Check for legacy BMAD v4 footprints immediately after getting directory
26
+ const { Detector } = require('../installers/lib/core/detector');
27
+ const { Installer } = require('../installers/lib/core/installer');
28
+ const detector = new Detector();
29
+ const installer = new Installer();
30
+ const legacyV4 = await detector.detectLegacyV4(confirmedDirectory);
31
+ if (legacyV4.hasLegacyV4) {
32
+ await installer.handleLegacyV4Migration(confirmedDirectory, legacyV4);
33
+ }
34
+
24
35
  // Check if there's an existing BMAD installation
25
36
  const fs = require('fs-extra');
26
37
  const path = require('node:path');
27
- const bmadDir = path.join(confirmedDirectory, 'bmad');
38
+ // Use findBmadDir to detect any custom folder names (V6+)
39
+ const bmadDir = await installer.findBmadDir(confirmedDirectory);
28
40
  const hasExistingInstall = await fs.pathExists(bmadDir);
29
41
 
30
42
  // Track action type (only set if there's an existing installation)
@@ -82,25 +94,23 @@ class UI {
82
94
  // If actionType === 'update' or 'reinstall', continue with normal flow below
83
95
  }
84
96
 
85
- // Collect IDE tool selection EARLY (before module configuration)
86
- // This allows users to make all decisions upfront before file copying begins
87
- const toolSelection = await this.promptToolSelection(confirmedDirectory, []);
88
-
89
97
  const { installedModuleIds } = await this.getExistingInstallation(confirmedDirectory);
90
98
  const coreConfig = await this.collectCoreConfig(confirmedDirectory);
91
99
  const moduleChoices = await this.getModuleChoices(installedModuleIds);
92
100
  const selectedModules = await this.selectModules(moduleChoices);
93
101
 
94
- console.clear();
95
- CLIUtils.displayLogo();
96
- CLIUtils.displayModuleComplete('core', false); // false = don't clear the screen again
102
+ // Collect IDE tool selection AFTER configuration prompts (fixes Windows/PowerShell hang)
103
+ // This allows text-based prompts to complete before the checkbox prompt
104
+ const toolSelection = await this.promptToolSelection(confirmedDirectory, selectedModules);
105
+
106
+ // No more screen clearing - keep output flowing
97
107
 
98
108
  return {
99
109
  actionType: actionType || 'update', // Preserve reinstall or update action
100
110
  directory: confirmedDirectory,
101
111
  installCore: true, // Always install core
102
112
  modules: selectedModules,
103
- // IDE selection collected early, will be configured later
113
+ // IDE selection collected after config, will be configured later
104
114
  ides: toolSelection.ides,
105
115
  skipIde: toolSelection.skipIde,
106
116
  coreConfig: coreConfig, // Pass collected core config to installer
@@ -114,10 +124,12 @@ class UI {
114
124
  * @returns {Object} Tool configuration
115
125
  */
116
126
  async promptToolSelection(projectDir, selectedModules) {
117
- // Check for existing configured IDEs
127
+ // Check for existing configured IDEs - use findBmadDir to detect custom folder names
118
128
  const { Detector } = require('../installers/lib/core/detector');
129
+ const { Installer } = require('../installers/lib/core/installer');
119
130
  const detector = new Detector();
120
- const bmadDir = path.join(projectDir || process.cwd(), 'bmad');
131
+ const installer = new Installer();
132
+ const bmadDir = await installer.findBmadDir(projectDir || process.cwd());
121
133
  const existingInstall = await detector.detect(bmadDir);
122
134
  const configuredIdes = existingInstall.ides || [];
123
135
 
@@ -322,8 +334,10 @@ class UI {
322
334
  */
323
335
  async getExistingInstallation(directory) {
324
336
  const { Detector } = require('../installers/lib/core/detector');
337
+ const { Installer } = require('../installers/lib/core/installer');
325
338
  const detector = new Detector();
326
- const bmadDir = path.join(directory, 'bmad');
339
+ const installer = new Installer();
340
+ const bmadDir = await installer.findBmadDir(directory);
327
341
  const existingInstall = await detector.detect(bmadDir);
328
342
  const installedModuleIds = new Set(existingInstall.modules.map((mod) => mod.id));
329
343
 
@@ -421,17 +435,20 @@ class UI {
421
435
  if (stats.isDirectory()) {
422
436
  const files = await fs.readdir(directory);
423
437
  if (files.length > 0) {
438
+ // Check for any bmad installation (any folder with _cfg/manifest.yaml)
439
+ const { Installer } = require('../installers/lib/core/installer');
440
+ const installer = new Installer();
441
+ const bmadDir = await installer.findBmadDir(directory);
442
+ const hasBmadInstall = (await fs.pathExists(bmadDir)) && (await fs.pathExists(path.join(bmadDir, '_cfg', 'manifest.yaml')));
443
+
424
444
  console.log(
425
445
  chalk.gray(`Directory exists and contains ${files.length} item(s)`) +
426
- (files.includes('bmad') ? chalk.yellow(' including existing bmad installation') : ''),
446
+ (hasBmadInstall ? chalk.yellow(` including existing BMAD installation (${path.basename(bmadDir)})`) : ''),
427
447
  );
428
448
  } else {
429
449
  console.log(chalk.gray('Directory exists and is empty'));
430
450
  }
431
451
  }
432
- } else {
433
- const existingParent = await this.findExistingParent(directory);
434
- console.log(chalk.gray(`Will create in: ${existingParent}`));
435
452
  }
436
453
  }
437
454
 
@@ -203,6 +203,7 @@ class XmlHandler {
203
203
  customizeHash: customizePath ? await this.yamlBuilder.calculateFileHash(customizePath) : null,
204
204
  builderVersion: '1.0.0',
205
205
  includeMetadata: metadata.includeMetadata !== false,
206
+ forWebBundle: metadata.forWebBundle || false, // Pass through forWebBundle flag
206
207
  };
207
208
 
208
209
  // Convert to XML
@@ -64,7 +64,8 @@ async function formatYamlContent(content, filename) {
64
64
  noRefs: true,
65
65
  sortKeys: false, // Preserve key order
66
66
  });
67
- return formatted;
67
+ // Ensure POSIX-compliant final newline
68
+ return formatted.endsWith('\n') ? formatted : formatted + '\n';
68
69
  } catch (error) {
69
70
  console.error(chalk.red(`❌ YAML syntax error in ${filename}:`), error.message);
70
71
  console.error(chalk.yellow(`💡 Try manually fixing the YAML structure first`));
@@ -119,6 +119,16 @@ class YamlXmlBuilder {
119
119
  if (customizeYaml.critical_actions) {
120
120
  merged.agent.critical_actions = [...(merged.agent.critical_actions || []), ...customizeYaml.critical_actions];
121
121
  }
122
+
123
+ // Append prompts
124
+ if (customizeYaml.prompts) {
125
+ merged.agent.prompts = [...(merged.agent.prompts || []), ...customizeYaml.prompts];
126
+ }
127
+
128
+ // Append memories
129
+ if (customizeYaml.memories) {
130
+ merged.agent.memories = [...(merged.agent.memories || []), ...customizeYaml.memories];
131
+ }
122
132
  }
123
133
  }
124
134
 
@@ -202,6 +212,11 @@ class YamlXmlBuilder {
202
212
  // Persona section
203
213
  xml += this.buildPersonaXml(agent.persona);
204
214
 
215
+ // Memories section (if exists)
216
+ if (agent.memories) {
217
+ xml += this.buildMemoriesXml(agent.memories);
218
+ }
219
+
205
220
  // Prompts section (if exists)
206
221
  if (agent.prompts) {
207
222
  xml += this.buildPromptsXml(agent.prompts);
@@ -209,7 +224,7 @@ class YamlXmlBuilder {
209
224
 
210
225
  // Menu section (support both 'menu' and legacy 'commands')
211
226
  const menuItems = agent.menu || agent.commands || [];
212
- xml += this.buildCommandsXml(menuItems);
227
+ xml += this.buildCommandsXml(menuItems, buildMetadata.forWebBundle);
213
228
 
214
229
  xml += '</agent>\n';
215
230
  xml += '```\n';
@@ -268,19 +283,54 @@ class YamlXmlBuilder {
268
283
  return xml;
269
284
  }
270
285
 
286
+ /**
287
+ * Build memories XML section
288
+ */
289
+ buildMemoriesXml(memories) {
290
+ if (!memories || memories.length === 0) return '';
291
+
292
+ let xml = ' <memories>\n';
293
+
294
+ for (const memory of memories) {
295
+ xml += ` <memory>${this.escapeXml(memory)}</memory>\n`;
296
+ }
297
+
298
+ xml += ' </memories>\n';
299
+
300
+ return xml;
301
+ }
302
+
271
303
  /**
272
304
  * Build prompts XML section
305
+ * Handles both array format and object/dictionary format
273
306
  */
274
307
  buildPromptsXml(prompts) {
275
- if (!prompts || prompts.length === 0) return '';
308
+ if (!prompts) return '';
309
+
310
+ // Handle object/dictionary format: { promptId: 'content', ... }
311
+ // Convert to array format for processing
312
+ let promptsArray = prompts;
313
+ if (!Array.isArray(prompts)) {
314
+ // Check if it's an object with no length property (dictionary format)
315
+ if (typeof prompts === 'object' && prompts.length === undefined) {
316
+ promptsArray = Object.entries(prompts).map(([id, content]) => ({
317
+ id: id,
318
+ content: content,
319
+ }));
320
+ } else {
321
+ return ''; // Not a valid prompts format
322
+ }
323
+ }
324
+
325
+ if (promptsArray.length === 0) return '';
276
326
 
277
327
  let xml = ' <prompts>\n';
278
328
 
279
- for (const prompt of prompts) {
329
+ for (const prompt of promptsArray) {
280
330
  xml += ` <prompt id="${prompt.id || ''}">\n`;
281
- xml += ` <![CDATA[\n`;
282
- xml += ` ${prompt.content || ''}\n`;
283
- xml += ` ]]>\n`;
331
+ xml += ` <content>\n`;
332
+ xml += `${this.escapeXml(prompt.content || '')}\n`;
333
+ xml += ` </content>\n`;
284
334
  xml += ` </prompt>\n`;
285
335
  }
286
336
 
@@ -292,8 +342,10 @@ class YamlXmlBuilder {
292
342
  /**
293
343
  * Build menu XML section (renamed from commands for clarity)
294
344
  * Auto-injects *help and *exit, adds * prefix to all triggers
345
+ * @param {Array} menuItems - Menu items from YAML
346
+ * @param {boolean} forWebBundle - Whether building for web bundle
295
347
  */
296
- buildCommandsXml(menuItems) {
348
+ buildCommandsXml(menuItems, forWebBundle = false) {
297
349
  let xml = ' <menu>\n';
298
350
 
299
351
  // Always inject *help first
@@ -302,6 +354,14 @@ class YamlXmlBuilder {
302
354
  // Add user-defined menu items with * prefix
303
355
  if (menuItems && menuItems.length > 0) {
304
356
  for (const item of menuItems) {
357
+ // Skip ide-only items when building for web bundles
358
+ if (forWebBundle && item['ide-only'] === true) {
359
+ continue;
360
+ }
361
+ // Skip web-only items when NOT building for web bundles (i.e., IDE/local installation)
362
+ if (!forWebBundle && item['web-only'] === true) {
363
+ continue;
364
+ }
305
365
  // Build command attributes - add * prefix if not present
306
366
  let trigger = item.trigger || '';
307
367
  if (!trigger.startsWith('*')) {
@@ -311,7 +371,15 @@ class YamlXmlBuilder {
311
371
  const attrs = [`cmd="${trigger}"`];
312
372
 
313
373
  // Add handler attributes
314
- if (item.workflow) attrs.push(`workflow="${item.workflow}"`);
374
+ // If workflow-install exists, use its value for workflow attribute (vendoring)
375
+ // workflow-install is build-time metadata - tells installer where to copy workflows
376
+ // The final XML should only have workflow pointing to the install location
377
+ if (item['workflow-install']) {
378
+ attrs.push(`workflow="${item['workflow-install']}"`);
379
+ } else if (item.workflow) {
380
+ attrs.push(`workflow="${item.workflow}"`);
381
+ }
382
+
315
383
  if (item['validate-workflow']) attrs.push(`validate-workflow="${item['validate-workflow']}"`);
316
384
  if (item.exec) attrs.push(`exec="${item.exec}"`);
317
385
  if (item.tmpl) attrs.push(`tmpl="${item.tmpl}"`);
@@ -88,6 +88,7 @@ function buildAgentSchema(expectedModule) {
88
88
  critical_actions: z.array(createNonEmptyString('agent.critical_actions[]')).optional(),
89
89
  menu: z.array(buildMenuItemSchema()).min(1, { message: 'agent.menu must include at least one entry' }),
90
90
  prompts: z.array(buildPromptSchema()).optional(),
91
+ webskip: z.boolean().optional(),
91
92
  })
92
93
  .strict();
93
94
  }
@@ -142,9 +143,12 @@ function buildPersonaSchema() {
142
143
  role: createNonEmptyString('agent.persona.role'),
143
144
  identity: createNonEmptyString('agent.persona.identity'),
144
145
  communication_style: createNonEmptyString('agent.persona.communication_style'),
145
- principles: z
146
- .array(createNonEmptyString('agent.persona.principles[]'))
147
- .min(1, { message: 'agent.persona.principles must include at least one entry' }),
146
+ principles: z.union([
147
+ createNonEmptyString('agent.persona.principles'),
148
+ z
149
+ .array(createNonEmptyString('agent.persona.principles[]'))
150
+ .min(1, { message: 'agent.persona.principles must include at least one entry' }),
151
+ ]),
148
152
  })
149
153
  .strict();
150
154
  }
@@ -170,12 +174,17 @@ function buildMenuItemSchema() {
170
174
  trigger: createNonEmptyString('agent.menu[].trigger'),
171
175
  description: createNonEmptyString('agent.menu[].description'),
172
176
  workflow: createNonEmptyString('agent.menu[].workflow').optional(),
177
+ 'workflow-install': createNonEmptyString('agent.menu[].workflow-install').optional(),
173
178
  'validate-workflow': createNonEmptyString('agent.menu[].validate-workflow').optional(),
174
179
  exec: createNonEmptyString('agent.menu[].exec').optional(),
175
180
  action: createNonEmptyString('agent.menu[].action').optional(),
176
181
  tmpl: createNonEmptyString('agent.menu[].tmpl').optional(),
177
182
  data: createNonEmptyString('agent.menu[].data').optional(),
178
183
  'run-workflow': createNonEmptyString('agent.menu[].run-workflow').optional(),
184
+ checklist: createNonEmptyString('agent.menu[].checklist').optional(),
185
+ document: createNonEmptyString('agent.menu[].document').optional(),
186
+ 'ide-only': z.boolean().optional(),
187
+ 'web-only': z.boolean().optional(),
179
188
  })
180
189
  .strict()
181
190
  .superRefine((value, ctx) => {