bmad-method 5.1.3 → 6.0.0-alpha.0

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 (579) hide show
  1. package/.github/FUNDING.yaml +2 -2
  2. package/.github/ISSUE_TEMPLATE/config.yaml +1 -0
  3. package/.github/ISSUE_TEMPLATE/idea_submission.md +109 -0
  4. package/.github/workflows/discord.yaml +1 -10
  5. package/.github/workflows/format-check.yaml +3 -2
  6. package/.github/workflows/manual-release.yaml +2 -2
  7. package/.nvmrc +1 -0
  8. package/.vscode/settings.json +34 -9
  9. package/CHANGELOG.md +211 -577
  10. package/CONTRIBUTING.md +130 -60
  11. package/LICENSE +6 -1
  12. package/docs/codebase-flattener.md +19 -0
  13. package/docs/ide-info/auggie.md +31 -0
  14. package/docs/ide-info/claude-code.md +25 -0
  15. package/docs/ide-info/cline.md +31 -0
  16. package/docs/ide-info/codex.md +32 -0
  17. package/docs/ide-info/crush.md +30 -0
  18. package/docs/ide-info/cursor.md +25 -0
  19. package/docs/ide-info/gemini.md +25 -0
  20. package/docs/ide-info/github-copilot.md +26 -0
  21. package/docs/ide-info/iflow.md +33 -0
  22. package/docs/ide-info/kilo.md +24 -0
  23. package/docs/ide-info/qwen.md +25 -0
  24. package/docs/ide-info/roo.md +27 -0
  25. package/docs/ide-info/trae.md +25 -0
  26. package/docs/ide-info/windsurf.md +22 -0
  27. package/docs/installers-bundlers/ide-injections.md +196 -0
  28. package/docs/installers-bundlers/installers-modules-platforms-reference.md +355 -0
  29. package/docs/installers-bundlers/web-bundler-usage.md +54 -0
  30. package/eslint.config.mjs +17 -7
  31. package/package.json +26 -35
  32. package/prettier.config.mjs +1 -1
  33. package/readme.md +216 -0
  34. package/src/core/_module-installer/install-menu-config.yaml +24 -0
  35. package/src/core/_module-installer/installer.js +68 -0
  36. package/src/core/agents/bmad-master.md +27 -0
  37. package/src/core/agents/bmad-web-orchestrator.md +71 -0
  38. package/src/core/tasks/adv-elicit-methods.csv +39 -0
  39. package/src/core/tasks/adv-elicit.md +109 -0
  40. package/src/core/tasks/index-docs.md +69 -0
  41. package/src/core/tasks/shard-doc.md +57 -0
  42. package/src/core/tasks/validate-workflow.md +92 -0
  43. package/src/core/tasks/workflow.md +141 -0
  44. package/src/core/workflows/bmad-init/instructions.md +79 -0
  45. package/src/core/workflows/bmad-init/workflow.yaml +24 -0
  46. package/src/core/workflows/party-mode/instructions.md +181 -0
  47. package/src/core/workflows/party-mode/workflow.yaml +24 -0
  48. package/src/modules/bmb/_module-installer/install-menu-config.yaml +16 -0
  49. package/src/modules/bmb/agents/bmad-builder.md +30 -0
  50. package/src/modules/bmb/workflows/convert-legacy/README.md +262 -0
  51. package/src/modules/bmb/workflows/convert-legacy/checklist.md +204 -0
  52. package/src/modules/bmb/workflows/convert-legacy/instructions.md +328 -0
  53. package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +35 -0
  54. package/src/modules/bmb/workflows/create-agent/README.md +268 -0
  55. package/src/modules/bmb/workflows/create-agent/agent-architecture.md +412 -0
  56. package/src/modules/bmb/workflows/create-agent/agent-command-patterns.md +757 -0
  57. package/src/modules/bmb/workflows/create-agent/agent-types.md +177 -0
  58. package/src/modules/bmb/workflows/create-agent/brainstorm-context.md +174 -0
  59. package/src/modules/bmb/workflows/create-agent/checklist.md +134 -0
  60. package/src/modules/bmb/workflows/create-agent/communication-styles.md +240 -0
  61. package/src/modules/bmb/workflows/create-agent/instructions.md +340 -0
  62. package/src/modules/bmb/workflows/create-agent/workflow.yaml +39 -0
  63. package/src/modules/bmb/workflows/create-module/README.md +218 -0
  64. package/src/modules/bmb/workflows/create-module/brainstorm-context.md +137 -0
  65. package/src/modules/bmb/workflows/create-module/checklist.md +245 -0
  66. package/src/modules/bmb/workflows/create-module/installer-templates/install-module-config.yaml +132 -0
  67. package/src/modules/bmb/workflows/create-module/installer-templates/installer.js +231 -0
  68. package/src/modules/bmb/workflows/create-module/instructions.md +509 -0
  69. package/src/modules/bmb/workflows/create-module/module-structure.md +310 -0
  70. package/src/modules/bmb/workflows/create-module/workflow.yaml +47 -0
  71. package/src/modules/bmb/workflows/create-workflow/README.md +216 -0
  72. package/src/modules/bmb/workflows/create-workflow/brainstorm-context.md +197 -0
  73. package/src/modules/bmb/workflows/create-workflow/checklist.md +72 -0
  74. package/src/modules/bmb/workflows/create-workflow/instructions.md +267 -0
  75. package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +456 -0
  76. package/src/modules/bmb/workflows/create-workflow/workflow-template/checklist.md +24 -0
  77. package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +12 -0
  78. package/src/modules/bmb/workflows/create-workflow/workflow-template/template.md +9 -0
  79. package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +35 -0
  80. package/src/modules/bmb/workflows/create-workflow/workflow.yaml +42 -0
  81. package/src/modules/bmb/workflows/edit-workflow/README.md +63 -0
  82. package/src/modules/bmb/workflows/edit-workflow/checklist.md +70 -0
  83. package/src/modules/bmb/workflows/edit-workflow/instructions.md +170 -0
  84. package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +34 -0
  85. package/src/modules/bmb/workflows/module-brief/README.md +264 -0
  86. package/src/modules/bmb/workflows/module-brief/checklist.md +116 -0
  87. package/src/modules/bmb/workflows/module-brief/instructions.md +265 -0
  88. package/src/modules/bmb/workflows/module-brief/template.md +275 -0
  89. package/src/modules/bmb/workflows/module-brief/workflow.yaml +30 -0
  90. package/src/modules/bmb/workflows/redoc/README.md +87 -0
  91. package/src/modules/bmb/workflows/redoc/checklist.md +99 -0
  92. package/src/modules/bmb/workflows/redoc/instructions.md +255 -0
  93. package/src/modules/bmb/workflows/redoc/workflow.yaml +33 -0
  94. package/src/modules/bmm/_module-installer/assets/bmm-kb.md +1 -0
  95. package/src/modules/bmm/_module-installer/assets/technical-decisions-template.md +30 -0
  96. package/src/modules/bmm/_module-installer/install-menu-config.yaml +49 -0
  97. package/src/modules/bmm/_module-installer/installer.js +131 -0
  98. package/src/modules/bmm/_module-installer/platform-specifics/claude-code.js +35 -0
  99. package/src/modules/bmm/_module-installer/platform-specifics/windsurf.js +32 -0
  100. package/src/modules/bmm/agents/analyst.md +26 -0
  101. package/src/modules/bmm/agents/architect.md +29 -0
  102. package/src/modules/bmm/agents/dev.md +61 -0
  103. package/src/modules/bmm/agents/game-architect.md +26 -0
  104. package/src/modules/bmm/agents/game-designer.md +27 -0
  105. package/src/modules/bmm/agents/game-dev.md +28 -0
  106. package/src/modules/bmm/agents/pm.md +26 -0
  107. package/src/modules/bmm/agents/po.md +25 -0
  108. package/src/modules/bmm/agents/sm.md +29 -0
  109. package/src/modules/bmm/agents/tea.md +32 -0
  110. package/src/modules/bmm/agents/ux-expert.md +24 -0
  111. package/src/modules/bmm/sub-modules/claude-code/config.yaml +5 -0
  112. package/src/modules/bmm/sub-modules/claude-code/injections.yaml +242 -0
  113. package/src/modules/bmm/sub-modules/claude-code/readme.md +87 -0
  114. package/src/modules/bmm/sub-modules/claude-code/sub-agents/api-documenter.md +85 -0
  115. package/src/modules/bmm/sub-modules/claude-code/sub-agents/codebase-analyzer.md +64 -0
  116. package/src/modules/bmm/sub-modules/claude-code/sub-agents/data-analyst.md +84 -0
  117. package/src/modules/bmm/sub-modules/claude-code/sub-agents/dependency-mapper.md +67 -0
  118. package/src/modules/bmm/sub-modules/claude-code/sub-agents/document-reviewer.md +85 -0
  119. package/src/modules/bmm/sub-modules/claude-code/sub-agents/epic-optimizer.md +66 -0
  120. package/src/modules/bmm/sub-modules/claude-code/sub-agents/market-researcher.md +34 -0
  121. package/src/modules/bmm/sub-modules/claude-code/sub-agents/pattern-detector.md +67 -0
  122. package/src/modules/bmm/sub-modules/claude-code/sub-agents/requirements-analyst.md +61 -0
  123. package/src/modules/bmm/sub-modules/claude-code/sub-agents/tech-debt-auditor.md +89 -0
  124. package/src/modules/bmm/sub-modules/claude-code/sub-agents/technical-decisions-curator.md +146 -0
  125. package/src/modules/bmm/sub-modules/claude-code/sub-agents/technical-evaluator.md +51 -0
  126. package/src/modules/bmm/sub-modules/claude-code/sub-agents/test-coverage-analyzer.md +91 -0
  127. package/src/modules/bmm/sub-modules/claude-code/sub-agents/trend-spotter.md +99 -0
  128. package/src/modules/bmm/sub-modules/claude-code/sub-agents/user-journey-mapper.md +101 -0
  129. package/src/modules/bmm/sub-modules/claude-code/sub-agents/user-researcher.md +56 -0
  130. package/src/modules/bmm/tasks/daily-standup.md +91 -0
  131. package/src/modules/bmm/tasks/retrospective.md +110 -0
  132. package/src/modules/bmm/teams/team-all.yaml +7 -0
  133. package/src/modules/bmm/teams/team-dev.yaml +14 -0
  134. package/src/modules/bmm/teams/team-gamedev.yaml +9 -0
  135. package/src/modules/bmm/testarch/atdd.md +40 -0
  136. package/src/modules/bmm/testarch/automate.md +38 -0
  137. package/src/modules/bmm/testarch/ci.md +39 -0
  138. package/src/modules/bmm/testarch/framework.md +41 -0
  139. package/src/modules/bmm/testarch/nfr-assess.md +38 -0
  140. package/src/modules/bmm/testarch/risk-profile.md +38 -0
  141. package/src/modules/bmm/testarch/tea-commands.csv +11 -0
  142. package/src/modules/bmm/testarch/tea-gate.md +38 -0
  143. package/src/modules/bmm/testarch/tea-knowledge.md +275 -0
  144. package/src/modules/bmm/testarch/test-design.md +39 -0
  145. package/{bmad-core/data → src/modules/bmm/testarch}/test-levels-framework.md +2 -0
  146. package/{bmad-core/data → src/modules/bmm/testarch}/test-priorities-matrix.md +2 -0
  147. package/src/modules/bmm/testarch/trace-requirements.md +38 -0
  148. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/game-brain-methods.csv +26 -0
  149. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/game-context.md +115 -0
  150. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/instructions.md +47 -0
  151. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/workflow.yaml +22 -0
  152. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +38 -0
  153. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/project-context.md +25 -0
  154. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +21 -0
  155. package/src/modules/bmm/workflows/1-analysis/game-brief/README.md +221 -0
  156. package/src/modules/bmm/workflows/1-analysis/game-brief/checklist.md +128 -0
  157. package/src/modules/bmm/workflows/1-analysis/game-brief/instructions.md +517 -0
  158. package/src/modules/bmm/workflows/1-analysis/game-brief/template.md +205 -0
  159. package/src/modules/bmm/workflows/1-analysis/game-brief/workflow.yaml +34 -0
  160. package/src/modules/bmm/workflows/1-analysis/product-brief/README.md +180 -0
  161. package/src/modules/bmm/workflows/1-analysis/product-brief/checklist.md +115 -0
  162. package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +353 -0
  163. package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +165 -0
  164. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +33 -0
  165. package/src/modules/bmm/workflows/1-analysis/research/README.md +454 -0
  166. package/src/modules/bmm/workflows/1-analysis/research/checklist.md +202 -0
  167. package/src/modules/bmm/workflows/1-analysis/research/claude-code/injections.yaml +114 -0
  168. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-competitor-analyzer.md +259 -0
  169. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-data-analyst.md +190 -0
  170. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-market-researcher.md +337 -0
  171. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-trend-spotter.md +107 -0
  172. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-user-researcher.md +329 -0
  173. package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +370 -0
  174. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +553 -0
  175. package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +91 -0
  176. package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +442 -0
  177. package/src/modules/bmm/workflows/1-analysis/research/template-deep-prompt.md +94 -0
  178. package/src/modules/bmm/workflows/1-analysis/research/template-market.md +311 -0
  179. package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +210 -0
  180. package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +149 -0
  181. package/src/modules/bmm/workflows/2-plan/README.md +203 -0
  182. package/src/modules/bmm/workflows/2-plan/checklist.md +369 -0
  183. package/src/modules/bmm/workflows/2-plan/gdd/README.md +222 -0
  184. package/src/modules/bmm/workflows/2-plan/gdd/game-types/action-platformer.md +45 -0
  185. package/src/modules/bmm/workflows/2-plan/gdd/game-types/adventure.md +84 -0
  186. package/src/modules/bmm/workflows/2-plan/gdd/game-types/card-game.md +76 -0
  187. package/src/modules/bmm/workflows/2-plan/gdd/game-types/fighting.md +89 -0
  188. package/src/modules/bmm/workflows/2-plan/gdd/game-types/horror.md +86 -0
  189. package/src/modules/bmm/workflows/2-plan/gdd/game-types/idle-incremental.md +78 -0
  190. package/src/modules/bmm/workflows/2-plan/gdd/game-types/metroidvania.md +87 -0
  191. package/src/modules/bmm/workflows/2-plan/gdd/game-types/moba.md +74 -0
  192. package/src/modules/bmm/workflows/2-plan/gdd/game-types/party-game.md +79 -0
  193. package/src/modules/bmm/workflows/2-plan/gdd/game-types/puzzle.md +58 -0
  194. package/src/modules/bmm/workflows/2-plan/gdd/game-types/racing.md +88 -0
  195. package/src/modules/bmm/workflows/2-plan/gdd/game-types/rhythm.md +79 -0
  196. package/src/modules/bmm/workflows/2-plan/gdd/game-types/roguelike.md +69 -0
  197. package/src/modules/bmm/workflows/2-plan/gdd/game-types/rpg.md +70 -0
  198. package/src/modules/bmm/workflows/2-plan/gdd/game-types/sandbox.md +79 -0
  199. package/src/modules/bmm/workflows/2-plan/gdd/game-types/shooter.md +62 -0
  200. package/src/modules/bmm/workflows/2-plan/gdd/game-types/simulation.md +73 -0
  201. package/src/modules/bmm/workflows/2-plan/gdd/game-types/sports.md +75 -0
  202. package/src/modules/bmm/workflows/2-plan/gdd/game-types/strategy.md +71 -0
  203. package/src/modules/bmm/workflows/2-plan/gdd/game-types/survival.md +79 -0
  204. package/src/modules/bmm/workflows/2-plan/gdd/game-types/text-based.md +91 -0
  205. package/src/modules/bmm/workflows/2-plan/gdd/game-types/tower-defense.md +79 -0
  206. package/src/modules/bmm/workflows/2-plan/gdd/game-types/turn-based-tactics.md +88 -0
  207. package/src/modules/bmm/workflows/2-plan/gdd/game-types/visual-novel.md +89 -0
  208. package/src/modules/bmm/workflows/2-plan/gdd/game-types.csv +25 -0
  209. package/src/modules/bmm/workflows/2-plan/gdd/gdd-template.md +159 -0
  210. package/src/modules/bmm/workflows/2-plan/gdd/instructions-gdd.md +480 -0
  211. package/src/modules/bmm/workflows/2-plan/instructions-router.md +222 -0
  212. package/src/modules/bmm/workflows/2-plan/narrative/instructions-narrative.md +517 -0
  213. package/src/modules/bmm/workflows/2-plan/narrative/narrative-template.md +195 -0
  214. package/src/modules/bmm/workflows/2-plan/prd/analysis-template.md +53 -0
  215. package/src/modules/bmm/workflows/2-plan/prd/epics-template.md +18 -0
  216. package/src/modules/bmm/workflows/2-plan/prd/instructions-lg.md +267 -0
  217. package/src/modules/bmm/workflows/2-plan/prd/instructions-med.md +251 -0
  218. package/src/modules/bmm/workflows/2-plan/prd/prd-template.md +73 -0
  219. package/src/modules/bmm/workflows/2-plan/tech-spec/instructions-sm.md +137 -0
  220. package/src/modules/bmm/workflows/2-plan/tech-spec/tech-spec-template.md +59 -0
  221. package/src/modules/bmm/workflows/2-plan/ux/instructions-ux.md +360 -0
  222. package/src/modules/bmm/workflows/2-plan/ux/ux-spec-template.md +162 -0
  223. package/src/modules/bmm/workflows/2-plan/workflow.yaml +60 -0
  224. package/src/modules/bmm/workflows/3-solutioning/ADR-template.md +74 -0
  225. package/src/modules/bmm/workflows/3-solutioning/README.md +565 -0
  226. package/src/modules/bmm/workflows/3-solutioning/checklist.md +170 -0
  227. package/src/modules/bmm/workflows/3-solutioning/instructions.md +661 -0
  228. package/src/modules/bmm/workflows/3-solutioning/project-types/backend-questions.md +490 -0
  229. package/src/modules/bmm/workflows/3-solutioning/project-types/cli-questions.md +337 -0
  230. package/src/modules/bmm/workflows/3-solutioning/project-types/data-questions.md +472 -0
  231. package/src/modules/bmm/workflows/3-solutioning/project-types/desktop-questions.md +299 -0
  232. package/src/modules/bmm/workflows/3-solutioning/project-types/embedded-questions.md +118 -0
  233. package/src/modules/bmm/workflows/3-solutioning/project-types/extension-questions.md +374 -0
  234. package/src/modules/bmm/workflows/3-solutioning/project-types/game-questions.md +133 -0
  235. package/src/modules/bmm/workflows/3-solutioning/project-types/infra-questions.md +484 -0
  236. package/src/modules/bmm/workflows/3-solutioning/project-types/library-questions.md +146 -0
  237. package/src/modules/bmm/workflows/3-solutioning/project-types/mobile-questions.md +110 -0
  238. package/src/modules/bmm/workflows/3-solutioning/project-types/project-types.csv +12 -0
  239. package/src/modules/bmm/workflows/3-solutioning/project-types/web-questions.md +136 -0
  240. package/src/modules/bmm/workflows/3-solutioning/tech-spec/README.md +195 -0
  241. package/src/modules/bmm/workflows/3-solutioning/tech-spec/checklist.md +17 -0
  242. package/src/modules/bmm/workflows/3-solutioning/tech-spec/instructions.md +73 -0
  243. package/src/modules/bmm/workflows/3-solutioning/tech-spec/template.md +76 -0
  244. package/src/modules/bmm/workflows/3-solutioning/tech-spec/workflow.yaml +51 -0
  245. package/src/modules/bmm/workflows/3-solutioning/templates/backend-service-architecture.md +66 -0
  246. package/src/modules/bmm/workflows/3-solutioning/templates/cli-tool-architecture.md +66 -0
  247. package/src/modules/bmm/workflows/3-solutioning/templates/data-pipeline-architecture.md +66 -0
  248. package/src/modules/bmm/workflows/3-solutioning/templates/desktop-app-architecture.md +66 -0
  249. package/src/modules/bmm/workflows/3-solutioning/templates/embedded-firmware-architecture.md +66 -0
  250. package/src/modules/bmm/workflows/3-solutioning/templates/game-engine-architecture.md +244 -0
  251. package/src/modules/bmm/workflows/3-solutioning/templates/game-engine-godot-guide.md +428 -0
  252. package/src/modules/bmm/workflows/3-solutioning/templates/game-engine-unity-guide.md +333 -0
  253. package/src/modules/bmm/workflows/3-solutioning/templates/game-engine-web-guide.md +528 -0
  254. package/src/modules/bmm/workflows/3-solutioning/templates/infrastructure-architecture.md +66 -0
  255. package/src/modules/bmm/workflows/3-solutioning/templates/library-package-architecture.md +66 -0
  256. package/src/modules/bmm/workflows/3-solutioning/templates/mobile-app-architecture.md +66 -0
  257. package/src/modules/bmm/workflows/3-solutioning/templates/registry.csv +172 -0
  258. package/src/modules/bmm/workflows/3-solutioning/templates/web-api-architecture.md +66 -0
  259. package/src/modules/bmm/workflows/3-solutioning/templates/web-fullstack-architecture.md +277 -0
  260. package/src/modules/bmm/workflows/3-solutioning/workflow.yaml +65 -0
  261. package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +279 -0
  262. package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +190 -0
  263. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +35 -0
  264. package/src/modules/bmm/workflows/4-implementation/create-story/README.md +42 -0
  265. package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +39 -0
  266. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +81 -0
  267. package/src/modules/bmm/workflows/4-implementation/create-story/template.md +57 -0
  268. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +72 -0
  269. package/src/modules/bmm/workflows/4-implementation/dev-story/README.md +84 -0
  270. package/src/modules/bmm/workflows/4-implementation/dev-story/checklist.md +38 -0
  271. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +87 -0
  272. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +53 -0
  273. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +391 -0
  274. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +41 -0
  275. package/src/modules/bmm/workflows/4-implementation/review-story/README.md +72 -0
  276. package/src/modules/bmm/workflows/4-implementation/review-story/backlog_template.md +12 -0
  277. package/src/modules/bmm/workflows/4-implementation/review-story/checklist.md +22 -0
  278. package/src/modules/bmm/workflows/4-implementation/review-story/instructions.md +176 -0
  279. package/src/modules/bmm/workflows/4-implementation/review-story/workflow.yaml +99 -0
  280. package/src/modules/bmm/workflows/4-implementation/story-context/README.md +234 -0
  281. package/src/modules/bmm/workflows/4-implementation/story-context/checklist.md +16 -0
  282. package/src/modules/bmm/workflows/4-implementation/story-context/context-template.xml +34 -0
  283. package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +76 -0
  284. package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +56 -0
  285. package/src/modules/cis/_module-installer/install-menu-config.yaml +14 -0
  286. package/src/modules/cis/_module-installer/installer.js +92 -0
  287. package/src/modules/cis/agents/README.md +104 -0
  288. package/src/modules/cis/agents/brainstorming-coach.md +24 -0
  289. package/src/modules/cis/agents/creative-problem-solver.md +24 -0
  290. package/src/modules/cis/agents/design-thinking-coach.md +24 -0
  291. package/src/modules/cis/agents/innovation-strategist.md +24 -0
  292. package/src/modules/cis/agents/storyteller.md +24 -0
  293. package/src/modules/cis/readme.md +86 -0
  294. package/src/modules/cis/teams/creative-squad.yaml +6 -0
  295. package/src/modules/cis/workflows/README.md +67 -0
  296. package/src/modules/cis/workflows/brainstorming/README.md +271 -0
  297. package/src/modules/cis/workflows/brainstorming/brain-methods.csv +36 -0
  298. package/src/modules/cis/workflows/brainstorming/instructions.md +310 -0
  299. package/src/modules/cis/workflows/brainstorming/template.md +102 -0
  300. package/src/modules/cis/workflows/brainstorming/workflow.yaml +30 -0
  301. package/src/modules/cis/workflows/design-thinking/README.md +56 -0
  302. package/src/modules/cis/workflows/design-thinking/design-methods.csv +31 -0
  303. package/src/modules/cis/workflows/design-thinking/instructions.md +200 -0
  304. package/src/modules/cis/workflows/design-thinking/template.md +111 -0
  305. package/src/modules/cis/workflows/design-thinking/workflow.yaml +29 -0
  306. package/src/modules/cis/workflows/innovation-strategy/README.md +56 -0
  307. package/src/modules/cis/workflows/innovation-strategy/innovation-frameworks.csv +31 -0
  308. package/src/modules/cis/workflows/innovation-strategy/instructions.md +274 -0
  309. package/src/modules/cis/workflows/innovation-strategy/template.md +189 -0
  310. package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +29 -0
  311. package/src/modules/cis/workflows/problem-solving/README.md +56 -0
  312. package/src/modules/cis/workflows/problem-solving/instructions.md +250 -0
  313. package/src/modules/cis/workflows/problem-solving/solving-methods.csv +31 -0
  314. package/src/modules/cis/workflows/problem-solving/template.md +165 -0
  315. package/src/modules/cis/workflows/problem-solving/workflow.yaml +29 -0
  316. package/src/modules/cis/workflows/storytelling/README.md +58 -0
  317. package/src/modules/cis/workflows/storytelling/instructions.md +275 -0
  318. package/src/modules/cis/workflows/storytelling/story-types.csv +26 -0
  319. package/src/modules/cis/workflows/storytelling/template.md +113 -0
  320. package/src/modules/cis/workflows/storytelling/workflow.yaml +29 -0
  321. package/src/utility/models/agent-activation-ide.xml +51 -0
  322. package/src/utility/models/agent-config-template.md +23 -0
  323. package/tools/cli/bmad-cli.js +42 -0
  324. package/tools/cli/bundlers/bundle-web.js +157 -0
  325. package/tools/cli/bundlers/test-analyst.js +28 -0
  326. package/tools/cli/bundlers/test-bundler.js +118 -0
  327. package/tools/cli/bundlers/web-bundler.js +880 -0
  328. package/tools/cli/commands/install.js +41 -0
  329. package/tools/cli/commands/list.js +28 -0
  330. package/tools/cli/commands/status.js +47 -0
  331. package/tools/cli/commands/uninstall.js +44 -0
  332. package/tools/cli/commands/update.js +28 -0
  333. package/tools/cli/installers/lib/core/config-collector.js +383 -0
  334. package/tools/cli/installers/lib/core/dependency-resolver.js +721 -0
  335. package/tools/cli/installers/lib/core/detector.js +208 -0
  336. package/tools/cli/installers/lib/core/installer.js +1070 -0
  337. package/tools/cli/installers/lib/core/manifest-generator.js +385 -0
  338. package/tools/cli/installers/lib/core/manifest.js +484 -0
  339. package/tools/cli/installers/lib/ide/_base-ide.js +281 -0
  340. package/tools/cli/installers/lib/ide/auggie.js +271 -0
  341. package/tools/cli/installers/lib/ide/claude-code.js +625 -0
  342. package/tools/cli/installers/lib/ide/cline.js +301 -0
  343. package/tools/cli/installers/lib/ide/codex.js +267 -0
  344. package/tools/cli/installers/lib/ide/crush.js +204 -0
  345. package/tools/cli/installers/lib/ide/cursor.js +224 -0
  346. package/tools/cli/installers/lib/ide/gemini.js +160 -0
  347. package/tools/cli/installers/lib/ide/github-copilot.js +289 -0
  348. package/tools/cli/installers/lib/ide/iflow.js +142 -0
  349. package/tools/cli/installers/lib/ide/kilo.js +171 -0
  350. package/tools/cli/installers/lib/ide/manager.js +203 -0
  351. package/tools/cli/installers/lib/ide/qwen.js +188 -0
  352. package/tools/cli/installers/lib/ide/roo.js +288 -0
  353. package/tools/cli/installers/lib/ide/trae.js +182 -0
  354. package/tools/cli/installers/lib/ide/windsurf.js +149 -0
  355. package/tools/cli/installers/lib/ide/workflow-command-generator.js +162 -0
  356. package/tools/cli/installers/lib/ide/workflow-command-template.md +11 -0
  357. package/tools/cli/installers/lib/modules/manager.js +452 -0
  358. package/tools/cli/lib/agent-party-generator.js +206 -0
  359. package/tools/cli/lib/cli-utils.js +208 -0
  360. package/tools/cli/lib/config.js +210 -0
  361. package/tools/cli/lib/file-ops.js +204 -0
  362. package/tools/cli/lib/platform-codes.js +116 -0
  363. package/tools/cli/lib/project-root.js +71 -0
  364. package/tools/cli/lib/replace-project-root.js +239 -0
  365. package/tools/cli/lib/ui.js +516 -0
  366. package/tools/cli/lib/xml-handler.js +183 -0
  367. package/tools/cli/lib/xml-to-markdown.js +82 -0
  368. package/tools/{yaml-format.js → cli/lib/yaml-format.js} +3 -10
  369. package/tools/cli/regenerate-manifests.js +28 -0
  370. package/tools/flattener/ignoreRules.js +2 -6
  371. package/tools/flattener/main.js +31 -121
  372. package/tools/flattener/projectRoot.js +3 -8
  373. package/tools/flattener/stats.helpers.js +8 -35
  374. package/tools/flattener/stats.js +1 -6
  375. package/tools/flattener/test-matrix.js +1 -5
  376. package/tools/platform-codes.yaml +127 -0
  377. package/tools/test-agents/captain-kirk-commander.md +110 -0
  378. package/tools/test-agents/data-operations-android.md +123 -0
  379. package/tools/test-agents/geordi-chief-engineer.md +135 -0
  380. package/tools/test-agents/isabella-martinez-ethicist.md +109 -0
  381. package/tools/test-agents/marcus-thompson-security.md +109 -0
  382. package/tools/test-agents/maya-patel-pragmatist.md +82 -0
  383. package/tools/test-agents/picard-diplomat-captain.md +134 -0
  384. package/tools/test-agents/spock-science-officer.md +124 -0
  385. package/tools/test-agents/william-smithers-technocrat.md +71 -0
  386. package/tools/test-agents/zara-chen-designer.md +94 -0
  387. package/tools/validate-bundles.js +87 -0
  388. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -22
  389. package/README.md +0 -221
  390. package/bmad-core/agent-teams/team-all.yaml +0 -14
  391. package/bmad-core/agent-teams/team-fullstack.yaml +0 -18
  392. package/bmad-core/agent-teams/team-ide-minimal.yaml +0 -10
  393. package/bmad-core/agent-teams/team-no-ui.yaml +0 -13
  394. package/bmad-core/agents/analyst.md +0 -81
  395. package/bmad-core/agents/architect.md +0 -83
  396. package/bmad-core/agents/bmad-master.md +0 -107
  397. package/bmad-core/agents/bmad-orchestrator.md +0 -149
  398. package/bmad-core/agents/dev.md +0 -75
  399. package/bmad-core/agents/pm.md +0 -81
  400. package/bmad-core/agents/po.md +0 -76
  401. package/bmad-core/agents/qa.md +0 -88
  402. package/bmad-core/agents/sm.md +0 -62
  403. package/bmad-core/agents/ux-expert.md +0 -66
  404. package/bmad-core/checklists/architect-checklist.md +0 -438
  405. package/bmad-core/checklists/change-checklist.md +0 -182
  406. package/bmad-core/checklists/pm-checklist.md +0 -370
  407. package/bmad-core/checklists/po-master-checklist.md +0 -432
  408. package/bmad-core/checklists/story-dod-checklist.md +0 -94
  409. package/bmad-core/checklists/story-draft-checklist.md +0 -153
  410. package/bmad-core/core-config.yaml +0 -20
  411. package/bmad-core/data/bmad-kb.md +0 -806
  412. package/bmad-core/data/brainstorming-techniques.md +0 -36
  413. package/bmad-core/data/elicitation-methods.md +0 -154
  414. package/bmad-core/data/technical-preferences.md +0 -3
  415. package/bmad-core/tasks/advanced-elicitation.md +0 -117
  416. package/bmad-core/tasks/brownfield-create-epic.md +0 -160
  417. package/bmad-core/tasks/brownfield-create-story.md +0 -147
  418. package/bmad-core/tasks/correct-course.md +0 -70
  419. package/bmad-core/tasks/create-brownfield-story.md +0 -312
  420. package/bmad-core/tasks/create-deep-research-prompt.md +0 -278
  421. package/bmad-core/tasks/create-next-story.md +0 -112
  422. package/bmad-core/tasks/document-project.md +0 -343
  423. package/bmad-core/tasks/facilitate-brainstorming-session.md +0 -136
  424. package/bmad-core/tasks/generate-ai-frontend-prompt.md +0 -51
  425. package/bmad-core/tasks/index-docs.md +0 -173
  426. package/bmad-core/tasks/kb-mode-interaction.md +0 -75
  427. package/bmad-core/tasks/nfr-assess.md +0 -343
  428. package/bmad-core/tasks/qa-gate.md +0 -159
  429. package/bmad-core/tasks/review-story.md +0 -314
  430. package/bmad-core/tasks/risk-profile.md +0 -353
  431. package/bmad-core/tasks/shard-doc.md +0 -185
  432. package/bmad-core/tasks/test-design.md +0 -174
  433. package/bmad-core/tasks/trace-requirements.md +0 -264
  434. package/bmad-core/tasks/validate-next-story.md +0 -134
  435. package/bmad-core/templates/architecture-tmpl.yaml +0 -650
  436. package/bmad-core/templates/brainstorming-output-tmpl.yaml +0 -156
  437. package/bmad-core/templates/brownfield-architecture-tmpl.yaml +0 -476
  438. package/bmad-core/templates/brownfield-prd-tmpl.yaml +0 -280
  439. package/bmad-core/templates/competitor-analysis-tmpl.yaml +0 -306
  440. package/bmad-core/templates/front-end-architecture-tmpl.yaml +0 -218
  441. package/bmad-core/templates/front-end-spec-tmpl.yaml +0 -349
  442. package/bmad-core/templates/fullstack-architecture-tmpl.yaml +0 -823
  443. package/bmad-core/templates/market-research-tmpl.yaml +0 -252
  444. package/bmad-core/templates/prd-tmpl.yaml +0 -202
  445. package/bmad-core/templates/project-brief-tmpl.yaml +0 -221
  446. package/bmad-core/templates/qa-gate-tmpl.yaml +0 -102
  447. package/bmad-core/templates/story-tmpl.yaml +0 -137
  448. package/bmad-core/workflows/brownfield-fullstack.yaml +0 -297
  449. package/bmad-core/workflows/brownfield-service.yaml +0 -187
  450. package/bmad-core/workflows/brownfield-ui.yaml +0 -197
  451. package/bmad-core/workflows/greenfield-fullstack.yaml +0 -240
  452. package/bmad-core/workflows/greenfield-service.yaml +0 -206
  453. package/bmad-core/workflows/greenfield-ui.yaml +0 -235
  454. package/common/tasks/create-doc.md +0 -101
  455. package/common/tasks/execute-checklist.md +0 -86
  456. package/common/utils/bmad-doc-template.md +0 -325
  457. package/common/utils/workflow-management.md +0 -69
  458. package/dist/agents/analyst.txt +0 -2889
  459. package/dist/agents/architect.txt +0 -3552
  460. package/dist/agents/bmad-master.txt +0 -8769
  461. package/dist/agents/bmad-orchestrator.txt +0 -1513
  462. package/dist/agents/dev.txt +0 -414
  463. package/dist/agents/pm.txt +0 -2204
  464. package/dist/agents/po.txt +0 -1346
  465. package/dist/agents/qa.txt +0 -1987
  466. package/dist/agents/sm.txt +0 -658
  467. package/dist/agents/ux-expert.txt +0 -694
  468. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +0 -2371
  469. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +0 -1620
  470. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +0 -815
  471. package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +0 -10952
  472. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +0 -4012
  473. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +0 -3698
  474. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +0 -450
  475. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +0 -973
  476. package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +0 -15376
  477. package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +0 -2075
  478. package/dist/teams/team-all.txt +0 -12682
  479. package/dist/teams/team-fullstack.txt +0 -10421
  480. package/dist/teams/team-ide-minimal.txt +0 -5103
  481. package/dist/teams/team-no-ui.txt +0 -8980
  482. package/docs/GUIDING-PRINCIPLES.md +0 -91
  483. package/docs/core-architecture.md +0 -219
  484. package/docs/enhanced-ide-development-workflow.md +0 -248
  485. package/docs/expansion-packs.md +0 -280
  486. package/docs/how-to-contribute-with-pull-requests.md +0 -158
  487. package/docs/user-guide.md +0 -504
  488. package/docs/versioning-and-releases.md +0 -147
  489. package/docs/versions.md +0 -48
  490. package/docs/working-in-the-brownfield.md +0 -597
  491. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/Complete AI Agent System - Flowchart.svg +0 -102
  492. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.1 Google Cloud Project Setup/1.1.1 - Initial Project Configuration - bash copy.txt +0 -13
  493. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.1 Google Cloud Project Setup/1.1.1 - Initial Project Configuration - bash.txt +0 -13
  494. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.2 Agent Development Kit Installation/1.2.2 - Basic Project Structure - txt.txt +0 -25
  495. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.3 Core Configuration Files/1.3.1 - settings.py +0 -34
  496. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.3 Core Configuration Files/1.3.2 - main.py - Base Application.py +0 -70
  497. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.4 Deployment Configuration/1.4.2 - cloudbuild.yaml +0 -26
  498. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/README.md +0 -109
  499. package/expansion-packs/README.md +0 -3
  500. package/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +0 -13
  501. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +0 -71
  502. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +0 -78
  503. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +0 -64
  504. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +0 -201
  505. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +0 -160
  506. package/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +0 -8
  507. package/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +0 -250
  508. package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +0 -647
  509. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +0 -110
  510. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md +0 -216
  511. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +0 -290
  512. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +0 -613
  513. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +0 -356
  514. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +0 -343
  515. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +0 -253
  516. package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +0 -484
  517. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +0 -183
  518. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +0 -175
  519. package/expansion-packs/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +0 -14
  520. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.md +0 -80
  521. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.md +0 -77
  522. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +0 -78
  523. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.md +0 -65
  524. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-architect-checklist.md +0 -391
  525. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-change-checklist.md +0 -203
  526. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +0 -201
  527. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +0 -124
  528. package/expansion-packs/bmad-2d-unity-game-dev/config.yaml +0 -6
  529. package/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +0 -769
  530. package/expansion-packs/bmad-2d-unity-game-dev/data/development-guidelines.md +0 -586
  531. package/expansion-packs/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +0 -110
  532. package/expansion-packs/bmad-2d-unity-game-dev/tasks/correct-course-game.md +0 -141
  533. package/expansion-packs/bmad-2d-unity-game-dev/tasks/create-game-story.md +0 -184
  534. package/expansion-packs/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +0 -290
  535. package/expansion-packs/bmad-2d-unity-game-dev/tasks/validate-game-story.md +0 -200
  536. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +0 -1030
  537. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +0 -356
  538. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +0 -705
  539. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +0 -256
  540. package/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +0 -484
  541. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +0 -183
  542. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +0 -175
  543. package/expansion-packs/bmad-infrastructure-devops/README.md +0 -147
  544. package/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md +0 -71
  545. package/expansion-packs/bmad-infrastructure-devops/checklists/infrastructure-checklist.md +0 -484
  546. package/expansion-packs/bmad-infrastructure-devops/config.yaml +0 -9
  547. package/expansion-packs/bmad-infrastructure-devops/data/bmad-kb.md +0 -305
  548. package/expansion-packs/bmad-infrastructure-devops/tasks/review-infrastructure.md +0 -159
  549. package/expansion-packs/bmad-infrastructure-devops/tasks/validate-infrastructure.md +0 -153
  550. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +0 -424
  551. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +0 -629
  552. package/release_notes.md +0 -33
  553. package/tools/bmad-npx-wrapper.js +0 -39
  554. package/tools/builders/web-builder.js +0 -675
  555. package/tools/bump-all-versions.js +0 -115
  556. package/tools/bump-expansion-version.js +0 -90
  557. package/tools/cli.js +0 -152
  558. package/tools/installer/README.md +0 -8
  559. package/tools/installer/bin/bmad.js +0 -585
  560. package/tools/installer/config/ide-agent-config.yaml +0 -58
  561. package/tools/installer/config/install.config.yaml +0 -123
  562. package/tools/installer/lib/config-loader.js +0 -257
  563. package/tools/installer/lib/file-manager.js +0 -389
  564. package/tools/installer/lib/ide-base-setup.js +0 -228
  565. package/tools/installer/lib/ide-setup.js +0 -1441
  566. package/tools/installer/lib/installer.js +0 -1995
  567. package/tools/installer/lib/memory-profiler.js +0 -225
  568. package/tools/installer/lib/module-manager.js +0 -114
  569. package/tools/installer/lib/resource-locator.js +0 -308
  570. package/tools/installer/package.json +0 -44
  571. package/tools/lib/dependency-resolver.js +0 -175
  572. package/tools/lib/yaml-utils.js +0 -29
  573. package/tools/md-assets/web-agent-startup-instructions.md +0 -39
  574. package/tools/preview-release-notes.js +0 -66
  575. package/tools/shared/bannerArt.js +0 -105
  576. package/tools/sync-installer-version.js +0 -32
  577. package/tools/update-expansion-version.js +0 -53
  578. package/tools/upgraders/v3-to-v4-upgrader.js +0 -672
  579. package/tools/version-bump.js +0 -94
@@ -0,0 +1,625 @@
1
+ const path = require('node:path');
2
+ const { BaseIdeSetup } = require('./_base-ide');
3
+ const chalk = require('chalk');
4
+ const { getProjectRoot, getSourcePath, getModulePath } = require('../../../lib/project-root');
5
+ const { WorkflowCommandGenerator } = require('./workflow-command-generator');
6
+
7
+ /**
8
+ * Claude Code IDE setup handler
9
+ */
10
+ class ClaudeCodeSetup extends BaseIdeSetup {
11
+ constructor() {
12
+ super('claude-code', 'Claude Code', true); // preferred IDE
13
+ this.configDir = '.claude';
14
+ this.commandsDir = 'commands';
15
+ this.agentsDir = 'agents';
16
+ }
17
+
18
+ /**
19
+ * Collect configuration choices before installation
20
+ * @param {Object} options - Configuration options
21
+ * @returns {Object} Collected configuration
22
+ */
23
+ async collectConfiguration(options = {}) {
24
+ const config = {
25
+ subagentChoices: null,
26
+ installLocation: null,
27
+ };
28
+
29
+ const sourceModulesPath = getSourcePath('modules');
30
+ const modules = options.selectedModules || [];
31
+
32
+ for (const moduleName of modules) {
33
+ // Check for Claude Code sub-module injection config in SOURCE directory
34
+ const injectionConfigPath = path.join(sourceModulesPath, moduleName, 'sub-modules', 'claude-code', 'injections.yaml');
35
+
36
+ if (await this.exists(injectionConfigPath)) {
37
+ const fs = require('fs-extra');
38
+ const yaml = require('js-yaml');
39
+
40
+ try {
41
+ // Load injection configuration
42
+ const configContent = await fs.readFile(injectionConfigPath, 'utf8');
43
+ const injectionConfig = yaml.load(configContent);
44
+
45
+ // Ask about subagents if they exist and we haven't asked yet
46
+ if (injectionConfig.subagents && !config.subagentChoices) {
47
+ config.subagentChoices = await this.promptSubagentInstallation(injectionConfig.subagents);
48
+
49
+ if (config.subagentChoices.install !== 'none') {
50
+ // Ask for installation location
51
+ const inquirer = require('inquirer');
52
+ const locationAnswer = await inquirer.prompt([
53
+ {
54
+ type: 'list',
55
+ name: 'location',
56
+ message: 'Where would you like to install Claude Code subagents?',
57
+ choices: [
58
+ { name: 'Project level (.claude/agents/)', value: 'project' },
59
+ { name: 'User level (~/.claude/agents/)', value: 'user' },
60
+ ],
61
+ default: 'project',
62
+ },
63
+ ]);
64
+ config.installLocation = locationAnswer.location;
65
+ }
66
+ }
67
+ } catch (error) {
68
+ console.log(chalk.yellow(` Warning: Failed to process ${moduleName} features: ${error.message}`));
69
+ }
70
+ }
71
+ }
72
+
73
+ return config;
74
+ }
75
+
76
+ /**
77
+ * Setup Claude Code IDE configuration
78
+ * @param {string} projectDir - Project directory
79
+ * @param {string} bmadDir - BMAD installation directory
80
+ * @param {Object} options - Setup options
81
+ */
82
+ async setup(projectDir, bmadDir, options = {}) {
83
+ // Store project directory for use in processContent
84
+ this.projectDir = projectDir;
85
+
86
+ console.log(chalk.cyan(`Setting up ${this.name}...`));
87
+
88
+ // Create .claude/commands directory structure
89
+ const claudeDir = path.join(projectDir, this.configDir);
90
+ const commandsDir = path.join(claudeDir, this.commandsDir);
91
+ const bmadCommandsDir = path.join(commandsDir, 'bmad');
92
+
93
+ await this.ensureDir(bmadCommandsDir);
94
+
95
+ // Get agents and tasks from SOURCE, not installed location
96
+ // This ensures we process files with {project-root} placeholders intact
97
+ const sourceDir = getSourcePath('modules');
98
+ const agents = await this.getAgentsFromSource(sourceDir, options.selectedModules || []);
99
+ const tasks = await this.getTasksFromSource(sourceDir, options.selectedModules || []);
100
+
101
+ // Create directories for each module
102
+ const modules = new Set();
103
+ for (const item of [...agents, ...tasks]) modules.add(item.module);
104
+
105
+ for (const module of modules) {
106
+ await this.ensureDir(path.join(bmadCommandsDir, module));
107
+ await this.ensureDir(path.join(bmadCommandsDir, module, 'agents'));
108
+ await this.ensureDir(path.join(bmadCommandsDir, module, 'tasks'));
109
+ }
110
+
111
+ // Process and copy agents
112
+ let agentCount = 0;
113
+ for (const agent of agents) {
114
+ const content = await this.readAndProcess(agent.path, {
115
+ module: agent.module,
116
+ name: agent.name,
117
+ });
118
+
119
+ const targetPath = path.join(bmadCommandsDir, agent.module, 'agents', `${agent.name}.md`);
120
+
121
+ await this.writeFile(targetPath, content);
122
+ agentCount++;
123
+ }
124
+
125
+ // Process and copy tasks
126
+ let taskCount = 0;
127
+ for (const task of tasks) {
128
+ const content = await this.readAndProcess(task.path, {
129
+ module: task.module,
130
+ name: task.name,
131
+ });
132
+
133
+ const targetPath = path.join(bmadCommandsDir, task.module, 'tasks', `${task.name}.md`);
134
+
135
+ await this.writeFile(targetPath, content);
136
+ taskCount++;
137
+ }
138
+
139
+ // Process Claude Code specific injections for installed modules
140
+ // Use pre-collected configuration if available
141
+ if (options.preCollectedConfig) {
142
+ await this.processModuleInjectionsWithConfig(projectDir, bmadDir, options, options.preCollectedConfig);
143
+ } else {
144
+ await this.processModuleInjections(projectDir, bmadDir, options);
145
+ }
146
+
147
+ // Skip CLAUDE.md creation - let user manage their own CLAUDE.md file
148
+ // await this.createClaudeConfig(projectDir, modules);
149
+
150
+ // Generate workflow commands from manifest (if it exists)
151
+ const workflowGen = new WorkflowCommandGenerator();
152
+ const workflowResult = await workflowGen.generateWorkflowCommands(projectDir, bmadDir);
153
+
154
+ console.log(chalk.green(`✓ ${this.name} configured:`));
155
+ console.log(chalk.dim(` - ${agentCount} agents installed`));
156
+ console.log(chalk.dim(` - ${taskCount} tasks installed`));
157
+ if (workflowResult.generated > 0) {
158
+ console.log(chalk.dim(` - ${workflowResult.generated} workflow commands generated`));
159
+ }
160
+ console.log(chalk.dim(` - Commands directory: ${path.relative(projectDir, bmadCommandsDir)}`));
161
+
162
+ return {
163
+ success: true,
164
+ agents: agentCount,
165
+ tasks: taskCount,
166
+ };
167
+ }
168
+
169
+ // Method removed - CLAUDE.md file management left to user
170
+
171
+ /**
172
+ * Read and process file content
173
+ */
174
+ async readAndProcess(filePath, metadata) {
175
+ const fs = require('fs-extra');
176
+ const content = await fs.readFile(filePath, 'utf8');
177
+ return this.processContent(content, metadata);
178
+ }
179
+
180
+ /**
181
+ * Override processContent to use the actual project directory path
182
+ */
183
+ processContent(content, metadata = {}) {
184
+ // Use the base class method with the actual project directory
185
+ return super.processContent(content, metadata, this.projectDir);
186
+ }
187
+
188
+ /**
189
+ * Get agents from source modules (not installed location)
190
+ */
191
+ async getAgentsFromSource(sourceDir, selectedModules) {
192
+ const fs = require('fs-extra');
193
+ const agents = [];
194
+
195
+ // Add core agents
196
+ const corePath = getModulePath('core');
197
+ if (await fs.pathExists(path.join(corePath, 'agents'))) {
198
+ const coreAgents = await this.getAgentsFromDir(path.join(corePath, 'agents'), 'core');
199
+ agents.push(...coreAgents);
200
+ }
201
+
202
+ // Add module agents
203
+ for (const moduleName of selectedModules) {
204
+ const modulePath = path.join(sourceDir, moduleName);
205
+ const agentsPath = path.join(modulePath, 'agents');
206
+
207
+ if (await fs.pathExists(agentsPath)) {
208
+ const moduleAgents = await this.getAgentsFromDir(agentsPath, moduleName);
209
+ agents.push(...moduleAgents);
210
+ }
211
+ }
212
+
213
+ return agents;
214
+ }
215
+
216
+ /**
217
+ * Get tasks from source modules (not installed location)
218
+ */
219
+ async getTasksFromSource(sourceDir, selectedModules) {
220
+ const fs = require('fs-extra');
221
+ const tasks = [];
222
+
223
+ // Add core tasks
224
+ const corePath = getModulePath('core');
225
+ if (await fs.pathExists(path.join(corePath, 'tasks'))) {
226
+ const coreTasks = await this.getTasksFromDir(path.join(corePath, 'tasks'), 'core');
227
+ tasks.push(...coreTasks);
228
+ }
229
+
230
+ // Add module tasks
231
+ for (const moduleName of selectedModules) {
232
+ const modulePath = path.join(sourceDir, moduleName);
233
+ const tasksPath = path.join(modulePath, 'tasks');
234
+
235
+ if (await fs.pathExists(tasksPath)) {
236
+ const moduleTasks = await this.getTasksFromDir(tasksPath, moduleName);
237
+ tasks.push(...moduleTasks);
238
+ }
239
+ }
240
+
241
+ return tasks;
242
+ }
243
+
244
+ /**
245
+ * Get agents from a specific directory
246
+ */
247
+ async getAgentsFromDir(dirPath, moduleName) {
248
+ const fs = require('fs-extra');
249
+ const agents = [];
250
+
251
+ const files = await fs.readdir(dirPath);
252
+ for (const file of files) {
253
+ if (file.endsWith('.md')) {
254
+ const filePath = path.join(dirPath, file);
255
+ const content = await fs.readFile(filePath, 'utf8');
256
+
257
+ // Skip web-only agents
258
+ if (content.includes('localskip="true"')) {
259
+ continue;
260
+ }
261
+
262
+ agents.push({
263
+ path: filePath,
264
+ name: file.replace('.md', ''),
265
+ module: moduleName,
266
+ });
267
+ }
268
+ }
269
+
270
+ return agents;
271
+ }
272
+
273
+ /**
274
+ * Get tasks from a specific directory
275
+ */
276
+ async getTasksFromDir(dirPath, moduleName) {
277
+ const fs = require('fs-extra');
278
+ const tasks = [];
279
+
280
+ const files = await fs.readdir(dirPath);
281
+ for (const file of files) {
282
+ if (file.endsWith('.md')) {
283
+ tasks.push({
284
+ path: path.join(dirPath, file),
285
+ name: file.replace('.md', ''),
286
+ module: moduleName,
287
+ });
288
+ }
289
+ }
290
+
291
+ return tasks;
292
+ }
293
+
294
+ /**
295
+ * Process module injections with pre-collected configuration
296
+ */
297
+ async processModuleInjectionsWithConfig(projectDir, bmadDir, options, preCollectedConfig) {
298
+ const fs = require('fs-extra');
299
+ const yaml = require('js-yaml');
300
+
301
+ // Get list of installed modules
302
+ const modules = options.selectedModules || [];
303
+ const { subagentChoices, installLocation } = preCollectedConfig;
304
+
305
+ // Get the actual source directory (not the installation directory)
306
+ const sourceModulesPath = getSourcePath('modules');
307
+
308
+ for (const moduleName of modules) {
309
+ // Check for Claude Code sub-module injection config in SOURCE directory
310
+ const injectionConfigPath = path.join(sourceModulesPath, moduleName, 'sub-modules', 'claude-code', 'injections.yaml');
311
+
312
+ if (await this.exists(injectionConfigPath)) {
313
+ try {
314
+ // Load injection configuration
315
+ const configContent = await fs.readFile(injectionConfigPath, 'utf8');
316
+ const config = yaml.load(configContent);
317
+
318
+ // Process content injections based on user choices
319
+ if (config.injections && subagentChoices && subagentChoices.install !== 'none') {
320
+ for (const injection of config.injections) {
321
+ // Check if this injection is related to a selected subagent
322
+ if (this.shouldInject(injection, subagentChoices)) {
323
+ await this.injectContent(projectDir, injection, subagentChoices);
324
+ }
325
+ }
326
+ }
327
+
328
+ // Copy selected subagents
329
+ if (config.subagents && subagentChoices && subagentChoices.install !== 'none') {
330
+ await this.copySelectedSubagents(
331
+ projectDir,
332
+ path.dirname(injectionConfigPath),
333
+ config.subagents,
334
+ subagentChoices,
335
+ installLocation,
336
+ );
337
+ }
338
+ } catch (error) {
339
+ console.log(chalk.yellow(` Warning: Failed to process ${moduleName} features: ${error.message}`));
340
+ }
341
+ }
342
+ }
343
+ }
344
+
345
+ /**
346
+ * Process Claude Code specific injections for installed modules
347
+ * Looks for injections.yaml in each module's claude-code sub-module
348
+ */
349
+ async processModuleInjections(projectDir, bmadDir, options) {
350
+ const fs = require('fs-extra');
351
+ const yaml = require('js-yaml');
352
+ const inquirer = require('inquirer');
353
+
354
+ // Get list of installed modules
355
+ const modules = options.selectedModules || [];
356
+ let subagentChoices = null;
357
+ let installLocation = null;
358
+
359
+ // Get the actual source directory (not the installation directory)
360
+ const sourceModulesPath = getSourcePath('modules');
361
+
362
+ for (const moduleName of modules) {
363
+ // Check for Claude Code sub-module injection config in SOURCE directory
364
+ const injectionConfigPath = path.join(sourceModulesPath, moduleName, 'sub-modules', 'claude-code', 'injections.yaml');
365
+
366
+ if (await this.exists(injectionConfigPath)) {
367
+ console.log(chalk.cyan(`\nConfiguring ${moduleName} Claude Code features...`));
368
+
369
+ try {
370
+ // Load injection configuration
371
+ const configContent = await fs.readFile(injectionConfigPath, 'utf8');
372
+ const config = yaml.load(configContent);
373
+
374
+ // Ask about subagents if they exist and we haven't asked yet
375
+ if (config.subagents && !subagentChoices) {
376
+ subagentChoices = await this.promptSubagentInstallation(config.subagents);
377
+
378
+ if (subagentChoices.install !== 'none') {
379
+ // Ask for installation location
380
+ const locationAnswer = await inquirer.prompt([
381
+ {
382
+ type: 'list',
383
+ name: 'location',
384
+ message: 'Where would you like to install Claude Code subagents?',
385
+ choices: [
386
+ { name: 'Project level (.claude/agents/)', value: 'project' },
387
+ { name: 'User level (~/.claude/agents/)', value: 'user' },
388
+ ],
389
+ default: 'project',
390
+ },
391
+ ]);
392
+ installLocation = locationAnswer.location;
393
+ }
394
+ }
395
+
396
+ // Process content injections based on user choices
397
+ if (config.injections && subagentChoices && subagentChoices.install !== 'none') {
398
+ for (const injection of config.injections) {
399
+ // Check if this injection is related to a selected subagent
400
+ if (this.shouldInject(injection, subagentChoices)) {
401
+ await this.injectContent(projectDir, injection, subagentChoices);
402
+ }
403
+ }
404
+ }
405
+
406
+ // Copy selected subagents
407
+ if (config.subagents && subagentChoices && subagentChoices.install !== 'none') {
408
+ await this.copySelectedSubagents(
409
+ projectDir,
410
+ path.dirname(injectionConfigPath),
411
+ config.subagents,
412
+ subagentChoices,
413
+ installLocation,
414
+ );
415
+ }
416
+ } catch (error) {
417
+ console.log(chalk.yellow(` Warning: Failed to process ${moduleName} features: ${error.message}`));
418
+ }
419
+ }
420
+ }
421
+ }
422
+
423
+ /**
424
+ * Prompt user for subagent installation preferences
425
+ */
426
+ async promptSubagentInstallation(subagentConfig) {
427
+ const inquirer = require('inquirer');
428
+
429
+ // First ask if they want to install subagents
430
+ const { install } = await inquirer.prompt([
431
+ {
432
+ type: 'list',
433
+ name: 'install',
434
+ message: 'Would you like to install Claude Code subagents for enhanced functionality?',
435
+ choices: [
436
+ { name: 'Yes, install all subagents', value: 'all' },
437
+ { name: 'Yes, let me choose specific subagents', value: 'selective' },
438
+ { name: 'No, skip subagent installation', value: 'none' },
439
+ ],
440
+ default: 'all',
441
+ },
442
+ ]);
443
+
444
+ if (install === 'selective') {
445
+ // Show list of available subagents with descriptions
446
+ const subagentInfo = {
447
+ 'market-researcher.md': 'Market research and competitive analysis',
448
+ 'requirements-analyst.md': 'Requirements extraction and validation',
449
+ 'technical-evaluator.md': 'Technology stack evaluation',
450
+ 'epic-optimizer.md': 'Epic and story breakdown optimization',
451
+ 'document-reviewer.md': 'Document quality review',
452
+ };
453
+
454
+ const { selected } = await inquirer.prompt([
455
+ {
456
+ type: 'checkbox',
457
+ name: 'selected',
458
+ message: 'Select subagents to install:',
459
+ choices: subagentConfig.files.map((file) => ({
460
+ name: `${file.replace('.md', '')} - ${subagentInfo[file] || 'Specialized assistant'}`,
461
+ value: file,
462
+ checked: true,
463
+ })),
464
+ },
465
+ ]);
466
+
467
+ return { install: 'selective', selected };
468
+ }
469
+
470
+ return { install };
471
+ }
472
+
473
+ /**
474
+ * Check if an injection should be applied based on user choices
475
+ */
476
+ shouldInject(injection, subagentChoices) {
477
+ // If user chose no subagents, no injections
478
+ if (subagentChoices.install === 'none') {
479
+ return false;
480
+ }
481
+
482
+ // If user chose all subagents, all injections apply
483
+ if (subagentChoices.install === 'all') {
484
+ return true;
485
+ }
486
+
487
+ // For selective installation, check the 'requires' field
488
+ if (subagentChoices.install === 'selective') {
489
+ // If injection requires 'any' subagent and user selected at least one
490
+ if (injection.requires === 'any' && subagentChoices.selected.length > 0) {
491
+ return true;
492
+ }
493
+
494
+ // Check if the required subagent was selected
495
+ if (injection.requires) {
496
+ const requiredAgent = injection.requires + '.md';
497
+ return subagentChoices.selected.includes(requiredAgent);
498
+ }
499
+
500
+ // Fallback: check if injection mentions a selected agent
501
+ const selectedAgentNames = subagentChoices.selected.map((f) => f.replace('.md', ''));
502
+ for (const agentName of selectedAgentNames) {
503
+ if (injection.point && injection.point.includes(agentName)) {
504
+ return true;
505
+ }
506
+ }
507
+ }
508
+
509
+ return false;
510
+ }
511
+
512
+ /**
513
+ * Inject content at specified point in file
514
+ */
515
+ async injectContent(projectDir, injection, subagentChoices = null) {
516
+ const fs = require('fs-extra');
517
+ const targetPath = path.join(projectDir, injection.file);
518
+
519
+ if (await this.exists(targetPath)) {
520
+ let content = await fs.readFile(targetPath, 'utf8');
521
+ const marker = `<!-- IDE-INJECT-POINT: ${injection.point} -->`;
522
+
523
+ if (content.includes(marker)) {
524
+ let injectionContent = injection.content;
525
+
526
+ // Filter content if selective subagents chosen
527
+ if (subagentChoices && subagentChoices.install === 'selective' && injection.point === 'pm-agent-instructions') {
528
+ injectionContent = this.filterAgentInstructions(injection.content, subagentChoices.selected);
529
+ }
530
+
531
+ content = content.replace(marker, injectionContent);
532
+ await fs.writeFile(targetPath, content);
533
+ console.log(chalk.dim(` Injected: ${injection.point} → ${injection.file}`));
534
+ }
535
+ }
536
+ }
537
+
538
+ /**
539
+ * Filter agent instructions to only include selected subagents
540
+ */
541
+ filterAgentInstructions(content, selectedFiles) {
542
+ const selectedAgents = selectedFiles.map((f) => f.replace('.md', ''));
543
+ const lines = content.split('\n');
544
+ const filteredLines = [];
545
+
546
+ let includeNextLine = true;
547
+ for (const line of lines) {
548
+ // Always include structural lines
549
+ if (line.includes('<llm') || line.includes('</llm>')) {
550
+ filteredLines.push(line);
551
+ includeNextLine = true;
552
+ }
553
+ // Check if line mentions a subagent
554
+ else if (line.includes('subagent')) {
555
+ let shouldInclude = false;
556
+ for (const agent of selectedAgents) {
557
+ if (line.includes(agent)) {
558
+ shouldInclude = true;
559
+ break;
560
+ }
561
+ }
562
+ if (shouldInclude) {
563
+ filteredLines.push(line);
564
+ }
565
+ }
566
+ // Include general instructions
567
+ else if (line.includes('When creating PRDs') || line.includes('ACTIVELY delegate')) {
568
+ filteredLines.push(line);
569
+ }
570
+ }
571
+
572
+ // Only return content if we have actual instructions
573
+ if (filteredLines.length > 2) {
574
+ // More than just llm tags
575
+ return filteredLines.join('\n');
576
+ }
577
+ return ''; // Return empty if no relevant content
578
+ }
579
+
580
+ /**
581
+ * Copy selected subagents to appropriate Claude agents directory
582
+ */
583
+ async copySelectedSubagents(projectDir, moduleClaudeDir, subagentConfig, choices, location) {
584
+ const fs = require('fs-extra');
585
+ const sourceDir = path.join(moduleClaudeDir, subagentConfig.source);
586
+
587
+ // Determine target directory based on user choice
588
+ let targetDir;
589
+ if (location === 'user') {
590
+ targetDir = path.join(require('node:os').homedir(), '.claude', 'agents');
591
+ console.log(chalk.dim(` Installing subagents globally to: ~/.claude/agents/`));
592
+ } else {
593
+ targetDir = path.join(projectDir, '.claude', 'agents');
594
+ console.log(chalk.dim(` Installing subagents to project: .claude/agents/`));
595
+ }
596
+
597
+ // Ensure target directory exists
598
+ await this.ensureDir(targetDir);
599
+
600
+ // Determine which files to copy
601
+ let filesToCopy = [];
602
+ if (choices.install === 'all') {
603
+ filesToCopy = subagentConfig.files;
604
+ } else if (choices.install === 'selective') {
605
+ filesToCopy = choices.selected;
606
+ }
607
+
608
+ // Copy selected subagent files
609
+ for (const file of filesToCopy) {
610
+ const sourcePath = path.join(sourceDir, file);
611
+ const targetPath = path.join(targetDir, file);
612
+
613
+ if (await this.exists(sourcePath)) {
614
+ await fs.copyFile(sourcePath, targetPath);
615
+ console.log(chalk.green(` ✓ Installed: ${file.replace('.md', '')}`));
616
+ }
617
+ }
618
+
619
+ if (filesToCopy.length > 0) {
620
+ console.log(chalk.dim(` Total subagents installed: ${filesToCopy.length}`));
621
+ }
622
+ }
623
+ }
624
+
625
+ module.exports = { ClaudeCodeSetup };