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

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 (678) 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 +1203 -0
  9. package/CONTRIBUTING.md +1 -13
  10. package/README.md +330 -149
  11. package/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
  12. package/docs/agent-customization-guide.md +208 -0
  13. package/docs/document-sharding-guide.md +449 -0
  14. package/docs/ide-info/crush.md +1 -1
  15. package/docs/ide-info/cursor.md +7 -7
  16. package/docs/ide-info/iflow.md +3 -3
  17. package/docs/ide-info/opencode.md +1 -1
  18. package/docs/index.md +227 -0
  19. package/docs/installers-bundlers/ide-injections.md +2 -2
  20. package/docs/installers-bundlers/installers-modules-platforms-reference.md +80 -19
  21. package/docs/v4-to-v6-upgrade.md +21 -19
  22. package/docs/web-bundles-gemini-gpt-guide.md +473 -0
  23. package/eslint.config.mjs +2 -0
  24. package/package.json +5 -3
  25. package/src/core/_module-installer/install-config.yaml +17 -10
  26. package/src/core/_module-installer/installer.js +0 -8
  27. package/src/core/agents/bmad-master.agent.yaml +5 -5
  28. package/src/core/agents/bmad-web-orchestrator.agent.xml +8 -17
  29. package/src/core/tasks/advanced-elicitation-methods.csv +21 -0
  30. package/{bmad/core/tasks/adv-elicit.xml → src/core/tasks/advanced-elicitation.xml} +6 -4
  31. package/src/core/tasks/index-docs.xml +1 -1
  32. package/src/core/tasks/validate-workflow.xml +1 -1
  33. package/src/core/tasks/workflow.xml +126 -22
  34. package/src/core/tools/shard-doc.xml +54 -45
  35. package/src/core/workflows/brainstorming/README.md +6 -16
  36. package/src/core/workflows/brainstorming/instructions.md +6 -5
  37. package/src/core/workflows/brainstorming/template.md +4 -0
  38. package/src/core/workflows/brainstorming/workflow.yaml +8 -13
  39. package/src/core/workflows/party-mode/instructions.md +2 -7
  40. package/src/core/workflows/party-mode/workflow.yaml +11 -6
  41. package/src/modules/bmb/README.md +135 -73
  42. package/src/modules/bmb/_module-installer/install-config.yaml +9 -4
  43. package/src/modules/bmb/agents/bmad-builder.agent.yaml +11 -12
  44. package/src/modules/bmb/workflows/audit-workflow/checklist.md +5 -6
  45. package/src/modules/bmb/workflows/audit-workflow/instructions.md +6 -6
  46. package/src/modules/bmb/workflows/audit-workflow/workflow.yaml +2 -2
  47. package/src/modules/bmb/workflows/convert-legacy/README.md +5 -5
  48. package/src/modules/bmb/workflows/convert-legacy/checklist.md +2 -2
  49. package/src/modules/bmb/workflows/convert-legacy/instructions.md +17 -17
  50. package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +6 -10
  51. package/src/modules/bmb/workflows/create-agent/README.md +126 -243
  52. package/src/modules/bmb/workflows/create-agent/agent-architecture.md +15 -19
  53. package/src/modules/bmb/workflows/create-agent/agent-command-patterns.md +28 -28
  54. package/src/modules/bmb/workflows/create-agent/agent-types.md +15 -15
  55. package/src/modules/bmb/workflows/create-agent/checklist.md +3 -3
  56. package/src/modules/bmb/workflows/create-agent/instructions.md +67 -39
  57. package/src/modules/bmb/workflows/create-agent/workflow.yaml +14 -15
  58. package/src/modules/bmb/workflows/create-module/README.md +163 -154
  59. package/src/modules/bmb/workflows/create-module/checklist.md +1 -10
  60. package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +1 -1
  61. package/src/modules/bmb/workflows/create-module/instructions.md +13 -17
  62. package/src/modules/bmb/workflows/create-module/module-structure.md +39 -5
  63. package/src/modules/bmb/workflows/create-module/workflow.yaml +21 -13
  64. package/src/modules/bmb/workflows/create-workflow/README.md +4 -4
  65. package/src/modules/bmb/workflows/create-workflow/checklist.md +1 -1
  66. package/src/modules/bmb/workflows/create-workflow/instructions.md +46 -37
  67. package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +219 -42
  68. package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +4 -2
  69. package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +12 -16
  70. package/src/modules/bmb/workflows/create-workflow/workflow.yaml +7 -8
  71. package/src/modules/bmb/workflows/edit-agent/checklist.md +1 -1
  72. package/src/modules/bmb/workflows/edit-agent/instructions.md +2 -2
  73. package/src/modules/bmb/workflows/edit-agent/workflow.yaml +10 -12
  74. package/src/modules/bmb/workflows/edit-module/README.md +2 -2
  75. package/src/modules/bmb/workflows/edit-module/checklist.md +2 -2
  76. package/src/modules/bmb/workflows/edit-module/instructions.md +7 -5
  77. package/src/modules/bmb/workflows/edit-module/workflow.yaml +11 -13
  78. package/src/modules/bmb/workflows/edit-workflow/instructions.md +4 -4
  79. package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +6 -8
  80. package/src/modules/bmb/workflows/module-brief/README.md +2 -2
  81. package/src/modules/bmb/workflows/module-brief/checklist.md +2 -2
  82. package/src/modules/bmb/workflows/module-brief/instructions.md +3 -2
  83. package/src/modules/bmb/workflows/module-brief/workflow.yaml +12 -7
  84. package/src/modules/bmb/workflows/redoc/README.md +5 -5
  85. package/src/modules/bmb/workflows/redoc/instructions.md +1 -1
  86. package/src/modules/bmb/workflows/redoc/workflow.yaml +1 -1
  87. package/src/modules/bmgd/README.md +208 -0
  88. package/src/modules/bmgd/_module-installer/install-config.yaml +54 -0
  89. package/src/modules/bmgd/agents/game-architect.agent.yaml +33 -0
  90. package/src/modules/bmgd/agents/game-designer.agent.yaml +40 -0
  91. package/src/modules/bmgd/agents/game-dev.agent.yaml +40 -0
  92. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +75 -0
  93. package/src/modules/bmgd/teams/default-party.csv +10 -0
  94. package/src/modules/{bmm → bmgd}/teams/team-gamedev.yaml +5 -1
  95. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +130 -0
  96. package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/workflow.yaml +10 -10
  97. package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/instructions.md +44 -28
  98. package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/workflow.yaml +9 -17
  99. package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/instructions-gdd.md +58 -31
  100. package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +81 -0
  101. package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/instructions-narrative.md +75 -28
  102. package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/workflow.yaml +6 -12
  103. package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-patterns.yaml +321 -0
  104. package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-template.md +103 -0
  105. package/src/modules/bmgd/workflows/3-technical/game-architecture/checklist.md +240 -0
  106. package/src/modules/bmgd/workflows/3-technical/game-architecture/decision-catalog.yaml +222 -0
  107. package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +701 -0
  108. package/src/modules/bmgd/workflows/3-technical/game-architecture/pattern-categories.csv +13 -0
  109. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +69 -0
  110. package/src/modules/bmgd/workflows/4-production/code-review/backlog_template.md +12 -0
  111. package/src/modules/bmgd/workflows/4-production/code-review/checklist.md +22 -0
  112. package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +398 -0
  113. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +61 -0
  114. package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +279 -0
  115. package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +206 -0
  116. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +58 -0
  117. package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +240 -0
  118. package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +256 -0
  119. package/src/modules/bmgd/workflows/4-production/create-story/template.md +51 -0
  120. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +74 -0
  121. package/src/modules/bmgd/workflows/4-production/dev-story/checklist.md +38 -0
  122. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +267 -0
  123. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +58 -0
  124. package/src/modules/bmgd/workflows/4-production/epic-tech-context/checklist.md +17 -0
  125. package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +164 -0
  126. package/src/modules/bmgd/workflows/4-production/epic-tech-context/template.md +76 -0
  127. package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +58 -0
  128. package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +1443 -0
  129. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +57 -0
  130. package/src/modules/bmgd/workflows/4-production/sprint-planning/checklist.md +33 -0
  131. package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +234 -0
  132. package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +55 -0
  133. package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +51 -0
  134. package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +16 -0
  135. package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +34 -0
  136. package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +209 -0
  137. package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +63 -0
  138. package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +111 -0
  139. package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +28 -0
  140. package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +117 -0
  141. package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +25 -0
  142. package/src/modules/bmm/README.md +79 -92
  143. package/src/modules/bmm/_module-installer/install-config.yaml +9 -23
  144. package/src/modules/bmm/_module-installer/installer.js +2 -2
  145. package/src/modules/bmm/agents/analyst.agent.yaml +25 -19
  146. package/src/modules/bmm/agents/architect.agent.yaml +20 -19
  147. package/src/modules/bmm/agents/dev.agent.yaml +12 -15
  148. package/src/modules/bmm/agents/frame-expert.agent.yaml +42 -0
  149. package/src/modules/bmm/agents/pm.agent.yaml +36 -22
  150. package/src/modules/bmm/agents/sm.agent.yaml +30 -24
  151. package/src/modules/bmm/agents/tea.agent.yaml +25 -17
  152. package/src/modules/bmm/agents/tech-writer.agent.yaml +68 -0
  153. package/src/modules/bmm/agents/ux-designer.agent.yaml +18 -12
  154. package/src/modules/bmm/docs/README.md +236 -0
  155. package/src/modules/bmm/docs/agents-guide.md +1058 -0
  156. package/src/modules/bmm/docs/brownfield-guide.md +762 -0
  157. package/src/modules/bmm/docs/enterprise-agentic-development.md +686 -0
  158. package/src/modules/bmm/docs/faq.md +588 -0
  159. package/src/modules/bmm/docs/glossary.md +320 -0
  160. package/src/modules/bmm/docs/party-mode.md +224 -0
  161. package/src/modules/bmm/docs/quick-spec-flow.md +652 -0
  162. package/src/modules/bmm/docs/quick-start.md +376 -0
  163. package/src/modules/bmm/docs/scale-adaptive-system.md +612 -0
  164. package/src/modules/bmm/docs/test-architecture.md +396 -0
  165. package/src/modules/bmm/{workflows/3-solutioning/architecture/readme.md → docs/workflow-architecture-reference.md} +132 -84
  166. package/src/modules/bmm/{workflows/document-project/README.md → docs/workflow-document-project-reference.md} +49 -4
  167. package/src/modules/bmm/docs/workflows-analysis.md +370 -0
  168. package/src/modules/bmm/docs/workflows-implementation.md +286 -0
  169. package/src/modules/bmm/docs/workflows-planning.md +612 -0
  170. package/src/modules/bmm/docs/workflows-solutioning.md +554 -0
  171. package/src/modules/bmm/teams/default-party.csv +20 -0
  172. package/src/modules/bmm/teams/team-fullstack.yaml +2 -0
  173. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +45 -24
  174. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +8 -8
  175. package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +425 -0
  176. package/src/modules/bmm/workflows/1-analysis/domain-research/template.md +180 -0
  177. package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +56 -0
  178. package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +435 -232
  179. package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +93 -77
  180. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +32 -14
  181. package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +144 -0
  182. package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +249 -0
  183. package/src/modules/bmm/workflows/1-analysis/research/checklist.md +156 -59
  184. package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +70 -65
  185. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +205 -143
  186. package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +55 -46
  187. package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +116 -83
  188. package/src/modules/bmm/workflows/1-analysis/research/template-market.md +37 -1
  189. package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +36 -1
  190. package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +25 -12
  191. package/src/modules/bmm/workflows/2-plan-workflows/create-epics-and-stories/epics-template.md +80 -0
  192. package/src/modules/bmm/workflows/2-plan-workflows/create-epics-and-stories/instructions.md +616 -0
  193. package/src/modules/bmm/workflows/2-plan-workflows/create-epics-and-stories/workflow.yaml +63 -0
  194. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +51 -26
  195. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +67 -16
  196. package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +292 -63
  197. package/src/modules/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
  198. package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +544 -290
  199. package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +165 -23
  200. package/src/modules/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
  201. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +50 -18
  202. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +146 -36
  203. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +67 -4
  204. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +436 -0
  205. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +874 -163
  206. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +132 -6
  207. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +54 -20
  208. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +36 -28
  209. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -26
  210. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +1 -1
  211. package/src/modules/bmm/workflows/3-solutioning/architecture/checklist.md +5 -9
  212. package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +215 -150
  213. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +72 -26
  214. package/src/modules/bmm/workflows/3-solutioning/{solutioning-gate-check → implementation-readiness}/checklist.md +7 -13
  215. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/instructions.md +332 -0
  216. package/src/modules/bmm/workflows/3-solutioning/{solutioning-gate-check → implementation-readiness}/template.md +1 -1
  217. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/workflow.yaml +64 -0
  218. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +25 -18
  219. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +31 -26
  220. package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +1 -1
  221. package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +7 -2
  222. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +38 -25
  223. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +22 -18
  224. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +38 -14
  225. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +8 -3
  226. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +35 -5
  227. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/checklist.md +1 -1
  228. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +10 -6
  229. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +40 -16
  230. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +1207 -243
  231. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +38 -26
  232. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +28 -15
  233. package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +1 -1
  234. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +16 -6
  235. package/src/modules/bmm/workflows/4-implementation/story-context/checklist.md +1 -1
  236. package/src/modules/bmm/workflows/4-implementation/story-context/context-template.xml +1 -1
  237. package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +23 -15
  238. package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +39 -8
  239. package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +1 -1
  240. package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +5 -4
  241. package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +6 -6
  242. package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +5 -7
  243. package/src/modules/bmm/workflows/document-project/checklist.md +1 -1
  244. package/src/modules/bmm/workflows/document-project/instructions.md +5 -5
  245. package/src/modules/bmm/workflows/document-project/workflow.yaml +2 -7
  246. package/src/modules/bmm/workflows/document-project/workflows/deep-dive-instructions.md +4 -4
  247. package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +5 -5
  248. package/src/modules/bmm/workflows/document-project/workflows/full-scan-instructions.md +13 -13
  249. package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +5 -5
  250. package/src/modules/bmm/workflows/frame-expert/_shared/excalidraw-helpers.md +127 -0
  251. package/src/modules/bmm/workflows/frame-expert/_shared/excalidraw-library.json +90 -0
  252. package/src/modules/bmm/workflows/frame-expert/_shared/excalidraw-templates.yaml +127 -0
  253. package/src/modules/bmm/workflows/frame-expert/_shared/validate-json-instructions.md +79 -0
  254. package/src/modules/bmm/workflows/frame-expert/create-dataflow/checklist.md +39 -0
  255. package/src/modules/bmm/workflows/frame-expert/create-dataflow/instructions.md +131 -0
  256. package/src/modules/bmm/workflows/frame-expert/create-dataflow/workflow.yaml +24 -0
  257. package/src/modules/bmm/workflows/frame-expert/create-diagram/checklist.md +43 -0
  258. package/src/modules/bmm/workflows/frame-expert/create-diagram/instructions.md +142 -0
  259. package/src/modules/bmm/workflows/frame-expert/create-diagram/workflow.yaml +25 -0
  260. package/src/modules/bmm/workflows/frame-expert/create-flowchart/checklist.md +49 -0
  261. package/src/modules/bmm/workflows/frame-expert/create-flowchart/instructions.md +242 -0
  262. package/src/modules/bmm/workflows/frame-expert/create-flowchart/workflow.yaml +28 -0
  263. package/src/modules/bmm/workflows/frame-expert/create-wireframe/checklist.md +38 -0
  264. package/src/modules/bmm/workflows/frame-expert/create-wireframe/instructions.md +133 -0
  265. package/src/modules/bmm/workflows/frame-expert/create-wireframe/workflow.yaml +24 -0
  266. package/src/modules/bmm/workflows/techdoc/documentation-standards.md +262 -0
  267. package/src/modules/bmm/workflows/testarch/atdd/atdd-checklist-template.md +2 -2
  268. package/src/modules/bmm/workflows/testarch/atdd/instructions.md +2 -2
  269. package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +2 -9
  270. package/src/modules/bmm/workflows/testarch/automate/instructions.md +2 -2
  271. package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +2 -11
  272. package/src/modules/bmm/workflows/testarch/ci/checklist.md +4 -4
  273. package/src/modules/bmm/workflows/testarch/ci/instructions.md +2 -2
  274. package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +2 -10
  275. package/src/modules/bmm/workflows/testarch/framework/checklist.md +4 -4
  276. package/src/modules/bmm/workflows/testarch/framework/instructions.md +2 -2
  277. package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +2 -8
  278. package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +1 -1
  279. package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +2 -11
  280. package/src/modules/bmm/workflows/testarch/test-design/checklist.md +4 -4
  281. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +175 -14
  282. package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +4 -4
  283. package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +7 -11
  284. package/src/modules/bmm/workflows/testarch/test-review/instructions.md +1 -1
  285. package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +2 -9
  286. package/src/modules/bmm/workflows/testarch/trace/instructions.md +9 -9
  287. package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +2 -13
  288. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +249 -212
  289. package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +6 -5
  290. package/src/modules/bmm/workflows/workflow-status/instructions.md +177 -113
  291. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +138 -0
  292. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +126 -0
  293. package/src/modules/bmm/workflows/workflow-status/paths/game-design.yaml +42 -65
  294. package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +122 -0
  295. package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +113 -0
  296. package/src/modules/bmm/workflows/workflow-status/paths/{brownfield-level-1.yaml → quick-flow-brownfield.yaml} +18 -18
  297. package/src/modules/bmm/workflows/workflow-status/paths/{greenfield-level-1.yaml → quick-flow-greenfield.yaml} +16 -18
  298. package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +1 -1
  299. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -0
  300. package/src/modules/bmm/workflows/workflow-status/workflow.yaml +5 -5
  301. package/src/modules/cis/README.md +153 -0
  302. package/src/modules/cis/_module-installer/install-config.yaml +6 -4
  303. package/src/modules/cis/agents/README.md +1 -1
  304. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +13 -8
  305. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +13 -8
  306. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +13 -8
  307. package/src/modules/cis/agents/innovation-strategist.agent.yaml +13 -8
  308. package/src/modules/cis/agents/storyteller.agent.yaml +13 -8
  309. package/src/modules/cis/teams/creative-squad.yaml +1 -0
  310. package/src/modules/cis/teams/default-party.csv +11 -0
  311. package/src/modules/cis/workflows/README.md +102 -30
  312. package/src/modules/cis/workflows/design-thinking/instructions.md +4 -2
  313. package/src/modules/cis/workflows/design-thinking/workflow.yaml +7 -12
  314. package/src/modules/cis/workflows/innovation-strategy/instructions.md +7 -5
  315. package/src/modules/cis/workflows/innovation-strategy/template.md +3 -3
  316. package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +7 -12
  317. package/src/modules/cis/workflows/problem-solving/instructions.md +4 -2
  318. package/src/modules/cis/workflows/problem-solving/workflow.yaml +7 -12
  319. package/src/modules/cis/workflows/storytelling/instructions.md +14 -4
  320. package/src/modules/cis/workflows/storytelling/workflow.yaml +7 -12
  321. package/src/utility/models/action-command-header.md +0 -0
  322. package/src/utility/models/agent-activation-ide.xml +3 -3
  323. package/src/utility/models/agent-activation-web.xml +4 -4
  324. package/src/utility/models/agent-command-header.md +1 -0
  325. package/src/utility/models/fragments/activation-steps.xml +3 -2
  326. package/src/utility/models/fragments/handler-validate-workflow.xml +1 -1
  327. package/src/utility/models/fragments/handler-workflow.xml +1 -1
  328. package/src/utility/models/fragments/web-bundle-activation-steps.xml +3 -3
  329. package/test/test-installation-components.js +214 -0
  330. package/tools/bmad-npx-wrapper.js +10 -98
  331. package/tools/cli/README.md +50 -32
  332. package/tools/cli/bundlers/web-bundler.js +322 -26
  333. package/tools/cli/commands/install.js +2 -5
  334. package/tools/cli/installers/lib/core/config-collector.js +279 -39
  335. package/tools/cli/installers/lib/core/detector.js +62 -7
  336. package/tools/cli/installers/lib/core/ide-config-manager.js +3 -1
  337. package/tools/cli/installers/lib/core/installer.js +219 -46
  338. package/tools/cli/installers/lib/core/manifest-generator.js +33 -117
  339. package/tools/cli/installers/lib/core/manifest.js +6 -2
  340. package/tools/cli/installers/lib/ide/_base-ide.js +57 -3
  341. package/tools/cli/installers/lib/ide/auggie.js +81 -238
  342. package/tools/cli/installers/lib/ide/claude-code.js +47 -25
  343. package/tools/cli/installers/lib/ide/cline.js +15 -18
  344. package/tools/cli/installers/lib/ide/codex.js +17 -48
  345. package/tools/cli/installers/lib/ide/crush.js +14 -50
  346. package/tools/cli/installers/lib/ide/cursor.js +68 -8
  347. package/tools/cli/installers/lib/ide/gemini.js +87 -37
  348. package/tools/cli/installers/lib/ide/github-copilot.js +47 -35
  349. package/tools/cli/installers/lib/ide/iflow.js +13 -30
  350. package/tools/cli/installers/lib/ide/kilo.js +20 -16
  351. package/tools/cli/installers/lib/ide/manager.js +15 -0
  352. package/tools/cli/installers/lib/ide/opencode.js +16 -17
  353. package/tools/cli/installers/lib/ide/qwen.js +39 -11
  354. package/tools/cli/installers/lib/ide/roo.js +27 -62
  355. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +90 -0
  356. package/tools/cli/installers/lib/ide/{task-tool-command-generator.js → shared/task-tool-command-generator.js} +1 -1
  357. package/tools/cli/installers/lib/ide/{workflow-command-generator.js → shared/workflow-command-generator.js} +11 -9
  358. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
  359. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
  360. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
  361. package/tools/cli/installers/lib/ide/{workflow-command-template.md → templates/workflow-command-template.md} +3 -5
  362. package/tools/cli/installers/lib/ide/trae.js +20 -32
  363. package/tools/cli/installers/lib/ide/windsurf.js +18 -8
  364. package/tools/cli/installers/lib/modules/manager.js +213 -7
  365. package/tools/cli/lib/cli-utils.js +52 -50
  366. package/tools/cli/lib/config.js +3 -1
  367. package/tools/cli/lib/ui.js +34 -17
  368. package/tools/cli/lib/xml-handler.js +1 -0
  369. package/tools/cli/lib/yaml-format.js +2 -1
  370. package/tools/cli/lib/yaml-xml-builder.js +76 -8
  371. package/tools/schema/agent.js +12 -3
  372. package/v6-open-items.md +3 -9
  373. package/.claude/commands/bmad/bmb/agents/bmad-builder.md +0 -70
  374. package/.claude/commands/bmad/bmb/workflows/README.md +0 -67
  375. package/.claude/commands/bmad/bmb/workflows/audit-workflow.md +0 -15
  376. package/.claude/commands/bmad/bmb/workflows/convert-legacy.md +0 -15
  377. package/.claude/commands/bmad/bmb/workflows/create-agent.md +0 -15
  378. package/.claude/commands/bmad/bmb/workflows/create-module.md +0 -15
  379. package/.claude/commands/bmad/bmb/workflows/create-workflow.md +0 -15
  380. package/.claude/commands/bmad/bmb/workflows/edit-agent.md +0 -15
  381. package/.claude/commands/bmad/bmb/workflows/edit-module.md +0 -15
  382. package/.claude/commands/bmad/bmb/workflows/edit-workflow.md +0 -15
  383. package/.claude/commands/bmad/bmb/workflows/module-brief.md +0 -15
  384. package/.claude/commands/bmad/bmb/workflows/redoc.md +0 -15
  385. package/.claude/commands/bmad/bmd/agents/cli-chief.md +0 -108
  386. package/.claude/commands/bmad/bmd/agents/doc-keeper.md +0 -115
  387. package/.claude/commands/bmad/bmd/agents/release-chief.md +0 -109
  388. package/.claude/commands/bmad/core/agents/bmad-master.md +0 -71
  389. package/.claude/commands/bmad/core/tasks/index-docs.md +0 -9
  390. package/.claude/commands/bmad/core/tools/shard-doc.md +0 -9
  391. package/.claude/commands/bmad/core/workflows/README.md +0 -27
  392. package/.claude/commands/bmad/core/workflows/brainstorming.md +0 -15
  393. package/.claude/commands/bmad/core/workflows/party-mode.md +0 -15
  394. package/.claude/hooks/bmad-tts-injector.sh +0 -415
  395. package/.claude/hooks/bmad-voice-manager.sh +0 -511
  396. package/.claude/hooks/check-output-style.sh +0 -112
  397. package/.claude/hooks/download-extra-voices.sh +0 -244
  398. package/.claude/hooks/github-star-reminder.sh +0 -154
  399. package/.claude/hooks/language-manager.sh +0 -392
  400. package/.claude/hooks/learn-manager.sh +0 -475
  401. package/.claude/hooks/personality-manager.sh +0 -438
  402. package/.claude/hooks/piper-download-voices.sh +0 -165
  403. package/.claude/hooks/piper-installer.sh +0 -178
  404. package/.claude/hooks/piper-multispeaker-registry.sh +0 -165
  405. package/.claude/hooks/piper-voice-manager.sh +0 -293
  406. package/.claude/hooks/play-tts-elevenlabs.sh +0 -404
  407. package/.claude/hooks/play-tts-piper.sh +0 -338
  408. package/.claude/hooks/play-tts.sh +0 -100
  409. package/.claude/hooks/provider-commands.sh +0 -540
  410. package/.claude/hooks/provider-manager.sh +0 -298
  411. package/.claude/hooks/replay-target-audio.sh +0 -95
  412. package/.claude/hooks/sentiment-manager.sh +0 -201
  413. package/.claude/hooks/speed-manager.sh +0 -291
  414. package/.claude/hooks/voice-manager.sh +0 -594
  415. package/.claude/hooks/voices-config.sh +0 -70
  416. package/.claude/settings.local.json +0 -41
  417. package/bmad/_cfg/agent-manifest.csv +0 -7
  418. package/bmad/_cfg/agents/bmb-bmad-builder.customize.yaml +0 -42
  419. package/bmad/_cfg/agents/bmd-cli-chief.customize.yaml +0 -32
  420. package/bmad/_cfg/agents/bmd-doc-keeper.customize.yaml +0 -42
  421. package/bmad/_cfg/agents/bmd-release-chief.customize.yaml +0 -42
  422. package/bmad/_cfg/agents/core-bmad-master.customize.yaml +0 -42
  423. package/bmad/_cfg/files-manifest.csv +0 -83
  424. package/bmad/_cfg/manifest.yaml +0 -12
  425. package/bmad/_cfg/task-manifest.csv +0 -5
  426. package/bmad/_cfg/tool-manifest.csv +0 -2
  427. package/bmad/_cfg/workflow-manifest.csv +0 -15
  428. package/bmad/bmb/README.md +0 -132
  429. package/bmad/bmb/agents/bmad-builder.md +0 -70
  430. package/bmad/bmb/config.yaml +0 -14
  431. package/bmad/bmb/workflows/audit-workflow/checklist.md +0 -143
  432. package/bmad/bmb/workflows/audit-workflow/instructions.md +0 -341
  433. package/bmad/bmb/workflows/audit-workflow/template.md +0 -118
  434. package/bmad/bmb/workflows/audit-workflow/workflow.yaml +0 -23
  435. package/bmad/bmb/workflows/audit-workflow/workflow.yaml.bak +0 -21
  436. package/bmad/bmb/workflows/convert-legacy/README.md +0 -262
  437. package/bmad/bmb/workflows/convert-legacy/checklist.md +0 -205
  438. package/bmad/bmb/workflows/convert-legacy/instructions.md +0 -377
  439. package/bmad/bmb/workflows/convert-legacy/workflow.yaml +0 -32
  440. package/bmad/bmb/workflows/create-agent/README.md +0 -320
  441. package/bmad/bmb/workflows/create-agent/agent-architecture.md +0 -419
  442. package/bmad/bmb/workflows/create-agent/agent-architecture.md.bak +0 -412
  443. package/bmad/bmb/workflows/create-agent/agent-command-patterns.md +0 -759
  444. package/bmad/bmb/workflows/create-agent/agent-command-patterns.md.bak +0 -759
  445. package/bmad/bmb/workflows/create-agent/agent-types.md +0 -292
  446. package/bmad/bmb/workflows/create-agent/brainstorm-context.md +0 -174
  447. package/bmad/bmb/workflows/create-agent/checklist.md +0 -62
  448. package/bmad/bmb/workflows/create-agent/communication-styles.md +0 -202
  449. package/bmad/bmb/workflows/create-agent/instructions.md +0 -430
  450. package/bmad/bmb/workflows/create-agent/workflow.yaml +0 -37
  451. package/bmad/bmb/workflows/create-module/README.md +0 -220
  452. package/bmad/bmb/workflows/create-module/README.md.bak +0 -218
  453. package/bmad/bmb/workflows/create-module/brainstorm-context.md +0 -137
  454. package/bmad/bmb/workflows/create-module/checklist.md +0 -244
  455. package/bmad/bmb/workflows/create-module/checklist.md.bak +0 -245
  456. package/bmad/bmb/workflows/create-module/installer-templates/install-config.yaml +0 -92
  457. package/bmad/bmb/workflows/create-module/installer-templates/installer.js +0 -231
  458. package/bmad/bmb/workflows/create-module/installer-templates/installer.js.bak +0 -231
  459. package/bmad/bmb/workflows/create-module/instructions.md +0 -581
  460. package/bmad/bmb/workflows/create-module/instructions.md.bak +0 -521
  461. package/bmad/bmb/workflows/create-module/module-structure.md +0 -366
  462. package/bmad/bmb/workflows/create-module/module-structure.md.bak +0 -310
  463. package/bmad/bmb/workflows/create-module/workflow.yaml +0 -42
  464. package/bmad/bmb/workflows/create-module/workflow.yaml.bak +0 -40
  465. package/bmad/bmb/workflows/create-workflow/README.md +0 -277
  466. package/bmad/bmb/workflows/create-workflow/brainstorm-context.md +0 -197
  467. package/bmad/bmb/workflows/create-workflow/checklist.md +0 -94
  468. package/bmad/bmb/workflows/create-workflow/instructions.md +0 -716
  469. package/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md +0 -1150
  470. package/bmad/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -24
  471. package/bmad/bmb/workflows/create-workflow/workflow-template/instructions.md +0 -13
  472. package/bmad/bmb/workflows/create-workflow/workflow-template/template.md +0 -9
  473. package/bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml +0 -39
  474. package/bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml.bak +0 -39
  475. package/bmad/bmb/workflows/create-workflow/workflow.yaml +0 -40
  476. package/bmad/bmb/workflows/create-workflow/workflow.yaml.bak +0 -38
  477. package/bmad/bmb/workflows/edit-agent/README.md +0 -112
  478. package/bmad/bmb/workflows/edit-agent/checklist.md +0 -112
  479. package/bmad/bmb/workflows/edit-agent/instructions.md +0 -290
  480. package/bmad/bmb/workflows/edit-agent/workflow.yaml +0 -33
  481. package/bmad/bmb/workflows/edit-module/README.md +0 -187
  482. package/bmad/bmb/workflows/edit-module/checklist.md +0 -165
  483. package/bmad/bmb/workflows/edit-module/instructions.md +0 -339
  484. package/bmad/bmb/workflows/edit-module/workflow.yaml +0 -34
  485. package/bmad/bmb/workflows/edit-workflow/README.md +0 -119
  486. package/bmad/bmb/workflows/edit-workflow/checklist.md +0 -70
  487. package/bmad/bmb/workflows/edit-workflow/instructions.md +0 -342
  488. package/bmad/bmb/workflows/edit-workflow/workflow.yaml +0 -27
  489. package/bmad/bmb/workflows/edit-workflow/workflow.yaml.bak +0 -25
  490. package/bmad/bmb/workflows/module-brief/README.md +0 -264
  491. package/bmad/bmb/workflows/module-brief/checklist.md +0 -116
  492. package/bmad/bmb/workflows/module-brief/instructions.md +0 -267
  493. package/bmad/bmb/workflows/module-brief/template.md +0 -275
  494. package/bmad/bmb/workflows/module-brief/workflow.yaml +0 -29
  495. package/bmad/bmb/workflows/module-brief/workflow.yaml.bak +0 -27
  496. package/bmad/bmb/workflows/redoc/README.md +0 -87
  497. package/bmad/bmb/workflows/redoc/checklist.md +0 -99
  498. package/bmad/bmb/workflows/redoc/instructions.md +0 -265
  499. package/bmad/bmb/workflows/redoc/workflow.yaml +0 -32
  500. package/bmad/bmb/workflows/redoc/workflow.yaml.bak +0 -31
  501. package/bmad/bmd/README.md +0 -193
  502. package/bmad/bmd/README.md.bak +0 -193
  503. package/bmad/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
  504. package/bmad/bmd/agents/cli-chief-sidecar/instructions.md.bak +0 -102
  505. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
  506. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md.bak +0 -68
  507. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
  508. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md.bak +0 -123
  509. package/bmad/bmd/agents/cli-chief-sidecar/memories.md +0 -53
  510. package/bmad/bmd/agents/cli-chief-sidecar/memories.md.bak +0 -53
  511. package/bmad/bmd/agents/cli-chief.md +0 -108
  512. package/bmad/bmd/agents/cli-chief.md.bak +0 -108
  513. package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
  514. package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md.bak +0 -177
  515. package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
  516. package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md.bak +0 -81
  517. package/bmad/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
  518. package/bmad/bmd/agents/doc-keeper-sidecar/memories.md.bak +0 -88
  519. package/bmad/bmd/agents/doc-keeper.md +0 -115
  520. package/bmad/bmd/agents/doc-keeper.md.bak +0 -115
  521. package/bmad/bmd/agents/release-chief-sidecar/instructions.md +0 -164
  522. package/bmad/bmd/agents/release-chief-sidecar/instructions.md.bak +0 -164
  523. package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
  524. package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md.bak +0 -82
  525. package/bmad/bmd/agents/release-chief-sidecar/memories.md +0 -73
  526. package/bmad/bmd/agents/release-chief-sidecar/memories.md.bak +0 -73
  527. package/bmad/bmd/agents/release-chief.md +0 -109
  528. package/bmad/bmd/agents/release-chief.md.bak +0 -109
  529. package/bmad/bmd/config.yaml +0 -10
  530. package/bmad/core/agents/bmad-master.md +0 -71
  531. package/bmad/core/agents/bmad-web-orchestrator.agent.xml +0 -122
  532. package/bmad/core/config.yaml +0 -9
  533. package/bmad/core/tasks/adv-elicit-methods.csv +0 -39
  534. package/bmad/core/tasks/index-docs.xml +0 -65
  535. package/bmad/core/tasks/validate-workflow.xml +0 -89
  536. package/bmad/core/tasks/workflow.xml +0 -174
  537. package/bmad/core/tools/shard-doc.xml +0 -100
  538. package/bmad/core/workflows/brainstorming/README.md +0 -271
  539. package/bmad/core/workflows/brainstorming/brain-methods.csv +0 -36
  540. package/bmad/core/workflows/brainstorming/instructions.md +0 -314
  541. package/bmad/core/workflows/brainstorming/template.md +0 -102
  542. package/bmad/core/workflows/brainstorming/workflow.yaml +0 -43
  543. package/bmad/core/workflows/party-mode/instructions.md +0 -188
  544. package/bmad/core/workflows/party-mode/workflow.yaml +0 -23
  545. package/bmad/docs/claude-code-instructions.md +0 -25
  546. package/bmad/docs/codex-instructions.md +0 -21
  547. package/bmd/README.md +0 -193
  548. package/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
  549. package/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
  550. package/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
  551. package/bmd/agents/cli-chief-sidecar/memories.md +0 -53
  552. package/bmd/agents/cli-chief.agent.yaml +0 -126
  553. package/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
  554. package/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
  555. package/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
  556. package/bmd/agents/doc-keeper.agent.yaml +0 -137
  557. package/bmd/agents/release-chief-sidecar/instructions.md +0 -164
  558. package/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
  559. package/bmd/agents/release-chief-sidecar/memories.md +0 -73
  560. package/bmd/agents/release-chief.agent.yaml +0 -127
  561. package/bmd/bmad-custom-module-installer-plan.md +0 -1176
  562. package/bmd/config.yaml +0 -12
  563. package/docs/bmad-brownfield-guide.md +0 -1260
  564. package/docs/conversion-report-shard-doc-2025-10-26.md +0 -188
  565. package/src/core/tasks/adv-elicit.xml +0 -104
  566. package/src/modules/bmm/agents/game-architect.agent.yaml +0 -35
  567. package/src/modules/bmm/agents/game-designer.agent.yaml +0 -47
  568. package/src/modules/bmm/agents/game-dev.agent.yaml +0 -39
  569. package/src/modules/bmm/sub-modules/claude-code/config.yaml +0 -5
  570. package/src/modules/bmm/sub-modules/claude-code/injections.yaml +0 -242
  571. package/src/modules/bmm/sub-modules/claude-code/readme.md +0 -87
  572. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/api-documenter.md +0 -102
  573. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/codebase-analyzer.md +0 -82
  574. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/data-analyst.md +0 -101
  575. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/pattern-detector.md +0 -84
  576. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/dependency-mapper.md +0 -83
  577. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/epic-optimizer.md +0 -81
  578. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/requirements-analyst.md +0 -61
  579. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/technical-decisions-curator.md +0 -168
  580. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/trend-spotter.md +0 -115
  581. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-journey-mapper.md +0 -123
  582. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-researcher.md +0 -72
  583. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/market-researcher.md +0 -51
  584. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/tech-debt-auditor.md +0 -106
  585. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/document-reviewer.md +0 -102
  586. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/technical-evaluator.md +0 -68
  587. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/test-coverage-analyzer.md +0 -108
  588. package/src/modules/bmm/tasks/daily-standup.xml +0 -85
  589. package/src/modules/bmm/tasks/retrospective.xml +0 -104
  590. package/src/modules/bmm/testarch/README.md +0 -311
  591. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/README.md +0 -38
  592. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/instructions.md +0 -109
  593. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/README.md +0 -29
  594. package/src/modules/bmm/workflows/1-analysis/game-brief/README.md +0 -221
  595. package/src/modules/bmm/workflows/1-analysis/product-brief/README.md +0 -180
  596. package/src/modules/bmm/workflows/1-analysis/research/README.md +0 -454
  597. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-competitor-analyzer.md +0 -259
  598. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-data-analyst.md +0 -190
  599. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-market-researcher.md +0 -337
  600. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-trend-spotter.md +0 -107
  601. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-user-researcher.md +0 -329
  602. package/src/modules/bmm/workflows/2-plan-workflows/README.md +0 -258
  603. package/src/modules/bmm/workflows/2-plan-workflows/gdd/README.md +0 -222
  604. package/src/modules/bmm/workflows/2-plan-workflows/gdd/workflow.yaml +0 -67
  605. package/src/modules/bmm/workflows/2-plan-workflows/prd/epics-template.md +0 -63
  606. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +0 -167
  607. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +0 -278
  608. package/src/modules/bmm/workflows/3-solutioning/README.md +0 -1
  609. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/README.md +0 -177
  610. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +0 -273
  611. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/validation-criteria.yaml +0 -189
  612. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +0 -40
  613. package/src/modules/bmm/workflows/4-implementation/README.md +0 -221
  614. package/src/modules/bmm/workflows/4-implementation/code-review/README.md +0 -69
  615. package/src/modules/bmm/workflows/4-implementation/correct-course/README.md +0 -73
  616. package/src/modules/bmm/workflows/4-implementation/create-story/README.md +0 -129
  617. package/src/modules/bmm/workflows/4-implementation/dev-story/AUDIT-REPORT.md +0 -367
  618. package/src/modules/bmm/workflows/4-implementation/dev-story/README.md +0 -206
  619. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/README.md +0 -195
  620. package/src/modules/bmm/workflows/4-implementation/retrospective/README.md +0 -77
  621. package/src/modules/bmm/workflows/4-implementation/sprint-planning/README.md +0 -156
  622. package/src/modules/bmm/workflows/4-implementation/story-context/README.md +0 -234
  623. package/src/modules/bmm/workflows/README.md +0 -577
  624. package/src/modules/bmm/workflows/document-project/templates/README.md +0 -38
  625. package/src/modules/bmm/workflows/testarch/README.md +0 -26
  626. package/src/modules/bmm/workflows/testarch/atdd/README.md +0 -672
  627. package/src/modules/bmm/workflows/testarch/automate/README.md +0 -869
  628. package/src/modules/bmm/workflows/testarch/ci/README.md +0 -493
  629. package/src/modules/bmm/workflows/testarch/framework/README.md +0 -340
  630. package/src/modules/bmm/workflows/testarch/nfr-assess/README.md +0 -469
  631. package/src/modules/bmm/workflows/testarch/test-design/README.md +0 -493
  632. package/src/modules/bmm/workflows/testarch/test-review/README.md +0 -775
  633. package/src/modules/bmm/workflows/testarch/trace/README.md +0 -802
  634. package/src/modules/bmm/workflows/workflow-status/README.md +0 -241
  635. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-0.yaml +0 -54
  636. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-2.yaml +0 -76
  637. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-3.yaml +0 -95
  638. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-4.yaml +0 -88
  639. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-0.yaml +0 -45
  640. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-2.yaml +0 -78
  641. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-3.yaml +0 -73
  642. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-4.yaml +0 -75
  643. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.md +0 -30
  644. package/src/modules/cis/readme.md +0 -86
  645. package/test/fixtures/agent-schema/invalid/persona/principles-as-string.agent.yaml +0 -23
  646. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-brain-methods.csv +0 -0
  647. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-context.md +0 -0
  648. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/checklist.md +0 -0
  649. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/template.md +0 -0
  650. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/checklist.md +0 -0
  651. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/action-platformer.md +0 -0
  652. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/adventure.md +0 -0
  653. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/card-game.md +0 -0
  654. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/fighting.md +0 -0
  655. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/horror.md +0 -0
  656. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/idle-incremental.md +0 -0
  657. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/metroidvania.md +0 -0
  658. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/moba.md +0 -0
  659. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/party-game.md +0 -0
  660. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/puzzle.md +0 -0
  661. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/racing.md +0 -0
  662. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/rhythm.md +0 -0
  663. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/roguelike.md +0 -0
  664. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/rpg.md +0 -0
  665. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/sandbox.md +0 -0
  666. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/shooter.md +0 -0
  667. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/simulation.md +0 -0
  668. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/sports.md +0 -0
  669. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/strategy.md +0 -0
  670. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/survival.md +0 -0
  671. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/text-based.md +0 -0
  672. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/tower-defense.md +0 -0
  673. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/turn-based-tactics.md +0 -0
  674. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types/visual-novel.md +0 -0
  675. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/game-types.csv +0 -0
  676. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/gdd/gdd-template.md +0 -0
  677. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/checklist.md +0 -0
  678. /package/src/modules/{bmm/workflows/2-plan-workflows → bmgd/workflows/2-design}/narrative/narrative-template.md +0 -0
@@ -33,6 +33,76 @@ class Installer {
33
33
  this.installedFiles = []; // Track all installed files
34
34
  }
35
35
 
36
+ /**
37
+ * Find the bmad installation directory in a project
38
+ * V6+ installations can use ANY folder name but ALWAYS have _cfg/manifest.yaml
39
+ * @param {string} projectDir - Project directory
40
+ * @returns {Promise<string>} Path to bmad directory
41
+ */
42
+ async findBmadDir(projectDir) {
43
+ // Check if project directory exists
44
+ if (!(await fs.pathExists(projectDir))) {
45
+ // Project doesn't exist yet, return default
46
+ return path.join(projectDir, 'bmad');
47
+ }
48
+
49
+ // V6+ strategy: Look for ANY directory with _cfg/manifest.yaml
50
+ // This is the definitive marker of a V6+ installation
51
+ try {
52
+ const entries = await fs.readdir(projectDir, { withFileTypes: true });
53
+ for (const entry of entries) {
54
+ if (entry.isDirectory()) {
55
+ const manifestPath = path.join(projectDir, entry.name, '_cfg', 'manifest.yaml');
56
+ if (await fs.pathExists(manifestPath)) {
57
+ // Found a V6+ installation
58
+ return path.join(projectDir, entry.name);
59
+ }
60
+ }
61
+ }
62
+ } catch {
63
+ // Ignore errors, fall through to default
64
+ }
65
+
66
+ // No V6+ installation found, return default
67
+ // This will be used for new installations
68
+ return path.join(projectDir, 'bmad');
69
+ }
70
+
71
+ /**
72
+ * Copy a file and replace {bmad_folder} placeholder with actual folder name
73
+ * @param {string} sourcePath - Source file path
74
+ * @param {string} targetPath - Target file path
75
+ * @param {string} bmadFolderName - The bmad folder name to use for replacement
76
+ */
77
+ async copyFileWithPlaceholderReplacement(sourcePath, targetPath, bmadFolderName) {
78
+ // List of text file extensions that should have placeholder replacement
79
+ const textExtensions = ['.md', '.yaml', '.yml', '.txt', '.json', '.js', '.ts', '.html', '.css', '.sh', '.bat', '.csv'];
80
+ const ext = path.extname(sourcePath).toLowerCase();
81
+
82
+ // Check if this is a text file that might contain placeholders
83
+ if (textExtensions.includes(ext)) {
84
+ try {
85
+ // Read the file content
86
+ let content = await fs.readFile(sourcePath, 'utf8');
87
+
88
+ // Replace {bmad_folder} placeholder with actual folder name
89
+ if (content.includes('{bmad_folder}')) {
90
+ content = content.replaceAll('{bmad_folder}', bmadFolderName);
91
+ }
92
+
93
+ // Write to target with replaced content
94
+ await fs.ensureDir(path.dirname(targetPath));
95
+ await fs.writeFile(targetPath, content, 'utf8');
96
+ } catch {
97
+ // If reading as text fails (might be binary despite extension), fall back to regular copy
98
+ await fs.copy(sourcePath, targetPath, { overwrite: true });
99
+ }
100
+ } else {
101
+ // Binary file or other file type - just copy directly
102
+ await fs.copy(sourcePath, targetPath, { overwrite: true });
103
+ }
104
+ }
105
+
36
106
  /**
37
107
  * Collect Tool/IDE configurations after module configuration
38
108
  * @param {string} projectDir - Project directory
@@ -61,7 +131,7 @@ class Installer {
61
131
  // Check for already configured IDEs
62
132
  const { Detector } = require('./detector');
63
133
  const detector = new Detector();
64
- const bmadDir = path.join(projectDir, 'bmad');
134
+ const bmadDir = path.join(projectDir, this.bmadFolderName || 'bmad');
65
135
 
66
136
  // During full reinstall, use the saved previous IDEs since bmad dir was deleted
67
137
  // Otherwise detect from existing installation
@@ -170,12 +240,10 @@ class Installer {
170
240
  // Display welcome message
171
241
  CLIUtils.displaySection('BMAD™ Installation', 'Version ' + require(path.join(getProjectRoot(), 'package.json')).version);
172
242
 
173
- // Preflight: Handle legacy BMAD v4 footprints before any prompts/writes
243
+ // Note: Legacy V4 detection now happens earlier in UI.promptInstall()
244
+ // before any config collection, so we don't need to check again here
245
+
174
246
  const projectDir = path.resolve(config.directory);
175
- const legacyV4 = await this.detector.detectLegacyV4(projectDir);
176
- if (legacyV4.hasLegacyV4) {
177
- await this.handleLegacyV4Migration(projectDir, legacyV4);
178
- }
179
247
 
180
248
  // If core config was pre-collected (from interactive mode), use it
181
249
  if (config.coreConfig) {
@@ -197,6 +265,14 @@ class Installer {
197
265
  moduleConfigs = await this.configCollector.collectAllConfigurations(config.modules || [], path.resolve(config.directory));
198
266
  }
199
267
 
268
+ // Get bmad_folder from config (default to 'bmad' for backwards compatibility)
269
+ const bmadFolderName = moduleConfigs.core && moduleConfigs.core.bmad_folder ? moduleConfigs.core.bmad_folder : 'bmad';
270
+ this.bmadFolderName = bmadFolderName; // Store for use in other methods
271
+
272
+ // Set bmad folder name on module manager and IDE manager for placeholder replacement
273
+ this.moduleManager.setBmadFolderName(bmadFolderName);
274
+ this.ideManager.setBmadFolderName(bmadFolderName);
275
+
200
276
  // Tool selection will be collected after we determine if it's a reinstall/update/new install
201
277
 
202
278
  const spinner = ora('Preparing installation...').start();
@@ -205,6 +281,63 @@ class Installer {
205
281
  // Resolve target directory (path.resolve handles platform differences)
206
282
  const projectDir = path.resolve(config.directory);
207
283
 
284
+ // Check if bmad_folder has changed from existing installation (only if project dir exists)
285
+ let existingBmadDir = null;
286
+ let existingBmadFolderName = null;
287
+
288
+ if (await fs.pathExists(projectDir)) {
289
+ existingBmadDir = await this.findBmadDir(projectDir);
290
+ existingBmadFolderName = path.basename(existingBmadDir);
291
+ }
292
+
293
+ const targetBmadDir = path.join(projectDir, bmadFolderName);
294
+
295
+ // If bmad_folder changed during update/upgrade, back up old folder and do fresh install
296
+ if (existingBmadDir && (await fs.pathExists(existingBmadDir)) && existingBmadFolderName !== bmadFolderName) {
297
+ spinner.stop();
298
+ console.log(chalk.yellow(`\n⚠️ bmad_folder has changed: ${existingBmadFolderName} → ${bmadFolderName}`));
299
+ console.log(chalk.yellow('This will result in a fresh installation to the new folder.'));
300
+
301
+ const inquirer = require('inquirer');
302
+ const { confirmFreshInstall } = await inquirer.prompt([
303
+ {
304
+ type: 'confirm',
305
+ name: 'confirmFreshInstall',
306
+ message: chalk.cyan('Proceed with fresh install? (Your old folder will be backed up)'),
307
+ default: true,
308
+ },
309
+ ]);
310
+
311
+ if (!confirmFreshInstall) {
312
+ console.log(chalk.yellow('Installation cancelled.'));
313
+ return { success: false, cancelled: true };
314
+ }
315
+
316
+ spinner.start('Backing up existing installation...');
317
+
318
+ // Find a unique backup name
319
+ let backupDir = `${existingBmadDir}-bak`;
320
+ let counter = 1;
321
+ while (await fs.pathExists(backupDir)) {
322
+ backupDir = `${existingBmadDir}-bak-${counter}`;
323
+ counter++;
324
+ }
325
+
326
+ // Rename the old folder to backup
327
+ await fs.move(existingBmadDir, backupDir);
328
+
329
+ spinner.succeed(`Backed up ${existingBmadFolderName} → ${path.basename(backupDir)}`);
330
+ console.log(chalk.cyan('\n📋 Important:'));
331
+ console.log(chalk.dim(` - Your old installation has been backed up to: ${path.basename(backupDir)}`));
332
+ console.log(chalk.dim(` - If you had custom agents or configurations, copy them from:`));
333
+ console.log(chalk.dim(` ${path.basename(backupDir)}/_cfg/`));
334
+ console.log(chalk.dim(` - To the new location:`));
335
+ console.log(chalk.dim(` ${bmadFolderName}/_cfg/`));
336
+ console.log('');
337
+
338
+ spinner.start('Starting fresh installation...');
339
+ }
340
+
208
341
  // Create a project directory if it doesn't exist (user already confirmed)
209
342
  if (!(await fs.pathExists(projectDir))) {
210
343
  spinner.text = 'Creating installation directory...';
@@ -225,7 +358,7 @@ class Installer {
225
358
  }
226
359
  }
227
360
 
228
- const bmadDir = path.join(projectDir, 'bmad');
361
+ const bmadDir = path.join(projectDir, bmadFolderName);
229
362
 
230
363
  // Check existing installation
231
364
  spinner.text = 'Checking for existing installation...';
@@ -429,7 +562,12 @@ class Installer {
429
562
  config.skipIde = toolSelection.skipIde;
430
563
  const ideConfigurations = toolSelection.configurations;
431
564
 
432
- spinner.start('Continuing installation...');
565
+ // Check if spinner is already running (e.g., from folder name change scenario)
566
+ if (spinner.isSpinning) {
567
+ spinner.text = 'Continuing installation...';
568
+ } else {
569
+ spinner.start('Continuing installation...');
570
+ }
433
571
 
434
572
  // Create bmad directory structure
435
573
  spinner.text = 'Creating directory structure...';
@@ -726,7 +864,8 @@ class Installer {
726
864
  const spinner = ora('Checking installation...').start();
727
865
 
728
866
  try {
729
- const bmadDir = path.join(path.resolve(config.directory), 'bmad');
867
+ const projectDir = path.resolve(config.directory);
868
+ const bmadDir = await this.findBmadDir(projectDir);
730
869
  const existingInstall = await this.detector.detect(bmadDir);
731
870
 
732
871
  if (!existingInstall.installed) {
@@ -786,7 +925,8 @@ class Installer {
786
925
  * Get installation status
787
926
  */
788
927
  async getStatus(directory) {
789
- const bmadDir = path.join(path.resolve(directory), 'bmad');
928
+ const projectDir = path.resolve(directory);
929
+ const bmadDir = await this.findBmadDir(projectDir);
790
930
  return await this.detector.detect(bmadDir);
791
931
  }
792
932
 
@@ -801,14 +941,15 @@ class Installer {
801
941
  * Uninstall BMAD
802
942
  */
803
943
  async uninstall(directory) {
804
- const bmadDir = path.join(path.resolve(directory), 'bmad');
944
+ const projectDir = path.resolve(directory);
945
+ const bmadDir = await this.findBmadDir(projectDir);
805
946
 
806
947
  if (await fs.pathExists(bmadDir)) {
807
948
  await fs.remove(bmadDir);
808
949
  }
809
950
 
810
951
  // Clean up IDE configurations
811
- await this.ideManager.cleanup(path.resolve(directory));
952
+ await this.ideManager.cleanup(projectDir);
812
953
 
813
954
  return { success: true };
814
955
  }
@@ -906,8 +1047,9 @@ class Installer {
906
1047
  }
907
1048
  }
908
1049
 
909
- // Write the clean config file
910
- await fs.writeFile(configPath, header + yamlContent, 'utf8');
1050
+ // Write the clean config file with POSIX-compliant final newline
1051
+ const content = header + yamlContent;
1052
+ await fs.writeFile(configPath, content.endsWith('\n') ? content : content + '\n', 'utf8');
911
1053
 
912
1054
  // Track the config file in installedFiles
913
1055
  this.installedFiles.push(configPath);
@@ -985,7 +1127,7 @@ class Installer {
985
1127
  const targetPath = path.join(agentsDir, fileName);
986
1128
 
987
1129
  if (await fs.pathExists(sourcePath)) {
988
- await fs.copy(sourcePath, targetPath);
1130
+ await this.copyFileWithPlaceholderReplacement(sourcePath, targetPath, this.bmadFolderName || 'bmad');
989
1131
  this.installedFiles.push(targetPath);
990
1132
  }
991
1133
  }
@@ -1001,7 +1143,7 @@ class Installer {
1001
1143
  const targetPath = path.join(tasksDir, fileName);
1002
1144
 
1003
1145
  if (await fs.pathExists(sourcePath)) {
1004
- await fs.copy(sourcePath, targetPath);
1146
+ await this.copyFileWithPlaceholderReplacement(sourcePath, targetPath, this.bmadFolderName || 'bmad');
1005
1147
  this.installedFiles.push(targetPath);
1006
1148
  }
1007
1149
  }
@@ -1017,7 +1159,7 @@ class Installer {
1017
1159
  const targetPath = path.join(toolsDir, fileName);
1018
1160
 
1019
1161
  if (await fs.pathExists(sourcePath)) {
1020
- await fs.copy(sourcePath, targetPath);
1162
+ await this.copyFileWithPlaceholderReplacement(sourcePath, targetPath, this.bmadFolderName || 'bmad');
1021
1163
  this.installedFiles.push(targetPath);
1022
1164
  }
1023
1165
  }
@@ -1033,7 +1175,7 @@ class Installer {
1033
1175
  const targetPath = path.join(templatesDir, fileName);
1034
1176
 
1035
1177
  if (await fs.pathExists(sourcePath)) {
1036
- await fs.copy(sourcePath, targetPath);
1178
+ await this.copyFileWithPlaceholderReplacement(sourcePath, targetPath, this.bmadFolderName || 'bmad');
1037
1179
  this.installedFiles.push(targetPath);
1038
1180
  }
1039
1181
  }
@@ -1048,7 +1190,7 @@ class Installer {
1048
1190
  await fs.ensureDir(path.dirname(targetPath));
1049
1191
 
1050
1192
  if (await fs.pathExists(dataPath)) {
1051
- await fs.copy(dataPath, targetPath);
1193
+ await this.copyFileWithPlaceholderReplacement(dataPath, targetPath, this.bmadFolderName || 'bmad');
1052
1194
  this.installedFiles.push(targetPath);
1053
1195
  }
1054
1196
  }
@@ -1108,9 +1250,8 @@ class Installer {
1108
1250
  }
1109
1251
  }
1110
1252
 
1111
- // Copy the file
1112
- await fs.ensureDir(path.dirname(targetFile));
1113
- await fs.copy(sourceFile, targetFile, { overwrite: true });
1253
+ // Copy the file with placeholder replacement
1254
+ await this.copyFileWithPlaceholderReplacement(sourceFile, targetFile, this.bmadFolderName || 'bmad');
1114
1255
 
1115
1256
  // Track the installed file
1116
1257
  this.installedFiles.push(targetFile);
@@ -1181,7 +1322,7 @@ class Installer {
1181
1322
  if (!(await fs.pathExists(customizePath))) {
1182
1323
  const genericTemplatePath = getSourcePath('utility', 'templates', 'agent.customize.template.yaml');
1183
1324
  if (await fs.pathExists(genericTemplatePath)) {
1184
- await fs.copy(genericTemplatePath, customizePath);
1325
+ await this.copyFileWithPlaceholderReplacement(genericTemplatePath, customizePath, this.bmadFolderName || 'bmad');
1185
1326
  console.log(chalk.dim(` Created customize: ${moduleName}-${agentName}.customize.yaml`));
1186
1327
  }
1187
1328
  }
@@ -1195,8 +1336,9 @@ class Installer {
1195
1336
  // DO NOT replace {project-root} - LLMs understand this placeholder at runtime
1196
1337
  // const processedContent = xmlContent.replaceAll('{project-root}', projectDir);
1197
1338
 
1198
- // Write the built .md file to bmad/{module}/agents/
1199
- await fs.writeFile(mdPath, xmlContent, 'utf8');
1339
+ // Write the built .md file to bmad/{module}/agents/ with POSIX-compliant final newline
1340
+ const content = xmlContent.endsWith('\n') ? xmlContent : xmlContent + '\n';
1341
+ await fs.writeFile(mdPath, content, 'utf8');
1200
1342
  this.installedFiles.push(mdPath);
1201
1343
 
1202
1344
  // Remove the source YAML file - we can regenerate from installer source if needed
@@ -1213,7 +1355,9 @@ class Installer {
1213
1355
  if (content.includes('<agent') && !content.includes('<activation')) {
1214
1356
  // Inject the activation block using XML handler
1215
1357
  content = this.xmlHandler.injectActivationSimple(content);
1216
- await fs.writeFile(agentPath, content, 'utf8');
1358
+ // Ensure POSIX-compliant final newline
1359
+ const finalContent = content.endsWith('\n') ? content : content + '\n';
1360
+ await fs.writeFile(agentPath, finalContent, 'utf8');
1217
1361
  }
1218
1362
  }
1219
1363
  }
@@ -1294,8 +1438,9 @@ class Installer {
1294
1438
  // DO NOT replace {project-root} - LLMs understand this placeholder at runtime
1295
1439
  // const processedContent = xmlContent.replaceAll('{project-root}', projectDir);
1296
1440
 
1297
- // Write the built .md file
1298
- await fs.writeFile(targetMdPath, xmlContent, 'utf8');
1441
+ // Write the built .md file with POSIX-compliant final newline
1442
+ const content = xmlContent.endsWith('\n') ? xmlContent : xmlContent + '\n';
1443
+ await fs.writeFile(targetMdPath, content, 'utf8');
1299
1444
 
1300
1445
  // Display result
1301
1446
  if (customizedFields.length > 0) {
@@ -1387,8 +1532,9 @@ class Installer {
1387
1532
  // DO NOT replace {project-root} - LLMs understand this placeholder at runtime
1388
1533
  // const processedContent = xmlContent.replaceAll('{project-root}', projectDir);
1389
1534
 
1390
- // Write the rebuilt .md file
1391
- await fs.writeFile(targetMdPath, xmlContent, 'utf8');
1535
+ // Write the rebuilt .md file with POSIX-compliant final newline
1536
+ const content = xmlContent.endsWith('\n') ? xmlContent : xmlContent + '\n';
1537
+ await fs.writeFile(targetMdPath, content, 'utf8');
1392
1538
 
1393
1539
  // Display result with customizations if any
1394
1540
  if (customizedFields.length > 0) {
@@ -1411,7 +1557,7 @@ class Installer {
1411
1557
 
1412
1558
  try {
1413
1559
  const projectDir = path.resolve(config.directory);
1414
- const bmadDir = path.join(projectDir, 'bmad');
1560
+ const bmadDir = await this.findBmadDir(projectDir);
1415
1561
 
1416
1562
  // Check if bmad directory exists
1417
1563
  if (!(await fs.pathExists(bmadDir))) {
@@ -1486,26 +1632,33 @@ class Installer {
1486
1632
  });
1487
1633
  spinner.succeed('Manifests regenerated');
1488
1634
 
1489
- // Ask for IDE to update
1490
- spinner.stop();
1491
- // Note: UI lives in tools/cli/lib/ui.js; from installers/lib/core use '../../../lib/ui'
1492
- const { UI } = require('../../../lib/ui');
1493
- const ui = new UI();
1494
- const toolConfig = await ui.promptToolSelection(projectDir, []);
1495
-
1496
- if (!toolConfig.skipIde && toolConfig.ides && toolConfig.ides.length > 0) {
1635
+ // Update IDE configurations using the existing IDE list from manifest
1636
+ if (existingIdes && existingIdes.length > 0) {
1497
1637
  spinner.start('Updating IDE configurations...');
1498
1638
 
1499
- for (const ide of toolConfig.ides) {
1639
+ for (const ide of existingIdes) {
1500
1640
  spinner.text = `Updating ${ide}...`;
1641
+
1642
+ // Stop spinner before IDE setup to prevent blocking any potential prompts
1643
+ // However, we pass _alreadyConfigured to skip all prompts during compile
1644
+ spinner.stop();
1645
+
1501
1646
  await this.ideManager.setup(ide, projectDir, bmadDir, {
1502
1647
  selectedModules: installedModules,
1503
1648
  skipModuleInstall: true, // Skip module installation, just update IDE files
1504
1649
  verbose: config.verbose,
1650
+ preCollectedConfig: { _alreadyConfigured: true }, // Skip all interactive prompts during compile
1505
1651
  });
1652
+
1653
+ // Restart spinner for next IDE
1654
+ if (existingIdes.indexOf(ide) < existingIdes.length - 1) {
1655
+ spinner.start('Updating IDE configurations...');
1656
+ }
1506
1657
  }
1507
1658
 
1508
- spinner.succeed('IDE configurations updated');
1659
+ console.log(chalk.green('IDE configurations updated'));
1660
+ } else {
1661
+ console.log(chalk.yellow('⚠️ No IDEs configured. Skipping IDE update.'));
1509
1662
  }
1510
1663
 
1511
1664
  return { agentCount, taskCount };
@@ -1542,7 +1695,7 @@ class Installer {
1542
1695
 
1543
1696
  try {
1544
1697
  const projectDir = path.resolve(config.directory);
1545
- const bmadDir = path.join(projectDir, 'bmad');
1698
+ const bmadDir = await this.findBmadDir(projectDir);
1546
1699
 
1547
1700
  // Check if bmad directory exists
1548
1701
  if (!(await fs.pathExists(bmadDir))) {
@@ -1605,8 +1758,19 @@ class Installer {
1605
1758
  lastModified: new Date().toISOString(),
1606
1759
  };
1607
1760
 
1608
- // Now run the full installation with the collected configs
1609
- spinner.start('Updating BMAD installation...');
1761
+ // Check if bmad_folder has changed
1762
+ const existingBmadFolderName = path.basename(bmadDir);
1763
+ const newBmadFolderName = this.configCollector.collectedConfig.core?.bmad_folder || existingBmadFolderName;
1764
+
1765
+ if (existingBmadFolderName === newBmadFolderName) {
1766
+ // Normal quick update - start the spinner
1767
+ spinner.start('Updating BMAD installation...');
1768
+ } else {
1769
+ // Folder name has changed - stop spinner and let install() handle it
1770
+ spinner.stop();
1771
+ console.log(chalk.yellow(`\n⚠️ Folder name will change: ${existingBmadFolderName} → ${newBmadFolderName}`));
1772
+ console.log(chalk.yellow('The installer will handle the folder migration.\n'));
1773
+ }
1610
1774
 
1611
1775
  // Build the config object for the installer
1612
1776
  const installConfig = {
@@ -1625,7 +1789,11 @@ class Installer {
1625
1789
  // Call the standard install method
1626
1790
  const result = await this.install(installConfig);
1627
1791
 
1628
- spinner.succeed('Quick update complete!');
1792
+ // Only succeed the spinner if it's still spinning
1793
+ // (install method might have stopped it if folder name changed)
1794
+ if (spinner.isSpinning) {
1795
+ spinner.succeed('Quick update complete!');
1796
+ }
1629
1797
 
1630
1798
  return {
1631
1799
  success: true,
@@ -2005,6 +2173,11 @@ class Installer {
2005
2173
 
2006
2174
  configContent += processedTemplate;
2007
2175
 
2176
+ // Ensure POSIX-compliant final newline
2177
+ if (!configContent.endsWith('\n')) {
2178
+ configContent += '\n';
2179
+ }
2180
+
2008
2181
  await fs.writeFile(configPath, configContent, 'utf8');
2009
2182
  this.installedFiles.push(configPath); // Track agent config files
2010
2183
  createdCount++;
@@ -2086,7 +2259,7 @@ class Installer {
2086
2259
  const targetDocPath = path.join(docsDir, `${ide}-instructions.md`);
2087
2260
 
2088
2261
  if (await fs.pathExists(sourceDocPath)) {
2089
- await fs.copy(sourceDocPath, targetDocPath, { overwrite: true });
2262
+ await this.copyFileWithPlaceholderReplacement(sourceDocPath, targetDocPath, this.bmadFolderName || 'bmad');
2090
2263
  }
2091
2264
  }
2092
2265
  }