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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (704) hide show
  1. package/.github/ISSUE_TEMPLATE/config.yaml +4 -0
  2. package/.github/ISSUE_TEMPLATE/idea_submission.md +3 -3
  3. package/.github/workflows/bundle-latest.yaml +277 -0
  4. package/.github/workflows/manual-release.yaml +64 -17
  5. package/.github/workflows/quality.yaml +78 -0
  6. package/.husky/pre-commit +4 -0
  7. package/.prettierignore +6 -0
  8. package/.vscode/settings.json +3 -1
  9. package/CHANGELOG.md +1211 -2
  10. package/CONTRIBUTING.md +2 -13
  11. package/README.md +442 -0
  12. package/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
  13. package/docs/agent-customization-guide.md +208 -0
  14. package/docs/document-sharding-guide.md +449 -0
  15. package/docs/ide-info/auggie.md +2 -2
  16. package/docs/ide-info/claude-code.md +4 -4
  17. package/docs/ide-info/codex.md +9 -20
  18. package/docs/ide-info/crush.md +1 -1
  19. package/docs/ide-info/cursor.md +7 -7
  20. package/docs/ide-info/iflow.md +3 -3
  21. package/docs/ide-info/opencode.md +24 -0
  22. package/docs/index.md +227 -0
  23. package/docs/installers-bundlers/ide-injections.md +2 -12
  24. package/docs/installers-bundlers/installers-modules-platforms-reference.md +100 -67
  25. package/docs/v4-to-v6-upgrade.md +227 -0
  26. package/docs/web-bundles-gemini-gpt-guide.md +473 -0
  27. package/eslint.config.mjs +6 -2
  28. package/package.json +13 -6
  29. package/src/core/_module-installer/install-config.yaml +35 -0
  30. package/src/core/_module-installer/installer.js +1 -9
  31. package/src/core/agents/bmad-master.agent.yaml +39 -0
  32. package/src/core/agents/bmad-web-orchestrator.agent.xml +113 -0
  33. package/src/core/tasks/advanced-elicitation-methods.csv +21 -0
  34. package/src/core/tasks/{adv-elicit.md → advanced-elicitation.xml} +11 -14
  35. package/src/core/tasks/{index-docs.md → index-docs.xml} +6 -10
  36. package/src/core/tasks/{validate-workflow.md → validate-workflow.xml} +4 -7
  37. package/src/core/tasks/workflow.xml +270 -0
  38. package/src/core/tools/shard-doc.xml +109 -0
  39. package/src/{modules/cis → core}/workflows/brainstorming/README.md +8 -18
  40. package/src/{modules/cis → core}/workflows/brainstorming/instructions.md +29 -24
  41. package/src/{modules/cis → core}/workflows/brainstorming/template.md +6 -2
  42. package/src/{modules/cis → core}/workflows/brainstorming/workflow.yaml +17 -9
  43. package/src/core/workflows/party-mode/instructions.md +27 -25
  44. package/src/core/workflows/party-mode/workflow.yaml +14 -10
  45. package/src/modules/bmb/README.md +194 -0
  46. package/src/modules/bmb/_module-installer/install-config.yaml +31 -0
  47. package/src/modules/bmb/agents/bmad-builder.agent.yaml +57 -0
  48. package/src/modules/bmb/workflows/audit-workflow/checklist.md +142 -0
  49. package/src/modules/bmb/workflows/audit-workflow/instructions.md +341 -0
  50. package/src/modules/bmb/workflows/audit-workflow/template.md +118 -0
  51. package/src/modules/bmb/workflows/audit-workflow/workflow.yaml +25 -0
  52. package/src/modules/bmb/workflows/convert-legacy/README.md +34 -34
  53. package/src/modules/bmb/workflows/convert-legacy/checklist.md +22 -21
  54. package/src/modules/bmb/workflows/convert-legacy/instructions.md +135 -86
  55. package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +10 -15
  56. package/src/modules/bmb/workflows/create-agent/README.md +144 -209
  57. package/src/modules/bmb/workflows/create-agent/agent-architecture.md +68 -65
  58. package/src/modules/bmb/workflows/create-agent/agent-command-patterns.md +174 -172
  59. package/src/modules/bmb/workflows/create-agent/agent-types.md +139 -24
  60. package/src/modules/bmb/workflows/create-agent/brainstorm-context.md +4 -4
  61. package/src/modules/bmb/workflows/create-agent/checklist.md +30 -102
  62. package/src/modules/bmb/workflows/create-agent/communication-styles.md +22 -60
  63. package/src/modules/bmb/workflows/create-agent/instructions.md +339 -221
  64. package/src/modules/bmb/workflows/create-agent/workflow.yaml +28 -19
  65. package/src/modules/bmb/workflows/create-module/README.md +164 -153
  66. package/src/modules/bmb/workflows/create-module/brainstorm-context.md +1 -1
  67. package/src/modules/bmb/workflows/create-module/checklist.md +21 -31
  68. package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +92 -0
  69. package/src/modules/bmb/workflows/create-module/installer-templates/installer.js +1 -1
  70. package/src/modules/bmb/workflows/create-module/instructions.md +306 -238
  71. package/src/modules/bmb/workflows/create-module/module-structure.md +135 -45
  72. package/src/modules/bmb/workflows/create-module/workflow.yaml +32 -27
  73. package/src/modules/bmb/workflows/create-workflow/README.md +70 -9
  74. package/src/modules/bmb/workflows/create-workflow/brainstorm-context.md +4 -4
  75. package/src/modules/bmb/workflows/create-workflow/checklist.md +22 -0
  76. package/src/modules/bmb/workflows/create-workflow/instructions.md +505 -47
  77. package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +939 -68
  78. package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +6 -3
  79. package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +31 -5
  80. package/src/modules/bmb/workflows/create-workflow/workflow.yaml +16 -17
  81. package/src/modules/bmb/workflows/edit-agent/README.md +112 -0
  82. package/src/modules/bmb/workflows/edit-agent/checklist.md +112 -0
  83. package/src/modules/bmb/workflows/edit-agent/instructions.md +290 -0
  84. package/src/modules/bmb/workflows/edit-agent/workflow.yaml +33 -0
  85. package/src/modules/bmb/workflows/edit-module/README.md +187 -0
  86. package/src/modules/bmb/workflows/edit-module/checklist.md +165 -0
  87. package/src/modules/bmb/workflows/edit-module/instructions.md +341 -0
  88. package/src/modules/bmb/workflows/edit-module/workflow.yaml +34 -0
  89. package/src/modules/bmb/workflows/edit-workflow/README.md +58 -2
  90. package/src/modules/bmb/workflows/edit-workflow/instructions.md +290 -118
  91. package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +9 -16
  92. package/src/modules/bmb/workflows/module-brief/README.md +17 -17
  93. package/src/modules/bmb/workflows/module-brief/checklist.md +6 -6
  94. package/src/modules/bmb/workflows/module-brief/instructions.md +10 -7
  95. package/src/modules/bmb/workflows/module-brief/template.md +9 -9
  96. package/src/modules/bmb/workflows/module-brief/workflow.yaml +16 -10
  97. package/src/modules/bmb/workflows/redoc/README.md +5 -5
  98. package/src/modules/bmb/workflows/redoc/checklist.md +2 -2
  99. package/src/modules/bmb/workflows/redoc/instructions.md +20 -10
  100. package/src/modules/bmb/workflows/redoc/workflow.yaml +6 -5
  101. package/src/modules/bmgd/README.md +208 -0
  102. package/src/modules/bmgd/_module-installer/install-config.yaml +54 -0
  103. package/src/modules/bmgd/agents/game-architect.agent.yaml +33 -0
  104. package/src/modules/bmgd/agents/game-designer.agent.yaml +40 -0
  105. package/src/modules/bmgd/agents/game-dev.agent.yaml +40 -0
  106. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +75 -0
  107. package/src/modules/bmgd/teams/default-party.csv +10 -0
  108. package/src/modules/bmgd/teams/team-gamedev.yaml +18 -0
  109. package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-context.md +3 -3
  110. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +130 -0
  111. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +41 -0
  112. package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/checklist.md +2 -2
  113. package/src/modules/bmgd/workflows/1-preproduction/game-brief/instructions.md +373 -0
  114. package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/game-brief/template.md +2 -2
  115. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.yaml +36 -0
  116. package/src/modules/bmgd/workflows/2-design/gdd/checklist.md +148 -0
  117. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/action-platformer.md +1 -1
  118. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/adventure.md +1 -1
  119. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/card-game.md +2 -2
  120. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/fighting.md +1 -1
  121. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/horror.md +2 -2
  122. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/idle-incremental.md +1 -1
  123. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/moba.md +4 -4
  124. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/party-game.md +1 -1
  125. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/racing.md +3 -3
  126. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/rhythm.md +1 -1
  127. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/roguelike.md +2 -2
  128. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/rpg.md +3 -3
  129. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/sandbox.md +4 -4
  130. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/shooter.md +3 -3
  131. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/simulation.md +3 -3
  132. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/sports.md +3 -3
  133. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/strategy.md +3 -3
  134. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/survival.md +2 -2
  135. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/text-based.md +3 -3
  136. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/tower-defense.md +5 -5
  137. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/turn-based-tactics.md +4 -4
  138. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/visual-novel.md +1 -1
  139. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/gdd-template.md +6 -12
  140. package/src/modules/bmgd/workflows/2-design/gdd/instructions-gdd.md +502 -0
  141. package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +81 -0
  142. package/src/modules/bmgd/workflows/2-design/narrative/checklist.md +139 -0
  143. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/narrative/instructions-narrative.md +99 -12
  144. package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/narrative/narrative-template.md +8 -8
  145. package/src/modules/bmgd/workflows/2-design/narrative/workflow.yaml +32 -0
  146. package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-patterns.yaml +321 -0
  147. package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-template.md +103 -0
  148. package/src/modules/bmgd/workflows/3-technical/game-architecture/checklist.md +240 -0
  149. package/src/modules/bmgd/workflows/3-technical/game-architecture/decision-catalog.yaml +222 -0
  150. package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +701 -0
  151. package/src/modules/bmgd/workflows/3-technical/game-architecture/pattern-categories.csv +13 -0
  152. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +69 -0
  153. package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +398 -0
  154. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +61 -0
  155. package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +279 -0
  156. package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +206 -0
  157. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +58 -0
  158. package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +240 -0
  159. package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +256 -0
  160. package/src/modules/bmgd/workflows/4-production/create-story/template.md +51 -0
  161. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +74 -0
  162. package/src/modules/bmgd/workflows/4-production/dev-story/checklist.md +38 -0
  163. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +267 -0
  164. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +58 -0
  165. package/src/modules/{bmm/workflows/3-solutioning/tech-spec → bmgd/workflows/4-production/epic-tech-context}/checklist.md +1 -1
  166. package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +164 -0
  167. package/src/modules/{bmm/workflows/3-solutioning/tech-spec → bmgd/workflows/4-production/epic-tech-context}/template.md +1 -1
  168. package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +58 -0
  169. package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +1443 -0
  170. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +57 -0
  171. package/src/modules/bmgd/workflows/4-production/sprint-planning/checklist.md +33 -0
  172. package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +234 -0
  173. package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +55 -0
  174. package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +51 -0
  175. package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +16 -0
  176. package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +34 -0
  177. package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +209 -0
  178. package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +63 -0
  179. package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +111 -0
  180. package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +28 -0
  181. package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +117 -0
  182. package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +25 -0
  183. package/src/modules/bmm/README.md +128 -0
  184. package/src/modules/bmm/_module-installer/install-config.yaml +60 -0
  185. package/src/modules/bmm/_module-installer/installer.js +3 -3
  186. package/src/modules/bmm/_module-installer/platform-specifics/claude-code.js +1 -1
  187. package/src/modules/bmm/_module-installer/platform-specifics/windsurf.js +1 -1
  188. package/src/modules/bmm/agents/analyst.agent.yaml +49 -0
  189. package/src/modules/bmm/agents/architect.agent.yaml +42 -0
  190. package/src/modules/bmm/agents/dev.agent.yaml +40 -0
  191. package/src/modules/bmm/agents/frame-expert.agent.yaml +42 -0
  192. package/src/modules/bmm/agents/pm.agent.yaml +64 -0
  193. package/src/modules/bmm/agents/sm.agent.yaml +73 -0
  194. package/src/modules/bmm/agents/tea.agent.yaml +67 -0
  195. package/src/modules/bmm/agents/tech-writer.agent.yaml +68 -0
  196. package/src/modules/bmm/agents/ux-designer.agent.yaml +39 -0
  197. package/src/modules/bmm/docs/README.md +236 -0
  198. package/src/modules/bmm/docs/agents-guide.md +1058 -0
  199. package/src/modules/bmm/docs/brownfield-guide.md +762 -0
  200. package/src/modules/bmm/docs/enterprise-agentic-development.md +686 -0
  201. package/src/modules/bmm/docs/faq.md +588 -0
  202. package/src/modules/bmm/docs/glossary.md +320 -0
  203. package/src/modules/bmm/docs/party-mode.md +224 -0
  204. package/src/modules/bmm/docs/quick-spec-flow.md +652 -0
  205. package/src/modules/bmm/docs/quick-start.md +376 -0
  206. package/src/modules/bmm/docs/scale-adaptive-system.md +612 -0
  207. package/src/modules/bmm/docs/test-architecture.md +396 -0
  208. package/src/modules/bmm/docs/workflow-architecture-reference.md +366 -0
  209. package/src/modules/bmm/docs/workflow-document-project-reference.md +489 -0
  210. package/src/modules/bmm/docs/workflows-analysis.md +370 -0
  211. package/src/modules/bmm/docs/workflows-implementation.md +286 -0
  212. package/src/modules/bmm/docs/workflows-planning.md +612 -0
  213. package/src/modules/bmm/docs/workflows-solutioning.md +554 -0
  214. package/src/modules/bmm/teams/default-party.csv +20 -0
  215. package/src/modules/bmm/teams/team-fullstack.yaml +13 -0
  216. package/src/modules/bmm/testarch/knowledge/ci-burn-in.md +675 -0
  217. package/src/modules/bmm/testarch/knowledge/component-tdd.md +486 -0
  218. package/src/modules/bmm/testarch/knowledge/contract-testing.md +957 -0
  219. package/src/modules/bmm/testarch/knowledge/data-factories.md +500 -0
  220. package/src/modules/bmm/testarch/knowledge/email-auth.md +721 -0
  221. package/src/modules/bmm/testarch/knowledge/error-handling.md +725 -0
  222. package/src/modules/bmm/testarch/knowledge/feature-flags.md +750 -0
  223. package/src/modules/bmm/testarch/knowledge/fixture-architecture.md +401 -0
  224. package/src/modules/bmm/testarch/knowledge/network-first.md +486 -0
  225. package/src/modules/bmm/testarch/knowledge/nfr-criteria.md +670 -0
  226. package/src/modules/bmm/testarch/knowledge/playwright-config.md +730 -0
  227. package/src/modules/bmm/testarch/knowledge/probability-impact.md +601 -0
  228. package/src/modules/bmm/testarch/knowledge/risk-governance.md +615 -0
  229. package/src/modules/bmm/testarch/knowledge/selective-testing.md +732 -0
  230. package/src/modules/bmm/testarch/knowledge/selector-resilience.md +527 -0
  231. package/src/modules/bmm/testarch/knowledge/test-healing-patterns.md +644 -0
  232. package/src/modules/bmm/testarch/knowledge/test-levels-framework.md +473 -0
  233. package/src/modules/bmm/testarch/knowledge/test-priorities-matrix.md +373 -0
  234. package/src/modules/bmm/testarch/knowledge/test-quality.md +664 -0
  235. package/src/modules/bmm/testarch/knowledge/timing-debugging.md +372 -0
  236. package/src/modules/bmm/testarch/knowledge/visual-debugging.md +524 -0
  237. package/src/modules/bmm/testarch/tea-index.csv +22 -0
  238. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +82 -8
  239. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/project-context.md +4 -4
  240. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +23 -5
  241. package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +425 -0
  242. package/src/modules/bmm/workflows/1-analysis/domain-research/template.md +180 -0
  243. package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +56 -0
  244. package/src/modules/bmm/workflows/1-analysis/product-brief/checklist.md +2 -2
  245. package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +418 -247
  246. package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +93 -77
  247. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +42 -14
  248. package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +144 -0
  249. package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +249 -0
  250. package/src/modules/bmm/workflows/1-analysis/research/checklist.md +156 -59
  251. package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +115 -47
  252. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +236 -114
  253. package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +109 -66
  254. package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +147 -55
  255. package/src/modules/bmm/workflows/1-analysis/research/template-deep-prompt.md +1 -1
  256. package/src/modules/bmm/workflows/1-analysis/research/template-market.md +38 -2
  257. package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +36 -1
  258. package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +36 -123
  259. package/src/modules/bmm/workflows/2-plan-workflows/create-epics-and-stories/epics-template.md +80 -0
  260. package/src/modules/bmm/workflows/2-plan-workflows/create-epics-and-stories/instructions.md +616 -0
  261. package/src/modules/bmm/workflows/2-plan-workflows/create-epics-and-stories/workflow.yaml +63 -0
  262. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +310 -0
  263. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1308 -0
  264. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +145 -0
  265. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +93 -0
  266. package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +346 -0
  267. package/src/modules/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
  268. package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +703 -0
  269. package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +204 -0
  270. package/src/modules/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
  271. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +78 -0
  272. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +217 -0
  273. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +74 -0
  274. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +436 -0
  275. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +980 -0
  276. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +181 -0
  277. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +90 -0
  278. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +60 -0
  279. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +321 -0
  280. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +103 -0
  281. package/src/modules/bmm/workflows/3-solutioning/architecture/checklist.md +240 -0
  282. package/src/modules/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +222 -0
  283. package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +768 -0
  284. package/src/modules/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +13 -0
  285. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +100 -0
  286. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/checklist.md +169 -0
  287. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/instructions.md +332 -0
  288. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/template.md +146 -0
  289. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/workflow.yaml +64 -0
  290. package/src/modules/bmm/workflows/4-implementation/code-review/backlog_template.md +12 -0
  291. package/src/modules/bmm/workflows/4-implementation/code-review/checklist.md +22 -0
  292. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +398 -0
  293. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +61 -0
  294. package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +6 -6
  295. package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +70 -54
  296. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +44 -21
  297. package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +240 -39
  298. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +203 -28
  299. package/src/modules/bmm/workflows/4-implementation/create-story/template.md +2 -8
  300. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +43 -42
  301. package/src/modules/bmm/workflows/4-implementation/dev-story/checklist.md +1 -1
  302. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +220 -40
  303. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +43 -38
  304. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/checklist.md +17 -0
  305. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +164 -0
  306. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/template.md +76 -0
  307. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +58 -0
  308. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +1280 -228
  309. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +41 -25
  310. package/src/modules/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  311. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +234 -0
  312. package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  313. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +51 -0
  314. package/src/modules/bmm/workflows/4-implementation/story-context/checklist.md +1 -1
  315. package/src/modules/bmm/workflows/4-implementation/story-context/context-template.xml +1 -1
  316. package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +155 -22
  317. package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +43 -36
  318. package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +111 -0
  319. package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +28 -0
  320. package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +117 -0
  321. package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +25 -0
  322. package/src/modules/bmm/workflows/document-project/checklist.md +245 -0
  323. package/src/modules/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  324. package/src/modules/bmm/workflows/document-project/instructions.md +222 -0
  325. package/src/modules/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  326. package/src/modules/bmm/workflows/document-project/templates/index-template.md +169 -0
  327. package/src/modules/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  328. package/src/modules/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  329. package/src/modules/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  330. package/src/modules/bmm/workflows/document-project/workflow.yaml +31 -0
  331. package/src/modules/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  332. package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  333. package/src/modules/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  334. package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  335. package/src/modules/bmm/workflows/frame-expert/_shared/excalidraw-helpers.md +127 -0
  336. package/src/modules/bmm/workflows/frame-expert/_shared/excalidraw-library.json +90 -0
  337. package/src/modules/bmm/workflows/frame-expert/_shared/excalidraw-templates.yaml +127 -0
  338. package/src/modules/bmm/workflows/frame-expert/_shared/validate-json-instructions.md +79 -0
  339. package/src/modules/bmm/workflows/frame-expert/create-dataflow/checklist.md +39 -0
  340. package/src/modules/bmm/workflows/frame-expert/create-dataflow/instructions.md +131 -0
  341. package/src/modules/bmm/workflows/frame-expert/create-dataflow/workflow.yaml +24 -0
  342. package/src/modules/bmm/workflows/frame-expert/create-diagram/checklist.md +43 -0
  343. package/src/modules/bmm/workflows/frame-expert/create-diagram/instructions.md +142 -0
  344. package/src/modules/bmm/workflows/frame-expert/create-diagram/workflow.yaml +25 -0
  345. package/src/modules/bmm/workflows/frame-expert/create-flowchart/checklist.md +49 -0
  346. package/src/modules/bmm/workflows/frame-expert/create-flowchart/instructions.md +242 -0
  347. package/src/modules/bmm/workflows/frame-expert/create-flowchart/workflow.yaml +28 -0
  348. package/src/modules/bmm/workflows/frame-expert/create-wireframe/checklist.md +38 -0
  349. package/src/modules/bmm/workflows/frame-expert/create-wireframe/instructions.md +133 -0
  350. package/src/modules/bmm/workflows/frame-expert/create-wireframe/workflow.yaml +24 -0
  351. package/src/modules/bmm/workflows/techdoc/documentation-standards.md +262 -0
  352. package/src/modules/bmm/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
  353. package/src/modules/bmm/workflows/testarch/atdd/checklist.md +373 -0
  354. package/src/modules/bmm/workflows/testarch/atdd/instructions.md +785 -0
  355. package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +47 -0
  356. package/src/modules/bmm/workflows/testarch/automate/checklist.md +580 -0
  357. package/src/modules/bmm/workflows/testarch/automate/instructions.md +1303 -0
  358. package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +54 -0
  359. package/src/modules/bmm/workflows/testarch/ci/checklist.md +246 -0
  360. package/src/modules/bmm/workflows/testarch/ci/github-actions-template.yaml +165 -0
  361. package/src/modules/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +128 -0
  362. package/src/modules/bmm/workflows/testarch/ci/instructions.md +517 -0
  363. package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +47 -0
  364. package/src/modules/bmm/workflows/testarch/framework/checklist.md +321 -0
  365. package/src/modules/bmm/workflows/testarch/framework/instructions.md +455 -0
  366. package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +49 -0
  367. package/src/modules/bmm/workflows/testarch/nfr-assess/checklist.md +405 -0
  368. package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +722 -0
  369. package/src/modules/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +443 -0
  370. package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +49 -0
  371. package/src/modules/bmm/workflows/testarch/test-design/checklist.md +234 -0
  372. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +782 -0
  373. package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +285 -0
  374. package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +50 -0
  375. package/src/modules/bmm/workflows/testarch/test-review/checklist.md +470 -0
  376. package/src/modules/bmm/workflows/testarch/test-review/instructions.md +608 -0
  377. package/src/modules/bmm/workflows/testarch/test-review/test-review-template.md +388 -0
  378. package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +48 -0
  379. package/src/modules/bmm/workflows/testarch/trace/checklist.md +654 -0
  380. package/src/modules/bmm/workflows/testarch/trace/instructions.md +1045 -0
  381. package/src/modules/bmm/workflows/testarch/trace/trace-template.md +673 -0
  382. package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +57 -0
  383. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +334 -0
  384. package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +29 -0
  385. package/src/modules/bmm/workflows/workflow-status/instructions.md +388 -0
  386. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +138 -0
  387. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +126 -0
  388. package/src/modules/bmm/workflows/workflow-status/paths/game-design.yaml +52 -0
  389. package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +122 -0
  390. package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +113 -0
  391. package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +58 -0
  392. package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +47 -0
  393. package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +59 -0
  394. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -0
  395. package/src/modules/bmm/workflows/workflow-status/workflow.yaml +30 -0
  396. package/src/modules/cis/README.md +153 -0
  397. package/src/modules/cis/_module-installer/{install-menu-config.yaml → install-config.yaml} +6 -4
  398. package/src/modules/cis/_module-installer/installer.js +1 -1
  399. package/src/modules/cis/agents/README.md +1 -1
  400. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +28 -0
  401. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +28 -0
  402. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +28 -0
  403. package/src/modules/cis/agents/innovation-strategist.agent.yaml +28 -0
  404. package/src/modules/cis/agents/storyteller.agent.yaml +28 -0
  405. package/src/modules/cis/teams/creative-squad.yaml +1 -0
  406. package/src/modules/cis/teams/default-party.csv +11 -0
  407. package/src/modules/cis/workflows/README.md +102 -30
  408. package/src/modules/cis/workflows/design-thinking/design-methods.csv +1 -1
  409. package/src/modules/cis/workflows/design-thinking/instructions.md +4 -2
  410. package/src/modules/cis/workflows/design-thinking/workflow.yaml +16 -7
  411. package/src/modules/cis/workflows/innovation-strategy/innovation-frameworks.csv +2 -2
  412. package/src/modules/cis/workflows/innovation-strategy/instructions.md +7 -5
  413. package/src/modules/cis/workflows/innovation-strategy/template.md +6 -6
  414. package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +16 -7
  415. package/src/modules/cis/workflows/problem-solving/instructions.md +4 -2
  416. package/src/modules/cis/workflows/problem-solving/solving-methods.csv +6 -6
  417. package/src/modules/cis/workflows/problem-solving/template.md +3 -3
  418. package/src/modules/cis/workflows/problem-solving/workflow.yaml +16 -7
  419. package/src/modules/cis/workflows/storytelling/instructions.md +48 -30
  420. package/src/modules/cis/workflows/storytelling/template.md +2 -2
  421. package/src/modules/cis/workflows/storytelling/workflow.yaml +16 -7
  422. package/src/utility/models/action-command-header.md +0 -0
  423. package/src/utility/models/agent-activation-ide.xml +4 -4
  424. package/src/utility/models/agent-activation-web.xml +60 -0
  425. package/src/utility/models/agent-command-header.md +1 -0
  426. package/src/utility/models/agent-in-team-activation.xml +3 -0
  427. package/src/utility/models/fragments/activation-rules.xml +8 -0
  428. package/src/utility/models/fragments/activation-steps.xml +16 -0
  429. package/src/utility/models/fragments/handler-action.xml +4 -0
  430. package/src/utility/models/fragments/handler-data.xml +5 -0
  431. package/src/utility/models/fragments/handler-exec.xml +5 -0
  432. package/src/utility/models/fragments/handler-tmpl.xml +5 -0
  433. package/src/utility/models/fragments/handler-validate-workflow.xml +7 -0
  434. package/src/utility/models/fragments/handler-workflow.xml +9 -0
  435. package/src/utility/models/fragments/menu-handlers.xml +6 -0
  436. package/src/utility/models/fragments/web-bundle-activation-steps.xml +32 -0
  437. package/src/utility/templates/agent.customize.template.yaml +42 -0
  438. package/test/README.md +295 -0
  439. package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +26 -0
  440. package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +29 -0
  441. package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +21 -0
  442. package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +19 -0
  443. package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +24 -0
  444. package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +23 -0
  445. package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +24 -0
  446. package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +30 -0
  447. package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +24 -0
  448. package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +24 -0
  449. package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +24 -0
  450. package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +24 -0
  451. package/test/fixtures/agent-schema/invalid/metadata/core-agent-with-module.agent.yaml +26 -0
  452. package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +26 -0
  453. package/test/fixtures/agent-schema/invalid/metadata/empty-name.agent.yaml +24 -0
  454. package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +26 -0
  455. package/test/fixtures/agent-schema/invalid/metadata/missing-id.agent.yaml +23 -0
  456. package/test/fixtures/agent-schema/invalid/metadata/module-agent-missing-module.agent.yaml +25 -0
  457. package/test/fixtures/agent-schema/invalid/metadata/wrong-module-value.agent.yaml +26 -0
  458. package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +23 -0
  459. package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +26 -0
  460. package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +26 -0
  461. package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +23 -0
  462. package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +28 -0
  463. package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +30 -0
  464. package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +27 -0
  465. package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +27 -0
  466. package/test/fixtures/agent-schema/invalid/top-level/empty-file.agent.yaml +5 -0
  467. package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +27 -0
  468. package/test/fixtures/agent-schema/invalid/top-level/missing-agent-key.agent.yaml +11 -0
  469. package/test/fixtures/agent-schema/invalid/yaml-errors/invalid-indentation.agent.yaml +19 -0
  470. package/test/fixtures/agent-schema/invalid/yaml-errors/malformed-yaml.agent.yaml +18 -0
  471. package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +23 -0
  472. package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +21 -0
  473. package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +26 -0
  474. package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +30 -0
  475. package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +21 -0
  476. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +39 -0
  477. package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +23 -0
  478. package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +33 -0
  479. package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +23 -0
  480. package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +23 -0
  481. package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +23 -0
  482. package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +23 -0
  483. package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +23 -0
  484. package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +21 -0
  485. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +27 -0
  486. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +29 -0
  487. package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +23 -0
  488. package/test/test-agent-schema.js +387 -0
  489. package/test/test-cli-integration.sh +159 -0
  490. package/test/test-installation-components.js +214 -0
  491. package/test/unit-test-schema.js +133 -0
  492. package/tools/bmad-npx-wrapper.js +38 -0
  493. package/tools/cli/README.md +608 -0
  494. package/tools/cli/bmad-cli.js +0 -2
  495. package/tools/cli/bundlers/bundle-web.js +24 -2
  496. package/tools/cli/bundlers/test-bundler.js +1 -1
  497. package/tools/cli/bundlers/web-bundler.js +944 -49
  498. package/tools/cli/commands/build.js +458 -0
  499. package/tools/cli/commands/install.js +46 -8
  500. package/tools/cli/installers/lib/core/config-collector.js +490 -43
  501. package/tools/cli/installers/lib/core/dependency-resolver.js +5 -1
  502. package/tools/cli/installers/lib/core/detector.js +134 -13
  503. package/tools/cli/installers/lib/core/ide-config-manager.js +154 -0
  504. package/tools/cli/installers/lib/core/installer.js +1365 -167
  505. package/tools/cli/installers/lib/core/manifest-generator.js +388 -81
  506. package/tools/cli/installers/lib/core/manifest.js +100 -44
  507. package/tools/cli/installers/lib/ide/_base-ide.js +368 -23
  508. package/tools/cli/installers/lib/ide/auggie.js +100 -192
  509. package/tools/cli/installers/lib/ide/claude-code.js +167 -321
  510. package/tools/cli/installers/lib/ide/cline.js +146 -227
  511. package/tools/cli/installers/lib/ide/codex.js +138 -202
  512. package/tools/cli/installers/lib/ide/crush.js +108 -72
  513. package/tools/cli/installers/lib/ide/cursor.js +148 -20
  514. package/tools/cli/installers/lib/ide/gemini.js +109 -63
  515. package/tools/cli/installers/lib/ide/github-copilot.js +60 -47
  516. package/tools/cli/installers/lib/ide/iflow.js +13 -30
  517. package/tools/cli/installers/lib/ide/kilo.js +20 -16
  518. package/tools/cli/installers/lib/ide/manager.js +41 -35
  519. package/tools/cli/installers/lib/ide/opencode.js +212 -0
  520. package/tools/cli/installers/lib/ide/qwen.js +198 -68
  521. package/tools/cli/installers/lib/ide/roo.js +27 -62
  522. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +90 -0
  523. package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +143 -0
  524. package/tools/cli/installers/lib/ide/shared/module-injections.js +133 -0
  525. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +119 -0
  526. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +237 -0
  527. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
  528. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
  529. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
  530. package/tools/cli/installers/lib/ide/{workflow-command-template.md → templates/workflow-command-template.md} +7 -5
  531. package/tools/cli/installers/lib/ide/trae.js +138 -54
  532. package/tools/cli/installers/lib/ide/windsurf.js +104 -42
  533. package/tools/cli/installers/lib/modules/manager.js +332 -10
  534. package/tools/cli/lib/activation-builder.js +168 -0
  535. package/tools/cli/lib/agent-analyzer.js +81 -0
  536. package/tools/cli/lib/agent-party-generator.js +3 -3
  537. package/tools/cli/lib/cli-utils.js +52 -50
  538. package/tools/cli/lib/config.js +3 -1
  539. package/tools/cli/lib/ui.js +106 -14
  540. package/tools/cli/lib/xml-handler.js +47 -1
  541. package/tools/cli/lib/yaml-format.js +2 -1
  542. package/tools/cli/lib/yaml-xml-builder.js +507 -0
  543. package/tools/cli/regenerate-manifests.js +1 -1
  544. package/tools/cli/test-yaml-builder.js +43 -0
  545. package/tools/format-workflow-md.js +263 -0
  546. package/tools/platform-codes.yaml +6 -0
  547. package/tools/schema/agent.js +240 -0
  548. package/tools/validate-agent-schema.js +110 -0
  549. package/v6-open-items.md +17 -0
  550. package/.github/workflows/format-check.yaml +0 -43
  551. package/docs/codebase-flattener.md +0 -19
  552. package/readme.md +0 -216
  553. package/src/core/_module-installer/install-menu-config.yaml +0 -24
  554. package/src/core/agents/bmad-master.md +0 -27
  555. package/src/core/agents/bmad-web-orchestrator.md +0 -71
  556. package/src/core/tasks/shard-doc.md +0 -57
  557. package/src/core/tasks/workflow.md +0 -141
  558. package/src/core/workflows/bmad-init/instructions.md +0 -79
  559. package/src/core/workflows/bmad-init/workflow.yaml +0 -24
  560. package/src/modules/bmb/_module-installer/install-menu-config.yaml +0 -16
  561. package/src/modules/bmb/agents/bmad-builder.md +0 -30
  562. package/src/modules/bmb/workflows/create-module/installer-templates/install-module-config.yaml +0 -132
  563. package/src/modules/bmm/_module-installer/install-menu-config.yaml +0 -49
  564. package/src/modules/bmm/agents/analyst.md +0 -26
  565. package/src/modules/bmm/agents/architect.md +0 -29
  566. package/src/modules/bmm/agents/dev.md +0 -61
  567. package/src/modules/bmm/agents/game-architect.md +0 -26
  568. package/src/modules/bmm/agents/game-designer.md +0 -27
  569. package/src/modules/bmm/agents/game-dev.md +0 -28
  570. package/src/modules/bmm/agents/pm.md +0 -26
  571. package/src/modules/bmm/agents/po.md +0 -25
  572. package/src/modules/bmm/agents/sm.md +0 -29
  573. package/src/modules/bmm/agents/tea.md +0 -32
  574. package/src/modules/bmm/agents/ux-expert.md +0 -24
  575. package/src/modules/bmm/sub-modules/claude-code/config.yaml +0 -5
  576. package/src/modules/bmm/sub-modules/claude-code/injections.yaml +0 -242
  577. package/src/modules/bmm/sub-modules/claude-code/readme.md +0 -87
  578. package/src/modules/bmm/sub-modules/claude-code/sub-agents/api-documenter.md +0 -85
  579. package/src/modules/bmm/sub-modules/claude-code/sub-agents/codebase-analyzer.md +0 -64
  580. package/src/modules/bmm/sub-modules/claude-code/sub-agents/data-analyst.md +0 -84
  581. package/src/modules/bmm/sub-modules/claude-code/sub-agents/dependency-mapper.md +0 -67
  582. package/src/modules/bmm/sub-modules/claude-code/sub-agents/document-reviewer.md +0 -85
  583. package/src/modules/bmm/sub-modules/claude-code/sub-agents/epic-optimizer.md +0 -66
  584. package/src/modules/bmm/sub-modules/claude-code/sub-agents/market-researcher.md +0 -34
  585. package/src/modules/bmm/sub-modules/claude-code/sub-agents/pattern-detector.md +0 -67
  586. package/src/modules/bmm/sub-modules/claude-code/sub-agents/requirements-analyst.md +0 -61
  587. package/src/modules/bmm/sub-modules/claude-code/sub-agents/tech-debt-auditor.md +0 -89
  588. package/src/modules/bmm/sub-modules/claude-code/sub-agents/technical-decisions-curator.md +0 -146
  589. package/src/modules/bmm/sub-modules/claude-code/sub-agents/technical-evaluator.md +0 -51
  590. package/src/modules/bmm/sub-modules/claude-code/sub-agents/test-coverage-analyzer.md +0 -91
  591. package/src/modules/bmm/sub-modules/claude-code/sub-agents/trend-spotter.md +0 -99
  592. package/src/modules/bmm/sub-modules/claude-code/sub-agents/user-journey-mapper.md +0 -101
  593. package/src/modules/bmm/sub-modules/claude-code/sub-agents/user-researcher.md +0 -56
  594. package/src/modules/bmm/tasks/daily-standup.md +0 -91
  595. package/src/modules/bmm/tasks/retrospective.md +0 -110
  596. package/src/modules/bmm/teams/team-all.yaml +0 -7
  597. package/src/modules/bmm/teams/team-dev.yaml +0 -14
  598. package/src/modules/bmm/teams/team-gamedev.yaml +0 -9
  599. package/src/modules/bmm/testarch/atdd.md +0 -40
  600. package/src/modules/bmm/testarch/automate.md +0 -38
  601. package/src/modules/bmm/testarch/ci.md +0 -39
  602. package/src/modules/bmm/testarch/framework.md +0 -41
  603. package/src/modules/bmm/testarch/nfr-assess.md +0 -38
  604. package/src/modules/bmm/testarch/risk-profile.md +0 -38
  605. package/src/modules/bmm/testarch/tea-commands.csv +0 -11
  606. package/src/modules/bmm/testarch/tea-gate.md +0 -38
  607. package/src/modules/bmm/testarch/tea-knowledge.md +0 -275
  608. package/src/modules/bmm/testarch/test-design.md +0 -39
  609. package/src/modules/bmm/testarch/test-levels-framework.md +0 -148
  610. package/src/modules/bmm/testarch/test-priorities-matrix.md +0 -174
  611. package/src/modules/bmm/testarch/trace-requirements.md +0 -38
  612. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/instructions.md +0 -47
  613. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/workflow.yaml +0 -22
  614. package/src/modules/bmm/workflows/1-analysis/game-brief/README.md +0 -221
  615. package/src/modules/bmm/workflows/1-analysis/game-brief/instructions.md +0 -517
  616. package/src/modules/bmm/workflows/1-analysis/game-brief/workflow.yaml +0 -34
  617. package/src/modules/bmm/workflows/1-analysis/product-brief/README.md +0 -180
  618. package/src/modules/bmm/workflows/1-analysis/research/README.md +0 -454
  619. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-competitor-analyzer.md +0 -259
  620. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-data-analyst.md +0 -190
  621. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-market-researcher.md +0 -337
  622. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-trend-spotter.md +0 -107
  623. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-user-researcher.md +0 -329
  624. package/src/modules/bmm/workflows/2-plan/README.md +0 -203
  625. package/src/modules/bmm/workflows/2-plan/checklist.md +0 -369
  626. package/src/modules/bmm/workflows/2-plan/gdd/README.md +0 -222
  627. package/src/modules/bmm/workflows/2-plan/gdd/instructions-gdd.md +0 -480
  628. package/src/modules/bmm/workflows/2-plan/instructions-router.md +0 -222
  629. package/src/modules/bmm/workflows/2-plan/prd/analysis-template.md +0 -53
  630. package/src/modules/bmm/workflows/2-plan/prd/epics-template.md +0 -18
  631. package/src/modules/bmm/workflows/2-plan/prd/instructions-lg.md +0 -267
  632. package/src/modules/bmm/workflows/2-plan/prd/instructions-med.md +0 -251
  633. package/src/modules/bmm/workflows/2-plan/prd/prd-template.md +0 -73
  634. package/src/modules/bmm/workflows/2-plan/tech-spec/instructions-sm.md +0 -137
  635. package/src/modules/bmm/workflows/2-plan/tech-spec/tech-spec-template.md +0 -59
  636. package/src/modules/bmm/workflows/2-plan/ux/instructions-ux.md +0 -360
  637. package/src/modules/bmm/workflows/2-plan/ux/ux-spec-template.md +0 -162
  638. package/src/modules/bmm/workflows/2-plan/workflow.yaml +0 -60
  639. package/src/modules/bmm/workflows/3-solutioning/ADR-template.md +0 -74
  640. package/src/modules/bmm/workflows/3-solutioning/README.md +0 -565
  641. package/src/modules/bmm/workflows/3-solutioning/checklist.md +0 -170
  642. package/src/modules/bmm/workflows/3-solutioning/instructions.md +0 -661
  643. package/src/modules/bmm/workflows/3-solutioning/project-types/backend-questions.md +0 -490
  644. package/src/modules/bmm/workflows/3-solutioning/project-types/cli-questions.md +0 -337
  645. package/src/modules/bmm/workflows/3-solutioning/project-types/data-questions.md +0 -472
  646. package/src/modules/bmm/workflows/3-solutioning/project-types/desktop-questions.md +0 -299
  647. package/src/modules/bmm/workflows/3-solutioning/project-types/embedded-questions.md +0 -118
  648. package/src/modules/bmm/workflows/3-solutioning/project-types/extension-questions.md +0 -374
  649. package/src/modules/bmm/workflows/3-solutioning/project-types/game-questions.md +0 -133
  650. package/src/modules/bmm/workflows/3-solutioning/project-types/infra-questions.md +0 -484
  651. package/src/modules/bmm/workflows/3-solutioning/project-types/library-questions.md +0 -146
  652. package/src/modules/bmm/workflows/3-solutioning/project-types/mobile-questions.md +0 -110
  653. package/src/modules/bmm/workflows/3-solutioning/project-types/project-types.csv +0 -12
  654. package/src/modules/bmm/workflows/3-solutioning/project-types/web-questions.md +0 -136
  655. package/src/modules/bmm/workflows/3-solutioning/tech-spec/README.md +0 -195
  656. package/src/modules/bmm/workflows/3-solutioning/tech-spec/instructions.md +0 -73
  657. package/src/modules/bmm/workflows/3-solutioning/tech-spec/workflow.yaml +0 -51
  658. package/src/modules/bmm/workflows/3-solutioning/templates/backend-service-architecture.md +0 -66
  659. package/src/modules/bmm/workflows/3-solutioning/templates/cli-tool-architecture.md +0 -66
  660. package/src/modules/bmm/workflows/3-solutioning/templates/data-pipeline-architecture.md +0 -66
  661. package/src/modules/bmm/workflows/3-solutioning/templates/desktop-app-architecture.md +0 -66
  662. package/src/modules/bmm/workflows/3-solutioning/templates/embedded-firmware-architecture.md +0 -66
  663. package/src/modules/bmm/workflows/3-solutioning/templates/game-engine-architecture.md +0 -244
  664. package/src/modules/bmm/workflows/3-solutioning/templates/game-engine-godot-guide.md +0 -428
  665. package/src/modules/bmm/workflows/3-solutioning/templates/game-engine-unity-guide.md +0 -333
  666. package/src/modules/bmm/workflows/3-solutioning/templates/game-engine-web-guide.md +0 -528
  667. package/src/modules/bmm/workflows/3-solutioning/templates/infrastructure-architecture.md +0 -66
  668. package/src/modules/bmm/workflows/3-solutioning/templates/library-package-architecture.md +0 -66
  669. package/src/modules/bmm/workflows/3-solutioning/templates/mobile-app-architecture.md +0 -66
  670. package/src/modules/bmm/workflows/3-solutioning/templates/registry.csv +0 -172
  671. package/src/modules/bmm/workflows/3-solutioning/templates/web-api-architecture.md +0 -66
  672. package/src/modules/bmm/workflows/3-solutioning/templates/web-fullstack-architecture.md +0 -277
  673. package/src/modules/bmm/workflows/3-solutioning/workflow.yaml +0 -65
  674. package/src/modules/bmm/workflows/4-implementation/create-story/README.md +0 -42
  675. package/src/modules/bmm/workflows/4-implementation/dev-story/README.md +0 -84
  676. package/src/modules/bmm/workflows/4-implementation/review-story/README.md +0 -72
  677. package/src/modules/bmm/workflows/4-implementation/review-story/instructions.md +0 -176
  678. package/src/modules/bmm/workflows/4-implementation/review-story/workflow.yaml +0 -99
  679. package/src/modules/bmm/workflows/4-implementation/story-context/README.md +0 -234
  680. package/src/modules/cis/agents/brainstorming-coach.md +0 -24
  681. package/src/modules/cis/agents/creative-problem-solver.md +0 -24
  682. package/src/modules/cis/agents/design-thinking-coach.md +0 -24
  683. package/src/modules/cis/agents/innovation-strategist.md +0 -24
  684. package/src/modules/cis/agents/storyteller.md +0 -24
  685. package/src/modules/cis/readme.md +0 -86
  686. package/tools/cli/installers/lib/ide/workflow-command-generator.js +0 -162
  687. package/tools/test-agents/captain-kirk-commander.md +0 -110
  688. package/tools/test-agents/data-operations-android.md +0 -123
  689. package/tools/test-agents/geordi-chief-engineer.md +0 -135
  690. package/tools/test-agents/isabella-martinez-ethicist.md +0 -109
  691. package/tools/test-agents/marcus-thompson-security.md +0 -109
  692. package/tools/test-agents/maya-patel-pragmatist.md +0 -82
  693. package/tools/test-agents/picard-diplomat-captain.md +0 -134
  694. package/tools/test-agents/spock-science-officer.md +0 -124
  695. package/tools/test-agents/william-smithers-technocrat.md +0 -71
  696. package/tools/test-agents/zara-chen-designer.md +0 -94
  697. /package/src/{modules/cis → core}/workflows/brainstorming/brain-methods.csv +0 -0
  698. /package/src/modules/{bmm/workflows/1-analysis → bmgd/workflows/1-preproduction}/brainstorm-game/game-brain-methods.csv +0 -0
  699. /package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/metroidvania.md +0 -0
  700. /package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types/puzzle.md +0 -0
  701. /package/src/modules/{bmm/workflows/2-plan → bmgd/workflows/2-design}/gdd/game-types.csv +0 -0
  702. /package/src/modules/{bmm/workflows/4-implementation/review-story → bmgd/workflows/4-production/code-review}/backlog_template.md +0 -0
  703. /package/src/modules/{bmm/workflows/4-implementation/review-story → bmgd/workflows/4-production/code-review}/checklist.md +0 -0
  704. /package/src/modules/bmm/_module-installer/assets/{technical-decisions-template.md → technical-decisions.md} +0 -0
@@ -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
@@ -12,6 +13,20 @@ class CursorSetup extends BaseIdeSetup {
12
13
  this.rulesDir = 'rules';
13
14
  }
14
15
 
16
+ /**
17
+ * Cleanup old BMAD installation before reinstalling
18
+ * @param {string} projectDir - Project directory
19
+ */
20
+ async cleanup(projectDir) {
21
+ const fs = require('fs-extra');
22
+ const bmadRulesDir = path.join(projectDir, this.configDir, this.rulesDir, 'bmad');
23
+
24
+ if (await fs.pathExists(bmadRulesDir)) {
25
+ await fs.remove(bmadRulesDir);
26
+ console.log(chalk.dim(` Removed old BMAD rules from ${this.name}`));
27
+ }
28
+ }
29
+
15
30
  /**
16
31
  * Setup Cursor IDE configuration
17
32
  * @param {string} projectDir - Project directory
@@ -21,6 +36,9 @@ class CursorSetup extends BaseIdeSetup {
21
36
  async setup(projectDir, bmadDir, options = {}) {
22
37
  console.log(chalk.cyan(`Setting up ${this.name}...`));
23
38
 
39
+ // Clean up old BMAD installation first
40
+ await this.cleanup(projectDir);
41
+
24
42
  // Create .cursor/rules directory structure
25
43
  const cursorDir = path.join(projectDir, this.configDir);
26
44
  const rulesDir = path.join(cursorDir, this.rulesDir);
@@ -28,29 +46,40 @@ class CursorSetup extends BaseIdeSetup {
28
46
 
29
47
  await this.ensureDir(bmadRulesDir);
30
48
 
31
- // Get agents and tasks
32
- const agents = await this.getAgents(bmadDir);
33
- const tasks = await this.getTasks(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)
57
+ const tasks = await this.getTasks(bmadDir, true);
58
+ const tools = await this.getTools(bmadDir, true);
59
+ const workflows = await this.getWorkflows(bmadDir, true);
34
60
 
35
61
  // Create directories for each module
36
62
  const modules = new Set();
37
- for (const item of [...agents, ...tasks]) modules.add(item.module);
63
+ for (const item of [...agents, ...tasks, ...tools, ...workflows]) modules.add(item.module);
38
64
 
39
65
  for (const module of modules) {
40
66
  await this.ensureDir(path.join(bmadRulesDir, module));
41
67
  await this.ensureDir(path.join(bmadRulesDir, module, 'agents'));
42
68
  await this.ensureDir(path.join(bmadRulesDir, module, 'tasks'));
69
+ await this.ensureDir(path.join(bmadRulesDir, module, 'tools'));
70
+ await this.ensureDir(path.join(bmadRulesDir, module, 'workflows'));
43
71
  }
44
72
 
45
- // Process and copy agents
73
+ // Process and write agent launchers with MDC format
46
74
  let agentCount = 0;
47
- for (const agent of agents) {
48
- const content = await this.readAndProcess(agent.path, {
49
- module: agent.module,
50
- 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,
51
80
  });
52
81
 
53
- const targetPath = path.join(bmadRulesDir, agent.module, 'agents', `${agent.name}.mdc`);
82
+ const targetPath = path.join(bmadRulesDir, artifact.module, 'agents', `${artifact.name}.mdc`);
54
83
 
55
84
  await this.writeFile(targetPath, content);
56
85
  agentCount++;
@@ -70,36 +99,68 @@ class CursorSetup extends BaseIdeSetup {
70
99
  taskCount++;
71
100
  }
72
101
 
102
+ // Process and copy tools
103
+ let toolCount = 0;
104
+ for (const tool of tools) {
105
+ const content = await this.readAndProcess(tool.path, {
106
+ module: tool.module,
107
+ name: tool.name,
108
+ });
109
+
110
+ const targetPath = path.join(bmadRulesDir, tool.module, 'tools', `${tool.name}.mdc`);
111
+
112
+ await this.writeFile(targetPath, content);
113
+ toolCount++;
114
+ }
115
+
116
+ // Process and copy workflows
117
+ let workflowCount = 0;
118
+ for (const workflow of workflows) {
119
+ const content = await this.readAndProcess(workflow.path, {
120
+ module: workflow.module,
121
+ name: workflow.name,
122
+ });
123
+
124
+ const targetPath = path.join(bmadRulesDir, workflow.module, 'workflows', `${workflow.name}.mdc`);
125
+
126
+ await this.writeFile(targetPath, content);
127
+ workflowCount++;
128
+ }
129
+
73
130
  // Create BMAD index file (but NOT .cursorrules - user manages that)
74
- await this.createBMADIndex(bmadRulesDir, agents, tasks, modules);
131
+ await this.createBMADIndex(bmadRulesDir, agents, tasks, tools, workflows, modules);
75
132
 
76
133
  console.log(chalk.green(`✓ ${this.name} configured:`));
77
134
  console.log(chalk.dim(` - ${agentCount} agents installed`));
78
135
  console.log(chalk.dim(` - ${taskCount} tasks installed`));
136
+ console.log(chalk.dim(` - ${toolCount} tools installed`));
137
+ console.log(chalk.dim(` - ${workflowCount} workflows installed`));
79
138
  console.log(chalk.dim(` - Rules directory: ${path.relative(projectDir, bmadRulesDir)}`));
80
139
 
81
140
  return {
82
141
  success: true,
83
142
  agents: agentCount,
84
143
  tasks: taskCount,
144
+ tools: toolCount,
145
+ workflows: workflowCount,
85
146
  };
86
147
  }
87
148
 
88
149
  /**
89
150
  * Create BMAD index file for easy navigation
90
151
  */
91
- async createBMADIndex(bmadRulesDir, agents, tasks, modules) {
152
+ async createBMADIndex(bmadRulesDir, agents, tasks, tools, workflows, modules) {
92
153
  const indexPath = path.join(bmadRulesDir, 'index.mdc');
93
154
 
94
155
  let content = `---
95
156
  description: BMAD Method - Master Index
96
- globs:
157
+ globs:
97
158
  alwaysApply: true
98
159
  ---
99
160
 
100
161
  # BMAD Method - Cursor Rules Index
101
162
 
102
- This is the master index for all BMAD agents and tasks available in your project.
163
+ This is the master index for all BMAD agents, tasks, tools, and workflows available in your project.
103
164
 
104
165
  ## Installation Complete!
105
166
 
@@ -111,6 +172,8 @@ BMAD rules have been installed to: \`.cursor/rules/bmad/\`
111
172
 
112
173
  - Reference specific agents: @bmad/{module}/agents/{agent-name}
113
174
  - Reference specific tasks: @bmad/{module}/tasks/{task-name}
175
+ - Reference specific tools: @bmad/{module}/tools/{tool-name}
176
+ - Reference specific workflows: @bmad/{module}/workflows/{workflow-name}
114
177
  - Reference entire modules: @bmad/{module}
115
178
  - Reference this index: @bmad/index
116
179
 
@@ -140,6 +203,26 @@ BMAD rules have been installed to: \`.cursor/rules/bmad/\`
140
203
  }
141
204
  content += '\n';
142
205
  }
206
+
207
+ // List tools for this module
208
+ const moduleTools = tools.filter((t) => t.module === module);
209
+ if (moduleTools.length > 0) {
210
+ content += `**Tools:**\n`;
211
+ for (const tool of moduleTools) {
212
+ content += `- @bmad/${module}/tools/${tool.name} - ${tool.name}\n`;
213
+ }
214
+ content += '\n';
215
+ }
216
+
217
+ // List workflows for this module
218
+ const moduleWorkflows = workflows.filter((w) => w.module === module);
219
+ if (moduleWorkflows.length > 0) {
220
+ content += `**Workflows:**\n`;
221
+ for (const workflow of moduleWorkflows) {
222
+ content += `- @bmad/${module}/workflows/${workflow.name} - ${workflow.name}\n`;
223
+ }
224
+ content += '\n';
225
+ }
143
226
  }
144
227
 
145
228
  content += `
@@ -148,13 +231,15 @@ BMAD rules have been installed to: \`.cursor/rules/bmad/\`
148
231
  - All BMAD rules are Manual type - reference them explicitly when needed
149
232
  - Agents provide persona-based assistance with specific expertise
150
233
  - Tasks are reusable workflows for common operations
234
+ - Tools provide specialized functionality
235
+ - Workflows orchestrate multi-step processes
151
236
  - Each agent includes an activation block for proper initialization
152
237
 
153
238
  ## Configuration
154
239
 
155
240
  BMAD rules are configured as Manual rules (alwaysApply: false) to give you control
156
241
  over when they're included in your context. Reference them explicitly when you need
157
- specific agent expertise or task workflows.
242
+ specific agent expertise, task workflows, tools, or guided workflows.
158
243
  `;
159
244
 
160
245
  await this.writeFile(indexPath, content);
@@ -179,9 +264,18 @@ specific agent expertise or task workflows.
179
264
  // First apply base processing (includes activation injection for agents)
180
265
  let processed = super.processContent(content, metadata);
181
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
+
182
274
  // Determine the type and description based on content
183
275
  const isAgent = content.includes('<agent');
184
276
  const isTask = content.includes('<task');
277
+ const isTool = content.includes('<tool');
278
+ const isWorkflow = content.includes('workflow:') || content.includes('name:');
185
279
 
186
280
  let description = '';
187
281
  let globs = '';
@@ -191,16 +285,22 @@ specific agent expertise or task workflows.
191
285
  const titleMatch = content.match(/title="([^"]+)"/);
192
286
  const title = titleMatch ? titleMatch[1] : metadata.name;
193
287
  description = `BMAD ${metadata.module.toUpperCase()} Agent: ${title}`;
194
-
195
- // Manual rules for agents don't need globs
196
288
  globs = '';
197
289
  } else if (isTask) {
198
290
  // Extract task name if available
199
- const nameMatch = content.match(/<name>([^<]+)<\/name>/);
291
+ const nameMatch = content.match(/name="([^"]+)"/);
200
292
  const taskName = nameMatch ? nameMatch[1] : metadata.name;
201
293
  description = `BMAD ${metadata.module.toUpperCase()} Task: ${taskName}`;
202
-
203
- // Tasks might be auto-attached to certain file types
294
+ globs = '';
295
+ } else if (isTool) {
296
+ // Extract tool name if available
297
+ const nameMatch = content.match(/name="([^"]+)"/);
298
+ const toolName = nameMatch ? nameMatch[1] : metadata.name;
299
+ description = `BMAD ${metadata.module.toUpperCase()} Tool: ${toolName}`;
300
+ globs = '';
301
+ } else if (isWorkflow) {
302
+ // Workflow
303
+ description = `BMAD ${metadata.module.toUpperCase()} Workflow: ${metadata.name}`;
204
304
  globs = '';
205
305
  } else {
206
306
  description = `BMAD ${metadata.module.toUpperCase()}: ${metadata.name}`;
@@ -219,6 +319,34 @@ alwaysApply: false
219
319
  // Add the MDC header to the processed content
220
320
  return mdcHeader + processed;
221
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
+ }
222
350
  }
223
351
 
224
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
  /**
@@ -22,43 +55,47 @@ class GeminiSetup extends BaseIdeSetup {
22
55
  async setup(projectDir, bmadDir, options = {}) {
23
56
  console.log(chalk.cyan(`Setting up ${this.name}...`));
24
57
 
25
- // Create .gemini/commands/agents and .gemini/commands/tasks directories
58
+ // Create .gemini/commands directory (flat structure with bmad- prefix)
26
59
  const geminiDir = path.join(projectDir, this.configDir);
27
60
  const commandsDir = path.join(geminiDir, this.commandsDir);
28
- const agentsDir = path.join(commandsDir, 'agents');
29
- const tasksDir = path.join(commandsDir, 'tasks');
30
61
 
31
- await this.ensureDir(agentsDir);
32
- await this.ensureDir(tasksDir);
62
+ await this.ensureDir(commandsDir);
63
+
64
+ // Clean up any existing BMAD files before reinstalling
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
- // Install agents as TOML files
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
- const tomlPath = path.join(agentsDir, `${agent.name}.toml`);
79
+ // Flat structure: bmad-agent-{module}-{name}.toml
80
+ const tomlPath = path.join(commandsDir, `bmad-agent-${artifact.module}-${artifact.name}.toml`);
45
81
  await this.writeFile(tomlPath, tomlContent);
46
82
  agentCount++;
47
83
 
48
- console.log(chalk.green(` ✓ Added agent: /bmad:agents:${agent.name}`));
84
+ console.log(chalk.green(` ✓ Added agent: /bmad:agents:${artifact.module}:${artifact.name}`));
49
85
  }
50
86
 
51
- // Install tasks as TOML files
87
+ // Install tasks as TOML files with bmad- prefix (flat structure)
52
88
  let taskCount = 0;
53
89
  for (const task of tasks) {
54
90
  const content = await this.readFile(task.path);
55
- const tomlContent = this.createTaskToml(task, content, bmadDir);
91
+ const tomlContent = await this.createTaskToml(task, content);
56
92
 
57
- const tomlPath = path.join(tasksDir, `${task.name}.toml`);
93
+ // Flat structure: bmad-task-{module}-{name}.toml
94
+ const tomlPath = path.join(commandsDir, `bmad-task-${task.module}-${task.name}.toml`);
58
95
  await this.writeFile(tomlPath, tomlContent);
59
96
  taskCount++;
60
97
 
61
- console.log(chalk.green(` ✓ Added task: /bmad:tasks:${task.name}`));
98
+ console.log(chalk.green(` ✓ Added task: /bmad:tasks:${task.module}:${task.name}`));
62
99
  }
63
100
 
64
101
  console.log(chalk.green(`✓ ${this.name} configured:`));
@@ -76,84 +113,93 @@ class GeminiSetup extends BaseIdeSetup {
76
113
  }
77
114
 
78
115
  /**
79
- * Create agent TOML content
116
+ * Create agent launcher TOML content from artifact
80
117
  */
81
- createAgentToml(agent, content, bmadDir) {
82
- // Extract metadata
83
- const titleMatch = content.match(/title="([^"]+)"/);
84
- 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();
85
122
 
86
- // Get relative path from project root to agent file
87
- 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);
88
126
 
89
- // Create TOML content
90
- const tomlContent = `description = "Activates the ${title} agent from the BMad Method."
91
- prompt = """
92
- 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}`;
93
129
 
94
- Read and internalize the full agent definition, following all instructions and maintaining this persona until explicitly told to switch or exit.
95
-
96
- @${relativePath}
130
+ return `description = "${description}"
131
+ prompt = """
132
+ ${contentWithoutFrontmatter}
97
133
  """
98
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);
99
155
 
100
156
  return tomlContent;
101
157
  }
102
158
 
103
159
  /**
104
- * Create task TOML content
160
+ * Create task TOML content using template
105
161
  */
106
- createTaskToml(task, content, bmadDir) {
162
+ async createTaskToml(task, content) {
107
163
  // Extract task name from XML if available
108
164
  const nameMatch = content.match(/<name>([^<]+)<\/name>/);
109
165
  const taskName = nameMatch ? nameMatch[1] : this.formatTitle(task.name);
110
166
 
111
- // Get relative path from project root to task file
112
- const relativePath = path.relative(process.cwd(), task.path).replaceAll('\\', '/');
167
+ // Load template
168
+ const template = await fs.readFile(this.taskTemplatePath, 'utf8');
113
169
 
114
- // Create TOML content
115
- const tomlContent = `description = "Executes the ${taskName} task from the BMad Method."
116
- prompt = """
117
- Execute the following BMad Method task workflow:
118
-
119
- @${relativePath}
120
-
121
- Follow all instructions and complete the task as defined.
122
- """
123
- `;
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);
124
176
 
125
177
  return tomlContent;
126
178
  }
127
179
 
128
180
  /**
129
- * Cleanup Gemini configuration
181
+ * Cleanup Gemini configuration - surgically remove only BMAD files
130
182
  */
131
183
  async cleanup(projectDir) {
132
184
  const fs = require('fs-extra');
133
185
  const commandsDir = path.join(projectDir, this.configDir, this.commandsDir);
134
- const agentsDir = path.join(commandsDir, 'agents');
135
- const tasksDir = path.join(commandsDir, 'tasks');
136
186
 
137
- // Remove BMAD TOML files
138
- if (await fs.pathExists(agentsDir)) {
139
- const files = await fs.readdir(agentsDir);
187
+ if (await fs.pathExists(commandsDir)) {
188
+ // Only remove files that start with bmad- prefix
189
+ const files = await fs.readdir(commandsDir);
190
+ let removed = 0;
191
+
140
192
  for (const file of files) {
141
- if (file.endsWith('.toml')) {
142
- await fs.remove(path.join(agentsDir, file));
193
+ if (file.startsWith('bmad-') && file.endsWith('.toml')) {
194
+ await fs.remove(path.join(commandsDir, file));
195
+ removed++;
143
196
  }
144
197
  }
145
- }
146
198
 
147
- if (await fs.pathExists(tasksDir)) {
148
- const files = await fs.readdir(tasksDir);
149
- for (const file of files) {
150
- if (file.endsWith('.toml')) {
151
- await fs.remove(path.join(tasksDir, file));
152
- }
199
+ if (removed > 0) {
200
+ console.log(chalk.dim(` Cleaned up ${removed} existing BMAD files`));
153
201
  }
154
202
  }
155
-
156
- console.log(chalk.dim(`Removed BMAD configuration from Gemini CLI`));
157
203
  }
158
204
  }
159
205