bmad-method 6.0.0-alpha.7 → 6.0.0-alpha.9

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 (457) hide show
  1. package/.github/ISSUE_TEMPLATE/idea_submission.md +1 -1
  2. package/.github/workflows/bundle-latest.yaml +277 -0
  3. package/.github/workflows/manual-release.yaml +55 -16
  4. package/.vscode/settings.json +2 -1
  5. package/CHANGELOG.md +439 -1
  6. package/README.md +12 -4
  7. package/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
  8. package/docs/agent-customization-guide.md +208 -0
  9. package/docs/ide-info/crush.md +1 -1
  10. package/docs/ide-info/cursor.md +7 -7
  11. package/docs/ide-info/iflow.md +3 -3
  12. package/docs/ide-info/opencode.md +1 -1
  13. package/docs/index.md +3 -1
  14. package/docs/installers-bundlers/ide-injections.md +2 -2
  15. package/docs/installers-bundlers/installers-modules-platforms-reference.md +23 -23
  16. package/docs/v4-to-v6-upgrade.md +12 -12
  17. package/docs/web-bundles-gemini-gpt-guide.md +473 -0
  18. package/package.json +1 -1
  19. package/src/core/_module-installer/install-config.yaml +17 -10
  20. package/src/core/_module-installer/installer.js +0 -8
  21. package/src/core/agents/bmad-master.agent.yaml +5 -5
  22. package/src/core/agents/bmad-web-orchestrator.agent.xml +8 -17
  23. package/src/core/tasks/{adv-elicit.xml → advanced-elicitation.xml} +6 -4
  24. package/src/core/tasks/index-docs.xml +1 -1
  25. package/src/core/tasks/validate-workflow.xml +1 -1
  26. package/src/core/tasks/workflow.xml +125 -11
  27. package/src/core/tools/shard-doc.xml +45 -1
  28. package/src/core/workflows/brainstorming/README.md +6 -16
  29. package/src/core/workflows/brainstorming/instructions.md +6 -5
  30. package/src/core/workflows/brainstorming/template.md +4 -0
  31. package/src/core/workflows/brainstorming/workflow.yaml +8 -8
  32. package/src/core/workflows/party-mode/instructions.md +2 -7
  33. package/src/core/workflows/party-mode/workflow.yaml +10 -6
  34. package/src/modules/bmb/_module-installer/install-config.yaml +9 -4
  35. package/src/modules/bmb/agents/bmad-builder.agent.yaml +11 -10
  36. package/src/modules/bmb/workflows/audit-workflow/checklist.md +5 -6
  37. package/src/modules/bmb/workflows/audit-workflow/instructions.md +5 -5
  38. package/src/modules/bmb/workflows/audit-workflow/workflow.yaml +2 -2
  39. package/src/modules/bmb/workflows/convert-legacy/README.md +5 -5
  40. package/src/modules/bmb/workflows/convert-legacy/checklist.md +2 -2
  41. package/src/modules/bmb/workflows/convert-legacy/instructions.md +17 -17
  42. package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +6 -6
  43. package/src/modules/bmb/workflows/create-agent/README.md +5 -5
  44. package/src/modules/bmb/workflows/create-agent/agent-architecture.md +15 -19
  45. package/src/modules/bmb/workflows/create-agent/agent-command-patterns.md +28 -28
  46. package/src/modules/bmb/workflows/create-agent/agent-types.md +15 -15
  47. package/src/modules/bmb/workflows/create-agent/checklist.md +3 -3
  48. package/src/modules/bmb/workflows/create-agent/instructions.md +24 -27
  49. package/src/modules/bmb/workflows/create-agent/workflow.yaml +12 -12
  50. package/src/modules/bmb/workflows/create-module/README.md +1 -1
  51. package/src/modules/bmb/workflows/create-module/checklist.md +1 -10
  52. package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +1 -1
  53. package/src/modules/bmb/workflows/create-module/instructions.md +12 -17
  54. package/src/modules/bmb/workflows/create-module/module-structure.md +7 -7
  55. package/src/modules/bmb/workflows/create-module/workflow.yaml +9 -9
  56. package/src/modules/bmb/workflows/create-workflow/README.md +4 -4
  57. package/src/modules/bmb/workflows/create-workflow/checklist.md +1 -1
  58. package/src/modules/bmb/workflows/create-workflow/instructions.md +29 -29
  59. package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +40 -42
  60. package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +2 -2
  61. package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +12 -12
  62. package/src/modules/bmb/workflows/create-workflow/workflow.yaml +5 -5
  63. package/src/modules/bmb/workflows/edit-agent/checklist.md +1 -1
  64. package/src/modules/bmb/workflows/edit-agent/instructions.md +2 -2
  65. package/src/modules/bmb/workflows/edit-agent/workflow.yaml +8 -8
  66. package/src/modules/bmb/workflows/edit-module/README.md +2 -2
  67. package/src/modules/bmb/workflows/edit-module/checklist.md +2 -2
  68. package/src/modules/bmb/workflows/edit-module/instructions.md +4 -4
  69. package/src/modules/bmb/workflows/edit-module/workflow.yaml +10 -10
  70. package/src/modules/bmb/workflows/edit-workflow/instructions.md +4 -4
  71. package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +5 -5
  72. package/src/modules/bmb/workflows/module-brief/README.md +2 -2
  73. package/src/modules/bmb/workflows/module-brief/checklist.md +2 -2
  74. package/src/modules/bmb/workflows/module-brief/instructions.md +2 -2
  75. package/src/modules/bmb/workflows/module-brief/workflow.yaml +4 -4
  76. package/src/modules/bmb/workflows/redoc/README.md +5 -5
  77. package/src/modules/bmb/workflows/redoc/instructions.md +1 -1
  78. package/src/modules/bmb/workflows/redoc/workflow.yaml +1 -1
  79. package/src/modules/bmgd/README.md +1 -1
  80. package/src/modules/bmgd/_module-installer/install-config.yaml +12 -24
  81. package/src/modules/bmgd/agents/game-architect.agent.yaml +15 -10
  82. package/src/modules/bmgd/agents/game-designer.agent.yaml +16 -11
  83. package/src/modules/bmgd/agents/game-dev.agent.yaml +18 -12
  84. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +30 -25
  85. package/src/modules/bmgd/teams/default-party.csv +10 -0
  86. package/src/modules/bmgd/teams/team-gamedev.yaml +2 -0
  87. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +1 -1
  88. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +9 -9
  89. package/src/modules/bmgd/workflows/1-preproduction/game-brief/instructions.md +1 -1
  90. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.yaml +8 -8
  91. package/src/modules/bmgd/workflows/2-design/gdd/instructions-gdd.md +5 -10
  92. package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +30 -30
  93. package/src/modules/bmgd/workflows/2-design/narrative/instructions-narrative.md +1 -6
  94. package/src/modules/bmgd/workflows/2-design/narrative/workflow.yaml +5 -5
  95. package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-patterns.yaml +0 -26
  96. package/src/modules/bmgd/workflows/3-technical/game-architecture/checklist.md +2 -6
  97. package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +2 -7
  98. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +2 -2
  99. package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +25 -47
  100. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +13 -32
  101. package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +1 -1
  102. package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +7 -2
  103. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +32 -25
  104. package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +20 -47
  105. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +16 -24
  106. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +8 -3
  107. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +30 -5
  108. package/src/modules/bmgd/workflows/4-production/epic-tech-context/checklist.md +1 -1
  109. package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +10 -35
  110. package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +16 -24
  111. package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +18 -36
  112. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +16 -37
  113. package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +11 -15
  114. package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +1 -1
  115. package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +8 -7
  116. package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +1 -1
  117. package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +1 -1
  118. package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +20 -45
  119. package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +15 -17
  120. package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +1 -1
  121. package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +5 -4
  122. package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +6 -6
  123. package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +5 -7
  124. package/src/modules/bmm/_module-installer/install-config.yaml +9 -28
  125. package/src/modules/bmm/_module-installer/installer.js +2 -2
  126. package/src/modules/bmm/agents/analyst.agent.yaml +20 -15
  127. package/src/modules/bmm/agents/architect.agent.yaml +17 -12
  128. package/src/modules/bmm/agents/dev.agent.yaml +9 -12
  129. package/src/modules/bmm/agents/pm.agent.yaml +24 -23
  130. package/src/modules/bmm/agents/sm.agent.yaml +24 -19
  131. package/src/modules/bmm/agents/tea.agent.yaml +23 -17
  132. package/src/modules/bmm/agents/tech-writer.agent.yaml +15 -11
  133. package/src/modules/bmm/agents/ux-designer.agent.yaml +16 -11
  134. package/src/modules/bmm/docs/agents-guide.md +4 -4
  135. package/src/modules/bmm/docs/brownfield-guide.md +4 -4
  136. package/src/modules/bmm/docs/enterprise-agentic-development.md +3 -3
  137. package/src/modules/bmm/docs/faq.md +1 -1
  138. package/src/modules/bmm/docs/party-mode.md +3 -3
  139. package/src/modules/bmm/docs/quick-start.md +1 -1
  140. package/src/modules/bmm/docs/test-architecture.md +1 -1
  141. package/src/modules/bmm/docs/workflow-document-project-reference.md +1 -1
  142. package/src/modules/bmm/teams/default-party.csv +19 -0
  143. package/src/modules/bmm/teams/team-fullstack.yaml +1 -0
  144. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +1 -1
  145. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +8 -8
  146. package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +1 -1
  147. package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +8 -21
  148. package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +10 -12
  149. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +13 -9
  150. package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +2 -2
  151. package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +2 -2
  152. package/src/modules/bmm/workflows/1-analysis/research/checklist.md +2 -2
  153. package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +1 -3
  154. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +2 -7
  155. package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +1 -1
  156. package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +1 -6
  157. package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +14 -14
  158. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +7 -2
  159. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +16 -10
  160. package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +8 -12
  161. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/epics-template.md +28 -0
  162. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +146 -23
  163. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +7 -9
  164. package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +152 -35
  165. package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +2 -2
  166. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +20 -16
  167. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +12 -9
  168. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -6
  169. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +434 -0
  170. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +129 -266
  171. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +15 -37
  172. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -26
  173. package/src/modules/bmm/workflows/3-solutioning/architecture/checklist.md +3 -7
  174. package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +30 -38
  175. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +25 -43
  176. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/checklist.md +7 -13
  177. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +57 -60
  178. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +12 -12
  179. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +25 -47
  180. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +13 -32
  181. package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +1 -1
  182. package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +7 -2
  183. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +32 -25
  184. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +20 -47
  185. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +16 -24
  186. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +8 -3
  187. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +30 -5
  188. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/checklist.md +1 -1
  189. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +10 -35
  190. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +16 -24
  191. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +18 -36
  192. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +16 -37
  193. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +11 -15
  194. package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +1 -1
  195. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +8 -7
  196. package/src/modules/bmm/workflows/4-implementation/story-context/checklist.md +1 -1
  197. package/src/modules/bmm/workflows/4-implementation/story-context/context-template.xml +1 -1
  198. package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +20 -45
  199. package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +15 -17
  200. package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +1 -1
  201. package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +5 -4
  202. package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +6 -6
  203. package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +5 -7
  204. package/src/modules/bmm/workflows/document-project/checklist.md +1 -1
  205. package/src/modules/bmm/workflows/document-project/instructions.md +5 -5
  206. package/src/modules/bmm/workflows/document-project/workflow.yaml +2 -2
  207. package/src/modules/bmm/workflows/document-project/workflows/deep-dive-instructions.md +4 -4
  208. package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +5 -5
  209. package/src/modules/bmm/workflows/document-project/workflows/full-scan-instructions.md +13 -13
  210. package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +5 -5
  211. package/src/modules/bmm/workflows/testarch/atdd/instructions.md +2 -2
  212. package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +2 -2
  213. package/src/modules/bmm/workflows/testarch/automate/instructions.md +2 -2
  214. package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +2 -2
  215. package/src/modules/bmm/workflows/testarch/ci/checklist.md +4 -4
  216. package/src/modules/bmm/workflows/testarch/ci/instructions.md +2 -2
  217. package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +2 -2
  218. package/src/modules/bmm/workflows/testarch/framework/checklist.md +4 -4
  219. package/src/modules/bmm/workflows/testarch/framework/instructions.md +2 -2
  220. package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +2 -2
  221. package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +1 -1
  222. package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +2 -2
  223. package/src/modules/bmm/workflows/testarch/test-design/checklist.md +4 -4
  224. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +175 -14
  225. package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +4 -4
  226. package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +7 -3
  227. package/src/modules/bmm/workflows/testarch/test-review/instructions.md +1 -1
  228. package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +2 -2
  229. package/src/modules/bmm/workflows/testarch/trace/instructions.md +9 -9
  230. package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +2 -2
  231. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +33 -31
  232. package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +5 -4
  233. package/src/modules/bmm/workflows/workflow-status/instructions.md +5 -4
  234. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +9 -16
  235. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +11 -18
  236. package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +8 -1
  237. package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +9 -2
  238. package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +1 -1
  239. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +2 -9
  240. package/src/modules/bmm/workflows/workflow-status/workflow.yaml +2 -2
  241. package/src/modules/cis/README.md +1 -1
  242. package/src/modules/cis/_module-installer/install-config.yaml +6 -4
  243. package/src/modules/cis/agents/README.md +1 -1
  244. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +13 -8
  245. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +13 -8
  246. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +13 -8
  247. package/src/modules/cis/agents/innovation-strategist.agent.yaml +13 -8
  248. package/src/modules/cis/agents/storyteller.agent.yaml +13 -8
  249. package/src/modules/cis/teams/creative-squad.yaml +1 -0
  250. package/src/modules/cis/teams/default-party.csv +11 -0
  251. package/src/modules/cis/workflows/README.md +1 -1
  252. package/src/modules/cis/workflows/design-thinking/instructions.md +2 -2
  253. package/src/modules/cis/workflows/design-thinking/workflow.yaml +7 -7
  254. package/src/modules/cis/workflows/innovation-strategy/instructions.md +2 -2
  255. package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +7 -7
  256. package/src/modules/cis/workflows/problem-solving/instructions.md +2 -2
  257. package/src/modules/cis/workflows/problem-solving/workflow.yaml +7 -7
  258. package/src/modules/cis/workflows/storytelling/instructions.md +2 -2
  259. package/src/modules/cis/workflows/storytelling/workflow.yaml +7 -7
  260. package/src/utility/models/action-command-header.md +0 -0
  261. package/src/utility/models/agent-activation-ide.xml +3 -3
  262. package/src/utility/models/agent-activation-web.xml +4 -4
  263. package/src/utility/models/agent-command-header.md +1 -0
  264. package/src/utility/models/fragments/activation-steps.xml +3 -2
  265. package/src/utility/models/fragments/handler-validate-workflow.xml +1 -1
  266. package/src/utility/models/fragments/handler-workflow.xml +1 -1
  267. package/src/utility/models/fragments/web-bundle-activation-steps.xml +3 -3
  268. package/tools/cli/README.md +50 -32
  269. package/tools/cli/bundlers/web-bundler.js +86 -17
  270. package/tools/cli/commands/install.js +1 -4
  271. package/tools/cli/installers/lib/core/config-collector.js +201 -28
  272. package/tools/cli/installers/lib/core/detector.js +62 -7
  273. package/tools/cli/installers/lib/core/installer.js +175 -33
  274. package/tools/cli/installers/lib/core/manifest-generator.js +26 -115
  275. package/tools/cli/installers/lib/ide/_base-ide.js +57 -3
  276. package/tools/cli/installers/lib/ide/auggie.js +78 -224
  277. package/tools/cli/installers/lib/ide/claude-code.js +14 -22
  278. package/tools/cli/installers/lib/ide/cline.js +15 -18
  279. package/tools/cli/installers/lib/ide/codex.js +17 -48
  280. package/tools/cli/installers/lib/ide/crush.js +14 -50
  281. package/tools/cli/installers/lib/ide/cursor.js +51 -8
  282. package/tools/cli/installers/lib/ide/gemini.js +87 -37
  283. package/tools/cli/installers/lib/ide/github-copilot.js +47 -35
  284. package/tools/cli/installers/lib/ide/iflow.js +13 -30
  285. package/tools/cli/installers/lib/ide/kilo.js +20 -16
  286. package/tools/cli/installers/lib/ide/manager.js +15 -0
  287. package/tools/cli/installers/lib/ide/opencode.js +16 -17
  288. package/tools/cli/installers/lib/ide/qwen.js +39 -11
  289. package/tools/cli/installers/lib/ide/roo.js +27 -62
  290. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +90 -0
  291. package/tools/cli/installers/lib/ide/{task-tool-command-generator.js → shared/task-tool-command-generator.js} +1 -1
  292. package/tools/cli/installers/lib/ide/{workflow-command-generator.js → shared/workflow-command-generator.js} +11 -9
  293. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
  294. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
  295. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
  296. package/tools/cli/installers/lib/ide/{workflow-command-template.md → templates/workflow-command-template.md} +3 -5
  297. package/tools/cli/installers/lib/ide/trae.js +20 -32
  298. package/tools/cli/installers/lib/ide/windsurf.js +18 -8
  299. package/tools/cli/installers/lib/modules/manager.js +89 -17
  300. package/tools/cli/lib/cli-utils.js +52 -50
  301. package/tools/cli/lib/ui.js +29 -12
  302. package/tools/cli/lib/yaml-xml-builder.js +20 -2
  303. package/tools/schema/agent.js +7 -3
  304. package/.claude/commands/bmad/bmb/agents/bmad-builder.md +0 -70
  305. package/.claude/commands/bmad/bmb/workflows/audit-workflow.md +0 -15
  306. package/.claude/commands/bmad/bmb/workflows/convert-legacy.md +0 -15
  307. package/.claude/commands/bmad/bmb/workflows/create-agent.md +0 -15
  308. package/.claude/commands/bmad/bmb/workflows/create-module.md +0 -15
  309. package/.claude/commands/bmad/bmb/workflows/create-workflow.md +0 -15
  310. package/.claude/commands/bmad/bmb/workflows/edit-agent.md +0 -15
  311. package/.claude/commands/bmad/bmb/workflows/edit-module.md +0 -15
  312. package/.claude/commands/bmad/bmb/workflows/edit-workflow.md +0 -15
  313. package/.claude/commands/bmad/bmb/workflows/module-brief.md +0 -15
  314. package/.claude/commands/bmad/bmb/workflows/redoc.md +0 -15
  315. package/.claude/commands/bmad/core/agents/bmad-master.md +0 -71
  316. package/.claude/commands/bmad/core/tasks/index-docs.md +0 -9
  317. package/.claude/commands/bmad/core/tools/shard-doc.md +0 -9
  318. package/.claude/commands/bmad/core/workflows/brainstorming.md +0 -15
  319. package/.claude/commands/bmad/core/workflows/party-mode.md +0 -15
  320. package/.claude/settings.local.json +0 -22
  321. package/bmad/_cfg/agent-manifest.csv +0 -5
  322. package/bmad/_cfg/agents/bmb-bmad-builder.customize.yaml +0 -42
  323. package/bmad/_cfg/agents/core-bmad-master.customize.yaml +0 -42
  324. package/bmad/_cfg/files-manifest.csv +0 -82
  325. package/bmad/_cfg/ides/claude-code.yaml +0 -6
  326. package/bmad/_cfg/manifest.yaml +0 -11
  327. package/bmad/_cfg/task-manifest.csv +0 -13
  328. package/bmad/_cfg/tool-manifest.csv +0 -4
  329. package/bmad/_cfg/workflow-manifest.csv +0 -17
  330. package/bmad/bmb/README.md +0 -194
  331. package/bmad/bmb/agents/bmad-builder.md +0 -70
  332. package/bmad/bmb/config.yaml +0 -14
  333. package/bmad/bmb/workflows/audit-workflow/checklist.md +0 -143
  334. package/bmad/bmb/workflows/audit-workflow/instructions.md +0 -341
  335. package/bmad/bmb/workflows/audit-workflow/template.md +0 -118
  336. package/bmad/bmb/workflows/audit-workflow/workflow.yaml +0 -23
  337. package/bmad/bmb/workflows/convert-legacy/README.md +0 -262
  338. package/bmad/bmb/workflows/convert-legacy/checklist.md +0 -205
  339. package/bmad/bmb/workflows/convert-legacy/instructions.md +0 -377
  340. package/bmad/bmb/workflows/convert-legacy/workflow.yaml +0 -32
  341. package/bmad/bmb/workflows/create-agent/README.md +0 -203
  342. package/bmad/bmb/workflows/create-agent/agent-architecture.md +0 -419
  343. package/bmad/bmb/workflows/create-agent/agent-command-patterns.md +0 -759
  344. package/bmad/bmb/workflows/create-agent/agent-types.md +0 -292
  345. package/bmad/bmb/workflows/create-agent/brainstorm-context.md +0 -174
  346. package/bmad/bmb/workflows/create-agent/checklist.md +0 -62
  347. package/bmad/bmb/workflows/create-agent/communication-styles.md +0 -202
  348. package/bmad/bmb/workflows/create-agent/instructions.md +0 -459
  349. package/bmad/bmb/workflows/create-agent/workflow.yaml +0 -37
  350. package/bmad/bmb/workflows/create-module/README.md +0 -229
  351. package/bmad/bmb/workflows/create-module/brainstorm-context.md +0 -137
  352. package/bmad/bmb/workflows/create-module/checklist.md +0 -244
  353. package/bmad/bmb/workflows/create-module/installer-templates/install-config.yaml +0 -92
  354. package/bmad/bmb/workflows/create-module/installer-templates/installer.js +0 -231
  355. package/bmad/bmb/workflows/create-module/instructions.md +0 -581
  356. package/bmad/bmb/workflows/create-module/module-structure.md +0 -400
  357. package/bmad/bmb/workflows/create-module/workflow.yaml +0 -42
  358. package/bmad/bmb/workflows/create-workflow/README.md +0 -277
  359. package/bmad/bmb/workflows/create-workflow/brainstorm-context.md +0 -197
  360. package/bmad/bmb/workflows/create-workflow/checklist.md +0 -94
  361. package/bmad/bmb/workflows/create-workflow/instructions.md +0 -724
  362. package/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md +0 -1308
  363. package/bmad/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -24
  364. package/bmad/bmb/workflows/create-workflow/workflow-template/instructions.md +0 -13
  365. package/bmad/bmb/workflows/create-workflow/workflow-template/template.md +0 -9
  366. package/bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml +0 -39
  367. package/bmad/bmb/workflows/create-workflow/workflow.yaml +0 -40
  368. package/bmad/bmb/workflows/edit-agent/README.md +0 -112
  369. package/bmad/bmb/workflows/edit-agent/checklist.md +0 -112
  370. package/bmad/bmb/workflows/edit-agent/instructions.md +0 -290
  371. package/bmad/bmb/workflows/edit-agent/workflow.yaml +0 -33
  372. package/bmad/bmb/workflows/edit-module/README.md +0 -187
  373. package/bmad/bmb/workflows/edit-module/checklist.md +0 -165
  374. package/bmad/bmb/workflows/edit-module/instructions.md +0 -339
  375. package/bmad/bmb/workflows/edit-module/workflow.yaml +0 -34
  376. package/bmad/bmb/workflows/edit-workflow/README.md +0 -119
  377. package/bmad/bmb/workflows/edit-workflow/checklist.md +0 -70
  378. package/bmad/bmb/workflows/edit-workflow/instructions.md +0 -342
  379. package/bmad/bmb/workflows/edit-workflow/workflow.yaml +0 -27
  380. package/bmad/bmb/workflows/module-brief/README.md +0 -264
  381. package/bmad/bmb/workflows/module-brief/checklist.md +0 -116
  382. package/bmad/bmb/workflows/module-brief/instructions.md +0 -267
  383. package/bmad/bmb/workflows/module-brief/template.md +0 -275
  384. package/bmad/bmb/workflows/module-brief/workflow.yaml +0 -29
  385. package/bmad/bmb/workflows/redoc/README.md +0 -87
  386. package/bmad/bmb/workflows/redoc/checklist.md +0 -99
  387. package/bmad/bmb/workflows/redoc/instructions.md +0 -265
  388. package/bmad/bmb/workflows/redoc/workflow.yaml +0 -32
  389. package/bmad/core/agents/bmad-master.md +0 -71
  390. package/bmad/core/agents/bmad-web-orchestrator.agent.xml +0 -122
  391. package/bmad/core/config.yaml +0 -9
  392. package/bmad/core/tasks/adv-elicit-methods.csv +0 -39
  393. package/bmad/core/tasks/adv-elicit.xml +0 -104
  394. package/bmad/core/tasks/index-docs.xml +0 -65
  395. package/bmad/core/tasks/validate-workflow.xml +0 -89
  396. package/bmad/core/tasks/workflow.xml +0 -156
  397. package/bmad/core/tools/shard-doc.xml +0 -65
  398. package/bmad/core/workflows/brainstorming/README.md +0 -271
  399. package/bmad/core/workflows/brainstorming/brain-methods.csv +0 -36
  400. package/bmad/core/workflows/brainstorming/instructions.md +0 -314
  401. package/bmad/core/workflows/brainstorming/template.md +0 -102
  402. package/bmad/core/workflows/brainstorming/workflow.yaml +0 -43
  403. package/bmad/core/workflows/party-mode/instructions.md +0 -188
  404. package/bmad/core/workflows/party-mode/workflow.yaml +0 -23
  405. package/bmad/docs/claude-code-instructions.md +0 -25
  406. package/bmd/README.md +0 -193
  407. package/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
  408. package/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
  409. package/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
  410. package/bmd/agents/cli-chief-sidecar/memories.md +0 -53
  411. package/bmd/agents/cli-chief.agent.yaml +0 -126
  412. package/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
  413. package/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
  414. package/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
  415. package/bmd/agents/doc-keeper.agent.yaml +0 -137
  416. package/bmd/agents/release-chief-sidecar/instructions.md +0 -164
  417. package/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
  418. package/bmd/agents/release-chief-sidecar/memories.md +0 -73
  419. package/bmd/agents/release-chief.agent.yaml +0 -127
  420. package/bmd/bmad-custom-module-installer-plan.md +0 -1176
  421. package/bmd/config.yaml +0 -12
  422. package/src/modules/bmgd/workflows/4-production/dev-story/AUDIT-REPORT.md +0 -367
  423. package/src/modules/bmm/sub-modules/claude-code/README.md +0 -87
  424. package/src/modules/bmm/sub-modules/claude-code/config.yaml +0 -5
  425. package/src/modules/bmm/sub-modules/claude-code/injections.yaml +0 -242
  426. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/api-documenter.md +0 -102
  427. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/codebase-analyzer.md +0 -82
  428. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/data-analyst.md +0 -101
  429. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-analysis/pattern-detector.md +0 -84
  430. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/dependency-mapper.md +0 -83
  431. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/epic-optimizer.md +0 -81
  432. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/requirements-analyst.md +0 -61
  433. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/technical-decisions-curator.md +0 -168
  434. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/trend-spotter.md +0 -115
  435. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-journey-mapper.md +0 -123
  436. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-planning/user-researcher.md +0 -72
  437. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/market-researcher.md +0 -51
  438. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-research/tech-debt-auditor.md +0 -106
  439. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/document-reviewer.md +0 -102
  440. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/technical-evaluator.md +0 -68
  441. package/src/modules/bmm/sub-modules/claude-code/sub-agents/bmad-review/test-coverage-analyzer.md +0 -108
  442. package/src/modules/bmm/tasks/daily-standup.xml +0 -85
  443. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +0 -200
  444. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +0 -451
  445. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/validation-criteria.yaml +0 -189
  446. package/src/modules/bmm/workflows/4-implementation/dev-story/AUDIT-REPORT.md +0 -367
  447. package/src/modules/bmm/workflows/workflow-status/sample-level-3-workflow.yaml +0 -49
  448. package/test/fixtures/agent-schema/invalid/persona/principles-as-string.agent.yaml +0 -23
  449. package/web-bundles/bmm/agents/analyst.xml +0 -5028
  450. package/web-bundles/bmm/agents/architect.xml +0 -2047
  451. package/web-bundles/bmm/agents/dev.xml +0 -68
  452. package/web-bundles/bmm/agents/pm.xml +0 -3808
  453. package/web-bundles/bmm/agents/sm.xml +0 -77
  454. package/web-bundles/bmm/agents/tea.xml +0 -66
  455. package/web-bundles/bmm/agents/tech-writer.xml +0 -84
  456. package/web-bundles/bmm/agents/ux-designer.xml +0 -2018
  457. package/web-bundles/bmm/teams/team-fullstack.xml +0 -12039
@@ -2,41 +2,19 @@ const path = require('node:path');
2
2
  const fs = require('fs-extra');
3
3
  const os = require('node:os');
4
4
  const chalk = require('chalk');
5
- const inquirer = require('inquirer');
6
5
  const { BaseIdeSetup } = require('./_base-ide');
7
- const { WorkflowCommandGenerator } = require('./workflow-command-generator');
8
- const { getAgentsFromBmad, getTasksFromBmad } = require('./shared/bmad-artifacts');
6
+ const { WorkflowCommandGenerator } = require('./shared/workflow-command-generator');
7
+ const { AgentCommandGenerator } = require('./shared/agent-command-generator');
8
+ const { getTasksFromBmad } = require('./shared/bmad-artifacts');
9
9
 
10
10
  /**
11
- * Codex setup handler (supports both CLI and Web)
11
+ * Codex setup handler (CLI mode)
12
12
  */
13
13
  class CodexSetup extends BaseIdeSetup {
14
14
  constructor() {
15
15
  super('codex', 'Codex', true); // preferred IDE
16
16
  }
17
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 response = await inquirer.prompt([
25
- {
26
- type: 'list',
27
- name: 'mode',
28
- message: 'Select Codex deployment mode:',
29
- choices: [
30
- { name: 'CLI (Command-line interface)', value: 'cli' },
31
- { name: 'Web (Browser-based interface)', value: 'web' },
32
- ],
33
- default: 'cli',
34
- },
35
- ]);
36
-
37
- return { codexMode: response.mode };
38
- }
39
-
40
18
  /**
41
19
  * Setup Codex configuration
42
20
  * @param {string} projectDir - Project directory
@@ -46,8 +24,8 @@ class CodexSetup extends BaseIdeSetup {
46
24
  async setup(projectDir, bmadDir, options = {}) {
47
25
  console.log(chalk.cyan(`Setting up ${this.name}...`));
48
26
 
49
- const config = options.preCollectedConfig || {};
50
- const mode = config.codexMode || options.codexMode || 'cli';
27
+ // Always use CLI mode
28
+ const mode = 'cli';
51
29
 
52
30
  const { artifacts, counts } = await this.collectClaudeArtifacts(projectDir, bmadDir, options);
53
31
 
@@ -57,16 +35,13 @@ class CodexSetup extends BaseIdeSetup {
57
35
  const written = await this.flattenAndWriteArtifacts(artifacts, destDir);
58
36
 
59
37
  console.log(chalk.green(`✓ ${this.name} configured:`));
60
- console.log(chalk.dim(` - Mode: ${mode === 'web' ? 'Web' : 'CLI'}`));
38
+ console.log(chalk.dim(` - Mode: CLI`));
61
39
  console.log(chalk.dim(` - ${counts.agents} agents exported`));
62
40
  console.log(chalk.dim(` - ${counts.tasks} tasks exported`));
63
41
  console.log(chalk.dim(` - ${counts.workflows} workflow commands exported`));
64
42
  if (counts.workflowLaunchers > 0) {
65
43
  console.log(chalk.dim(` - ${counts.workflowLaunchers} workflow launchers exported`));
66
44
  }
67
- if (counts.subagents > 0) {
68
- console.log(chalk.dim(` - ${counts.subagents} subagents exported`));
69
- }
70
45
  console.log(chalk.dim(` - ${written} Codex prompt files written`));
71
46
  console.log(chalk.dim(` - Destination: ${destDir}`));
72
47
 
@@ -118,23 +93,17 @@ class CodexSetup extends BaseIdeSetup {
118
93
  const selectedModules = options.selectedModules || [];
119
94
  const artifacts = [];
120
95
 
121
- const agents = await getAgentsFromBmad(bmadDir, selectedModules);
122
- for (const agent of agents) {
123
- const content = await this.readAndProcessWithProject(
124
- agent.path,
125
- {
126
- module: agent.module,
127
- name: agent.name,
128
- },
129
- projectDir,
130
- );
96
+ // Generate agent launchers
97
+ const agentGen = new AgentCommandGenerator(this.bmadFolderName);
98
+ const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, selectedModules);
131
99
 
100
+ for (const artifact of agentArtifacts) {
132
101
  artifacts.push({
133
102
  type: 'agent',
134
- module: agent.module,
135
- sourcePath: agent.path,
136
- relativePath: path.join(agent.module, 'agents', `${agent.name}.md`),
137
- content,
103
+ module: artifact.module,
104
+ sourcePath: artifact.sourcePath,
105
+ relativePath: artifact.relativePath,
106
+ content: artifact.content,
138
107
  });
139
108
  }
140
109
 
@@ -158,14 +127,14 @@ class CodexSetup extends BaseIdeSetup {
158
127
  });
159
128
  }
160
129
 
161
- const workflowGenerator = new WorkflowCommandGenerator();
130
+ const workflowGenerator = new WorkflowCommandGenerator(this.bmadFolderName);
162
131
  const { artifacts: workflowArtifacts, counts: workflowCounts } = await workflowGenerator.collectWorkflowArtifacts(bmadDir);
163
132
  artifacts.push(...workflowArtifacts);
164
133
 
165
134
  return {
166
135
  artifacts,
167
136
  counts: {
168
- agents: agents.length,
137
+ agents: agentArtifacts.length,
169
138
  tasks: tasks.length,
170
139
  workflows: workflowCounts.commands,
171
140
  workflowLaunchers: workflowCounts.launchers,
@@ -1,6 +1,7 @@
1
1
  const path = require('node:path');
2
2
  const { BaseIdeSetup } = require('./_base-ide');
3
3
  const chalk = require('chalk');
4
+ const { AgentCommandGenerator } = require('./shared/agent-command-generator');
4
5
 
5
6
  /**
6
7
  * Crush IDE setup handler
@@ -28,14 +29,17 @@ class CrushSetup extends BaseIdeSetup {
28
29
 
29
30
  await this.ensureDir(commandsDir);
30
31
 
31
- // Get agents, tasks, tools, and workflows (standalone only)
32
- const agents = await this.getAgents(bmadDir);
32
+ // Generate agent launchers
33
+ const agentGen = new AgentCommandGenerator(this.bmadFolderName);
34
+ const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
35
+
36
+ // Get tasks, tools, and workflows (standalone only)
33
37
  const tasks = await this.getTasks(bmadDir, true);
34
38
  const tools = await this.getTools(bmadDir, true);
35
39
  const workflows = await this.getWorkflows(bmadDir, true);
36
40
 
37
41
  // Organize by module
38
- const agentCount = await this.organizeByModule(commandsDir, agents, tasks, tools, workflows, projectDir);
42
+ const agentCount = await this.organizeByModule(commandsDir, agentArtifacts, tasks, tools, workflows, projectDir);
39
43
 
40
44
  console.log(chalk.green(`✓ ${this.name} configured:`));
41
45
  console.log(chalk.dim(` - ${agentCount.agents} agent commands created`));
@@ -54,10 +58,10 @@ class CrushSetup extends BaseIdeSetup {
54
58
  /**
55
59
  * Organize commands by module
56
60
  */
57
- async organizeByModule(commandsDir, agents, tasks, tools, workflows, projectDir) {
61
+ async organizeByModule(commandsDir, agentArtifacts, tasks, tools, workflows, projectDir) {
58
62
  // Get unique modules
59
63
  const modules = new Set();
60
- for (const agent of agents) modules.add(agent.module);
64
+ for (const artifact of agentArtifacts) modules.add(artifact.module);
61
65
  for (const task of tasks) modules.add(task.module);
62
66
  for (const tool of tools) modules.add(tool.module);
63
67
  for (const workflow of workflows) modules.add(workflow.module);
@@ -80,13 +84,11 @@ class CrushSetup extends BaseIdeSetup {
80
84
  await this.ensureDir(moduleToolsDir);
81
85
  await this.ensureDir(moduleWorkflowsDir);
82
86
 
83
- // Copy module-specific agents
84
- const moduleAgents = agents.filter((a) => a.module === module);
85
- for (const agent of moduleAgents) {
86
- const content = await this.readFile(agent.path);
87
- const commandContent = this.createAgentCommand(agent, content, projectDir);
88
- const targetPath = path.join(moduleAgentsDir, `${agent.name}.md`);
89
- await this.writeFile(targetPath, commandContent);
87
+ // Write module-specific agent launchers
88
+ const moduleAgents = agentArtifacts.filter((a) => a.module === module);
89
+ for (const artifact of moduleAgents) {
90
+ const targetPath = path.join(moduleAgentsDir, `${artifact.name}.md`);
91
+ await this.writeFile(targetPath, artifact.content);
90
92
  agentCount++;
91
93
  }
92
94
 
@@ -129,44 +131,6 @@ class CrushSetup extends BaseIdeSetup {
129
131
  };
130
132
  }
131
133
 
132
- /**
133
- * Create agent command content
134
- */
135
- createAgentCommand(agent, content, projectDir) {
136
- // Extract metadata
137
- const titleMatch = content.match(/title="([^"]+)"/);
138
- const title = titleMatch ? titleMatch[1] : this.formatTitle(agent.name);
139
-
140
- const iconMatch = content.match(/icon="([^"]+)"/);
141
- const icon = iconMatch ? iconMatch[1] : '🤖';
142
-
143
- // Get relative path
144
- const relativePath = path.relative(projectDir, agent.path).replaceAll('\\', '/');
145
-
146
- let commandContent = `# /${agent.name} Command
147
-
148
- When this command is used, adopt the following agent persona:
149
-
150
- ## ${icon} ${title} Agent
151
-
152
- ${content}
153
-
154
- ## Command Usage
155
-
156
- This command activates the ${title} agent from the BMAD ${agent.module.toUpperCase()} module.
157
-
158
- ## File Reference
159
-
160
- Complete agent definition: [${relativePath}](${relativePath})
161
-
162
- ## Module
163
-
164
- Part of the BMAD ${agent.module.toUpperCase()} module.
165
- `;
166
-
167
- return commandContent;
168
- }
169
-
170
134
  /**
171
135
  * Create task command content
172
136
  */
@@ -1,6 +1,7 @@
1
1
  const path = require('node:path');
2
2
  const { BaseIdeSetup } = require('./_base-ide');
3
3
  const chalk = require('chalk');
4
+ const { AgentCommandGenerator } = require('./shared/agent-command-generator');
4
5
 
5
6
  /**
6
7
  * Cursor IDE setup handler
@@ -45,8 +46,14 @@ class CursorSetup extends BaseIdeSetup {
45
46
 
46
47
  await this.ensureDir(bmadRulesDir);
47
48
 
48
- // Get agents, tasks, tools, and workflows (standalone only)
49
- const agents = await this.getAgents(bmadDir);
49
+ // Generate agent launchers first
50
+ const agentGen = new AgentCommandGenerator(this.bmadFolderName);
51
+ const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
52
+
53
+ // Convert artifacts to agent format for index creation
54
+ const agents = agentArtifacts.map((a) => ({ module: a.module, name: a.name }));
55
+
56
+ // Get tasks, tools, and workflows (standalone only)
50
57
  const tasks = await this.getTasks(bmadDir, true);
51
58
  const tools = await this.getTools(bmadDir, true);
52
59
  const workflows = await this.getWorkflows(bmadDir, true);
@@ -63,15 +70,16 @@ class CursorSetup extends BaseIdeSetup {
63
70
  await this.ensureDir(path.join(bmadRulesDir, module, 'workflows'));
64
71
  }
65
72
 
66
- // Process and copy agents
73
+ // Process and write agent launchers with MDC format
67
74
  let agentCount = 0;
68
- for (const agent of agents) {
69
- const content = await this.readAndProcess(agent.path, {
70
- module: agent.module,
71
- name: agent.name,
75
+ for (const artifact of agentArtifacts) {
76
+ // Add MDC metadata header to launcher (but don't call processContent which adds activation headers)
77
+ const content = this.wrapLauncherWithMDC(artifact.content, {
78
+ module: artifact.module,
79
+ name: artifact.name,
72
80
  });
73
81
 
74
- const targetPath = path.join(bmadRulesDir, agent.module, 'agents', `${agent.name}.mdc`);
82
+ const targetPath = path.join(bmadRulesDir, artifact.module, 'agents', `${artifact.name}.mdc`);
75
83
 
76
84
  await this.writeFile(targetPath, content);
77
85
  agentCount++;
@@ -256,6 +264,13 @@ specific agent expertise, task workflows, tools, or guided workflows.
256
264
  // First apply base processing (includes activation injection for agents)
257
265
  let processed = super.processContent(content, metadata);
258
266
 
267
+ // Strip any existing frontmatter from the processed content
268
+ // This prevents duplicate frontmatter blocks
269
+ const frontmatterRegex = /^---\s*\n[\s\S]*?\n---\s*\n/;
270
+ if (frontmatterRegex.test(processed)) {
271
+ processed = processed.replace(frontmatterRegex, '');
272
+ }
273
+
259
274
  // Determine the type and description based on content
260
275
  const isAgent = content.includes('<agent');
261
276
  const isTask = content.includes('<task');
@@ -304,6 +319,34 @@ alwaysApply: false
304
319
  // Add the MDC header to the processed content
305
320
  return mdcHeader + processed;
306
321
  }
322
+
323
+ /**
324
+ * Wrap launcher content with MDC metadata (without base processing)
325
+ * Launchers are already complete and should not have activation headers injected
326
+ */
327
+ wrapLauncherWithMDC(launcherContent, metadata = {}) {
328
+ // Strip the launcher's frontmatter - we'll replace it with MDC frontmatter
329
+ const frontmatterRegex = /^---\s*\n[\s\S]*?\n---\s*\n/;
330
+ const contentWithoutFrontmatter = launcherContent.replace(frontmatterRegex, '');
331
+
332
+ // Extract metadata from launcher frontmatter for MDC description
333
+ const nameMatch = launcherContent.match(/name:\s*"([^"]+)"/);
334
+ const name = nameMatch ? nameMatch[1] : metadata.name;
335
+
336
+ const description = `BMAD ${metadata.module.toUpperCase()} Agent: ${name}`;
337
+
338
+ // Create MDC metadata header
339
+ const mdcHeader = `---
340
+ description: ${description}
341
+ globs:
342
+ alwaysApply: false
343
+ ---
344
+
345
+ `;
346
+
347
+ // Return MDC header + launcher content (without its original frontmatter)
348
+ return mdcHeader + contentWithoutFrontmatter;
349
+ }
307
350
  }
308
351
 
309
352
  module.exports = { CursorSetup };
@@ -1,6 +1,9 @@
1
1
  const path = require('node:path');
2
+ const fs = require('fs-extra');
3
+ const yaml = require('js-yaml');
2
4
  const { BaseIdeSetup } = require('./_base-ide');
3
5
  const chalk = require('chalk');
6
+ const { AgentCommandGenerator } = require('./shared/agent-command-generator');
4
7
 
5
8
  /**
6
9
  * Gemini CLI setup handler
@@ -8,9 +11,39 @@ const chalk = require('chalk');
8
11
  */
9
12
  class GeminiSetup extends BaseIdeSetup {
10
13
  constructor() {
11
- super('gemini', 'Gemini CLI', true); // preferred IDE
14
+ super('gemini', 'Gemini CLI', false);
12
15
  this.configDir = '.gemini';
13
16
  this.commandsDir = 'commands';
17
+ this.agentTemplatePath = path.join(__dirname, 'templates', 'gemini-agent-command.toml');
18
+ this.taskTemplatePath = path.join(__dirname, 'templates', 'gemini-task-command.toml');
19
+ }
20
+
21
+ /**
22
+ * Load config values from bmad installation
23
+ * @param {string} bmadDir - BMAD installation directory
24
+ * @returns {Object} Config values
25
+ */
26
+ async loadConfigValues(bmadDir) {
27
+ const configValues = {
28
+ user_name: 'User', // Default fallback
29
+ };
30
+
31
+ // Try to load core config.yaml
32
+ const coreConfigPath = path.join(bmadDir, 'core', 'config.yaml');
33
+ if (await fs.pathExists(coreConfigPath)) {
34
+ try {
35
+ const configContent = await fs.readFile(coreConfigPath, 'utf8');
36
+ const config = yaml.load(configContent);
37
+
38
+ if (config.user_name) {
39
+ configValues.user_name = config.user_name;
40
+ }
41
+ } catch (error) {
42
+ console.warn(chalk.yellow(` Warning: Could not load config values: ${error.message}`));
43
+ }
44
+ }
45
+
46
+ return configValues;
14
47
  }
15
48
 
16
49
  /**
@@ -31,29 +64,31 @@ class GeminiSetup extends BaseIdeSetup {
31
64
  // Clean up any existing BMAD files before reinstalling
32
65
  await this.cleanup(projectDir);
33
66
 
34
- // Get agents and tasks
35
- const agents = await this.getAgents(bmadDir);
67
+ // Generate agent launchers
68
+ const agentGen = new AgentCommandGenerator(this.bmadFolderName);
69
+ const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
70
+
71
+ // Get tasks
36
72
  const tasks = await this.getTasks(bmadDir);
37
73
 
38
74
  // Install agents as TOML files with bmad- prefix (flat structure)
39
75
  let agentCount = 0;
40
- for (const agent of agents) {
41
- const content = await this.readFile(agent.path);
42
- const tomlContent = this.createAgentToml(agent, content, bmadDir);
76
+ for (const artifact of agentArtifacts) {
77
+ const tomlContent = await this.createAgentLauncherToml(artifact);
43
78
 
44
79
  // Flat structure: bmad-agent-{module}-{name}.toml
45
- const tomlPath = path.join(commandsDir, `bmad-agent-${agent.module}-${agent.name}.toml`);
80
+ const tomlPath = path.join(commandsDir, `bmad-agent-${artifact.module}-${artifact.name}.toml`);
46
81
  await this.writeFile(tomlPath, tomlContent);
47
82
  agentCount++;
48
83
 
49
- console.log(chalk.green(` ✓ Added agent: /bmad:agents:${agent.module}:${agent.name}`));
84
+ console.log(chalk.green(` ✓ Added agent: /bmad:agents:${artifact.module}:${artifact.name}`));
50
85
  }
51
86
 
52
87
  // Install tasks as TOML files with bmad- prefix (flat structure)
53
88
  let taskCount = 0;
54
89
  for (const task of tasks) {
55
90
  const content = await this.readFile(task.path);
56
- const tomlContent = this.createTaskToml(task, content, bmadDir);
91
+ const tomlContent = await this.createTaskToml(task, content);
57
92
 
58
93
  // Flat structure: bmad-task-{module}-{name}.toml
59
94
  const tomlPath = path.join(commandsDir, `bmad-task-${task.module}-${task.name}.toml`);
@@ -78,51 +113,66 @@ class GeminiSetup extends BaseIdeSetup {
78
113
  }
79
114
 
80
115
  /**
81
- * Create agent TOML content
116
+ * Create agent launcher TOML content from artifact
82
117
  */
83
- createAgentToml(agent, content, bmadDir) {
84
- // Extract metadata
85
- const titleMatch = content.match(/title="([^"]+)"/);
86
- const title = titleMatch ? titleMatch[1] : this.formatTitle(agent.name);
118
+ async createAgentLauncherToml(artifact) {
119
+ // Strip frontmatter from launcher content
120
+ const frontmatterRegex = /^---\s*\n[\s\S]*?\n---\s*\n/;
121
+ const contentWithoutFrontmatter = artifact.content.replace(frontmatterRegex, '').trim();
87
122
 
88
- // Get relative path from project root to agent file
89
- const relativePath = path.relative(process.cwd(), agent.path).replaceAll('\\', '/');
123
+ // Extract title from launcher frontmatter
124
+ const titleMatch = artifact.content.match(/description:\s*"([^"]+)"/);
125
+ const title = titleMatch ? titleMatch[1] : this.formatTitle(artifact.name);
90
126
 
91
- // Create TOML content
92
- const tomlContent = `description = "Activates the ${title} agent from the BMad Method."
93
- prompt = """
94
- CRITICAL: You are now the BMad '${title}' agent. Adopt its persona and capabilities as defined in the following configuration.
127
+ // Create TOML wrapper around launcher content (without frontmatter)
128
+ const description = `BMAD ${artifact.module.toUpperCase()} Agent: ${title}`;
95
129
 
96
- Read and internalize the full agent definition, following all instructions and maintaining this persona until explicitly told to switch or exit.
97
-
98
- @${relativePath}
130
+ return `description = "${description}"
131
+ prompt = """
132
+ ${contentWithoutFrontmatter}
99
133
  """
100
134
  `;
135
+ }
136
+
137
+ /**
138
+ * Create agent TOML content using template
139
+ */
140
+ async createAgentToml(agent, content) {
141
+ // Extract metadata
142
+ const titleMatch = content.match(/title="([^"]+)"/);
143
+ const title = titleMatch ? titleMatch[1] : this.formatTitle(agent.name);
144
+
145
+ // Load template
146
+ const template = await fs.readFile(this.agentTemplatePath, 'utf8');
147
+
148
+ // Replace template variables
149
+ // Note: {user_name} and other {config_values} are left as-is for runtime substitution by Gemini
150
+ const tomlContent = template
151
+ .replaceAll('{{title}}', title)
152
+ .replaceAll('{{bmad_folder}}', this.bmadFolderName)
153
+ .replaceAll('{{module}}', agent.module)
154
+ .replaceAll('{{name}}', agent.name);
101
155
 
102
156
  return tomlContent;
103
157
  }
104
158
 
105
159
  /**
106
- * Create task TOML content
160
+ * Create task TOML content using template
107
161
  */
108
- createTaskToml(task, content, bmadDir) {
162
+ async createTaskToml(task, content) {
109
163
  // Extract task name from XML if available
110
164
  const nameMatch = content.match(/<name>([^<]+)<\/name>/);
111
165
  const taskName = nameMatch ? nameMatch[1] : this.formatTitle(task.name);
112
166
 
113
- // Get relative path from project root to task file
114
- const relativePath = path.relative(process.cwd(), task.path).replaceAll('\\', '/');
115
-
116
- // Create TOML content
117
- const tomlContent = `description = "Executes the ${taskName} task from the BMad Method."
118
- prompt = """
119
- Execute the following BMad Method task workflow:
120
-
121
- @${relativePath}
167
+ // Load template
168
+ const template = await fs.readFile(this.taskTemplatePath, 'utf8');
122
169
 
123
- Follow all instructions and complete the task as defined.
124
- """
125
- `;
170
+ // Replace template variables
171
+ const tomlContent = template
172
+ .replaceAll('{{taskName}}', taskName)
173
+ .replaceAll('{{bmad_folder}}', this.bmadFolderName)
174
+ .replaceAll('{{module}}', task.module)
175
+ .replaceAll('{{filename}}', task.filename);
126
176
 
127
177
  return tomlContent;
128
178
  }
@@ -2,6 +2,7 @@ const path = require('node:path');
2
2
  const { BaseIdeSetup } = require('./_base-ide');
3
3
  const chalk = require('chalk');
4
4
  const inquirer = require('inquirer');
5
+ const { AgentCommandGenerator } = require('./shared/agent-command-generator');
5
6
 
6
7
  /**
7
8
  * GitHub Copilot setup handler
@@ -104,21 +105,22 @@ class GitHubCopilotSetup extends BaseIdeSetup {
104
105
  // Clean up any existing BMAD files before reinstalling
105
106
  await this.cleanup(projectDir);
106
107
 
107
- // Get agents
108
- const agents = await this.getAgents(bmadDir);
108
+ // Generate agent launchers
109
+ const agentGen = new AgentCommandGenerator(this.bmadFolderName);
110
+ const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
109
111
 
110
112
  // Create chat mode files with bmad- prefix
111
113
  let modeCount = 0;
112
- for (const agent of agents) {
113
- const content = await this.readFile(agent.path);
114
- const chatmodeContent = this.createChatmodeContent(agent, content);
114
+ for (const artifact of agentArtifacts) {
115
+ const content = artifact.content;
116
+ const chatmodeContent = await this.createChatmodeContent({ module: artifact.module, name: artifact.name }, content);
115
117
 
116
118
  // Use bmad- prefix: bmad-agent-{module}-{name}.chatmode.md
117
- const targetPath = path.join(chatmodesDir, `bmad-agent-${agent.module}-${agent.name}.chatmode.md`);
119
+ const targetPath = path.join(chatmodesDir, `bmad-agent-${artifact.module}-${artifact.name}.chatmode.md`);
118
120
  await this.writeFile(targetPath, chatmodeContent);
119
121
  modeCount++;
120
122
 
121
- console.log(chalk.green(` ✓ Created chat mode: bmad-agent-${agent.module}-${agent.name}`));
123
+ console.log(chalk.green(` ✓ Created chat mode: bmad-agent-${artifact.module}-${artifact.name}`));
122
124
  }
123
125
 
124
126
  console.log(chalk.green(`✓ ${this.name} configured:`));
@@ -206,32 +208,45 @@ class GitHubCopilotSetup extends BaseIdeSetup {
206
208
  /**
207
209
  * Create chat mode content
208
210
  */
209
- createChatmodeContent(agent, content) {
210
- // Extract metadata
211
- const titleMatch = content.match(/title="([^"]+)"/);
212
- const title = titleMatch ? titleMatch[1] : this.formatTitle(agent.name);
213
-
214
- const whenToUseMatch = content.match(/whenToUse="([^"]+)"/);
215
- const description = whenToUseMatch ? whenToUseMatch[1] : `Activates the ${title} agent persona.`;
211
+ async createChatmodeContent(agent, content) {
212
+ // Extract metadata from launcher frontmatter if present
213
+ const descMatch = content.match(/description:\s*"([^"]+)"/);
214
+ const title = descMatch ? descMatch[1] : this.formatTitle(agent.name);
215
+
216
+ const description = `Activates the ${title} agent persona.`;
217
+
218
+ // Strip any existing frontmatter from the content
219
+ const frontmatterRegex = /^---\s*\n[\s\S]*?\n---\s*\n/;
220
+ let cleanContent = content;
221
+ if (frontmatterRegex.test(content)) {
222
+ cleanContent = content.replace(frontmatterRegex, '').trim();
223
+ }
216
224
 
217
- // Available GitHub Copilot tools
225
+ // Available GitHub Copilot tools (November 2025 - Official VS Code Documentation)
226
+ // Reference: https://code.visualstudio.com/docs/copilot/reference/copilot-vscode-features#_chat-tools
218
227
  const tools = [
219
- 'changes',
220
- 'codebase',
221
- 'fetch',
222
- 'findTestFiles',
223
- 'githubRepo',
224
- 'problems',
225
- 'usages',
226
- 'editFiles',
227
- 'runCommands',
228
- 'runTasks',
229
- 'runTests',
230
- 'search',
231
- 'searchResults',
232
- 'terminalLastCommand',
233
- 'terminalSelection',
234
- 'testFailure',
228
+ 'changes', // List of source control changes
229
+ 'codebase', // Perform code search in workspace
230
+ 'createDirectory', // Create new directory in workspace
231
+ 'createFile', // Create new file in workspace
232
+ 'editFiles', // Apply edits to files in workspace
233
+ 'fetch', // Fetch content from web page
234
+ 'fileSearch', // Search files using glob patterns
235
+ 'githubRepo', // Perform code search in GitHub repo
236
+ 'listDirectory', // List files in a directory
237
+ 'problems', // Add workspace issues from Problems panel
238
+ 'readFile', // Read content of a file in workspace
239
+ 'runInTerminal', // Run shell command in integrated terminal
240
+ 'runTask', // Run existing task in workspace
241
+ 'runTests', // Run unit tests in workspace
242
+ 'runVscodeCommand', // Run VS Code command
243
+ 'search', // Enable file searching in workspace
244
+ 'searchResults', // Get search results from Search view
245
+ 'terminalLastCommand', // Get last terminal command and output
246
+ 'terminalSelection', // Get current terminal selection
247
+ 'testFailure', // Get unit test failure information
248
+ 'textSearch', // Find text in files
249
+ 'usages', // Find references and navigate definitions
235
250
  ];
236
251
 
237
252
  let chatmodeContent = `---
@@ -241,11 +256,8 @@ tools: ${JSON.stringify(tools)}
241
256
 
242
257
  # ${title} Agent
243
258
 
244
- ${content}
245
-
246
- ## Module
259
+ ${cleanContent}
247
260
 
248
- Part of the BMAD ${agent.module.toUpperCase()} module.
249
261
  `;
250
262
 
251
263
  return chatmodeContent;