bmad-method 5.1.2 → 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 -32
  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
@@ -1,672 +0,0 @@
1
- const fs = require('node:fs').promises;
2
- const path = require('node:path');
3
- const { glob } = require('glob');
4
-
5
- // Dynamic imports for ES modules
6
- let chalk, ora, inquirer;
7
-
8
- // Initialize ES modules
9
- async function initializeModules() {
10
- chalk = (await import('chalk')).default;
11
- ora = (await import('ora')).default;
12
- inquirer = (await import('inquirer')).default;
13
- }
14
-
15
- class V3ToV4Upgrader {
16
- constructor() {
17
- // Constructor remains empty
18
- }
19
-
20
- async upgrade(options = {}) {
21
- try {
22
- // Initialize ES modules
23
- await initializeModules();
24
- // Keep readline open throughout the process
25
- process.stdin.resume();
26
-
27
- // 1. Welcome message
28
- console.log(chalk.bold('\nWelcome to BMad-Method V3 to V4 Upgrade Tool\n'));
29
- console.log('This tool will help you upgrade your BMad-Method V3 project to V4.\n');
30
- console.log(chalk.cyan('What this tool does:'));
31
- console.log('- Creates a backup of your V3 files (.bmad-v3-backup/)');
32
- console.log('- Installs the new V4 .bmad-core structure');
33
- console.log('- Preserves your PRD, Architecture, and Stories in the new format\n');
34
- console.log(chalk.yellow('What this tool does NOT do:'));
35
- console.log('- Modify your document content (use doc-migration-task after upgrade)');
36
- console.log('- Touch any files outside bmad-agent/ and docs/\n');
37
-
38
- // 2. Get project path
39
- const projectPath = await this.getProjectPath(options.projectPath);
40
-
41
- // 3. Validate V3 structure
42
- const validation = await this.validateV3Project(projectPath);
43
- if (!validation.isValid) {
44
- console.error(chalk.red("\nError: This doesn't appear to be a V3 project."));
45
- console.error('Expected to find:');
46
- console.error('- bmad-agent/ directory');
47
- console.error('- docs/ directory\n');
48
- console.error("Please check you're in the correct directory and try again.");
49
- return;
50
- }
51
-
52
- // 4. Pre-flight check
53
- const analysis = await this.analyzeProject(projectPath);
54
- await this.showPreflightCheck(analysis, options);
55
-
56
- if (!options.dryRun) {
57
- const { confirm } = await inquirer.prompt([
58
- {
59
- type: 'confirm',
60
- name: 'confirm',
61
- message: 'Continue with upgrade?',
62
- default: true,
63
- },
64
- ]);
65
-
66
- if (!confirm) {
67
- console.log('Upgrade cancelled.');
68
- return;
69
- }
70
- }
71
-
72
- // 5. Create backup
73
- if (options.backup !== false && !options.dryRun) {
74
- await this.createBackup(projectPath);
75
- }
76
-
77
- // 6. Install V4 structure
78
- if (!options.dryRun) {
79
- await this.installV4Structure(projectPath);
80
- }
81
-
82
- // 7. Migrate documents
83
- if (!options.dryRun) {
84
- await this.migrateDocuments(projectPath, analysis);
85
- }
86
-
87
- // 8. Setup IDE
88
- if (!options.dryRun) {
89
- await this.setupIDE(projectPath, options.ides);
90
- }
91
-
92
- // 9. Show completion report
93
- this.showCompletionReport(projectPath, analysis);
94
-
95
- process.exit(0);
96
- } catch (error) {
97
- console.error(chalk.red('\nUpgrade error:'), error.message);
98
- process.exit(1);
99
- }
100
- }
101
-
102
- async getProjectPath(providedPath) {
103
- if (providedPath) {
104
- return path.resolve(providedPath);
105
- }
106
-
107
- const { projectPath } = await inquirer.prompt([
108
- {
109
- type: 'input',
110
- name: 'projectPath',
111
- message: 'Please enter the path to your V3 project:',
112
- default: process.cwd(),
113
- },
114
- ]);
115
-
116
- return path.resolve(projectPath);
117
- }
118
-
119
- async validateV3Project(projectPath) {
120
- const spinner = ora('Validating project structure...').start();
121
-
122
- try {
123
- const bmadAgentPath = path.join(projectPath, 'bmad-agent');
124
- const docsPath = path.join(projectPath, 'docs');
125
-
126
- const hasBmadAgent = await this.pathExists(bmadAgentPath);
127
- const hasDocs = await this.pathExists(docsPath);
128
-
129
- if (hasBmadAgent) {
130
- spinner.text = '✓ Found bmad-agent/ directory';
131
- console.log(chalk.green('\n✓ Found bmad-agent/ directory'));
132
- }
133
-
134
- if (hasDocs) {
135
- console.log(chalk.green('✓ Found docs/ directory'));
136
- }
137
-
138
- const isValid = hasBmadAgent && hasDocs;
139
-
140
- if (isValid) {
141
- spinner.succeed('This appears to be a valid V3 project');
142
- } else {
143
- spinner.fail('Invalid V3 project structure');
144
- }
145
-
146
- return { isValid, hasBmadAgent, hasDocs };
147
- } catch (error) {
148
- spinner.fail('Validation failed');
149
- throw error;
150
- }
151
- }
152
-
153
- async analyzeProject(projectPath) {
154
- const docsPath = path.join(projectPath, 'docs');
155
- const bmadAgentPath = path.join(projectPath, 'bmad-agent');
156
-
157
- // Find PRD
158
- const prdCandidates = ['prd.md', 'PRD.md', 'product-requirements.md'];
159
- let prdFile = null;
160
- for (const candidate of prdCandidates) {
161
- const candidatePath = path.join(docsPath, candidate);
162
- if (await this.pathExists(candidatePath)) {
163
- prdFile = candidate;
164
- break;
165
- }
166
- }
167
-
168
- // Find Architecture
169
- const archCandidates = ['architecture.md', 'Architecture.md', 'technical-architecture.md'];
170
- let archFile = null;
171
- for (const candidate of archCandidates) {
172
- const candidatePath = path.join(docsPath, candidate);
173
- if (await this.pathExists(candidatePath)) {
174
- archFile = candidate;
175
- break;
176
- }
177
- }
178
-
179
- // Find Front-end Architecture (V3 specific)
180
- const frontEndCandidates = [
181
- 'front-end-architecture.md',
182
- 'frontend-architecture.md',
183
- 'ui-architecture.md',
184
- ];
185
- let frontEndArchFile = null;
186
- for (const candidate of frontEndCandidates) {
187
- const candidatePath = path.join(docsPath, candidate);
188
- if (await this.pathExists(candidatePath)) {
189
- frontEndArchFile = candidate;
190
- break;
191
- }
192
- }
193
-
194
- // Find UX/UI spec
195
- const uxSpecCandidates = [
196
- 'ux-ui-spec.md',
197
- 'ux-ui-specification.md',
198
- 'ui-spec.md',
199
- 'ux-spec.md',
200
- ];
201
- let uxSpecFile = null;
202
- for (const candidate of uxSpecCandidates) {
203
- const candidatePath = path.join(docsPath, candidate);
204
- if (await this.pathExists(candidatePath)) {
205
- uxSpecFile = candidate;
206
- break;
207
- }
208
- }
209
-
210
- // Find v0 prompt or UX prompt
211
- const uxPromptCandidates = ['v0-prompt.md', 'ux-prompt.md', 'ui-prompt.md', 'design-prompt.md'];
212
- let uxPromptFile = null;
213
- for (const candidate of uxPromptCandidates) {
214
- const candidatePath = path.join(docsPath, candidate);
215
- if (await this.pathExists(candidatePath)) {
216
- uxPromptFile = candidate;
217
- break;
218
- }
219
- }
220
-
221
- // Find epic files
222
- const epicFiles = await glob('epic*.md', { cwd: docsPath });
223
-
224
- // Find story files
225
- const storiesPath = path.join(docsPath, 'stories');
226
- let storyFiles = [];
227
- if (await this.pathExists(storiesPath)) {
228
- storyFiles = await glob('*.md', { cwd: storiesPath });
229
- }
230
-
231
- // Count custom files in bmad-agent
232
- const bmadAgentFiles = await glob('**/*.md', {
233
- cwd: bmadAgentPath,
234
- ignore: ['node_modules/**'],
235
- });
236
-
237
- return {
238
- prdFile,
239
- archFile,
240
- frontEndArchFile,
241
- uxSpecFile,
242
- uxPromptFile,
243
- epicFiles,
244
- storyFiles,
245
- customFileCount: bmadAgentFiles.length,
246
- };
247
- }
248
-
249
- async showPreflightCheck(analysis, options) {
250
- console.log(chalk.bold('\nProject Analysis:'));
251
- console.log(
252
- `- PRD found: ${analysis.prdFile ? `docs/${analysis.prdFile}` : chalk.yellow('Not found')}`,
253
- );
254
- console.log(
255
- `- Architecture found: ${
256
- analysis.archFile ? `docs/${analysis.archFile}` : chalk.yellow('Not found')
257
- }`,
258
- );
259
- if (analysis.frontEndArchFile) {
260
- console.log(`- Front-end Architecture found: docs/${analysis.frontEndArchFile}`);
261
- }
262
- console.log(
263
- `- UX/UI Spec found: ${
264
- analysis.uxSpecFile ? `docs/${analysis.uxSpecFile}` : chalk.yellow('Not found')
265
- }`,
266
- );
267
- console.log(
268
- `- UX/Design Prompt found: ${
269
- analysis.uxPromptFile ? `docs/${analysis.uxPromptFile}` : chalk.yellow('Not found')
270
- }`,
271
- );
272
- console.log(`- Epic files found: ${analysis.epicFiles.length} files (epic*.md)`);
273
- console.log(`- Stories found: ${analysis.storyFiles.length} files in docs/stories/`);
274
- console.log(`- Custom files in bmad-agent/: ${analysis.customFileCount}`);
275
-
276
- if (!options.dryRun) {
277
- console.log('\nThe following will be backed up to .bmad-v3-backup/:');
278
- console.log('- bmad-agent/ (entire directory)');
279
- console.log('- docs/ (entire directory)');
280
-
281
- if (analysis.epicFiles.length > 0) {
282
- console.log(
283
- chalk.green(
284
- '\nNote: Epic files found! They will be placed in docs/prd/ with an index.md file.',
285
- ),
286
- );
287
- console.log(
288
- chalk.green("Since epic files exist, you won't need to shard the PRD after upgrade."),
289
- );
290
- }
291
- }
292
- }
293
-
294
- async createBackup(projectPath) {
295
- const spinner = ora('Creating backup...').start();
296
-
297
- try {
298
- const backupPath = path.join(projectPath, '.bmad-v3-backup');
299
-
300
- // Check if backup already exists
301
- if (await this.pathExists(backupPath)) {
302
- spinner.fail('Backup directory already exists');
303
- console.error(chalk.red('\nError: Backup directory .bmad-v3-backup/ already exists.'));
304
- console.error('\nThis might mean an upgrade was already attempted.');
305
- console.error('Please remove or rename the existing backup and try again.');
306
- throw new Error('Backup already exists');
307
- }
308
-
309
- // Create backup directory
310
- await fs.mkdir(backupPath, { recursive: true });
311
- spinner.text = '✓ Created .bmad-v3-backup/';
312
- console.log(chalk.green('\n✓ Created .bmad-v3-backup/'));
313
-
314
- // Move bmad-agent
315
- const bmadAgentSource = path.join(projectPath, 'bmad-agent');
316
- const bmadAgentDestination = path.join(backupPath, 'bmad-agent');
317
- await fs.rename(bmadAgentSource, bmadAgentDestination);
318
- console.log(chalk.green('✓ Moved bmad-agent/ to backup'));
319
-
320
- // Move docs
321
- const docsSrc = path.join(projectPath, 'docs');
322
- const docsDest = path.join(backupPath, 'docs');
323
- await fs.rename(docsSrc, docsDest);
324
- console.log(chalk.green('✓ Moved docs/ to backup'));
325
-
326
- spinner.succeed('Backup created successfully');
327
- } catch (error) {
328
- spinner.fail('Backup failed');
329
- throw error;
330
- }
331
- }
332
-
333
- async installV4Structure(projectPath) {
334
- const spinner = ora('Installing V4 structure...').start();
335
-
336
- try {
337
- // Get the source bmad-core directory (without dot prefix)
338
- const sourcePath = path.join(__dirname, '..', '..', 'bmad-core');
339
- const destinationPath = path.join(projectPath, '.bmad-core');
340
-
341
- // Copy .bmad-core
342
- await this.copyDirectory(sourcePath, destinationPath);
343
- spinner.text = '✓ Copied fresh .bmad-core/ directory from V4';
344
- console.log(chalk.green('\n✓ Copied fresh .bmad-core/ directory from V4'));
345
-
346
- // Create docs directory
347
- const docsPath = path.join(projectPath, 'docs');
348
- await fs.mkdir(docsPath, { recursive: true });
349
- console.log(chalk.green('✓ Created new docs/ directory'));
350
-
351
- // Create install manifest for future updates
352
- await this.createInstallManifest(projectPath);
353
- console.log(chalk.green('✓ Created install manifest'));
354
-
355
- console.log(
356
- chalk.yellow('\nNote: Your V3 bmad-agent content has been backed up and NOT migrated.'),
357
- );
358
- console.log(
359
- chalk.yellow(
360
- 'The new V4 agents are completely different and look for different file structures.',
361
- ),
362
- );
363
-
364
- spinner.succeed('V4 structure installed successfully');
365
- } catch (error) {
366
- spinner.fail('V4 installation failed');
367
- throw error;
368
- }
369
- }
370
-
371
- async migrateDocuments(projectPath, analysis) {
372
- const spinner = ora('Migrating your project documents...').start();
373
-
374
- try {
375
- const backupDocsPath = path.join(projectPath, '.bmad-v3-backup', 'docs');
376
- const newDocsPath = path.join(projectPath, 'docs');
377
- let copiedCount = 0;
378
-
379
- // Copy PRD
380
- if (analysis.prdFile) {
381
- const source = path.join(backupDocsPath, analysis.prdFile);
382
- const destination = path.join(newDocsPath, analysis.prdFile);
383
- await fs.copyFile(source, destination);
384
- console.log(chalk.green(`\n✓ Copied PRD to docs/${analysis.prdFile}`));
385
- copiedCount++;
386
- }
387
-
388
- // Copy Architecture
389
- if (analysis.archFile) {
390
- const source = path.join(backupDocsPath, analysis.archFile);
391
- const destination = path.join(newDocsPath, analysis.archFile);
392
- await fs.copyFile(source, destination);
393
- console.log(chalk.green(`✓ Copied Architecture to docs/${analysis.archFile}`));
394
- copiedCount++;
395
- }
396
-
397
- // Copy Front-end Architecture if exists
398
- if (analysis.frontEndArchFile) {
399
- const source = path.join(backupDocsPath, analysis.frontEndArchFile);
400
- const destination = path.join(newDocsPath, analysis.frontEndArchFile);
401
- await fs.copyFile(source, destination);
402
- console.log(
403
- chalk.green(`✓ Copied Front-end Architecture to docs/${analysis.frontEndArchFile}`),
404
- );
405
- console.log(
406
- chalk.yellow(
407
- 'Note: V4 uses a single full-stack-architecture.md - use doc-migration-task to merge',
408
- ),
409
- );
410
- copiedCount++;
411
- }
412
-
413
- // Copy UX/UI Spec if exists
414
- if (analysis.uxSpecFile) {
415
- const source = path.join(backupDocsPath, analysis.uxSpecFile);
416
- const destination = path.join(newDocsPath, analysis.uxSpecFile);
417
- await fs.copyFile(source, destination);
418
- console.log(chalk.green(`✓ Copied UX/UI Spec to docs/${analysis.uxSpecFile}`));
419
- copiedCount++;
420
- }
421
-
422
- // Copy UX/Design Prompt if exists
423
- if (analysis.uxPromptFile) {
424
- const source = path.join(backupDocsPath, analysis.uxPromptFile);
425
- const destination = path.join(newDocsPath, analysis.uxPromptFile);
426
- await fs.copyFile(source, destination);
427
- console.log(chalk.green(`✓ Copied UX/Design Prompt to docs/${analysis.uxPromptFile}`));
428
- copiedCount++;
429
- }
430
-
431
- // Copy stories
432
- if (analysis.storyFiles.length > 0) {
433
- const storiesDir = path.join(newDocsPath, 'stories');
434
- await fs.mkdir(storiesDir, { recursive: true });
435
-
436
- for (const storyFile of analysis.storyFiles) {
437
- const source = path.join(backupDocsPath, 'stories', storyFile);
438
- const destination = path.join(storiesDir, storyFile);
439
- await fs.copyFile(source, destination);
440
- }
441
- console.log(
442
- chalk.green(`✓ Copied ${analysis.storyFiles.length} story files to docs/stories/`),
443
- );
444
- copiedCount += analysis.storyFiles.length;
445
- }
446
-
447
- // Copy epic files to prd subfolder
448
- if (analysis.epicFiles.length > 0) {
449
- const prdDir = path.join(newDocsPath, 'prd');
450
- await fs.mkdir(prdDir, { recursive: true });
451
-
452
- for (const epicFile of analysis.epicFiles) {
453
- const source = path.join(backupDocsPath, epicFile);
454
- const destination = path.join(prdDir, epicFile);
455
- await fs.copyFile(source, destination);
456
- }
457
- console.log(
458
- chalk.green(`✓ Found and copied ${analysis.epicFiles.length} epic files to docs/prd/`),
459
- );
460
-
461
- // Create index.md for the prd folder
462
- await this.createPrdIndex(projectPath, analysis);
463
- console.log(chalk.green('✓ Created index.md in docs/prd/'));
464
-
465
- console.log(
466
- chalk.green(
467
- '\nNote: Epic files detected! These are compatible with V4 and have been copied.',
468
- ),
469
- );
470
- console.log(chalk.green("You won't need to shard the PRD since epics already exist."));
471
- copiedCount += analysis.epicFiles.length;
472
- }
473
-
474
- spinner.succeed(`Migrated ${copiedCount} documents successfully`);
475
- } catch (error) {
476
- spinner.fail('Document migration failed');
477
- throw error;
478
- }
479
- }
480
-
481
- async setupIDE(projectPath, selectedIdes) {
482
- // Use the IDE selections passed from the installer
483
- if (!selectedIdes || selectedIdes.length === 0) {
484
- console.log(chalk.dim('No IDE setup requested - skipping'));
485
- return;
486
- }
487
-
488
- const ideSetup = require('../installer/lib/ide-setup');
489
- const spinner = ora('Setting up IDE rules for all agents...').start();
490
-
491
- try {
492
- const ideMessages = {
493
- cursor: 'Rules created in .cursor/rules/bmad/',
494
- 'claude-code': 'Commands created in .claude/commands/BMad/',
495
- windsurf: 'Rules created in .windsurf/workflows/',
496
- trae: 'Rules created in.trae/rules/',
497
- roo: 'Custom modes created in .roomodes',
498
- cline: 'Rules created in .clinerules/',
499
- };
500
-
501
- // Setup each selected IDE
502
- for (const ide of selectedIdes) {
503
- spinner.text = `Setting up ${ide}...`;
504
- await ideSetup.setup(ide, projectPath);
505
- console.log(chalk.green(`\n✓ ${ideMessages[ide]}`));
506
- }
507
-
508
- spinner.succeed(`IDE setup complete for ${selectedIdes.length} IDE(s)!`);
509
- } catch {
510
- spinner.fail('IDE setup failed');
511
- console.error(chalk.yellow('IDE setup failed, but upgrade is complete.'));
512
- }
513
- }
514
-
515
- showCompletionReport(projectPath, analysis) {
516
- console.log(chalk.bold.green('\n✓ Upgrade Complete!\n'));
517
- console.log(chalk.bold('Summary:'));
518
- console.log(`- V3 files backed up to: .bmad-v3-backup/`);
519
- console.log(`- V4 structure installed: .bmad-core/ (fresh from V4)`);
520
-
521
- const totalDocs =
522
- (analysis.prdFile ? 1 : 0) +
523
- (analysis.archFile ? 1 : 0) +
524
- (analysis.frontEndArchFile ? 1 : 0) +
525
- (analysis.uxSpecFile ? 1 : 0) +
526
- (analysis.uxPromptFile ? 1 : 0) +
527
- analysis.storyFiles.length;
528
- console.log(
529
- `- Documents migrated: ${totalDocs} files${
530
- analysis.epicFiles.length > 0 ? ` + ${analysis.epicFiles.length} epics` : ''
531
- }`,
532
- );
533
-
534
- console.log(chalk.bold('\nImportant Changes:'));
535
- console.log('- The V4 agents (sm, dev, etc.) expect different file structures than V3');
536
- console.log("- Your V3 bmad-agent content was NOT migrated (it's incompatible)");
537
- if (analysis.epicFiles.length > 0) {
538
- console.log('- Epic files were found and copied - no PRD sharding needed!');
539
- }
540
- if (analysis.frontEndArchFile) {
541
- console.log(
542
- '- Front-end architecture found - V4 uses full-stack-architecture.md, migration needed',
543
- );
544
- }
545
- if (analysis.uxSpecFile || analysis.uxPromptFile) {
546
- console.log('- UX/UI design files found and copied - ready for use with V4');
547
- }
548
-
549
- console.log(chalk.bold('\nNext Steps:'));
550
- console.log('1. Review your documents in the new docs/ folder');
551
- console.log(
552
- '2. Use @bmad-master agent to run the doc-migration-task to align your documents with V4 templates',
553
- );
554
- if (analysis.epicFiles.length === 0) {
555
- console.log('3. Use @bmad-master agent to shard the PRD to create epic files');
556
- }
557
-
558
- console.log(
559
- chalk.dim('\nYour V3 backup is preserved in .bmad-v3-backup/ and can be restored if needed.'),
560
- );
561
- }
562
-
563
- async pathExists(filePath) {
564
- try {
565
- await fs.access(filePath);
566
- return true;
567
- } catch {
568
- return false;
569
- }
570
- }
571
-
572
- async copyDirectory(source, destination) {
573
- await fs.mkdir(destination, { recursive: true });
574
- const entries = await fs.readdir(source, { withFileTypes: true });
575
-
576
- for (const entry of entries) {
577
- const sourcePath = path.join(source, entry.name);
578
- const destinationPath = path.join(destination, entry.name);
579
-
580
- await (entry.isDirectory()
581
- ? this.copyDirectory(sourcePath, destinationPath)
582
- : fs.copyFile(sourcePath, destinationPath));
583
- }
584
- }
585
-
586
- async createPrdIndex(projectPath, analysis) {
587
- const prdIndexPath = path.join(projectPath, 'docs', 'prd', 'index.md');
588
- const prdPath = path.join(projectPath, 'docs', analysis.prdFile || 'prd.md');
589
-
590
- let indexContent = '# Product Requirements Document\n\n';
591
-
592
- // Try to read the PRD to get the title and intro content
593
- if (analysis.prdFile && (await this.pathExists(prdPath))) {
594
- try {
595
- const prdContent = await fs.readFile(prdPath, 'utf8');
596
- const lines = prdContent.split('\n');
597
-
598
- // Find the first heading
599
- const titleMatch = lines.find((line) => line.startsWith('# '));
600
- if (titleMatch) {
601
- indexContent = titleMatch + '\n\n';
602
- }
603
-
604
- // Get any content before the first ## section
605
- let introContent = '';
606
- let foundFirstSection = false;
607
- for (const line of lines) {
608
- if (line.startsWith('## ')) {
609
- foundFirstSection = true;
610
- break;
611
- }
612
- if (!line.startsWith('# ')) {
613
- introContent += line + '\n';
614
- }
615
- }
616
-
617
- if (introContent.trim()) {
618
- indexContent += introContent.trim() + '\n\n';
619
- }
620
- } catch {
621
- // If we can't read the PRD, just use default content
622
- }
623
- }
624
-
625
- // Add sections list
626
- indexContent += '## Sections\n\n';
627
-
628
- // Sort epic files for consistent ordering
629
- const sortedEpics = [...analysis.epicFiles].sort();
630
-
631
- for (const epicFile of sortedEpics) {
632
- // Extract epic name from filename
633
- const epicName = epicFile
634
- .replace(/\.md$/, '')
635
- .replace(/^epic-?/i, '')
636
- .replaceAll('-', ' ')
637
- .replace(/^\d+\s*/, '') // Remove leading numbers
638
- .trim();
639
-
640
- const displayName = epicName.charAt(0).toUpperCase() + epicName.slice(1);
641
- indexContent += `- [${displayName || epicFile.replace('.md', '')}](./${epicFile})\n`;
642
- }
643
-
644
- await fs.writeFile(prdIndexPath, indexContent);
645
- }
646
-
647
- async createInstallManifest(projectPath) {
648
- const fileManager = require('../installer/lib/file-manager');
649
- const { glob } = require('glob');
650
-
651
- // Get all files in .bmad-core for the manifest
652
- const bmadCorePath = path.join(projectPath, '.bmad-core');
653
- const files = await glob('**/*', {
654
- cwd: bmadCorePath,
655
- nodir: true,
656
- ignore: ['**/.git/**', '**/node_modules/**'],
657
- });
658
-
659
- // Prepend .bmad-core/ to file paths for manifest
660
- const manifestFiles = files.map((file) => path.join('.bmad-core', file));
661
-
662
- const config = {
663
- installType: 'full',
664
- agent: null,
665
- ide: null, // Will be set if IDE setup is done later
666
- };
667
-
668
- await fileManager.createManifest(projectPath, config, manifestFiles);
669
- }
670
- }
671
-
672
- module.exports = V3ToV4Upgrader;