bmad-method 6.0.0-alpha.0 → 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 (704) hide show
  1. package/.github/ISSUE_TEMPLATE/config.yaml +4 -0
  2. package/.github/ISSUE_TEMPLATE/idea_submission.md +3 -3
  3. package/.github/workflows/bundle-latest.yaml +277 -0
  4. package/.github/workflows/manual-release.yaml +64 -17
  5. package/.github/workflows/quality.yaml +78 -0
  6. package/.husky/pre-commit +4 -0
  7. package/.prettierignore +6 -0
  8. package/.vscode/settings.json +3 -1
  9. package/CHANGELOG.md +1211 -2
  10. package/CONTRIBUTING.md +2 -13
  11. package/README.md +442 -0
  12. package/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
  13. package/docs/agent-customization-guide.md +208 -0
  14. package/docs/document-sharding-guide.md +449 -0
  15. package/docs/ide-info/auggie.md +2 -2
  16. package/docs/ide-info/claude-code.md +4 -4
  17. package/docs/ide-info/codex.md +9 -20
  18. package/docs/ide-info/crush.md +1 -1
  19. package/docs/ide-info/cursor.md +7 -7
  20. package/docs/ide-info/iflow.md +3 -3
  21. package/docs/ide-info/opencode.md +24 -0
  22. package/docs/index.md +227 -0
  23. package/docs/installers-bundlers/ide-injections.md +2 -12
  24. package/docs/installers-bundlers/installers-modules-platforms-reference.md +100 -67
  25. package/docs/v4-to-v6-upgrade.md +227 -0
  26. package/docs/web-bundles-gemini-gpt-guide.md +473 -0
  27. package/eslint.config.mjs +6 -2
  28. package/package.json +13 -6
  29. package/src/core/_module-installer/install-config.yaml +35 -0
  30. package/src/core/_module-installer/installer.js +1 -9
  31. package/src/core/agents/bmad-master.agent.yaml +39 -0
  32. package/src/core/agents/bmad-web-orchestrator.agent.xml +113 -0
  33. package/src/core/tasks/advanced-elicitation-methods.csv +21 -0
  34. package/src/core/tasks/{adv-elicit.md → advanced-elicitation.xml} +11 -14
  35. package/src/core/tasks/{index-docs.md → index-docs.xml} +6 -10
  36. package/src/core/tasks/{validate-workflow.md → validate-workflow.xml} +4 -7
  37. package/src/core/tasks/workflow.xml +270 -0
  38. package/src/core/tools/shard-doc.xml +109 -0
  39. package/src/{modules/cis → core}/workflows/brainstorming/README.md +8 -18
  40. package/src/{modules/cis → core}/workflows/brainstorming/instructions.md +29 -24
  41. package/src/{modules/cis → core}/workflows/brainstorming/template.md +6 -2
  42. package/src/{modules/cis → core}/workflows/brainstorming/workflow.yaml +17 -9
  43. package/src/core/workflows/party-mode/instructions.md +27 -25
  44. package/src/core/workflows/party-mode/workflow.yaml +14 -10
  45. package/src/modules/bmb/README.md +194 -0
  46. package/src/modules/bmb/_module-installer/install-config.yaml +31 -0
  47. package/src/modules/bmb/agents/bmad-builder.agent.yaml +57 -0
  48. package/src/modules/bmb/workflows/audit-workflow/checklist.md +142 -0
  49. package/src/modules/bmb/workflows/audit-workflow/instructions.md +341 -0
  50. package/src/modules/bmb/workflows/audit-workflow/template.md +118 -0
  51. package/src/modules/bmb/workflows/audit-workflow/workflow.yaml +25 -0
  52. package/src/modules/bmb/workflows/convert-legacy/README.md +34 -34
  53. package/src/modules/bmb/workflows/convert-legacy/checklist.md +22 -21
  54. package/src/modules/bmb/workflows/convert-legacy/instructions.md +135 -86
  55. package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +10 -15
  56. package/src/modules/bmb/workflows/create-agent/README.md +144 -209
  57. package/src/modules/bmb/workflows/create-agent/agent-architecture.md +68 -65
  58. package/src/modules/bmb/workflows/create-agent/agent-command-patterns.md +174 -172
  59. package/src/modules/bmb/workflows/create-agent/agent-types.md +139 -24
  60. package/src/modules/bmb/workflows/create-agent/brainstorm-context.md +4 -4
  61. package/src/modules/bmb/workflows/create-agent/checklist.md +30 -102
  62. package/src/modules/bmb/workflows/create-agent/communication-styles.md +22 -60
  63. package/src/modules/bmb/workflows/create-agent/instructions.md +339 -221
  64. package/src/modules/bmb/workflows/create-agent/workflow.yaml +28 -19
  65. package/src/modules/bmb/workflows/create-module/README.md +164 -153
  66. package/src/modules/bmb/workflows/create-module/brainstorm-context.md +1 -1
  67. package/src/modules/bmb/workflows/create-module/checklist.md +21 -31
  68. package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +92 -0
  69. package/src/modules/bmb/workflows/create-module/installer-templates/installer.js +1 -1
  70. package/src/modules/bmb/workflows/create-module/instructions.md +306 -238
  71. package/src/modules/bmb/workflows/create-module/module-structure.md +135 -45
  72. package/src/modules/bmb/workflows/create-module/workflow.yaml +32 -27
  73. package/src/modules/bmb/workflows/create-workflow/README.md +70 -9
  74. package/src/modules/bmb/workflows/create-workflow/brainstorm-context.md +4 -4
  75. package/src/modules/bmb/workflows/create-workflow/checklist.md +22 -0
  76. package/src/modules/bmb/workflows/create-workflow/instructions.md +505 -47
  77. package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +939 -68
  78. package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +6 -3
  79. package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +31 -5
  80. package/src/modules/bmb/workflows/create-workflow/workflow.yaml +16 -17
  81. package/src/modules/bmb/workflows/edit-agent/README.md +112 -0
  82. package/src/modules/bmb/workflows/edit-agent/checklist.md +112 -0
  83. package/src/modules/bmb/workflows/edit-agent/instructions.md +290 -0
  84. package/src/modules/bmb/workflows/edit-agent/workflow.yaml +33 -0
  85. package/src/modules/bmb/workflows/edit-module/README.md +187 -0
  86. package/src/modules/bmb/workflows/edit-module/checklist.md +165 -0
  87. package/src/modules/bmb/workflows/edit-module/instructions.md +341 -0
  88. package/src/modules/bmb/workflows/edit-module/workflow.yaml +34 -0
  89. package/src/modules/bmb/workflows/edit-workflow/README.md +58 -2
  90. package/src/modules/bmb/workflows/edit-workflow/instructions.md +290 -118
  91. package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +9 -16
  92. package/src/modules/bmb/workflows/module-brief/README.md +17 -17
  93. package/src/modules/bmb/workflows/module-brief/checklist.md +6 -6
  94. package/src/modules/bmb/workflows/module-brief/instructions.md +10 -7
  95. package/src/modules/bmb/workflows/module-brief/template.md +9 -9
  96. package/src/modules/bmb/workflows/module-brief/workflow.yaml +16 -10
  97. package/src/modules/bmb/workflows/redoc/README.md +5 -5
  98. package/src/modules/bmb/workflows/redoc/checklist.md +2 -2
  99. package/src/modules/bmb/workflows/redoc/instructions.md +20 -10
  100. package/src/modules/bmb/workflows/redoc/workflow.yaml +6 -5
  101. package/src/modules/bmgd/README.md +208 -0
  102. package/src/modules/bmgd/_module-installer/install-config.yaml +54 -0
  103. package/src/modules/bmgd/agents/game-architect.agent.yaml +33 -0
  104. package/src/modules/bmgd/agents/game-designer.agent.yaml +40 -0
  105. package/src/modules/bmgd/agents/game-dev.agent.yaml +40 -0
  106. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +75 -0
  107. package/src/modules/bmgd/teams/default-party.csv +10 -0
  108. package/src/modules/bmgd/teams/team-gamedev.yaml +18 -0
  109. package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-context.md +3 -3
  110. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +130 -0
  111. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +41 -0
  112. package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/checklist.md +2 -2
  113. package/src/modules/bmgd/workflows/1-preproduction/game-brief/instructions.md +373 -0
  114. package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/template.md +2 -2
  115. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.yaml +36 -0
  116. package/src/modules/bmgd/workflows/2-design/gdd/checklist.md +148 -0
  117. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/action-platformer.md +1 -1
  118. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/adventure.md +1 -1
  119. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/card-game.md +2 -2
  120. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/fighting.md +1 -1
  121. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/horror.md +2 -2
  122. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/idle-incremental.md +1 -1
  123. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/moba.md +4 -4
  124. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/party-game.md +1 -1
  125. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/racing.md +3 -3
  126. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/rhythm.md +1 -1
  127. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/roguelike.md +2 -2
  128. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/rpg.md +3 -3
  129. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/sandbox.md +4 -4
  130. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/shooter.md +3 -3
  131. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/simulation.md +3 -3
  132. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/sports.md +3 -3
  133. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/strategy.md +3 -3
  134. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/survival.md +2 -2
  135. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/text-based.md +3 -3
  136. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/tower-defense.md +5 -5
  137. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/turn-based-tactics.md +4 -4
  138. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/visual-novel.md +1 -1
  139. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/gdd-template.md +6 -12
  140. package/src/modules/bmgd/workflows/2-design/gdd/instructions-gdd.md +502 -0
  141. package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +81 -0
  142. package/src/modules/bmgd/workflows/2-design/narrative/checklist.md +139 -0
  143. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/narrative/instructions-narrative.md +99 -12
  144. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/narrative/narrative-template.md +8 -8
  145. package/src/modules/bmgd/workflows/2-design/narrative/workflow.yaml +32 -0
  146. package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-patterns.yaml +321 -0
  147. package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-template.md +103 -0
  148. package/src/modules/bmgd/workflows/3-technical/game-architecture/checklist.md +240 -0
  149. package/src/modules/bmgd/workflows/3-technical/game-architecture/decision-catalog.yaml +222 -0
  150. package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +701 -0
  151. package/src/modules/bmgd/workflows/3-technical/game-architecture/pattern-categories.csv +13 -0
  152. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +69 -0
  153. package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +398 -0
  154. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +61 -0
  155. package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +279 -0
  156. package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +206 -0
  157. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +58 -0
  158. package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +240 -0
  159. package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +256 -0
  160. package/src/modules/bmgd/workflows/4-production/create-story/template.md +51 -0
  161. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +74 -0
  162. package/src/modules/bmgd/workflows/4-production/dev-story/checklist.md +38 -0
  163. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +267 -0
  164. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +58 -0
  165. package/src/modules/{bmm/workflows/3-solutioning/tech-spec → bmgd/workflows/4-production/epic-tech-context}/checklist.md +1 -1
  166. package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +164 -0
  167. package/src/modules/{bmm/workflows/3-solutioning/tech-spec → bmgd/workflows/4-production/epic-tech-context}/template.md +1 -1
  168. package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +58 -0
  169. package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +1443 -0
  170. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +57 -0
  171. package/src/modules/bmgd/workflows/4-production/sprint-planning/checklist.md +33 -0
  172. package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +234 -0
  173. package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +55 -0
  174. package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +51 -0
  175. package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +16 -0
  176. package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +34 -0
  177. package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +209 -0
  178. package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +63 -0
  179. package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +111 -0
  180. package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +28 -0
  181. package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +117 -0
  182. package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +25 -0
  183. package/src/modules/bmm/README.md +128 -0
  184. package/src/modules/bmm/_module-installer/install-config.yaml +60 -0
  185. package/src/modules/bmm/_module-installer/installer.js +3 -3
  186. package/src/modules/bmm/_module-installer/platform-specifics/claude-code.js +1 -1
  187. package/src/modules/bmm/_module-installer/platform-specifics/windsurf.js +1 -1
  188. package/src/modules/bmm/agents/analyst.agent.yaml +49 -0
  189. package/src/modules/bmm/agents/architect.agent.yaml +42 -0
  190. package/src/modules/bmm/agents/dev.agent.yaml +40 -0
  191. package/src/modules/bmm/agents/frame-expert.agent.yaml +42 -0
  192. package/src/modules/bmm/agents/pm.agent.yaml +64 -0
  193. package/src/modules/bmm/agents/sm.agent.yaml +73 -0
  194. package/src/modules/bmm/agents/tea.agent.yaml +67 -0
  195. package/src/modules/bmm/agents/tech-writer.agent.yaml +68 -0
  196. package/src/modules/bmm/agents/ux-designer.agent.yaml +39 -0
  197. package/src/modules/bmm/docs/README.md +236 -0
  198. package/src/modules/bmm/docs/agents-guide.md +1058 -0
  199. package/src/modules/bmm/docs/brownfield-guide.md +762 -0
  200. package/src/modules/bmm/docs/enterprise-agentic-development.md +686 -0
  201. package/src/modules/bmm/docs/faq.md +588 -0
  202. package/src/modules/bmm/docs/glossary.md +320 -0
  203. package/src/modules/bmm/docs/party-mode.md +224 -0
  204. package/src/modules/bmm/docs/quick-spec-flow.md +652 -0
  205. package/src/modules/bmm/docs/quick-start.md +376 -0
  206. package/src/modules/bmm/docs/scale-adaptive-system.md +612 -0
  207. package/src/modules/bmm/docs/test-architecture.md +396 -0
  208. package/src/modules/bmm/docs/workflow-architecture-reference.md +366 -0
  209. package/src/modules/bmm/docs/workflow-document-project-reference.md +489 -0
  210. package/src/modules/bmm/docs/workflows-analysis.md +370 -0
  211. package/src/modules/bmm/docs/workflows-implementation.md +286 -0
  212. package/src/modules/bmm/docs/workflows-planning.md +612 -0
  213. package/src/modules/bmm/docs/workflows-solutioning.md +554 -0
  214. package/src/modules/bmm/teams/default-party.csv +20 -0
  215. package/src/modules/bmm/teams/team-fullstack.yaml +13 -0
  216. package/src/modules/bmm/testarch/knowledge/ci-burn-in.md +675 -0
  217. package/src/modules/bmm/testarch/knowledge/component-tdd.md +486 -0
  218. package/src/modules/bmm/testarch/knowledge/contract-testing.md +957 -0
  219. package/src/modules/bmm/testarch/knowledge/data-factories.md +500 -0
  220. package/src/modules/bmm/testarch/knowledge/email-auth.md +721 -0
  221. package/src/modules/bmm/testarch/knowledge/error-handling.md +725 -0
  222. package/src/modules/bmm/testarch/knowledge/feature-flags.md +750 -0
  223. package/src/modules/bmm/testarch/knowledge/fixture-architecture.md +401 -0
  224. package/src/modules/bmm/testarch/knowledge/network-first.md +486 -0
  225. package/src/modules/bmm/testarch/knowledge/nfr-criteria.md +670 -0
  226. package/src/modules/bmm/testarch/knowledge/playwright-config.md +730 -0
  227. package/src/modules/bmm/testarch/knowledge/probability-impact.md +601 -0
  228. package/src/modules/bmm/testarch/knowledge/risk-governance.md +615 -0
  229. package/src/modules/bmm/testarch/knowledge/selective-testing.md +732 -0
  230. package/src/modules/bmm/testarch/knowledge/selector-resilience.md +527 -0
  231. package/src/modules/bmm/testarch/knowledge/test-healing-patterns.md +644 -0
  232. package/src/modules/bmm/testarch/knowledge/test-levels-framework.md +473 -0
  233. package/src/modules/bmm/testarch/knowledge/test-priorities-matrix.md +373 -0
  234. package/src/modules/bmm/testarch/knowledge/test-quality.md +664 -0
  235. package/src/modules/bmm/testarch/knowledge/timing-debugging.md +372 -0
  236. package/src/modules/bmm/testarch/knowledge/visual-debugging.md +524 -0
  237. package/src/modules/bmm/testarch/tea-index.csv +22 -0
  238. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +82 -8
  239. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/project-context.md +4 -4
  240. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +23 -5
  241. package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +425 -0
  242. package/src/modules/bmm/workflows/1-analysis/domain-research/template.md +180 -0
  243. package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +56 -0
  244. package/src/modules/bmm/workflows/1-analysis/product-brief/checklist.md +2 -2
  245. package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +418 -247
  246. package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +93 -77
  247. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +42 -14
  248. package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +144 -0
  249. package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +249 -0
  250. package/src/modules/bmm/workflows/1-analysis/research/checklist.md +156 -59
  251. package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +115 -47
  252. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +236 -114
  253. package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +109 -66
  254. package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +147 -55
  255. package/src/modules/bmm/workflows/1-analysis/research/template-deep-prompt.md +1 -1
  256. package/src/modules/bmm/workflows/1-analysis/research/template-market.md +38 -2
  257. package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +36 -1
  258. package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +36 -123
  259. package/src/modules/bmm/workflows/2-plan-workflows/create-epics-and-stories/epics-template.md +80 -0
  260. package/src/modules/bmm/workflows/2-plan-workflows/create-epics-and-stories/instructions.md +616 -0
  261. package/src/modules/bmm/workflows/2-plan-workflows/create-epics-and-stories/workflow.yaml +63 -0
  262. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +310 -0
  263. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1308 -0
  264. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +145 -0
  265. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +93 -0
  266. package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +346 -0
  267. package/src/modules/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
  268. package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +703 -0
  269. package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +204 -0
  270. package/src/modules/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
  271. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +78 -0
  272. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +217 -0
  273. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +74 -0
  274. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +436 -0
  275. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +980 -0
  276. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +181 -0
  277. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +90 -0
  278. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +60 -0
  279. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +321 -0
  280. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +103 -0
  281. package/src/modules/bmm/workflows/3-solutioning/architecture/checklist.md +240 -0
  282. package/src/modules/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +222 -0
  283. package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +768 -0
  284. package/src/modules/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +13 -0
  285. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +100 -0
  286. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/checklist.md +169 -0
  287. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/instructions.md +332 -0
  288. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/template.md +146 -0
  289. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/workflow.yaml +64 -0
  290. package/src/modules/bmm/workflows/4-implementation/code-review/backlog_template.md +12 -0
  291. package/src/modules/bmm/workflows/4-implementation/code-review/checklist.md +22 -0
  292. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +398 -0
  293. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +61 -0
  294. package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +6 -6
  295. package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +70 -54
  296. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +44 -21
  297. package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +240 -39
  298. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +203 -28
  299. package/src/modules/bmm/workflows/4-implementation/create-story/template.md +2 -8
  300. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +43 -42
  301. package/src/modules/bmm/workflows/4-implementation/dev-story/checklist.md +1 -1
  302. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +220 -40
  303. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +43 -38
  304. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/checklist.md +17 -0
  305. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +164 -0
  306. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/template.md +76 -0
  307. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +58 -0
  308. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +1280 -228
  309. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +41 -25
  310. package/src/modules/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  311. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +234 -0
  312. package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  313. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +51 -0
  314. package/src/modules/bmm/workflows/4-implementation/story-context/checklist.md +1 -1
  315. package/src/modules/bmm/workflows/4-implementation/story-context/context-template.xml +1 -1
  316. package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +155 -22
  317. package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +43 -36
  318. package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +111 -0
  319. package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +28 -0
  320. package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +117 -0
  321. package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +25 -0
  322. package/src/modules/bmm/workflows/document-project/checklist.md +245 -0
  323. package/src/modules/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  324. package/src/modules/bmm/workflows/document-project/instructions.md +222 -0
  325. package/src/modules/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  326. package/src/modules/bmm/workflows/document-project/templates/index-template.md +169 -0
  327. package/src/modules/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  328. package/src/modules/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  329. package/src/modules/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  330. package/src/modules/bmm/workflows/document-project/workflow.yaml +31 -0
  331. package/src/modules/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  332. package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  333. package/src/modules/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  334. package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  335. package/src/modules/bmm/workflows/frame-expert/_shared/excalidraw-helpers.md +127 -0
  336. package/src/modules/bmm/workflows/frame-expert/_shared/excalidraw-library.json +90 -0
  337. package/src/modules/bmm/workflows/frame-expert/_shared/excalidraw-templates.yaml +127 -0
  338. package/src/modules/bmm/workflows/frame-expert/_shared/validate-json-instructions.md +79 -0
  339. package/src/modules/bmm/workflows/frame-expert/create-dataflow/checklist.md +39 -0
  340. package/src/modules/bmm/workflows/frame-expert/create-dataflow/instructions.md +131 -0
  341. package/src/modules/bmm/workflows/frame-expert/create-dataflow/workflow.yaml +24 -0
  342. package/src/modules/bmm/workflows/frame-expert/create-diagram/checklist.md +43 -0
  343. package/src/modules/bmm/workflows/frame-expert/create-diagram/instructions.md +142 -0
  344. package/src/modules/bmm/workflows/frame-expert/create-diagram/workflow.yaml +25 -0
  345. package/src/modules/bmm/workflows/frame-expert/create-flowchart/checklist.md +49 -0
  346. package/src/modules/bmm/workflows/frame-expert/create-flowchart/instructions.md +242 -0
  347. package/src/modules/bmm/workflows/frame-expert/create-flowchart/workflow.yaml +28 -0
  348. package/src/modules/bmm/workflows/frame-expert/create-wireframe/checklist.md +38 -0
  349. package/src/modules/bmm/workflows/frame-expert/create-wireframe/instructions.md +133 -0
  350. package/src/modules/bmm/workflows/frame-expert/create-wireframe/workflow.yaml +24 -0
  351. package/src/modules/bmm/workflows/techdoc/documentation-standards.md +262 -0
  352. package/src/modules/bmm/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
  353. package/src/modules/bmm/workflows/testarch/atdd/checklist.md +373 -0
  354. package/src/modules/bmm/workflows/testarch/atdd/instructions.md +785 -0
  355. package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +47 -0
  356. package/src/modules/bmm/workflows/testarch/automate/checklist.md +580 -0
  357. package/src/modules/bmm/workflows/testarch/automate/instructions.md +1303 -0
  358. package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +54 -0
  359. package/src/modules/bmm/workflows/testarch/ci/checklist.md +246 -0
  360. package/src/modules/bmm/workflows/testarch/ci/github-actions-template.yaml +165 -0
  361. package/src/modules/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +128 -0
  362. package/src/modules/bmm/workflows/testarch/ci/instructions.md +517 -0
  363. package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +47 -0
  364. package/src/modules/bmm/workflows/testarch/framework/checklist.md +321 -0
  365. package/src/modules/bmm/workflows/testarch/framework/instructions.md +455 -0
  366. package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +49 -0
  367. package/src/modules/bmm/workflows/testarch/nfr-assess/checklist.md +405 -0
  368. package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +722 -0
  369. package/src/modules/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +443 -0
  370. package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +49 -0
  371. package/src/modules/bmm/workflows/testarch/test-design/checklist.md +234 -0
  372. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +782 -0
  373. package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +285 -0
  374. package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +50 -0
  375. package/src/modules/bmm/workflows/testarch/test-review/checklist.md +470 -0
  376. package/src/modules/bmm/workflows/testarch/test-review/instructions.md +608 -0
  377. package/src/modules/bmm/workflows/testarch/test-review/test-review-template.md +388 -0
  378. package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +48 -0
  379. package/src/modules/bmm/workflows/testarch/trace/checklist.md +654 -0
  380. package/src/modules/bmm/workflows/testarch/trace/instructions.md +1045 -0
  381. package/src/modules/bmm/workflows/testarch/trace/trace-template.md +673 -0
  382. package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +57 -0
  383. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +334 -0
  384. package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +29 -0
  385. package/src/modules/bmm/workflows/workflow-status/instructions.md +388 -0
  386. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +138 -0
  387. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +126 -0
  388. package/src/modules/bmm/workflows/workflow-status/paths/game-design.yaml +52 -0
  389. package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +122 -0
  390. package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +113 -0
  391. package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +58 -0
  392. package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +47 -0
  393. package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +59 -0
  394. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -0
  395. package/src/modules/bmm/workflows/workflow-status/workflow.yaml +30 -0
  396. package/src/modules/cis/README.md +153 -0
  397. package/src/modules/cis/_module-installer/{install-menu-config.yaml → install-config.yaml} +6 -4
  398. package/src/modules/cis/_module-installer/installer.js +1 -1
  399. package/src/modules/cis/agents/README.md +1 -1
  400. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +28 -0
  401. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +28 -0
  402. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +28 -0
  403. package/src/modules/cis/agents/innovation-strategist.agent.yaml +28 -0
  404. package/src/modules/cis/agents/storyteller.agent.yaml +28 -0
  405. package/src/modules/cis/teams/creative-squad.yaml +1 -0
  406. package/src/modules/cis/teams/default-party.csv +11 -0
  407. package/src/modules/cis/workflows/README.md +102 -30
  408. package/src/modules/cis/workflows/design-thinking/design-methods.csv +1 -1
  409. package/src/modules/cis/workflows/design-thinking/instructions.md +4 -2
  410. package/src/modules/cis/workflows/design-thinking/workflow.yaml +16 -7
  411. package/src/modules/cis/workflows/innovation-strategy/innovation-frameworks.csv +2 -2
  412. package/src/modules/cis/workflows/innovation-strategy/instructions.md +7 -5
  413. package/src/modules/cis/workflows/innovation-strategy/template.md +6 -6
  414. package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +16 -7
  415. package/src/modules/cis/workflows/problem-solving/instructions.md +4 -2
  416. package/src/modules/cis/workflows/problem-solving/solving-methods.csv +6 -6
  417. package/src/modules/cis/workflows/problem-solving/template.md +3 -3
  418. package/src/modules/cis/workflows/problem-solving/workflow.yaml +16 -7
  419. package/src/modules/cis/workflows/storytelling/instructions.md +48 -30
  420. package/src/modules/cis/workflows/storytelling/template.md +2 -2
  421. package/src/modules/cis/workflows/storytelling/workflow.yaml +16 -7
  422. package/src/utility/models/action-command-header.md +0 -0
  423. package/src/utility/models/agent-activation-ide.xml +4 -4
  424. package/src/utility/models/agent-activation-web.xml +60 -0
  425. package/src/utility/models/agent-command-header.md +1 -0
  426. package/src/utility/models/agent-in-team-activation.xml +3 -0
  427. package/src/utility/models/fragments/activation-rules.xml +8 -0
  428. package/src/utility/models/fragments/activation-steps.xml +16 -0
  429. package/src/utility/models/fragments/handler-action.xml +4 -0
  430. package/src/utility/models/fragments/handler-data.xml +5 -0
  431. package/src/utility/models/fragments/handler-exec.xml +5 -0
  432. package/src/utility/models/fragments/handler-tmpl.xml +5 -0
  433. package/src/utility/models/fragments/handler-validate-workflow.xml +7 -0
  434. package/src/utility/models/fragments/handler-workflow.xml +9 -0
  435. package/src/utility/models/fragments/menu-handlers.xml +6 -0
  436. package/src/utility/models/fragments/web-bundle-activation-steps.xml +32 -0
  437. package/src/utility/templates/agent.customize.template.yaml +42 -0
  438. package/test/README.md +295 -0
  439. package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +26 -0
  440. package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +29 -0
  441. package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +21 -0
  442. package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +19 -0
  443. package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +24 -0
  444. package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +23 -0
  445. package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +24 -0
  446. package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +30 -0
  447. package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +24 -0
  448. package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +24 -0
  449. package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +24 -0
  450. package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +24 -0
  451. package/test/fixtures/agent-schema/invalid/metadata/core-agent-with-module.agent.yaml +26 -0
  452. package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +26 -0
  453. package/test/fixtures/agent-schema/invalid/metadata/empty-name.agent.yaml +24 -0
  454. package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +26 -0
  455. package/test/fixtures/agent-schema/invalid/metadata/missing-id.agent.yaml +23 -0
  456. package/test/fixtures/agent-schema/invalid/metadata/module-agent-missing-module.agent.yaml +25 -0
  457. package/test/fixtures/agent-schema/invalid/metadata/wrong-module-value.agent.yaml +26 -0
  458. package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +23 -0
  459. package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +26 -0
  460. package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +26 -0
  461. package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +23 -0
  462. package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +28 -0
  463. package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +30 -0
  464. package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +27 -0
  465. package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +27 -0
  466. package/test/fixtures/agent-schema/invalid/top-level/empty-file.agent.yaml +5 -0
  467. package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +27 -0
  468. package/test/fixtures/agent-schema/invalid/top-level/missing-agent-key.agent.yaml +11 -0
  469. package/test/fixtures/agent-schema/invalid/yaml-errors/invalid-indentation.agent.yaml +19 -0
  470. package/test/fixtures/agent-schema/invalid/yaml-errors/malformed-yaml.agent.yaml +18 -0
  471. package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +23 -0
  472. package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +21 -0
  473. package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +26 -0
  474. package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +30 -0
  475. package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +21 -0
  476. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +39 -0
  477. package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +23 -0
  478. package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +33 -0
  479. package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +23 -0
  480. package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +23 -0
  481. package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +23 -0
  482. package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +23 -0
  483. package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +23 -0
  484. package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +21 -0
  485. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +27 -0
  486. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +29 -0
  487. package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +23 -0
  488. package/test/test-agent-schema.js +387 -0
  489. package/test/test-cli-integration.sh +159 -0
  490. package/test/test-installation-components.js +214 -0
  491. package/test/unit-test-schema.js +133 -0
  492. package/tools/bmad-npx-wrapper.js +38 -0
  493. package/tools/cli/README.md +608 -0
  494. package/tools/cli/bmad-cli.js +0 -2
  495. package/tools/cli/bundlers/bundle-web.js +24 -2
  496. package/tools/cli/bundlers/test-bundler.js +1 -1
  497. package/tools/cli/bundlers/web-bundler.js +944 -49
  498. package/tools/cli/commands/build.js +458 -0
  499. package/tools/cli/commands/install.js +46 -8
  500. package/tools/cli/installers/lib/core/config-collector.js +490 -43
  501. package/tools/cli/installers/lib/core/dependency-resolver.js +5 -1
  502. package/tools/cli/installers/lib/core/detector.js +134 -13
  503. package/tools/cli/installers/lib/core/ide-config-manager.js +154 -0
  504. package/tools/cli/installers/lib/core/installer.js +1365 -167
  505. package/tools/cli/installers/lib/core/manifest-generator.js +388 -81
  506. package/tools/cli/installers/lib/core/manifest.js +100 -44
  507. package/tools/cli/installers/lib/ide/_base-ide.js +368 -23
  508. package/tools/cli/installers/lib/ide/auggie.js +100 -192
  509. package/tools/cli/installers/lib/ide/claude-code.js +167 -321
  510. package/tools/cli/installers/lib/ide/cline.js +146 -227
  511. package/tools/cli/installers/lib/ide/codex.js +138 -202
  512. package/tools/cli/installers/lib/ide/crush.js +108 -72
  513. package/tools/cli/installers/lib/ide/cursor.js +148 -20
  514. package/tools/cli/installers/lib/ide/gemini.js +109 -63
  515. package/tools/cli/installers/lib/ide/github-copilot.js +60 -47
  516. package/tools/cli/installers/lib/ide/iflow.js +13 -30
  517. package/tools/cli/installers/lib/ide/kilo.js +20 -16
  518. package/tools/cli/installers/lib/ide/manager.js +41 -35
  519. package/tools/cli/installers/lib/ide/opencode.js +212 -0
  520. package/tools/cli/installers/lib/ide/qwen.js +198 -68
  521. package/tools/cli/installers/lib/ide/roo.js +27 -62
  522. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +90 -0
  523. package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +143 -0
  524. package/tools/cli/installers/lib/ide/shared/module-injections.js +133 -0
  525. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +119 -0
  526. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +237 -0
  527. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
  528. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
  529. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
  530. package/tools/cli/installers/lib/ide/{workflow-command-template.md → templates/workflow-command-template.md} +7 -5
  531. package/tools/cli/installers/lib/ide/trae.js +138 -54
  532. package/tools/cli/installers/lib/ide/windsurf.js +104 -42
  533. package/tools/cli/installers/lib/modules/manager.js +332 -10
  534. package/tools/cli/lib/activation-builder.js +168 -0
  535. package/tools/cli/lib/agent-analyzer.js +81 -0
  536. package/tools/cli/lib/agent-party-generator.js +3 -3
  537. package/tools/cli/lib/cli-utils.js +52 -50
  538. package/tools/cli/lib/config.js +3 -1
  539. package/tools/cli/lib/ui.js +106 -14
  540. package/tools/cli/lib/xml-handler.js +47 -1
  541. package/tools/cli/lib/yaml-format.js +2 -1
  542. package/tools/cli/lib/yaml-xml-builder.js +507 -0
  543. package/tools/cli/regenerate-manifests.js +1 -1
  544. package/tools/cli/test-yaml-builder.js +43 -0
  545. package/tools/format-workflow-md.js +263 -0
  546. package/tools/platform-codes.yaml +6 -0
  547. package/tools/schema/agent.js +240 -0
  548. package/tools/validate-agent-schema.js +110 -0
  549. package/v6-open-items.md +17 -0
  550. package/.github/workflows/format-check.yaml +0 -43
  551. package/docs/codebase-flattener.md +0 -19
  552. package/readme.md +0 -216
  553. package/src/core/_module-installer/install-menu-config.yaml +0 -24
  554. package/src/core/agents/bmad-master.md +0 -27
  555. package/src/core/agents/bmad-web-orchestrator.md +0 -71
  556. package/src/core/tasks/shard-doc.md +0 -57
  557. package/src/core/tasks/workflow.md +0 -141
  558. package/src/core/workflows/bmad-init/instructions.md +0 -79
  559. package/src/core/workflows/bmad-init/workflow.yaml +0 -24
  560. package/src/modules/bmb/_module-installer/install-menu-config.yaml +0 -16
  561. package/src/modules/bmb/agents/bmad-builder.md +0 -30
  562. package/src/modules/bmb/workflows/create-module/installer-templates/install-module-config.yaml +0 -132
  563. package/src/modules/bmm/_module-installer/install-menu-config.yaml +0 -49
  564. package/src/modules/bmm/agents/analyst.md +0 -26
  565. package/src/modules/bmm/agents/architect.md +0 -29
  566. package/src/modules/bmm/agents/dev.md +0 -61
  567. package/src/modules/bmm/agents/game-architect.md +0 -26
  568. package/src/modules/bmm/agents/game-designer.md +0 -27
  569. package/src/modules/bmm/agents/game-dev.md +0 -28
  570. package/src/modules/bmm/agents/pm.md +0 -26
  571. package/src/modules/bmm/agents/po.md +0 -25
  572. package/src/modules/bmm/agents/sm.md +0 -29
  573. package/src/modules/bmm/agents/tea.md +0 -32
  574. package/src/modules/bmm/agents/ux-expert.md +0 -24
  575. package/src/modules/bmm/sub-modules/claude-code/config.yaml +0 -5
  576. package/src/modules/bmm/sub-modules/claude-code/injections.yaml +0 -242
  577. package/src/modules/bmm/sub-modules/claude-code/readme.md +0 -87
  578. package/src/modules/bmm/sub-modules/claude-code/sub-agents/api-documenter.md +0 -85
  579. package/src/modules/bmm/sub-modules/claude-code/sub-agents/codebase-analyzer.md +0 -64
  580. package/src/modules/bmm/sub-modules/claude-code/sub-agents/data-analyst.md +0 -84
  581. package/src/modules/bmm/sub-modules/claude-code/sub-agents/dependency-mapper.md +0 -67
  582. package/src/modules/bmm/sub-modules/claude-code/sub-agents/document-reviewer.md +0 -85
  583. package/src/modules/bmm/sub-modules/claude-code/sub-agents/epic-optimizer.md +0 -66
  584. package/src/modules/bmm/sub-modules/claude-code/sub-agents/market-researcher.md +0 -34
  585. package/src/modules/bmm/sub-modules/claude-code/sub-agents/pattern-detector.md +0 -67
  586. package/src/modules/bmm/sub-modules/claude-code/sub-agents/requirements-analyst.md +0 -61
  587. package/src/modules/bmm/sub-modules/claude-code/sub-agents/tech-debt-auditor.md +0 -89
  588. package/src/modules/bmm/sub-modules/claude-code/sub-agents/technical-decisions-curator.md +0 -146
  589. package/src/modules/bmm/sub-modules/claude-code/sub-agents/technical-evaluator.md +0 -51
  590. package/src/modules/bmm/sub-modules/claude-code/sub-agents/test-coverage-analyzer.md +0 -91
  591. package/src/modules/bmm/sub-modules/claude-code/sub-agents/trend-spotter.md +0 -99
  592. package/src/modules/bmm/sub-modules/claude-code/sub-agents/user-journey-mapper.md +0 -101
  593. package/src/modules/bmm/sub-modules/claude-code/sub-agents/user-researcher.md +0 -56
  594. package/src/modules/bmm/tasks/daily-standup.md +0 -91
  595. package/src/modules/bmm/tasks/retrospective.md +0 -110
  596. package/src/modules/bmm/teams/team-all.yaml +0 -7
  597. package/src/modules/bmm/teams/team-dev.yaml +0 -14
  598. package/src/modules/bmm/teams/team-gamedev.yaml +0 -9
  599. package/src/modules/bmm/testarch/atdd.md +0 -40
  600. package/src/modules/bmm/testarch/automate.md +0 -38
  601. package/src/modules/bmm/testarch/ci.md +0 -39
  602. package/src/modules/bmm/testarch/framework.md +0 -41
  603. package/src/modules/bmm/testarch/nfr-assess.md +0 -38
  604. package/src/modules/bmm/testarch/risk-profile.md +0 -38
  605. package/src/modules/bmm/testarch/tea-commands.csv +0 -11
  606. package/src/modules/bmm/testarch/tea-gate.md +0 -38
  607. package/src/modules/bmm/testarch/tea-knowledge.md +0 -275
  608. package/src/modules/bmm/testarch/test-design.md +0 -39
  609. package/src/modules/bmm/testarch/test-levels-framework.md +0 -148
  610. package/src/modules/bmm/testarch/test-priorities-matrix.md +0 -174
  611. package/src/modules/bmm/testarch/trace-requirements.md +0 -38
  612. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/instructions.md +0 -47
  613. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/workflow.yaml +0 -22
  614. package/src/modules/bmm/workflows/1-analysis/game-brief/README.md +0 -221
  615. package/src/modules/bmm/workflows/1-analysis/game-brief/instructions.md +0 -517
  616. package/src/modules/bmm/workflows/1-analysis/game-brief/workflow.yaml +0 -34
  617. package/src/modules/bmm/workflows/1-analysis/product-brief/README.md +0 -180
  618. package/src/modules/bmm/workflows/1-analysis/research/README.md +0 -454
  619. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-competitor-analyzer.md +0 -259
  620. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-data-analyst.md +0 -190
  621. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-market-researcher.md +0 -337
  622. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-trend-spotter.md +0 -107
  623. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-user-researcher.md +0 -329
  624. package/src/modules/bmm/workflows/2-plan/README.md +0 -203
  625. package/src/modules/bmm/workflows/2-plan/checklist.md +0 -369
  626. package/src/modules/bmm/workflows/2-plan/gdd/README.md +0 -222
  627. package/src/modules/bmm/workflows/2-plan/gdd/instructions-gdd.md +0 -480
  628. package/src/modules/bmm/workflows/2-plan/instructions-router.md +0 -222
  629. package/src/modules/bmm/workflows/2-plan/prd/analysis-template.md +0 -53
  630. package/src/modules/bmm/workflows/2-plan/prd/epics-template.md +0 -18
  631. package/src/modules/bmm/workflows/2-plan/prd/instructions-lg.md +0 -267
  632. package/src/modules/bmm/workflows/2-plan/prd/instructions-med.md +0 -251
  633. package/src/modules/bmm/workflows/2-plan/prd/prd-template.md +0 -73
  634. package/src/modules/bmm/workflows/2-plan/tech-spec/instructions-sm.md +0 -137
  635. package/src/modules/bmm/workflows/2-plan/tech-spec/tech-spec-template.md +0 -59
  636. package/src/modules/bmm/workflows/2-plan/ux/instructions-ux.md +0 -360
  637. package/src/modules/bmm/workflows/2-plan/ux/ux-spec-template.md +0 -162
  638. package/src/modules/bmm/workflows/2-plan/workflow.yaml +0 -60
  639. package/src/modules/bmm/workflows/3-solutioning/ADR-template.md +0 -74
  640. package/src/modules/bmm/workflows/3-solutioning/README.md +0 -565
  641. package/src/modules/bmm/workflows/3-solutioning/checklist.md +0 -170
  642. package/src/modules/bmm/workflows/3-solutioning/instructions.md +0 -661
  643. package/src/modules/bmm/workflows/3-solutioning/project-types/backend-questions.md +0 -490
  644. package/src/modules/bmm/workflows/3-solutioning/project-types/cli-questions.md +0 -337
  645. package/src/modules/bmm/workflows/3-solutioning/project-types/data-questions.md +0 -472
  646. package/src/modules/bmm/workflows/3-solutioning/project-types/desktop-questions.md +0 -299
  647. package/src/modules/bmm/workflows/3-solutioning/project-types/embedded-questions.md +0 -118
  648. package/src/modules/bmm/workflows/3-solutioning/project-types/extension-questions.md +0 -374
  649. package/src/modules/bmm/workflows/3-solutioning/project-types/game-questions.md +0 -133
  650. package/src/modules/bmm/workflows/3-solutioning/project-types/infra-questions.md +0 -484
  651. package/src/modules/bmm/workflows/3-solutioning/project-types/library-questions.md +0 -146
  652. package/src/modules/bmm/workflows/3-solutioning/project-types/mobile-questions.md +0 -110
  653. package/src/modules/bmm/workflows/3-solutioning/project-types/project-types.csv +0 -12
  654. package/src/modules/bmm/workflows/3-solutioning/project-types/web-questions.md +0 -136
  655. package/src/modules/bmm/workflows/3-solutioning/tech-spec/README.md +0 -195
  656. package/src/modules/bmm/workflows/3-solutioning/tech-spec/instructions.md +0 -73
  657. package/src/modules/bmm/workflows/3-solutioning/tech-spec/workflow.yaml +0 -51
  658. package/src/modules/bmm/workflows/3-solutioning/templates/backend-service-architecture.md +0 -66
  659. package/src/modules/bmm/workflows/3-solutioning/templates/cli-tool-architecture.md +0 -66
  660. package/src/modules/bmm/workflows/3-solutioning/templates/data-pipeline-architecture.md +0 -66
  661. package/src/modules/bmm/workflows/3-solutioning/templates/desktop-app-architecture.md +0 -66
  662. package/src/modules/bmm/workflows/3-solutioning/templates/embedded-firmware-architecture.md +0 -66
  663. package/src/modules/bmm/workflows/3-solutioning/templates/game-engine-architecture.md +0 -244
  664. package/src/modules/bmm/workflows/3-solutioning/templates/game-engine-godot-guide.md +0 -428
  665. package/src/modules/bmm/workflows/3-solutioning/templates/game-engine-unity-guide.md +0 -333
  666. package/src/modules/bmm/workflows/3-solutioning/templates/game-engine-web-guide.md +0 -528
  667. package/src/modules/bmm/workflows/3-solutioning/templates/infrastructure-architecture.md +0 -66
  668. package/src/modules/bmm/workflows/3-solutioning/templates/library-package-architecture.md +0 -66
  669. package/src/modules/bmm/workflows/3-solutioning/templates/mobile-app-architecture.md +0 -66
  670. package/src/modules/bmm/workflows/3-solutioning/templates/registry.csv +0 -172
  671. package/src/modules/bmm/workflows/3-solutioning/templates/web-api-architecture.md +0 -66
  672. package/src/modules/bmm/workflows/3-solutioning/templates/web-fullstack-architecture.md +0 -277
  673. package/src/modules/bmm/workflows/3-solutioning/workflow.yaml +0 -65
  674. package/src/modules/bmm/workflows/4-implementation/create-story/README.md +0 -42
  675. package/src/modules/bmm/workflows/4-implementation/dev-story/README.md +0 -84
  676. package/src/modules/bmm/workflows/4-implementation/review-story/README.md +0 -72
  677. package/src/modules/bmm/workflows/4-implementation/review-story/instructions.md +0 -176
  678. package/src/modules/bmm/workflows/4-implementation/review-story/workflow.yaml +0 -99
  679. package/src/modules/bmm/workflows/4-implementation/story-context/README.md +0 -234
  680. package/src/modules/cis/agents/brainstorming-coach.md +0 -24
  681. package/src/modules/cis/agents/creative-problem-solver.md +0 -24
  682. package/src/modules/cis/agents/design-thinking-coach.md +0 -24
  683. package/src/modules/cis/agents/innovation-strategist.md +0 -24
  684. package/src/modules/cis/agents/storyteller.md +0 -24
  685. package/src/modules/cis/readme.md +0 -86
  686. package/tools/cli/installers/lib/ide/workflow-command-generator.js +0 -162
  687. package/tools/test-agents/captain-kirk-commander.md +0 -110
  688. package/tools/test-agents/data-operations-android.md +0 -123
  689. package/tools/test-agents/geordi-chief-engineer.md +0 -135
  690. package/tools/test-agents/isabella-martinez-ethicist.md +0 -109
  691. package/tools/test-agents/marcus-thompson-security.md +0 -109
  692. package/tools/test-agents/maya-patel-pragmatist.md +0 -82
  693. package/tools/test-agents/picard-diplomat-captain.md +0 -134
  694. package/tools/test-agents/spock-science-officer.md +0 -124
  695. package/tools/test-agents/william-smithers-technocrat.md +0 -71
  696. package/tools/test-agents/zara-chen-designer.md +0 -94
  697. /package/src/{modules/cis → core}/workflows/brainstorming/brain-methods.csv +0 -0
  698. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-brain-methods.csv +0 -0
  699. /package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/metroidvania.md +0 -0
  700. /package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/puzzle.md +0 -0
  701. /package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types.csv +0 -0
  702. /package/src/modules/{bmm/workflows/4-implementation/review-story → bmgd/workflows/4-production/code-review}/backlog_template.md +0 -0
  703. /package/src/modules/{bmm/workflows/4-implementation/review-story → bmgd/workflows/4-production/code-review}/checklist.md +0 -0
  704. /package/src/modules/bmm/_module-installer/assets/{technical-decisions-template.md → technical-decisions.md} +0 -0
@@ -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,25 +17,102 @@ 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();
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
+
35
+ // Check if there's an existing BMAD installation
36
+ const fs = require('fs-extra');
37
+ const path = require('node:path');
38
+ // Use findBmadDir to detect any custom folder names (V6+)
39
+ const bmadDir = await installer.findBmadDir(confirmedDirectory);
40
+ const hasExistingInstall = await fs.pathExists(bmadDir);
41
+
42
+ // Track action type (only set if there's an existing installation)
43
+ let actionType;
44
+
45
+ // Only show action menu if there's an existing installation
46
+ if (hasExistingInstall) {
47
+ const promptResult = await inquirer.prompt([
48
+ {
49
+ type: 'list',
50
+ name: 'actionType',
51
+ message: 'What would you like to do?',
52
+ choices: [
53
+ { name: 'Quick Update (Settings Preserved)', value: 'quick-update' },
54
+ { name: 'Modify BMAD Installation (Confirm or change each setting)', value: 'update' },
55
+ { name: 'Remove BMad Folder and Reinstall (Full clean install - BMad Customization Will Be Lost)', value: 'reinstall' },
56
+ { name: 'Compile Agents (Quick rebuild of all agent .md files)', value: 'compile' },
57
+ { name: 'Cancel', value: 'cancel' },
58
+ ],
59
+ default: 'quick-update',
60
+ },
61
+ ]);
62
+
63
+ // Extract actionType from prompt result
64
+ actionType = promptResult.actionType;
65
+
66
+ // Handle quick update separately
67
+ if (actionType === 'quick-update') {
68
+ return {
69
+ actionType: 'quick-update',
70
+ directory: confirmedDirectory,
71
+ };
72
+ }
73
+
74
+ // Handle agent compilation separately
75
+ if (actionType === 'compile') {
76
+ return {
77
+ actionType: 'compile',
78
+ directory: confirmedDirectory,
79
+ };
80
+ }
81
+
82
+ // Handle cancel
83
+ if (actionType === 'cancel') {
84
+ return {
85
+ actionType: 'cancel',
86
+ directory: confirmedDirectory,
87
+ };
88
+ }
89
+
90
+ // Handle reinstall - DON'T return early, let it flow through configuration collection
91
+ // The installer will handle deletion when it sees actionType === 'reinstall'
92
+ // For now, just note that we're in reinstall mode and continue below
93
+
94
+ // If actionType === 'update' or 'reinstall', continue with normal flow below
95
+ }
96
+
23
97
  const { installedModuleIds } = await this.getExistingInstallation(confirmedDirectory);
24
98
  const coreConfig = await this.collectCoreConfig(confirmedDirectory);
25
99
  const moduleChoices = await this.getModuleChoices(installedModuleIds);
26
100
  const selectedModules = await this.selectModules(moduleChoices);
27
101
 
28
- console.clear();
29
- CLIUtils.displayLogo();
30
- 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
31
107
 
32
108
  return {
109
+ actionType: actionType || 'update', // Preserve reinstall or update action
33
110
  directory: confirmedDirectory,
34
111
  installCore: true, // Always install core
35
112
  modules: selectedModules,
36
- // IDE selection moved to after module configuration
37
- ides: [],
38
- skipIde: true, // Will be handled later
113
+ // IDE selection collected after config, will be configured later
114
+ ides: toolSelection.ides,
115
+ skipIde: toolSelection.skipIde,
39
116
  coreConfig: coreConfig, // Pass collected core config to installer
40
117
  };
41
118
  }
@@ -47,10 +124,12 @@ class UI {
47
124
  * @returns {Object} Tool configuration
48
125
  */
49
126
  async promptToolSelection(projectDir, selectedModules) {
50
- // Check for existing configured IDEs
127
+ // Check for existing configured IDEs - use findBmadDir to detect custom folder names
51
128
  const { Detector } = require('../installers/lib/core/detector');
129
+ const { Installer } = require('../installers/lib/core/installer');
52
130
  const detector = new Detector();
53
- const bmadDir = path.join(projectDir || process.cwd(), 'bmad');
131
+ const installer = new Installer();
132
+ const bmadDir = await installer.findBmadDir(projectDir || process.cwd());
54
133
  const existingInstall = await detector.detect(bmadDir);
55
134
  const configuredIdes = existingInstall.ides || [];
56
135
 
@@ -69,6 +148,11 @@ class UI {
69
148
  if (configuredIdes.length > 0) {
70
149
  ideChoices.push(new inquirer.Separator('── Previously Configured ──'));
71
150
  for (const ideValue of configuredIdes) {
151
+ // Skip empty or invalid IDE values
152
+ if (!ideValue || typeof ideValue !== 'string') {
153
+ continue;
154
+ }
155
+
72
156
  // Find the IDE in either preferred or other lists
73
157
  const preferredIde = preferredIdes.find((ide) => ide.value === ideValue);
74
158
  const otherIde = otherIdes.find((ide) => ide.value === ideValue);
@@ -81,6 +165,9 @@ class UI {
81
165
  checked: true, // Previously configured IDEs are checked by default
82
166
  });
83
167
  processedIdes.add(ide.value);
168
+ } else {
169
+ // Warn about unrecognized IDE (but don't fail)
170
+ console.log(chalk.yellow(`⚠️ Previously configured IDE '${ideValue}' is no longer available`));
84
171
  }
85
172
  }
86
173
  }
@@ -247,8 +334,10 @@ class UI {
247
334
  */
248
335
  async getExistingInstallation(directory) {
249
336
  const { Detector } = require('../installers/lib/core/detector');
337
+ const { Installer } = require('../installers/lib/core/installer');
250
338
  const detector = new Detector();
251
- const bmadDir = path.join(directory, 'bmad');
339
+ const installer = new Installer();
340
+ const bmadDir = await installer.findBmadDir(directory);
252
341
  const existingInstall = await detector.detect(bmadDir);
253
342
  const installedModuleIds = new Set(existingInstall.modules.map((mod) => mod.id));
254
343
 
@@ -346,17 +435,20 @@ class UI {
346
435
  if (stats.isDirectory()) {
347
436
  const files = await fs.readdir(directory);
348
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
+
349
444
  console.log(
350
445
  chalk.gray(`Directory exists and contains ${files.length} item(s)`) +
351
- (files.includes('bmad') ? chalk.yellow(' including existing bmad installation') : ''),
446
+ (hasBmadInstall ? chalk.yellow(` including existing BMAD installation (${path.basename(bmadDir)})`) : ''),
352
447
  );
353
448
  } else {
354
449
  console.log(chalk.gray('Directory exists and is empty'));
355
450
  }
356
451
  }
357
- } else {
358
- const existingParent = await this.findExistingParent(directory);
359
- console.log(chalk.gray(`Will create in: ${existingParent}`));
360
452
  }
361
453
  }
362
454
 
@@ -2,9 +2,11 @@ const xml2js = require('xml2js');
2
2
  const fs = require('fs-extra');
3
3
  const path = require('node:path');
4
4
  const { getProjectRoot, getSourcePath } = require('./project-root');
5
+ const { YamlXmlBuilder } = require('./yaml-xml-builder');
5
6
 
6
7
  /**
7
8
  * XML utility functions for BMAD installer
9
+ * Now supports both legacy XML agents and new YAML-based agents
8
10
  */
9
11
  class XmlHandler {
10
12
  constructor() {
@@ -33,6 +35,8 @@ class XmlHandler {
33
35
  attrkey: '$',
34
36
  charkey: '_',
35
37
  });
38
+
39
+ this.yamlBuilder = new YamlXmlBuilder();
36
40
  }
37
41
 
38
42
  /**
@@ -132,7 +136,7 @@ class XmlHandler {
132
136
  }
133
137
 
134
138
  /**
135
- * Simple string-based injection (fallback method)
139
+ * Simple string-based injection (fallback method for legacy XML agents)
136
140
  * This preserves formatting better than XML parsing
137
141
  */
138
142
  injectActivationSimple(agentContent, metadata = {}) {
@@ -178,6 +182,48 @@ class XmlHandler {
178
182
  return agentContent;
179
183
  }
180
184
  }
185
+
186
+ /**
187
+ * Build agent from YAML source
188
+ * @param {string} yamlPath - Path to .agent.yaml file
189
+ * @param {string} customizePath - Path to .customize.yaml file (optional)
190
+ * @param {Object} metadata - Build metadata
191
+ * @returns {string} Generated XML content
192
+ */
193
+ async buildFromYaml(yamlPath, customizePath = null, metadata = {}) {
194
+ try {
195
+ // Use YamlXmlBuilder to convert YAML to XML
196
+ const mergedAgent = await this.yamlBuilder.loadAndMergeAgent(yamlPath, customizePath);
197
+
198
+ // Build metadata
199
+ const buildMetadata = {
200
+ sourceFile: path.basename(yamlPath),
201
+ sourceHash: await this.yamlBuilder.calculateFileHash(yamlPath),
202
+ customizeFile: customizePath ? path.basename(customizePath) : null,
203
+ customizeHash: customizePath ? await this.yamlBuilder.calculateFileHash(customizePath) : null,
204
+ builderVersion: '1.0.0',
205
+ includeMetadata: metadata.includeMetadata !== false,
206
+ forWebBundle: metadata.forWebBundle || false, // Pass through forWebBundle flag
207
+ };
208
+
209
+ // Convert to XML
210
+ const xml = await this.yamlBuilder.convertToXml(mergedAgent, buildMetadata);
211
+
212
+ return xml;
213
+ } catch (error) {
214
+ console.error('Error building agent from YAML:', error);
215
+ throw error;
216
+ }
217
+ }
218
+
219
+ /**
220
+ * Check if a path is a YAML agent file
221
+ * @param {string} filePath - Path to check
222
+ * @returns {boolean} True if it's a YAML agent file
223
+ */
224
+ isYamlAgent(filePath) {
225
+ return filePath.endsWith('.agent.yaml');
226
+ }
181
227
  }
182
228
 
183
229
  module.exports = { XmlHandler };
@@ -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`));