bmad-method 6.0.0-alpha.12 → 6.0.0-alpha.14

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 (608) hide show
  1. package/.github/ISSUE_TEMPLATE/idea_submission.md +1 -1
  2. package/.github/scripts/discord-helpers.sh +15 -0
  3. package/.github/workflows/bundle-latest.yaml +79 -27
  4. package/.github/workflows/discord.yaml +278 -8
  5. package/.github/workflows/quality.yaml +19 -0
  6. package/.markdownlint-cli2.yaml +42 -0
  7. package/.prettierignore +3 -0
  8. package/CHANGELOG.md +254 -1
  9. package/CODE_OF_CONDUCT.md +128 -0
  10. package/README.md +3 -1
  11. package/bmad-method-6.0.0-alpha.14.tgz +0 -0
  12. package/docs/agent-customization-guide.md +2 -2
  13. package/docs/custom-agent-installation.md +58 -90
  14. package/docs/document-sharding-guide.md +1 -1
  15. package/docs/ide-info/rovo-dev.md +388 -0
  16. package/docs/index.md +6 -81
  17. package/docs/installers-bundlers/installers-modules-platforms-reference.md +1 -1
  18. package/eslint.config.mjs +14 -0
  19. package/example-custom-content/README.md +4 -0
  20. package/example-custom-content/agents/commit-poet/commit-poet.agent.yaml +129 -0
  21. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/instructions.md +70 -0
  22. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/bundlers.md +111 -0
  23. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/deploy.md +70 -0
  24. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/docs.md +114 -0
  25. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +134 -0
  26. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +161 -0
  27. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/knowledge/tests.md +103 -0
  28. package/example-custom-content/agents/toolsmith/toolsmith-sidecar/memories.md +17 -0
  29. package/example-custom-content/agents/toolsmith/toolsmith.agent.yaml +109 -0
  30. package/example-custom-content/custom.yaml +3 -0
  31. package/example-custom-content/workflows/quiz-master/steps/step-01-init.md +168 -0
  32. package/example-custom-content/workflows/quiz-master/steps/step-02-q1.md +155 -0
  33. package/example-custom-content/workflows/quiz-master/steps/step-03-q2.md +89 -0
  34. package/example-custom-content/workflows/quiz-master/steps/step-04-q3.md +36 -0
  35. package/example-custom-content/workflows/quiz-master/steps/step-05-q4.md +36 -0
  36. package/example-custom-content/workflows/quiz-master/steps/step-06-q5.md +36 -0
  37. package/example-custom-content/workflows/quiz-master/steps/step-07-q6.md +36 -0
  38. package/example-custom-content/workflows/quiz-master/steps/step-08-q7.md +36 -0
  39. package/example-custom-content/workflows/quiz-master/steps/step-09-q8.md +36 -0
  40. package/example-custom-content/workflows/quiz-master/steps/step-10-q9.md +36 -0
  41. package/example-custom-content/workflows/quiz-master/steps/step-11-q10.md +36 -0
  42. package/example-custom-content/workflows/quiz-master/steps/step-12-results.md +150 -0
  43. package/example-custom-content/workflows/quiz-master/templates/csv-headers.template +1 -0
  44. package/example-custom-content/workflows/quiz-master/workflow-plan-quiz-master.md +269 -0
  45. package/example-custom-content/workflows/quiz-master/workflow.md +54 -0
  46. package/example-custom-content/workflows/wassup/workflow.md +26 -0
  47. package/example-custom-module/mwm/README.md +4 -0
  48. package/example-custom-module/mwm/_module-installer/install-config.yaml +27 -0
  49. package/example-custom-module/mwm/agents/cbt-coach/cbt-coach-sidecar/cognitive-distortions.md +47 -0
  50. package/example-custom-module/mwm/agents/cbt-coach/cbt-coach-sidecar/thought-records.md +17 -0
  51. package/example-custom-module/mwm/agents/cbt-coach/cbt-coach.agent.yaml +150 -0
  52. package/example-custom-module/mwm/agents/crisis-navigator.agent.yaml +137 -0
  53. package/example-custom-module/mwm/agents/meditation-guide.agent.yaml +137 -0
  54. package/example-custom-module/mwm/agents/wellness-companion/wellness-companion-sidecar/insights.md +13 -0
  55. package/example-custom-module/mwm/agents/wellness-companion/wellness-companion-sidecar/instructions.md +30 -0
  56. package/example-custom-module/mwm/agents/wellness-companion/wellness-companion-sidecar/memories.md +13 -0
  57. package/example-custom-module/mwm/agents/wellness-companion/wellness-companion-sidecar/patterns.md +17 -0
  58. package/example-custom-module/mwm/agents/wellness-companion/wellness-companion.agent.yaml +124 -0
  59. package/example-custom-module/mwm/workflows/cbt-thought-record/README.md +31 -0
  60. package/example-custom-module/mwm/workflows/cbt-thought-record/workflow.md +45 -0
  61. package/example-custom-module/mwm/workflows/crisis-support/README.md +31 -0
  62. package/example-custom-module/mwm/workflows/crisis-support/workflow.md +45 -0
  63. package/example-custom-module/mwm/workflows/daily-checkin/README.md +32 -0
  64. package/example-custom-module/mwm/workflows/daily-checkin/workflow.md +45 -0
  65. package/example-custom-module/mwm/workflows/guided-meditation/README.md +31 -0
  66. package/example-custom-module/mwm/workflows/guided-meditation/workflow.md +45 -0
  67. package/example-custom-module/mwm/workflows/wellness-journal/README.md +31 -0
  68. package/example-custom-module/mwm/workflows/wellness-journal/workflow.md +45 -0
  69. package/package.json +9 -4
  70. package/src/core/_module-installer/install-config.yaml +5 -1
  71. package/src/core/agents/bmad-master.agent.yaml +1 -1
  72. package/src/core/agents/bmad-web-orchestrator.agent.xml +1 -1
  73. package/src/core/resources/excalidraw/library-loader.md +2 -2
  74. package/src/core/tasks/advanced-elicitation-methods.csv +51 -21
  75. package/src/core/tasks/advanced-elicitation.xml +18 -8
  76. package/src/core/tasks/workflow.xml +36 -71
  77. package/src/core/workflows/brainstorming/brain-methods.csv +62 -36
  78. package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +196 -0
  79. package/src/core/workflows/brainstorming/steps/step-01b-continue.md +121 -0
  80. package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +224 -0
  81. package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +236 -0
  82. package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +208 -0
  83. package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +263 -0
  84. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +339 -0
  85. package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +302 -0
  86. package/src/core/workflows/brainstorming/template.md +13 -104
  87. package/src/core/workflows/brainstorming/workflow.md +51 -0
  88. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
  89. package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +203 -0
  90. package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +158 -0
  91. package/src/core/workflows/party-mode/workflow.md +206 -0
  92. package/src/modules/bmb/README.md +153 -86
  93. package/src/modules/bmb/_module-installer/install-config.yaml +4 -9
  94. package/src/modules/bmb/_module-installer/installer.js +76 -0
  95. package/src/modules/bmb/agents/bmad-builder.agent.yaml +75 -38
  96. package/src/modules/bmb/docs/{agent-menu-patterns.md → agents/agent-menu-patterns.md} +6 -6
  97. package/src/modules/bmb/docs/{expert-agent-architecture.md → agents/expert-agent-architecture.md} +20 -20
  98. package/src/modules/bmb/docs/agents/kb.csv +0 -0
  99. package/src/modules/bmb/docs/{module-agent-architecture.md → agents/module-agent-architecture.md} +46 -46
  100. package/src/modules/bmb/docs/{simple-agent-architecture.md → agents/simple-agent-architecture.md} +7 -3
  101. package/src/modules/bmb/docs/workflows/architecture.md +220 -0
  102. package/src/modules/bmb/docs/workflows/common-workflow-tools.csv +19 -0
  103. package/src/modules/bmb/docs/workflows/csv-data-file-standards.md +206 -0
  104. package/src/modules/bmb/docs/workflows/index.md +45 -0
  105. package/src/modules/bmb/docs/workflows/intent-vs-prescriptive-spectrum.md +220 -0
  106. package/src/modules/bmb/docs/workflows/kb.csv +0 -0
  107. package/src/modules/bmb/docs/workflows/templates/step-01-init-continuable-template.md +241 -0
  108. package/src/modules/bmb/docs/workflows/templates/step-1b-template.md +223 -0
  109. package/src/modules/bmb/docs/workflows/templates/step-file.md +139 -0
  110. package/src/modules/bmb/docs/workflows/templates/step-template.md +290 -0
  111. package/src/modules/bmb/docs/workflows/templates/workflow-template.md +104 -0
  112. package/src/modules/bmb/docs/workflows/templates/workflow.md +58 -0
  113. package/src/modules/bmb/docs/workflows/terms.md +97 -0
  114. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/README.md +4 -4
  115. package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +8 -8
  116. package/src/modules/bmb/reference/agents/module-examples/README.md +1 -1
  117. package/src/modules/bmb/reference/agents/module-examples/security-engineer.agent.yaml +7 -7
  118. package/src/modules/bmb/reference/agents/module-examples/trend-analyst.agent.yaml +7 -7
  119. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +18 -0
  120. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +16 -0
  121. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +28 -0
  122. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +176 -0
  123. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +120 -0
  124. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +164 -0
  125. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +153 -0
  126. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +182 -0
  127. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +167 -0
  128. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -0
  129. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -0
  130. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -0
  131. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -0
  132. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -0
  133. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -0
  134. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -0
  135. package/src/modules/bmb/reference/workflows/meal-prep-nutrition/workflow.md +58 -0
  136. package/src/modules/bmb/workflows/create-agent/data/info-and-installation-guide.md +29 -0
  137. package/src/modules/bmb/workflows/create-agent/data/reference/README.md +3 -0
  138. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/README.md +242 -0
  139. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/breakthroughs.md +24 -0
  140. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/instructions.md +108 -0
  141. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/memories.md +46 -0
  142. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/mood-patterns.md +39 -0
  143. package/src/modules/bmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +152 -0
  144. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/README.md +50 -0
  145. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/security-engineer.agent.yaml +53 -0
  146. package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/trend-analyst.agent.yaml +57 -0
  147. package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/README.md +223 -0
  148. package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/commit-poet.agent.yaml +126 -0
  149. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +18 -0
  150. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +16 -0
  151. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +28 -0
  152. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +177 -0
  153. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +150 -0
  154. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +164 -0
  155. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +152 -0
  156. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +182 -0
  157. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +167 -0
  158. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -0
  159. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -0
  160. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -0
  161. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -0
  162. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -0
  163. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -0
  164. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -0
  165. package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/workflow.md +58 -0
  166. package/src/modules/bmb/workflows/create-agent/data/validation-complete.md +305 -0
  167. package/src/modules/bmb/workflows/create-agent/steps/step-01-brainstorm.md +145 -0
  168. package/src/modules/bmb/workflows/create-agent/steps/step-02-discover.md +210 -0
  169. package/src/modules/bmb/workflows/create-agent/steps/step-03-persona.md +260 -0
  170. package/src/modules/bmb/workflows/create-agent/steps/step-04-commands.md +237 -0
  171. package/src/modules/bmb/workflows/create-agent/steps/step-05-name.md +231 -0
  172. package/src/modules/bmb/workflows/create-agent/steps/step-06-build.md +224 -0
  173. package/src/modules/bmb/workflows/create-agent/steps/step-07-validate.md +234 -0
  174. package/src/modules/bmb/workflows/create-agent/steps/step-08-setup.md +179 -0
  175. package/src/modules/bmb/workflows/create-agent/steps/step-09-customize.md +197 -0
  176. package/src/modules/bmb/workflows/create-agent/steps/step-10-build-tools.md +180 -0
  177. package/src/modules/bmb/workflows/create-agent/steps/step-11-celebrate.md +222 -0
  178. package/src/modules/bmb/workflows/create-agent/templates/agent_commands.md +21 -0
  179. package/src/modules/bmb/workflows/create-agent/templates/agent_persona.md +25 -0
  180. package/src/modules/bmb/workflows/create-agent/templates/agent_purpose_and_type.md +23 -0
  181. package/src/modules/bmb/workflows/create-agent/workflow.md +91 -0
  182. package/src/modules/bmb/workflows/create-module/steps/step-01-init.md +155 -0
  183. package/src/modules/bmb/workflows/create-module/steps/step-01b-continue.md +169 -0
  184. package/src/modules/bmb/workflows/create-module/steps/step-02-concept.md +217 -0
  185. package/src/modules/bmb/workflows/create-module/steps/step-03-components.md +267 -0
  186. package/src/modules/bmb/workflows/create-module/steps/step-04-structure.md +228 -0
  187. package/src/modules/bmb/workflows/create-module/steps/step-05-config.md +233 -0
  188. package/src/modules/bmb/workflows/create-module/steps/step-06-agents.md +296 -0
  189. package/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md +228 -0
  190. package/src/modules/bmb/workflows/create-module/steps/step-08-installer.md +186 -0
  191. package/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md +308 -0
  192. package/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md +336 -0
  193. package/src/modules/bmb/workflows/create-module/steps/step-11-validate.md +335 -0
  194. package/src/modules/bmb/workflows/create-module/templates/agent.template.md +317 -0
  195. package/src/modules/bmb/workflows/create-module/templates/install-config.template.yaml +53 -0
  196. package/src/modules/bmb/workflows/create-module/templates/installer.template.js +47 -0
  197. package/src/modules/bmb/workflows/create-module/templates/module-plan.template.md +5 -0
  198. package/src/modules/bmb/workflows/create-module/templates/workflow-plan-template.md +23 -0
  199. package/src/modules/bmb/workflows/create-module/validation.md +126 -0
  200. package/src/modules/bmb/workflows/create-module/workflow.md +55 -0
  201. package/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md +157 -0
  202. package/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md +211 -0
  203. package/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md +250 -0
  204. package/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md +216 -0
  205. package/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md +289 -0
  206. package/src/modules/bmb/workflows/create-workflow/steps/step-06-design.md +271 -0
  207. package/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md +308 -0
  208. package/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md +284 -0
  209. package/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md +187 -0
  210. package/src/modules/bmb/workflows/create-workflow/workflow.md +58 -0
  211. package/src/modules/bmb/workflows/edit-agent/steps/step-01-discover-intent.md +134 -0
  212. package/src/modules/bmb/workflows/edit-agent/steps/step-02-analyze-agent.md +202 -0
  213. package/src/modules/bmb/workflows/edit-agent/steps/step-03-propose-changes.md +157 -0
  214. package/src/modules/bmb/workflows/edit-agent/steps/step-04-apply-changes.md +150 -0
  215. package/src/modules/bmb/workflows/edit-agent/steps/step-05-validate.md +150 -0
  216. package/src/modules/bmb/workflows/edit-agent/workflow.md +58 -0
  217. package/src/modules/bmb/workflows/edit-workflow/steps/step-01-analyze.md +217 -0
  218. package/src/modules/bmb/workflows/edit-workflow/steps/step-02-discover.md +253 -0
  219. package/src/modules/bmb/workflows/edit-workflow/steps/step-03-improve.md +217 -0
  220. package/src/modules/bmb/workflows/edit-workflow/steps/step-04-validate.md +193 -0
  221. package/src/modules/bmb/workflows/edit-workflow/steps/step-05-compliance-check.md +245 -0
  222. package/src/modules/bmb/workflows/edit-workflow/templates/completion-summary.md +75 -0
  223. package/src/modules/bmb/workflows/edit-workflow/templates/improvement-goals.md +68 -0
  224. package/src/modules/bmb/workflows/edit-workflow/templates/improvement-log.md +40 -0
  225. package/src/modules/bmb/workflows/edit-workflow/templates/validation-results.md +51 -0
  226. package/src/modules/bmb/workflows/edit-workflow/templates/workflow-analysis.md +56 -0
  227. package/src/modules/bmb/workflows/edit-workflow/workflow.md +58 -0
  228. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +152 -0
  229. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +243 -0
  230. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +274 -0
  231. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +295 -0
  232. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +264 -0
  233. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +360 -0
  234. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +258 -0
  235. package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +301 -0
  236. package/src/modules/bmb/workflows/workflow-compliance-check/templates/compliance-report.md +140 -0
  237. package/src/modules/bmb/workflows/workflow-compliance-check/workflow.md +58 -0
  238. package/src/modules/bmb/{workflows → workflows-legacy}/edit-module/checklist.md +0 -1
  239. package/src/modules/bmgd/agents/game-architect.agent.yaml +1 -1
  240. package/src/modules/bmgd/agents/game-designer.agent.yaml +1 -1
  241. package/src/modules/bmgd/agents/game-dev.agent.yaml +1 -1
  242. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +1 -1
  243. package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +8 -8
  244. package/src/modules/bmm/_module-installer/install-config.yaml +10 -16
  245. package/src/modules/bmm/agents/analyst.agent.yaml +25 -22
  246. package/src/modules/bmm/agents/architect.agent.yaml +12 -14
  247. package/src/modules/bmm/agents/dev.agent.yaml +20 -16
  248. package/src/modules/bmm/agents/pm.agent.yaml +14 -32
  249. package/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml +36 -0
  250. package/src/modules/bmm/agents/sm.agent.yaml +13 -31
  251. package/src/modules/bmm/agents/tea.agent.yaml +10 -7
  252. package/src/modules/bmm/agents/tech-writer.agent.yaml +7 -20
  253. package/src/modules/bmm/agents/ux-designer.agent.yaml +12 -10
  254. package/src/modules/bmm/data/README.md +29 -0
  255. package/src/modules/bmm/data/project-context-template.md +40 -0
  256. package/src/modules/bmm/docs/README.md +44 -10
  257. package/src/modules/bmm/docs/agents-guide.md +80 -53
  258. package/src/modules/bmm/docs/bmad-quick-flow.md +528 -0
  259. package/src/modules/bmm/docs/brownfield-guide.md +25 -39
  260. package/src/modules/bmm/docs/enterprise-agentic-development.md +3 -3
  261. package/src/modules/bmm/docs/faq.md +6 -39
  262. package/src/modules/bmm/docs/glossary.md +12 -25
  263. package/src/modules/bmm/docs/images/README.md +37 -0
  264. package/src/modules/bmm/docs/images/workflow-method-greenfield.excalidraw +960 -1845
  265. package/src/modules/bmm/docs/images/workflow-method-greenfield.svg +4 -2
  266. package/src/modules/bmm/docs/quick-flow-solo-dev.md +337 -0
  267. package/src/modules/bmm/docs/quick-spec-flow.md +5 -5
  268. package/src/modules/bmm/docs/quick-start.md +9 -25
  269. package/src/modules/bmm/docs/scale-adaptive-system.md +5 -5
  270. package/src/modules/bmm/docs/test-architecture.md +90 -24
  271. package/src/modules/bmm/docs/troubleshooting.md +680 -0
  272. package/src/modules/bmm/docs/workflow-document-project-reference.md +1 -1
  273. package/src/modules/bmm/docs/workflows-analysis.md +36 -140
  274. package/src/modules/bmm/docs/workflows-implementation.md +175 -160
  275. package/src/modules/bmm/docs/workflows-planning.md +51 -212
  276. package/src/modules/bmm/docs/workflows-solutioning.md +26 -71
  277. package/src/modules/bmm/tasks/daily-standup.xml +85 -0
  278. package/src/modules/bmm/teams/default-party.csv +15 -14
  279. package/src/modules/bmm/teams/team-fullstack.yaml +0 -1
  280. package/src/modules/bmm/testarch/knowledge/api-request.md +303 -0
  281. package/src/modules/bmm/testarch/knowledge/auth-session.md +356 -0
  282. package/src/modules/bmm/testarch/knowledge/burn-in.md +273 -0
  283. package/src/modules/bmm/testarch/knowledge/ci-burn-in.md +1 -1
  284. package/src/modules/bmm/testarch/knowledge/file-utils.md +260 -0
  285. package/src/modules/bmm/testarch/knowledge/fixtures-composition.md +382 -0
  286. package/src/modules/bmm/testarch/knowledge/intercept-network-call.md +280 -0
  287. package/src/modules/bmm/testarch/knowledge/log.md +294 -0
  288. package/src/modules/bmm/testarch/knowledge/network-error-monitor.md +272 -0
  289. package/src/modules/bmm/testarch/knowledge/network-recorder.md +265 -0
  290. package/src/modules/bmm/testarch/knowledge/overview.md +284 -0
  291. package/src/modules/bmm/testarch/knowledge/recurse.md +296 -0
  292. package/src/modules/bmm/testarch/tea-index.csv +11 -0
  293. package/src/modules/bmm/workflows/1-analysis/product-brief/product-brief.template.md +8 -0
  294. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-01-init.md +192 -0
  295. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-01b-continue.md +167 -0
  296. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-02-vision.md +203 -0
  297. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-03-users.md +206 -0
  298. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-04-metrics.md +209 -0
  299. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-05-scope.md +223 -0
  300. package/src/modules/bmm/workflows/1-analysis/product-brief/steps/step-06-complete.md +199 -0
  301. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.md +58 -0
  302. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +136 -0
  303. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +228 -0
  304. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +237 -0
  305. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +205 -0
  306. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +233 -0
  307. package/src/modules/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +442 -0
  308. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +181 -0
  309. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +236 -0
  310. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +199 -0
  311. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +248 -0
  312. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +258 -0
  313. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +176 -0
  314. package/src/modules/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +474 -0
  315. package/src/modules/bmm/workflows/1-analysis/research/research.template.md +15 -0
  316. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +136 -0
  317. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +238 -0
  318. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +247 -0
  319. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +201 -0
  320. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +238 -0
  321. package/src/modules/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +485 -0
  322. package/src/modules/bmm/workflows/1-analysis/research/workflow.md +204 -0
  323. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +159 -0
  324. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +126 -0
  325. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +209 -0
  326. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +215 -0
  327. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +218 -0
  328. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +233 -0
  329. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +251 -0
  330. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +253 -0
  331. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +223 -0
  332. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +223 -0
  333. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +240 -0
  334. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +247 -0
  335. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +236 -0
  336. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +263 -0
  337. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +226 -0
  338. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +6 -138
  339. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +59 -0
  340. package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +12 -200
  341. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01-init.md +243 -0
  342. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01b-continue.md +165 -0
  343. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +420 -0
  344. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md +289 -0
  345. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +290 -0
  346. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +270 -0
  347. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +261 -0
  348. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +257 -0
  349. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +298 -0
  350. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md +269 -0
  351. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +293 -0
  352. package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +223 -0
  353. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md +61 -0
  354. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-decision-template.md +13 -0
  355. package/src/modules/bmm/workflows/3-solutioning/architecture/data/domain-complexity.csv +11 -0
  356. package/src/modules/bmm/workflows/3-solutioning/architecture/data/project-types.csv +7 -0
  357. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-01-init.md +194 -0
  358. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-01b-continue.md +163 -0
  359. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-02-context.md +223 -0
  360. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-03-starter.md +330 -0
  361. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-04-decisions.md +317 -0
  362. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-05-patterns.md +358 -0
  363. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-06-structure.md +378 -0
  364. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-07-validation.md +358 -0
  365. package/src/modules/bmm/workflows/3-solutioning/architecture/steps/step-08-complete.md +351 -0
  366. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.md +49 -0
  367. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +258 -0
  368. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +232 -0
  369. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +271 -0
  370. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +144 -0
  371. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  372. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +58 -0
  373. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-01-document-discovery.md +189 -0
  374. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-02-prd-analysis.md +177 -0
  375. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-03-epic-coverage-validation.md +178 -0
  376. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-04-ux-alignment.md +138 -0
  377. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-05-epic-quality-review.md +251 -0
  378. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/steps/step-06-final-assessment.md +132 -0
  379. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/templates/readiness-report-template.md +4 -0
  380. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/workflow.md +54 -0
  381. package/src/modules/bmm/workflows/4-implementation/code-review/checklist.md +2 -1
  382. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml +224 -0
  383. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +4 -11
  384. package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +332 -214
  385. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml +354 -0
  386. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +21 -34
  387. package/src/modules/bmm/workflows/4-implementation/dev-story/checklist.md +65 -23
  388. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml +406 -0
  389. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +6 -37
  390. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +3 -3
  391. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +19 -21
  392. package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +11 -10
  393. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +2 -0
  394. package/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md +174 -0
  395. package/src/modules/bmm/workflows/4-implementation/sprint-status/workflow.yaml +35 -0
  396. package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/instructions.md +115 -0
  397. package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml +26 -0
  398. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/checklist.md +25 -0
  399. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/instructions.md +202 -0
  400. package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.yaml +33 -0
  401. package/src/modules/bmm/workflows/document-project/instructions.md +1 -1
  402. package/src/modules/bmm/workflows/document-project/workflows/deep-dive-instructions.md +2 -2
  403. package/src/modules/bmm/workflows/generate-project-context/project-context-template.md +20 -0
  404. package/src/modules/bmm/workflows/generate-project-context/steps/step-01-discover.md +193 -0
  405. package/src/modules/bmm/workflows/generate-project-context/steps/step-02-generate.md +317 -0
  406. package/src/modules/bmm/workflows/generate-project-context/steps/step-03-complete.md +277 -0
  407. package/src/modules/bmm/workflows/generate-project-context/workflow.md +48 -0
  408. package/src/modules/bmm/workflows/testarch/atdd/atdd-checklist-template.md +1 -1
  409. package/src/modules/bmm/workflows/testarch/atdd/instructions.md +23 -3
  410. package/src/modules/bmm/workflows/testarch/automate/instructions.md +23 -2
  411. package/src/modules/bmm/workflows/testarch/ci/checklist.md +1 -1
  412. package/src/modules/bmm/workflows/testarch/ci/github-actions-template.yaml +36 -3
  413. package/src/modules/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +25 -4
  414. package/src/modules/bmm/workflows/testarch/ci/instructions.md +20 -3
  415. package/src/modules/bmm/workflows/testarch/framework/instructions.md +27 -1
  416. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +8 -2
  417. package/src/modules/bmm/workflows/testarch/test-review/instructions.md +29 -9
  418. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +66 -54
  419. package/src/modules/bmm/workflows/workflow-status/instructions.md +11 -4
  420. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +4 -8
  421. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +4 -8
  422. package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +4 -8
  423. package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +4 -9
  424. package/src/modules/cis/agents/README.md +1 -1
  425. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +3 -2
  426. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +2 -1
  427. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +2 -1
  428. package/src/modules/cis/agents/innovation-strategist.agent.yaml +2 -1
  429. package/src/modules/cis/agents/presentation-master.agent.yaml +3 -2
  430. package/src/modules/cis/agents/storyteller.agent.yaml +2 -1
  431. package/src/modules/cis/teams/default-party.csv +6 -5
  432. package/src/utility/models/agent-activation-ide.xml +4 -4
  433. package/src/utility/models/agent-activation-web.xml +1 -11
  434. package/src/utility/models/fragments/activation-rules.xml +5 -6
  435. package/src/utility/models/fragments/handler-exec.xml +6 -5
  436. package/src/utility/models/fragments/handler-multi.xml +14 -0
  437. package/test/README.md +1 -1
  438. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +1 -3
  439. package/tools/cli/README.md +4 -3
  440. package/tools/cli/bundlers/web-bundler.js +3 -14
  441. package/tools/cli/commands/build.js +9 -184
  442. package/tools/cli/commands/install.js +42 -2
  443. package/tools/cli/installers/lib/core/config-collector.js +94 -10
  444. package/tools/cli/installers/lib/core/installer.js +389 -55
  445. package/tools/cli/installers/lib/core/manifest-generator.js +91 -30
  446. package/tools/cli/installers/lib/core/post-install-sidecar-replacement.js +79 -0
  447. package/tools/cli/installers/lib/custom/handler.js +266 -0
  448. package/tools/cli/installers/lib/ide/_base-ide.js +10 -0
  449. package/tools/cli/installers/lib/ide/antigravity.js +51 -7
  450. package/tools/cli/installers/lib/ide/auggie.js +72 -7
  451. package/tools/cli/installers/lib/ide/claude-code.js +1 -6
  452. package/tools/cli/installers/lib/ide/cline.js +49 -0
  453. package/tools/cli/installers/lib/ide/codex.js +2 -2
  454. package/tools/cli/installers/lib/ide/crush.js +66 -6
  455. package/tools/cli/installers/lib/ide/cursor.js +29 -13
  456. package/tools/cli/installers/lib/ide/gemini.js +96 -1
  457. package/tools/cli/installers/lib/ide/github-copilot.js +59 -48
  458. package/tools/cli/installers/lib/ide/iflow.js +67 -1
  459. package/tools/cli/installers/lib/ide/kilo.js +74 -0
  460. package/tools/cli/installers/lib/ide/kiro-cli.js +327 -0
  461. package/tools/cli/installers/lib/ide/opencode.js +3 -3
  462. package/tools/cli/installers/lib/ide/qwen.js +54 -0
  463. package/tools/cli/installers/lib/ide/roo.js +145 -138
  464. package/tools/cli/installers/lib/ide/rovo-dev.js +290 -0
  465. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +8 -2
  466. package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +34 -19
  467. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +18 -14
  468. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +1 -1
  469. package/tools/cli/installers/lib/ide/templates/workflow-commander.md +5 -0
  470. package/tools/cli/installers/lib/ide/trae.js +47 -0
  471. package/tools/cli/installers/lib/modules/manager.js +486 -53
  472. package/tools/cli/lib/agent/compiler.js +210 -27
  473. package/tools/cli/lib/agent/installer.js +140 -30
  474. package/tools/cli/lib/agent-analyzer.js +46 -18
  475. package/tools/cli/lib/config.js +2 -1
  476. package/tools/cli/lib/ui.js +269 -13
  477. package/tools/cli/lib/yaml-xml-builder.js +123 -39
  478. package/tools/platform-codes.yaml +12 -0
  479. package/tools/schema/agent.js +229 -20
  480. package/tools/validate-svg-changes.sh +356 -0
  481. package/src/core/tasks/adv-elicit-methods.csv +0 -39
  482. package/src/core/workflows/brainstorming/README.md +0 -261
  483. package/src/core/workflows/brainstorming/instructions.md +0 -315
  484. package/src/core/workflows/brainstorming/workflow.yaml +0 -38
  485. package/src/core/workflows/party-mode/instructions.md +0 -183
  486. package/src/core/workflows/party-mode/workflow.yaml +0 -28
  487. package/src/modules/bmb/workflows/audit-workflow/checklist.md +0 -142
  488. package/src/modules/bmb/workflows/audit-workflow/instructions.md +0 -341
  489. package/src/modules/bmb/workflows/audit-workflow/template.md +0 -118
  490. package/src/modules/bmb/workflows/audit-workflow/workflow.yaml +0 -25
  491. package/src/modules/bmb/workflows/convert-legacy/README.md +0 -262
  492. package/src/modules/bmb/workflows/convert-legacy/checklist.md +0 -205
  493. package/src/modules/bmb/workflows/convert-legacy/instructions.md +0 -377
  494. package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +0 -30
  495. package/src/modules/bmb/workflows/create-agent/instructions.md +0 -519
  496. package/src/modules/bmb/workflows/create-agent/workflow.yaml +0 -55
  497. package/src/modules/bmb/workflows/create-module/README.md +0 -229
  498. package/src/modules/bmb/workflows/create-module/brainstorm-context.md +0 -137
  499. package/src/modules/bmb/workflows/create-module/checklist.md +0 -235
  500. package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +0 -92
  501. package/src/modules/bmb/workflows/create-module/installer-templates/installer.js +0 -231
  502. package/src/modules/bmb/workflows/create-module/instructions.md +0 -577
  503. package/src/modules/bmb/workflows/create-module/module-structure.md +0 -400
  504. package/src/modules/bmb/workflows/create-module/workflow.yaml +0 -52
  505. package/src/modules/bmb/workflows/create-workflow/README.md +0 -277
  506. package/src/modules/bmb/workflows/create-workflow/brainstorm-context.md +0 -197
  507. package/src/modules/bmb/workflows/create-workflow/checklist.md +0 -94
  508. package/src/modules/bmb/workflows/create-workflow/instructions.md +0 -725
  509. package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +0 -1327
  510. package/src/modules/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -24
  511. package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +0 -15
  512. package/src/modules/bmb/workflows/create-workflow/workflow-template/template.md +0 -9
  513. package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +0 -61
  514. package/src/modules/bmb/workflows/create-workflow/workflow.yaml +0 -41
  515. package/src/modules/bmb/workflows/edit-agent/README.md +0 -239
  516. package/src/modules/bmb/workflows/edit-agent/instructions.md +0 -654
  517. package/src/modules/bmb/workflows/edit-agent/workflow.yaml +0 -49
  518. package/src/modules/bmb/workflows/edit-workflow/README.md +0 -119
  519. package/src/modules/bmb/workflows/edit-workflow/checklist.md +0 -70
  520. package/src/modules/bmb/workflows/edit-workflow/instructions.md +0 -342
  521. package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +0 -27
  522. package/src/modules/bmgd/workflows/4-production/code-review/checklist.md +0 -22
  523. package/src/modules/bmm/_module-installer/assets/bmm-kb.md +0 -1
  524. package/src/modules/bmm/_module-installer/assets/technical-decisions.md +0 -30
  525. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +0 -112
  526. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/project-context.md +0 -25
  527. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +0 -39
  528. package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +0 -425
  529. package/src/modules/bmm/workflows/1-analysis/domain-research/template.md +0 -180
  530. package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +0 -56
  531. package/src/modules/bmm/workflows/1-analysis/product-brief/checklist.md +0 -115
  532. package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +0 -524
  533. package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +0 -181
  534. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +0 -61
  535. package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +0 -144
  536. package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +0 -249
  537. package/src/modules/bmm/workflows/1-analysis/research/checklist.md +0 -299
  538. package/src/modules/bmm/workflows/1-analysis/research/claude-code/injections.yaml +0 -114
  539. package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +0 -438
  540. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +0 -675
  541. package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +0 -134
  542. package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +0 -534
  543. package/src/modules/bmm/workflows/1-analysis/research/template-deep-prompt.md +0 -94
  544. package/src/modules/bmm/workflows/1-analysis/research/template-market.md +0 -347
  545. package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +0 -245
  546. package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +0 -62
  547. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +0 -310
  548. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +0 -1308
  549. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +0 -93
  550. package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +0 -346
  551. package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +0 -703
  552. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +0 -78
  553. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +0 -217
  554. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -74
  555. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +0 -436
  556. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +0 -980
  557. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +0 -181
  558. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +0 -90
  559. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +0 -60
  560. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -321
  561. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +0 -103
  562. package/src/modules/bmm/workflows/3-solutioning/architecture/checklist.md +0 -240
  563. package/src/modules/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +0 -222
  564. package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +0 -768
  565. package/src/modules/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +0 -13
  566. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +0 -100
  567. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/epics-template.md +0 -80
  568. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/instructions.md +0 -616
  569. package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.yaml +0 -63
  570. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/checklist.md +0 -169
  571. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/instructions.md +0 -332
  572. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/template.md +0 -146
  573. package/src/modules/bmm/workflows/3-solutioning/implementation-readiness/workflow.yaml +0 -64
  574. package/src/modules/bmm/workflows/4-implementation/code-review/backlog_template.md +0 -12
  575. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +0 -398
  576. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +0 -256
  577. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +0 -267
  578. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/checklist.md +0 -17
  579. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +0 -164
  580. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/template.md +0 -76
  581. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +0 -58
  582. package/src/modules/bmm/workflows/4-implementation/story-context/checklist.md +0 -16
  583. package/src/modules/bmm/workflows/4-implementation/story-context/context-template.xml +0 -34
  584. package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +0 -209
  585. package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +0 -63
  586. package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +0 -111
  587. package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +0 -28
  588. package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +0 -117
  589. package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +0 -25
  590. package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +0 -58
  591. package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +0 -47
  592. package/tools/cli/commands/agent-install.js +0 -409
  593. /package/src/modules/bmb/docs/{agent-compilation.md → agents/agent-compilation.md} +0 -0
  594. /package/src/modules/bmb/docs/{index.md → agents/index.md} +0 -0
  595. /package/src/modules/bmb/docs/{understanding-agent-types.md → agents/understanding-agent-types.md} +0 -0
  596. /package/src/modules/bmb/reference/{readme.md → README.md} +0 -0
  597. /package/src/modules/bmb/workflows/create-agent/{agent-validation-checklist.md → data/agent-validation-checklist.md} +0 -0
  598. /package/src/modules/bmb/workflows/create-agent/{brainstorm-context.md → data/brainstorm-context.md} +0 -0
  599. /package/src/modules/bmb/workflows/create-agent/{communication-presets.csv → data/communication-presets.csv} +0 -0
  600. /package/src/modules/bmb/{workflows → workflows-legacy}/edit-module/README.md +0 -0
  601. /package/src/modules/bmb/{workflows → workflows-legacy}/edit-module/instructions.md +0 -0
  602. /package/src/modules/bmb/{workflows → workflows-legacy}/edit-module/workflow.yaml +0 -0
  603. /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/README.md +0 -0
  604. /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/checklist.md +0 -0
  605. /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/instructions.md +0 -0
  606. /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/template.md +0 -0
  607. /package/src/modules/bmb/{workflows → workflows-legacy}/module-brief/workflow.yaml +0 -0
  608. /package/src/modules/bmm/{workflows/techdoc → data}/documentation-standards.md +0 -0
@@ -5,34 +5,13 @@ const { AgentCommandGenerator } = require('./shared/agent-command-generator');
5
5
 
6
6
  /**
7
7
  * Roo IDE setup handler
8
- * Creates custom modes in .roomodes file
8
+ * Creates custom commands in .roo/commands directory
9
9
  */
10
10
  class RooSetup extends BaseIdeSetup {
11
11
  constructor() {
12
12
  super('roo', 'Roo Code');
13
- this.configFile = '.roomodes';
14
- this.defaultPermissions = {
15
- dev: {
16
- description: 'Development files',
17
- fileRegex: String.raw`.*\.(js|jsx|ts|tsx|py|java|cpp|c|h|cs|go|rs|php|rb|swift)$`,
18
- },
19
- config: {
20
- description: 'Configuration files',
21
- fileRegex: String.raw`.*\.(json|yaml|yml|toml|xml|ini|env|config)$`,
22
- },
23
- docs: {
24
- description: 'Documentation files',
25
- fileRegex: String.raw`.*\.(md|mdx|rst|txt|doc|docx)$`,
26
- },
27
- styles: {
28
- description: 'Style and design files',
29
- fileRegex: String.raw`.*\.(css|scss|sass|less|stylus)$`,
30
- },
31
- all: {
32
- description: 'All files',
33
- fileRegex: '.*',
34
- },
35
- };
13
+ this.configDir = '.roo';
14
+ this.commandsDir = 'commands';
36
15
  }
37
16
 
38
17
  /**
@@ -44,94 +23,96 @@ class RooSetup extends BaseIdeSetup {
44
23
  async setup(projectDir, bmadDir, options = {}) {
45
24
  console.log(chalk.cyan(`Setting up ${this.name}...`));
46
25
 
47
- // Check for existing .roomodes file
48
- const roomodesPath = path.join(projectDir, this.configFile);
49
- let existingModes = [];
50
- let existingContent = '';
51
-
52
- if (await this.pathExists(roomodesPath)) {
53
- existingContent = await this.readFile(roomodesPath);
54
- // Parse existing modes to avoid duplicates
55
- const modeMatches = existingContent.matchAll(/- slug: ([\w-]+)/g);
56
- for (const match of modeMatches) {
57
- existingModes.push(match[1]);
58
- }
59
- console.log(chalk.yellow(`Found existing .roomodes file with ${existingModes.length} modes`));
60
- }
26
+ // Create .roo/commands directory
27
+ const rooCommandsDir = path.join(projectDir, this.configDir, this.commandsDir);
28
+ await this.ensureDir(rooCommandsDir);
61
29
 
62
- // Generate agent launchers (though Roo will reference the actual .bmad agents)
30
+ // Generate agent launchers
63
31
  const agentGen = new AgentCommandGenerator(this.bmadFolderName);
64
32
  const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
65
33
 
66
- // Always use 'all' permissions - users can customize in .roomodes file
67
- const permissionChoice = 'all';
68
-
69
- // Create modes content
70
- let newModesContent = '';
71
34
  let addedCount = 0;
72
35
  let skippedCount = 0;
73
36
 
74
37
  for (const artifact of agentArtifacts) {
75
- const slug = `bmad-${artifact.module}-${artifact.name}`;
38
+ const commandName = `bmad-${artifact.module}-agent-${artifact.name}`;
39
+ const commandPath = path.join(rooCommandsDir, `${commandName}.md`);
76
40
 
77
41
  // Skip if already exists
78
- if (existingModes.includes(slug)) {
79
- console.log(chalk.dim(` Skipping ${slug} - already exists`));
42
+ if (await this.pathExists(commandPath)) {
43
+ console.log(chalk.dim(` Skipping ${commandName} - already exists`));
80
44
  skippedCount++;
81
45
  continue;
82
46
  }
83
47
 
84
- // Read the actual agent file from .bmad for metadata extraction
48
+ // Read the actual agent file from .bmad for metadata extraction (installed agents are .md files)
85
49
  const agentPath = path.join(bmadDir, artifact.module, 'agents', `${artifact.name}.md`);
86
50
  const content = await this.readFile(agentPath);
87
51
 
88
- // Create mode entry that references the actual .bmad agent
89
- const modeEntry = await this.createModeEntry(
90
- { module: artifact.module, name: artifact.name, path: agentPath },
91
- content,
92
- permissionChoice,
93
- projectDir,
94
- );
52
+ // Create command file that references the actual .bmad agent
53
+ await this.createCommandFile({ module: artifact.module, name: artifact.name, path: agentPath }, content, commandPath, projectDir);
95
54
 
96
- newModesContent += modeEntry;
97
55
  addedCount++;
98
- console.log(chalk.green(` ✓ Added mode: ${slug}`));
56
+ console.log(chalk.green(` ✓ Added command: ${commandName}`));
99
57
  }
100
58
 
101
- // Build final content
102
- let finalContent = '';
103
- if (existingContent) {
104
- // Append to existing content
105
- finalContent = existingContent.trim() + '\n' + newModesContent;
106
- } else {
107
- // Create new .roomodes file
108
- finalContent = 'customModes:\n' + newModesContent;
109
- }
110
-
111
- // Write .roomodes file
112
- await this.writeFile(roomodesPath, finalContent);
113
-
114
59
  console.log(chalk.green(`✓ ${this.name} configured:`));
115
- console.log(chalk.dim(` - ${addedCount} modes added`));
60
+ console.log(chalk.dim(` - ${addedCount} commands added`));
116
61
  if (skippedCount > 0) {
117
- console.log(chalk.dim(` - ${skippedCount} modes skipped (already exist)`));
62
+ console.log(chalk.dim(` - ${skippedCount} commands skipped (already exist)`));
118
63
  }
119
- console.log(chalk.dim(` - Configuration file: ${this.configFile}`));
120
- console.log(chalk.dim(` - Permission level: all (unrestricted)`));
121
- console.log(chalk.yellow(`\n 💡 Tip: Edit ${this.configFile} to customize file permissions per agent`));
122
- console.log(chalk.dim(` Modes will be available when you open this project in Roo Code`));
64
+ console.log(chalk.dim(` - Commands directory: ${this.configDir}/${this.commandsDir}/bmad/`));
65
+ console.log(chalk.dim(` Commands will be available when you open this project in Roo Code`));
123
66
 
124
67
  return {
125
68
  success: true,
126
- modes: addedCount,
69
+ commands: addedCount,
127
70
  skipped: skippedCount,
128
71
  };
129
72
  }
130
73
 
131
74
  /**
132
- * Create a mode entry for an agent
75
+ * Create a unified command file for agents
76
+ * @param {string} commandPath - Path where to write the command file
77
+ * @param {Object} options - Command options
78
+ * @param {string} options.name - Display name for the command
79
+ * @param {string} options.description - Description for the command
80
+ * @param {string} options.agentPath - Path to the agent file (relative to project root)
81
+ * @param {string} [options.icon] - Icon emoji (defaults to 🤖)
82
+ * @param {string} [options.extraContent] - Additional content to include before activation
133
83
  */
134
- async createModeEntry(agent, content, permissionChoice, projectDir) {
84
+ async createAgentCommandFile(commandPath, options) {
85
+ const { name, description, agentPath, icon = '🤖', extraContent = '' } = options;
86
+
87
+ // Build command content with YAML frontmatter
88
+ let commandContent = `---\n`;
89
+ commandContent += `name: '${icon} ${name}'\n`;
90
+ commandContent += `description: '${description}'\n`;
91
+ commandContent += `---\n\n`;
92
+
93
+ commandContent += `You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.\n\n`;
94
+
95
+ // Add any extra content (e.g., warnings for custom agents)
96
+ if (extraContent) {
97
+ commandContent += `${extraContent}\n\n`;
98
+ }
99
+
100
+ commandContent += `<agent-activation CRITICAL="TRUE">\n`;
101
+ commandContent += `1. LOAD the FULL agent file from @${agentPath}\n`;
102
+ commandContent += `2. READ its entire contents - this contains the complete agent persona, menu, and instructions\n`;
103
+ commandContent += `3. Execute ALL activation steps exactly as written in the agent file\n`;
104
+ commandContent += `4. Follow the agent's persona and menu system precisely\n`;
105
+ commandContent += `5. Stay in character throughout the session\n`;
106
+ commandContent += `</agent-activation>\n`;
107
+
108
+ // Write command file
109
+ await this.writeFile(commandPath, commandContent);
110
+ }
111
+
112
+ /**
113
+ * Create a command file for an agent
114
+ */
115
+ async createCommandFile(agent, content, commandPath, projectDir) {
135
116
  // Extract metadata from agent content
136
117
  const titleMatch = content.match(/title="([^"]+)"/);
137
118
  const title = titleMatch ? titleMatch[1] : this.formatTitle(agent.name);
@@ -142,66 +123,16 @@ class RooSetup extends BaseIdeSetup {
142
123
  const whenToUseMatch = content.match(/whenToUse="([^"]+)"/);
143
124
  const whenToUse = whenToUseMatch ? whenToUseMatch[1] : `Use for ${title} tasks`;
144
125
 
145
- // Get the activation header from central template
146
- const activationHeader = await this.getAgentCommandHeader();
147
-
148
- const roleDefinitionMatch = content.match(/roleDefinition="([^"]+)"/);
149
- const roleDefinition = roleDefinitionMatch
150
- ? roleDefinitionMatch[1]
151
- : `You are a ${title} specializing in ${title.toLowerCase()} tasks and responsibilities.`;
152
-
153
126
  // Get relative path
154
127
  const relativePath = path.relative(projectDir, agent.path).replaceAll('\\', '/');
155
128
 
156
- // Determine permissions
157
- const permissions = this.getPermissionsForAgent(agent, permissionChoice);
158
-
159
- // Build mode entry
160
- const slug = `bmad-${agent.module}-${agent.name}`;
161
- let modeEntry = ` - slug: ${slug}\n`;
162
- modeEntry += ` name: '${icon} ${title}'\n`;
163
-
164
- if (permissions && permissions.description) {
165
- modeEntry += ` description: '${permissions.description}'\n`;
166
- }
167
-
168
- modeEntry += ` roleDefinition: ${roleDefinition}\n`;
169
- modeEntry += ` whenToUse: ${whenToUse}\n`;
170
- modeEntry += ` customInstructions: ${activationHeader} Read the full YAML from ${relativePath} start activation to alter your state of being follow startup section instructions stay in this being until told to exit this mode\n`;
171
- modeEntry += ` groups:\n`;
172
- modeEntry += ` - read\n`;
173
-
174
- if (permissions && permissions.fileRegex) {
175
- modeEntry += ` - - edit\n`;
176
- modeEntry += ` - fileRegex: ${permissions.fileRegex}\n`;
177
- modeEntry += ` description: ${permissions.description}\n`;
178
- } else {
179
- modeEntry += ` - edit\n`;
180
- }
181
-
182
- return modeEntry;
183
- }
184
-
185
- /**
186
- * Get permissions configuration for an agent
187
- */
188
- getPermissionsForAgent(agent, permissionChoice) {
189
- if (permissionChoice === 'custom') {
190
- // Custom logic based on agent name/module
191
- if (agent.name.includes('dev') || agent.name.includes('code')) {
192
- return this.defaultPermissions.dev;
193
- } else if (agent.name.includes('doc') || agent.name.includes('write')) {
194
- return this.defaultPermissions.docs;
195
- } else if (agent.name.includes('config') || agent.name.includes('setup')) {
196
- return this.defaultPermissions.config;
197
- } else if (agent.name.includes('style') || agent.name.includes('css')) {
198
- return this.defaultPermissions.styles;
199
- }
200
- // Default to all for custom agents
201
- return this.defaultPermissions.all;
202
- }
203
-
204
- return this.defaultPermissions[permissionChoice] || null;
129
+ // Use unified method
130
+ await this.createAgentCommandFile(commandPath, {
131
+ name: title,
132
+ description: whenToUse,
133
+ agentPath: relativePath,
134
+ icon: icon,
135
+ });
205
136
  }
206
137
 
207
138
  /**
@@ -219,8 +150,26 @@ class RooSetup extends BaseIdeSetup {
219
150
  */
220
151
  async cleanup(projectDir) {
221
152
  const fs = require('fs-extra');
222
- const roomodesPath = path.join(projectDir, this.configFile);
153
+ const rooCommandsDir = path.join(projectDir, this.configDir, this.commandsDir);
154
+
155
+ if (await fs.pathExists(rooCommandsDir)) {
156
+ const files = await fs.readdir(rooCommandsDir);
157
+ let removedCount = 0;
158
+
159
+ for (const file of files) {
160
+ if (file.startsWith('bmad-') && file.endsWith('.md')) {
161
+ await fs.remove(path.join(rooCommandsDir, file));
162
+ removedCount++;
163
+ }
164
+ }
165
+
166
+ if (removedCount > 0) {
167
+ console.log(chalk.dim(`Removed ${removedCount} BMAD commands from .roo/commands/`));
168
+ }
169
+ }
223
170
 
171
+ // Also clean up old .roomodes file if it exists
172
+ const roomodesPath = path.join(projectDir, '.roomodes');
224
173
  if (await fs.pathExists(roomodesPath)) {
225
174
  const content = await fs.readFile(roomodesPath, 'utf8');
226
175
 
@@ -245,9 +194,67 @@ class RooSetup extends BaseIdeSetup {
245
194
 
246
195
  // Write back filtered content
247
196
  await fs.writeFile(roomodesPath, filteredLines.join('\n'));
248
- console.log(chalk.dim(`Removed ${removedCount} BMAD modes from .roomodes`));
197
+ if (removedCount > 0) {
198
+ console.log(chalk.dim(`Removed ${removedCount} BMAD modes from legacy .roomodes file`));
199
+ }
249
200
  }
250
201
  }
202
+
203
+ /**
204
+ * Install a custom agent launcher for Roo
205
+ * @param {string} projectDir - Project directory
206
+ * @param {string} agentName - Agent name (e.g., "fred-commit-poet")
207
+ * @param {string} agentPath - Path to compiled agent (relative to project root)
208
+ * @param {Object} metadata - Agent metadata (unused, kept for compatibility)
209
+ * @returns {Object} Installation result
210
+ */
211
+ async installCustomAgentLauncher(projectDir, agentName, agentPath, metadata) {
212
+ const rooCommandsDir = path.join(projectDir, this.configDir, this.commandsDir);
213
+ await this.ensureDir(rooCommandsDir);
214
+
215
+ const commandName = `bmad-custom-agent-${agentName.toLowerCase()}`;
216
+ const commandPath = path.join(rooCommandsDir, `${commandName}.md`);
217
+
218
+ // Check if command already exists
219
+ if (await this.pathExists(commandPath)) {
220
+ return {
221
+ ide: 'roo',
222
+ path: path.join(this.configDir, this.commandsDir, `${commandName}.md`),
223
+ command: commandName,
224
+ type: 'custom-agent-launcher',
225
+ alreadyExists: true,
226
+ };
227
+ }
228
+
229
+ // Read the custom agent file to extract metadata (same as regular agents)
230
+ const fullAgentPath = path.join(projectDir, agentPath);
231
+ const content = await this.readFile(fullAgentPath);
232
+
233
+ // Extract metadata from agent content
234
+ const titleMatch = content.match(/title="([^"]+)"/);
235
+ const title = titleMatch ? titleMatch[1] : this.formatTitle(agentName);
236
+
237
+ const iconMatch = content.match(/icon="([^"]+)"/);
238
+ const icon = iconMatch ? iconMatch[1] : '🤖';
239
+
240
+ const whenToUseMatch = content.match(/whenToUse="([^"]+)"/);
241
+ const whenToUse = whenToUseMatch ? whenToUseMatch[1] : `Use for ${title} tasks`;
242
+
243
+ // Use unified method without extra content (clean)
244
+ await this.createAgentCommandFile(commandPath, {
245
+ name: title,
246
+ description: whenToUse,
247
+ agentPath: agentPath,
248
+ icon: icon,
249
+ });
250
+
251
+ return {
252
+ ide: 'roo',
253
+ path: path.join(this.configDir, this.commandsDir, `${commandName}.md`),
254
+ command: commandName,
255
+ type: 'custom-agent-launcher',
256
+ };
257
+ }
251
258
  }
252
259
 
253
260
  module.exports = { RooSetup };
@@ -0,0 +1,290 @@
1
+ const path = require('node:path');
2
+ const fs = require('fs-extra');
3
+ const chalk = require('chalk');
4
+ const { BaseIdeSetup } = require('./_base-ide');
5
+ const { AgentCommandGenerator } = require('./shared/agent-command-generator');
6
+ const { WorkflowCommandGenerator } = require('./shared/workflow-command-generator');
7
+ const { TaskToolCommandGenerator } = require('./shared/task-tool-command-generator');
8
+
9
+ /**
10
+ * Rovo Dev IDE setup handler
11
+ *
12
+ * Installs BMAD agents as Rovo Dev subagents in .rovodev/subagents/
13
+ * Installs workflows and tasks/tools as reference guides in .rovodev/
14
+ * Rovo Dev automatically discovers agents and integrates with BMAD like other IDEs
15
+ */
16
+ class RovoDevSetup extends BaseIdeSetup {
17
+ constructor() {
18
+ super('rovo-dev', 'Atlassian Rovo Dev', false);
19
+ this.configDir = '.rovodev';
20
+ this.subagentsDir = 'subagents';
21
+ this.workflowsDir = 'workflows';
22
+ this.referencesDir = 'references';
23
+ }
24
+
25
+ /**
26
+ * Cleanup old BMAD installation before reinstalling
27
+ * @param {string} projectDir - Project directory
28
+ */
29
+ async cleanup(projectDir) {
30
+ const rovoDevDir = path.join(projectDir, this.configDir);
31
+
32
+ if (!(await fs.pathExists(rovoDevDir))) {
33
+ return;
34
+ }
35
+
36
+ // Clean BMAD agents from subagents directory
37
+ const subagentsDir = path.join(rovoDevDir, this.subagentsDir);
38
+ if (await fs.pathExists(subagentsDir)) {
39
+ const entries = await fs.readdir(subagentsDir);
40
+ const bmadFiles = entries.filter((file) => file.startsWith('bmad-') && file.endsWith('.md'));
41
+
42
+ for (const file of bmadFiles) {
43
+ await fs.remove(path.join(subagentsDir, file));
44
+ }
45
+ }
46
+
47
+ // Clean BMAD workflows from workflows directory
48
+ const workflowsDir = path.join(rovoDevDir, this.workflowsDir);
49
+ if (await fs.pathExists(workflowsDir)) {
50
+ const entries = await fs.readdir(workflowsDir);
51
+ const bmadFiles = entries.filter((file) => file.startsWith('bmad-') && file.endsWith('.md'));
52
+
53
+ for (const file of bmadFiles) {
54
+ await fs.remove(path.join(workflowsDir, file));
55
+ }
56
+ }
57
+
58
+ // Clean BMAD tasks/tools from references directory
59
+ const referencesDir = path.join(rovoDevDir, this.referencesDir);
60
+ if (await fs.pathExists(referencesDir)) {
61
+ const entries = await fs.readdir(referencesDir);
62
+ const bmadFiles = entries.filter((file) => file.startsWith('bmad-') && file.endsWith('.md'));
63
+
64
+ for (const file of bmadFiles) {
65
+ await fs.remove(path.join(referencesDir, file));
66
+ }
67
+ }
68
+ }
69
+
70
+ /**
71
+ * Setup Rovo Dev configuration
72
+ * @param {string} projectDir - Project directory
73
+ * @param {string} bmadDir - BMAD installation directory
74
+ * @param {Object} options - Setup options
75
+ */
76
+ async setup(projectDir, bmadDir, options = {}) {
77
+ console.log(chalk.cyan(`Setting up ${this.name}...`));
78
+
79
+ // Clean up old BMAD installation first
80
+ await this.cleanup(projectDir);
81
+
82
+ // Create .rovodev directory structure
83
+ const rovoDevDir = path.join(projectDir, this.configDir);
84
+ const subagentsDir = path.join(rovoDevDir, this.subagentsDir);
85
+ const workflowsDir = path.join(rovoDevDir, this.workflowsDir);
86
+ const referencesDir = path.join(rovoDevDir, this.referencesDir);
87
+
88
+ await this.ensureDir(subagentsDir);
89
+ await this.ensureDir(workflowsDir);
90
+ await this.ensureDir(referencesDir);
91
+
92
+ // Generate and install agents
93
+ const agentGen = new AgentCommandGenerator(this.bmadFolderName);
94
+ const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
95
+
96
+ let agentCount = 0;
97
+ for (const artifact of agentArtifacts) {
98
+ const subagentFilename = `bmad-${artifact.module}-${artifact.name}.md`;
99
+ const targetPath = path.join(subagentsDir, subagentFilename);
100
+ const subagentContent = this.convertToRovoDevSubagent(artifact.content, artifact.name, artifact.module);
101
+ await this.writeFile(targetPath, subagentContent);
102
+ agentCount++;
103
+ }
104
+
105
+ // Generate and install workflows
106
+ const workflowGen = new WorkflowCommandGenerator(this.bmadFolderName);
107
+ const { artifacts: workflowArtifacts, counts: workflowCounts } = await workflowGen.collectWorkflowArtifacts(bmadDir);
108
+
109
+ let workflowCount = 0;
110
+ for (const artifact of workflowArtifacts) {
111
+ if (artifact.type === 'workflow-command') {
112
+ const workflowFilename = path.basename(artifact.relativePath);
113
+ const targetPath = path.join(workflowsDir, workflowFilename);
114
+ await this.writeFile(targetPath, artifact.content);
115
+ workflowCount++;
116
+ }
117
+ }
118
+
119
+ // Generate and install tasks and tools
120
+ const taskToolGen = new TaskToolCommandGenerator();
121
+ const { tasks: taskCount, tools: toolCount } = await this.generateTaskToolReferences(bmadDir, referencesDir, taskToolGen);
122
+
123
+ // Summary output
124
+ console.log(chalk.green(`✓ ${this.name} configured:`));
125
+ console.log(chalk.dim(` - ${agentCount} agents installed to .rovodev/subagents/`));
126
+ if (workflowCount > 0) {
127
+ console.log(chalk.dim(` - ${workflowCount} workflows installed to .rovodev/workflows/`));
128
+ }
129
+ if (taskCount + toolCount > 0) {
130
+ console.log(
131
+ chalk.dim(` - ${taskCount + toolCount} tasks/tools installed to .rovodev/references/ (${taskCount} tasks, ${toolCount} tools)`),
132
+ );
133
+ }
134
+ console.log(chalk.yellow(`\n Note: Agents are automatically discovered by Rovo Dev`));
135
+ console.log(chalk.dim(` - Access agents by typing @ in Rovo Dev to see available options`));
136
+ console.log(chalk.dim(` - Workflows and references are available in .rovodev/ directory`));
137
+
138
+ return {
139
+ success: true,
140
+ agents: agentCount,
141
+ workflows: workflowCount,
142
+ tasks: taskCount,
143
+ tools: toolCount,
144
+ };
145
+ }
146
+
147
+ /**
148
+ * Generate task and tool reference guides
149
+ * @param {string} bmadDir - BMAD directory
150
+ * @param {string} referencesDir - References directory
151
+ * @param {TaskToolCommandGenerator} taskToolGen - Generator instance
152
+ */
153
+ async generateTaskToolReferences(bmadDir, referencesDir, taskToolGen) {
154
+ const tasks = await taskToolGen.loadTaskManifest(bmadDir);
155
+ const tools = await taskToolGen.loadToolManifest(bmadDir);
156
+
157
+ const standaloneTasks = tasks ? tasks.filter((t) => t.standalone === 'true' || t.standalone === true) : [];
158
+ const standaloneTools = tools ? tools.filter((t) => t.standalone === 'true' || t.standalone === true) : [];
159
+
160
+ let taskCount = 0;
161
+ for (const task of standaloneTasks) {
162
+ const commandContent = taskToolGen.generateCommandContent(task, 'task');
163
+ const targetPath = path.join(referencesDir, `bmad-task-${task.module}-${task.name}.md`);
164
+ await this.writeFile(targetPath, commandContent);
165
+ taskCount++;
166
+ }
167
+
168
+ let toolCount = 0;
169
+ for (const tool of standaloneTools) {
170
+ const commandContent = taskToolGen.generateCommandContent(tool, 'tool');
171
+ const targetPath = path.join(referencesDir, `bmad-tool-${tool.module}-${tool.name}.md`);
172
+ await this.writeFile(targetPath, commandContent);
173
+ toolCount++;
174
+ }
175
+
176
+ return { tasks: taskCount, tools: toolCount };
177
+ }
178
+
179
+ /**
180
+ * Convert BMAD agent launcher to Rovo Dev subagent format
181
+ *
182
+ * Rovo Dev subagents use Markdown files with YAML frontmatter containing:
183
+ * - name: Unique identifier for the subagent
184
+ * - description: One-line description of the subagent's purpose
185
+ * - tools: Array of tools the subagent can use (optional)
186
+ * - model: Specific model for this subagent (optional)
187
+ * - load_memory: Whether to load memory files (optional, defaults to true)
188
+ *
189
+ * @param {string} launcherContent - Original agent launcher content
190
+ * @param {string} agentName - Name of the agent
191
+ * @param {string} moduleName - Name of the module
192
+ * @returns {string} Rovo Dev subagent-formatted content
193
+ */
194
+ convertToRovoDevSubagent(launcherContent, agentName, moduleName) {
195
+ // Extract metadata from the launcher XML
196
+ const titleMatch = launcherContent.match(/title="([^"]+)"/);
197
+ const title = titleMatch ? titleMatch[1] : this.formatTitle(agentName);
198
+
199
+ const descriptionMatch = launcherContent.match(/description="([^"]+)"/);
200
+ const description = descriptionMatch ? descriptionMatch[1] : `BMAD agent: ${title}`;
201
+
202
+ const roleDefinitionMatch = launcherContent.match(/roleDefinition="([^"]+)"/);
203
+ const roleDefinition = roleDefinitionMatch ? roleDefinitionMatch[1] : `You are a specialized agent for ${title.toLowerCase()} tasks.`;
204
+
205
+ // Extract the main system prompt from the launcher (content after closing tags)
206
+ let systemPrompt = roleDefinition;
207
+
208
+ // Try to extract additional instructions from the launcher content
209
+ const instructionsMatch = launcherContent.match(/<instructions>([\s\S]*?)<\/instructions>/);
210
+ if (instructionsMatch) {
211
+ systemPrompt += '\n\n' + instructionsMatch[1].trim();
212
+ }
213
+
214
+ // Build YAML frontmatter for Rovo Dev subagent
215
+ const frontmatter = {
216
+ name: `bmad-${moduleName}-${agentName}`,
217
+ description: description,
218
+ // Note: tools and model can be added by users in their .rovodev/subagents/*.md files
219
+ // We don't enforce specific tools since BMAD agents are flexible
220
+ };
221
+
222
+ // Create YAML frontmatter string with proper quoting for special characters
223
+ let yamlContent = '---\n';
224
+ yamlContent += `name: ${frontmatter.name}\n`;
225
+ // Quote description to handle colons and other special characters in YAML
226
+ yamlContent += `description: "${frontmatter.description.replaceAll('"', String.raw`\"`)}"\n`;
227
+ yamlContent += '---\n';
228
+
229
+ // Combine frontmatter with system prompt
230
+ const subagentContent = yamlContent + systemPrompt;
231
+
232
+ return subagentContent;
233
+ }
234
+
235
+ /**
236
+ * Detect whether Rovo Dev is already configured in the project
237
+ * @param {string} projectDir - Project directory
238
+ * @returns {boolean}
239
+ */
240
+ async detect(projectDir) {
241
+ const rovoDevDir = path.join(projectDir, this.configDir);
242
+
243
+ if (!(await fs.pathExists(rovoDevDir))) {
244
+ return false;
245
+ }
246
+
247
+ // Check for BMAD agents in subagents directory
248
+ const subagentsDir = path.join(rovoDevDir, this.subagentsDir);
249
+ if (await fs.pathExists(subagentsDir)) {
250
+ try {
251
+ const entries = await fs.readdir(subagentsDir);
252
+ if (entries.some((entry) => entry.startsWith('bmad-') && entry.endsWith('.md'))) {
253
+ return true;
254
+ }
255
+ } catch {
256
+ // Continue checking other directories
257
+ }
258
+ }
259
+
260
+ // Check for BMAD workflows in workflows directory
261
+ const workflowsDir = path.join(rovoDevDir, this.workflowsDir);
262
+ if (await fs.pathExists(workflowsDir)) {
263
+ try {
264
+ const entries = await fs.readdir(workflowsDir);
265
+ if (entries.some((entry) => entry.startsWith('bmad-') && entry.endsWith('.md'))) {
266
+ return true;
267
+ }
268
+ } catch {
269
+ // Continue checking other directories
270
+ }
271
+ }
272
+
273
+ // Check for BMAD tasks/tools in references directory
274
+ const referencesDir = path.join(rovoDevDir, this.referencesDir);
275
+ if (await fs.pathExists(referencesDir)) {
276
+ try {
277
+ const entries = await fs.readdir(referencesDir);
278
+ if (entries.some((entry) => entry.startsWith('bmad-') && entry.endsWith('.md'))) {
279
+ return true;
280
+ }
281
+ } catch {
282
+ // Continue
283
+ }
284
+ }
285
+
286
+ return false;
287
+ }
288
+ }
289
+
290
+ module.exports = { RovoDevSetup };
@@ -28,11 +28,13 @@ class AgentCommandGenerator {
28
28
 
29
29
  for (const agent of agents) {
30
30
  const launcherContent = await this.generateLauncherContent(agent);
31
+ // Use relativePath if available (for nested agents), otherwise just name with .md
32
+ const agentPathInModule = agent.relativePath || `${agent.name}.md`;
31
33
  artifacts.push({
32
34
  type: 'agent-launcher',
33
35
  module: agent.module,
34
36
  name: agent.name,
35
- relativePath: path.join(agent.module, 'agents', `${agent.name}.md`),
37
+ relativePath: path.join(agent.module, 'agents', agentPathInModule),
36
38
  content: launcherContent,
37
39
  sourcePath: agent.path,
38
40
  });
@@ -56,11 +58,15 @@ class AgentCommandGenerator {
56
58
  const template = await fs.readFile(this.templatePath, 'utf8');
57
59
 
58
60
  // Replace template variables
61
+ // Use relativePath if available (for nested agents), otherwise just name with .md
62
+ const agentPathInModule = agent.relativePath || `${agent.name}.md`;
59
63
  return template
60
64
  .replaceAll('{{name}}', agent.name)
61
65
  .replaceAll('{{module}}', agent.module)
66
+ .replaceAll('{{path}}', agentPathInModule)
62
67
  .replaceAll('{{description}}', agent.description || `${agent.name} agent`)
63
- .replaceAll('{bmad_folder}', this.bmadFolderName);
68
+ .replaceAll('{bmad_folder}', this.bmadFolderName)
69
+ .replaceAll('{*bmad_folder*}', '{bmad_folder}');
64
70
  }
65
71
 
66
72
  /**