bmad-method 5.0.0 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/.github/FUNDING.yaml +15 -0
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +32 -0
  3. package/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
  4. package/.github/workflows/discord.yaml +25 -0
  5. package/.github/workflows/format-check.yaml +42 -0
  6. package/.github/workflows/manual-release.yaml +173 -0
  7. package/.husky/pre-commit +3 -2
  8. package/.vscode/settings.json +67 -74
  9. package/CHANGELOG.md +564 -19
  10. package/CONTRIBUTING.md +168 -5
  11. package/LICENSE +1 -1
  12. package/README.md +146 -218
  13. package/bmad-core/agent-teams/team-all.yaml +14 -0
  14. package/bmad-core/agent-teams/team-fullstack.yaml +18 -0
  15. package/bmad-core/agent-teams/team-ide-minimal.yaml +10 -0
  16. package/bmad-core/agent-teams/team-no-ui.yaml +13 -0
  17. package/bmad-core/agents/analyst.md +81 -0
  18. package/bmad-core/agents/architect.md +83 -0
  19. package/bmad-core/agents/bmad-master.md +107 -0
  20. package/bmad-core/agents/bmad-orchestrator.md +149 -0
  21. package/bmad-core/agents/dev.md +75 -0
  22. package/bmad-core/agents/pm.md +81 -0
  23. package/bmad-core/agents/po.md +76 -0
  24. package/bmad-core/agents/qa.md +88 -0
  25. package/bmad-core/agents/sm.md +62 -0
  26. package/bmad-core/agents/ux-expert.md +66 -0
  27. package/{.bmad-core → bmad-core}/checklists/architect-checklist.md +0 -5
  28. package/{.bmad-core → bmad-core}/checklists/change-checklist.md +2 -2
  29. package/{.bmad-core → bmad-core}/checklists/pm-checklist.md +0 -5
  30. package/{.bmad-core → bmad-core}/checklists/po-master-checklist.md +0 -9
  31. package/{.bmad-core → bmad-core}/checklists/story-dod-checklist.md +0 -7
  32. package/{.bmad-core → bmad-core}/checklists/story-draft-checklist.md +1 -4
  33. package/bmad-core/core-config.yaml +20 -0
  34. package/bmad-core/data/bmad-kb.md +806 -0
  35. package/bmad-core/data/brainstorming-techniques.md +36 -0
  36. package/bmad-core/data/elicitation-methods.md +154 -0
  37. package/bmad-core/data/test-levels-framework.md +146 -0
  38. package/bmad-core/data/test-priorities-matrix.md +172 -0
  39. package/bmad-core/tasks/advanced-elicitation.md +117 -0
  40. package/{.bmad-core → bmad-core}/tasks/correct-course.md +9 -12
  41. package/bmad-core/tasks/create-brownfield-story.md +312 -0
  42. package/{.bmad-core → bmad-core}/tasks/create-deep-research-prompt.md +4 -27
  43. package/bmad-core/tasks/create-next-story.md +112 -0
  44. package/bmad-core/tasks/document-project.md +343 -0
  45. package/bmad-core/tasks/facilitate-brainstorming-session.md +136 -0
  46. package/bmad-core/tasks/generate-ai-frontend-prompt.md +51 -0
  47. package/{.bmad-core → bmad-core}/tasks/index-docs.md +3 -13
  48. package/bmad-core/tasks/kb-mode-interaction.md +75 -0
  49. package/bmad-core/tasks/nfr-assess.md +343 -0
  50. package/bmad-core/tasks/qa-gate.md +159 -0
  51. package/bmad-core/tasks/review-story.md +314 -0
  52. package/bmad-core/tasks/risk-profile.md +353 -0
  53. package/{.bmad-core → bmad-core}/tasks/shard-doc.md +27 -15
  54. package/bmad-core/tasks/test-design.md +174 -0
  55. package/bmad-core/tasks/trace-requirements.md +264 -0
  56. package/bmad-core/tasks/validate-next-story.md +134 -0
  57. package/bmad-core/templates/architecture-tmpl.yaml +650 -0
  58. package/bmad-core/templates/brainstorming-output-tmpl.yaml +156 -0
  59. package/bmad-core/templates/brownfield-architecture-tmpl.yaml +476 -0
  60. package/bmad-core/templates/brownfield-prd-tmpl.yaml +280 -0
  61. package/bmad-core/templates/competitor-analysis-tmpl.yaml +306 -0
  62. package/bmad-core/templates/front-end-architecture-tmpl.yaml +218 -0
  63. package/bmad-core/templates/front-end-spec-tmpl.yaml +349 -0
  64. package/bmad-core/templates/fullstack-architecture-tmpl.yaml +823 -0
  65. package/bmad-core/templates/market-research-tmpl.yaml +252 -0
  66. package/bmad-core/templates/prd-tmpl.yaml +202 -0
  67. package/bmad-core/templates/project-brief-tmpl.yaml +221 -0
  68. package/bmad-core/templates/qa-gate-tmpl.yaml +102 -0
  69. package/bmad-core/templates/story-tmpl.yaml +137 -0
  70. package/bmad-core/workflows/brownfield-fullstack.yaml +297 -0
  71. package/bmad-core/workflows/brownfield-service.yaml +187 -0
  72. package/bmad-core/workflows/brownfield-ui.yaml +197 -0
  73. package/{.bmad-core/workflows/greenfield-fullstack.yml → bmad-core/workflows/greenfield-fullstack.yaml} +140 -77
  74. package/bmad-core/workflows/greenfield-service.yaml +206 -0
  75. package/bmad-core/workflows/greenfield-ui.yaml +235 -0
  76. package/common/tasks/create-doc.md +101 -0
  77. package/{.bmad-core → common}/tasks/execute-checklist.md +2 -13
  78. package/common/utils/bmad-doc-template.md +325 -0
  79. package/common/utils/workflow-management.md +69 -0
  80. package/dist/agents/analyst.txt +2889 -0
  81. package/dist/agents/architect.txt +3552 -0
  82. package/dist/agents/bmad-master.txt +8769 -0
  83. package/dist/agents/bmad-orchestrator.txt +1513 -0
  84. package/dist/agents/dev.txt +414 -0
  85. package/{.bmad-core/web-bundles → dist}/agents/pm.txt +668 -1119
  86. package/{.bmad-core/web-bundles → dist}/agents/po.txt +341 -484
  87. package/dist/agents/qa.txt +1987 -0
  88. package/dist/agents/sm.txt +658 -0
  89. package/dist/agents/ux-expert.txt +694 -0
  90. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +2371 -0
  91. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +1620 -0
  92. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +815 -0
  93. package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +10952 -0
  94. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +4012 -0
  95. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +3698 -0
  96. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +450 -0
  97. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +973 -0
  98. package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +15376 -0
  99. package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +2075 -0
  100. package/dist/teams/team-all.txt +12682 -0
  101. package/dist/teams/team-fullstack.txt +10421 -0
  102. package/dist/teams/team-ide-minimal.txt +5103 -0
  103. package/dist/teams/team-no-ui.txt +8980 -0
  104. package/docs/GUIDING-PRINCIPLES.md +91 -0
  105. package/docs/core-architecture.md +219 -0
  106. package/docs/enhanced-ide-development-workflow.md +248 -0
  107. package/docs/expansion-packs.md +280 -0
  108. package/docs/how-to-contribute-with-pull-requests.md +158 -0
  109. package/docs/user-guide.md +504 -0
  110. package/docs/versioning-and-releases.md +8 -16
  111. package/docs/versions.md +4 -5
  112. package/docs/working-in-the-brownfield.md +597 -0
  113. package/eslint.config.mjs +119 -0
  114. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/Complete AI Agent System - Flowchart.svg +102 -0
  115. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.1 Google Cloud Project Setup/1.1.1 - Initial Project Configuration - bash copy.txt +13 -0
  116. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.1 Google Cloud Project Setup/1.1.1 - Initial Project Configuration - bash.txt +13 -0
  117. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.2 Agent Development Kit Installation/1.2.2 - Basic Project Structure - txt.txt +25 -0
  118. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.3 Core Configuration Files/1.3.1 - settings.py +34 -0
  119. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.3 Core Configuration Files/1.3.2 - main.py - Base Application.py +70 -0
  120. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.4 Deployment Configuration/1.4.2 - cloudbuild.yaml +26 -0
  121. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/README.md +109 -0
  122. package/expansion-packs/README.md +2 -112
  123. package/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +13 -0
  124. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +71 -0
  125. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +78 -0
  126. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +64 -0
  127. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +201 -0
  128. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +160 -0
  129. package/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +8 -0
  130. package/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +250 -0
  131. package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +647 -0
  132. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +110 -0
  133. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md +216 -0
  134. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +290 -0
  135. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +613 -0
  136. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +356 -0
  137. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +343 -0
  138. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +253 -0
  139. package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +484 -0
  140. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +183 -0
  141. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +175 -0
  142. package/expansion-packs/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +14 -0
  143. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.md +80 -0
  144. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.md +77 -0
  145. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +78 -0
  146. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.md +65 -0
  147. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-architect-checklist.md +391 -0
  148. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-change-checklist.md +203 -0
  149. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +201 -0
  150. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +124 -0
  151. package/expansion-packs/bmad-2d-unity-game-dev/config.yaml +6 -0
  152. package/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +769 -0
  153. package/expansion-packs/bmad-2d-unity-game-dev/data/development-guidelines.md +586 -0
  154. package/expansion-packs/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +110 -0
  155. package/expansion-packs/bmad-2d-unity-game-dev/tasks/correct-course-game.md +141 -0
  156. package/expansion-packs/bmad-2d-unity-game-dev/tasks/create-game-story.md +184 -0
  157. package/expansion-packs/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +290 -0
  158. package/expansion-packs/bmad-2d-unity-game-dev/tasks/validate-game-story.md +200 -0
  159. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +1030 -0
  160. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +356 -0
  161. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +705 -0
  162. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +256 -0
  163. package/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +484 -0
  164. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +183 -0
  165. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +175 -0
  166. package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/README.md +9 -9
  167. package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/agents/infra-devops-platform.md +30 -18
  168. package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/checklists/infrastructure-checklist.md +1 -1
  169. package/expansion-packs/bmad-infrastructure-devops/config.yaml +9 -0
  170. package/expansion-packs/bmad-infrastructure-devops/data/bmad-kb.md +305 -0
  171. package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/tasks/review-infrastructure.md +4 -5
  172. package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/tasks/validate-infrastructure.md +4 -5
  173. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +424 -0
  174. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +629 -0
  175. package/package.json +74 -42
  176. package/prettier.config.mjs +32 -0
  177. package/release_notes.md +25 -0
  178. package/tools/bmad-npx-wrapper.js +13 -15
  179. package/tools/builders/web-builder.js +544 -15
  180. package/tools/bump-all-versions.js +115 -0
  181. package/tools/bump-expansion-version.js +90 -0
  182. package/tools/cli.js +65 -32
  183. package/tools/flattener/aggregate.js +76 -0
  184. package/tools/flattener/binary.js +80 -0
  185. package/tools/flattener/discovery.js +71 -0
  186. package/tools/flattener/files.js +35 -0
  187. package/tools/flattener/ignoreRules.js +176 -0
  188. package/tools/flattener/main.js +573 -0
  189. package/tools/flattener/projectRoot.js +206 -0
  190. package/tools/flattener/prompts.js +44 -0
  191. package/tools/flattener/stats.helpers.js +395 -0
  192. package/tools/flattener/stats.js +80 -0
  193. package/tools/flattener/test-matrix.js +413 -0
  194. package/tools/flattener/xml.js +88 -0
  195. package/tools/installer/README.md +3 -53
  196. package/tools/installer/bin/bmad.js +475 -90
  197. package/tools/installer/config/ide-agent-config.yaml +58 -0
  198. package/tools/installer/config/install.config.yaml +123 -0
  199. package/tools/installer/lib/config-loader.js +208 -40
  200. package/tools/installer/lib/file-manager.js +258 -55
  201. package/tools/installer/lib/ide-base-setup.js +228 -0
  202. package/tools/installer/lib/ide-setup.js +1265 -253
  203. package/tools/installer/lib/installer.js +1651 -310
  204. package/tools/installer/lib/memory-profiler.js +225 -0
  205. package/tools/installer/lib/module-manager.js +114 -0
  206. package/tools/installer/lib/resource-locator.js +308 -0
  207. package/tools/installer/package.json +25 -24
  208. package/tools/lib/dependency-resolver.js +44 -48
  209. package/tools/lib/yaml-utils.js +29 -0
  210. package/tools/md-assets/web-agent-startup-instructions.md +39 -0
  211. package/tools/preview-release-notes.js +66 -0
  212. package/tools/shared/bannerArt.js +105 -0
  213. package/tools/sync-installer-version.js +7 -9
  214. package/tools/update-expansion-version.js +53 -0
  215. package/tools/upgraders/v3-to-v4-upgrader.js +221 -320
  216. package/tools/version-bump.js +42 -27
  217. package/tools/yaml-format.js +57 -44
  218. package/.bmad-core/agent-teams/team-all.yml +0 -16
  219. package/.bmad-core/agent-teams/team-fullstack.yml +0 -26
  220. package/.bmad-core/agent-teams/team-no-ui.yml +0 -15
  221. package/.bmad-core/agents/analyst.md +0 -59
  222. package/.bmad-core/agents/architect.md +0 -66
  223. package/.bmad-core/agents/bmad-master.md +0 -104
  224. package/.bmad-core/agents/bmad-orchestrator.md +0 -81
  225. package/.bmad-core/agents/dev.md +0 -70
  226. package/.bmad-core/agents/pm.md +0 -59
  227. package/.bmad-core/agents/po.md +0 -60
  228. package/.bmad-core/agents/qa.md +0 -52
  229. package/.bmad-core/agents/sm.md +0 -55
  230. package/.bmad-core/agents/ux-expert.md +0 -66
  231. package/.bmad-core/data/bmad-kb.md +0 -47
  232. package/.bmad-core/schemas/agent-team-schema.yml +0 -153
  233. package/.bmad-core/tasks/advanced-elicitation.md +0 -92
  234. package/.bmad-core/tasks/brainstorming-techniques.md +0 -238
  235. package/.bmad-core/tasks/core-dump.md +0 -74
  236. package/.bmad-core/tasks/create-agent.md +0 -202
  237. package/.bmad-core/tasks/create-doc.md +0 -74
  238. package/.bmad-core/tasks/create-expansion-pack.md +0 -425
  239. package/.bmad-core/tasks/create-next-story.md +0 -206
  240. package/.bmad-core/tasks/create-team.md +0 -229
  241. package/.bmad-core/tasks/doc-migration-task.md +0 -143
  242. package/.bmad-core/tasks/generate-ai-frontend-prompt.md +0 -58
  243. package/.bmad-core/templates/agent-tmpl.md +0 -58
  244. package/.bmad-core/templates/architecture-tmpl.md +0 -771
  245. package/.bmad-core/templates/brownfield-architecture-tmpl.md +0 -542
  246. package/.bmad-core/templates/brownfield-prd-tmpl.md +0 -240
  247. package/.bmad-core/templates/competitor-analysis-tmpl.md +0 -289
  248. package/.bmad-core/templates/expansion-pack-plan-tmpl.md +0 -91
  249. package/.bmad-core/templates/front-end-architecture-tmpl.md +0 -173
  250. package/.bmad-core/templates/front-end-spec-tmpl.md +0 -411
  251. package/.bmad-core/templates/fullstack-architecture-tmpl.md +0 -1016
  252. package/.bmad-core/templates/market-research-tmpl.md +0 -261
  253. package/.bmad-core/templates/prd-tmpl.md +0 -200
  254. package/.bmad-core/templates/project-brief-tmpl.md +0 -228
  255. package/.bmad-core/templates/simple-project-prd-tmpl.md +0 -461
  256. package/.bmad-core/templates/story-tmpl.md +0 -61
  257. package/.bmad-core/templates/web-agent-startup-instructions-template.md +0 -39
  258. package/.bmad-core/utils/agent-switcher.ide.md +0 -112
  259. package/.bmad-core/utils/template-format.md +0 -26
  260. package/.bmad-core/utils/workflow-management.md +0 -224
  261. package/.bmad-core/web-bundles/agents/analyst.txt +0 -1684
  262. package/.bmad-core/web-bundles/agents/architect.txt +0 -3584
  263. package/.bmad-core/web-bundles/agents/bmad-master.txt +0 -9491
  264. package/.bmad-core/web-bundles/agents/bmad-orchestrator.txt +0 -1466
  265. package/.bmad-core/web-bundles/agents/dev.txt +0 -316
  266. package/.bmad-core/web-bundles/agents/qa.txt +0 -129
  267. package/.bmad-core/web-bundles/agents/sm.txt +0 -658
  268. package/.bmad-core/web-bundles/agents/ux-expert.txt +0 -1099
  269. package/.bmad-core/web-bundles/teams/team-all.txt +0 -10757
  270. package/.bmad-core/web-bundles/teams/team-fullstack.txt +0 -10109
  271. package/.bmad-core/web-bundles/teams/team-no-ui.txt +0 -8950
  272. package/.bmad-core/workflows/brownfield-fullstack.yml +0 -116
  273. package/.bmad-core/workflows/brownfield-service.yml +0 -117
  274. package/.bmad-core/workflows/brownfield-ui.yml +0 -127
  275. package/.bmad-core/workflows/greenfield-service.yml +0 -143
  276. package/.bmad-core/workflows/greenfield-ui.yml +0 -172
  277. package/.claude/commands/analyst.md +0 -63
  278. package/.claude/commands/architect.md +0 -70
  279. package/.claude/commands/bmad-master.md +0 -108
  280. package/.claude/commands/bmad-orchestrator.md +0 -85
  281. package/.claude/commands/dev.md +0 -74
  282. package/.claude/commands/pm.md +0 -63
  283. package/.claude/commands/po.md +0 -64
  284. package/.claude/commands/qa.md +0 -56
  285. package/.claude/commands/sm.md +0 -59
  286. package/.claude/commands/ux-expert.md +0 -70
  287. package/.cursor/rules/analyst.mdc +0 -77
  288. package/.cursor/rules/architect.mdc +0 -84
  289. package/.cursor/rules/bmad-master.mdc +0 -122
  290. package/.cursor/rules/bmad-orchestrator.mdc +0 -99
  291. package/.cursor/rules/dev.mdc +0 -88
  292. package/.cursor/rules/pm.mdc +0 -77
  293. package/.cursor/rules/po.mdc +0 -78
  294. package/.cursor/rules/qa.mdc +0 -70
  295. package/.cursor/rules/sm.mdc +0 -73
  296. package/.cursor/rules/ux-expert.mdc +0 -84
  297. package/.github/workflows/release.yml +0 -59
  298. package/.releaserc.json +0 -18
  299. package/.roo/.roomodes +0 -95
  300. package/.roo/README.md +0 -38
  301. package/.vscode/extensions.json +0 -6
  302. package/.windsurf/rules/analyst.md +0 -71
  303. package/.windsurf/rules/architect.md +0 -78
  304. package/.windsurf/rules/bmad-master.md +0 -116
  305. package/.windsurf/rules/bmad-orchestrator.md +0 -93
  306. package/.windsurf/rules/dev.md +0 -82
  307. package/.windsurf/rules/pm.md +0 -71
  308. package/.windsurf/rules/po.md +0 -72
  309. package/.windsurf/rules/qa.md +0 -64
  310. package/.windsurf/rules/sm.md +0 -67
  311. package/.windsurf/rules/ux-expert.md +0 -78
  312. package/docs/bmad-workflow-guide.md +0 -161
  313. package/docs/claude-code-guide.md +0 -119
  314. package/docs/cursor-guide.md +0 -127
  315. package/docs/roo-code-guide.md +0 -140
  316. package/docs/sample-output/simple-fullstack-greenfield/prd.md +0 -42
  317. package/docs/windsurf-guide.md +0 -127
  318. package/expansion-packs/infrastructure-devops/manifest.yml +0 -38
  319. package/expansion-packs/infrastructure-devops/templates/infrastructure-architecture-tmpl.md +0 -415
  320. package/expansion-packs/infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.md +0 -0
  321. package/tools/installer/config/install.config.yml +0 -139
  322. package/tools/installer/package-lock.json +0 -906
  323. package/tools/installer/templates/claude-commands.md +0 -7
  324. package/tools/installer/templates/cursor-rules.md +0 -22
  325. package/tools/installer/templates/windsurf-rules.md +0 -22
  326. package/tools/semantic-release-sync-installer.js +0 -31
  327. /package/{.bmad-core → bmad-core}/data/technical-preferences.md +0 -0
  328. /package/{.bmad-core → bmad-core}/tasks/brownfield-create-epic.md +0 -0
  329. /package/{.bmad-core → bmad-core}/tasks/brownfield-create-story.md +0 -0
@@ -0,0 +1,58 @@
1
+ # IDE-specific agent configurations
2
+ # This file defines agent-specific settings for different IDEs
3
+
4
+ # Roo Code file permissions
5
+ # Each agent can have restricted file access based on regex patterns
6
+ # If an agent is not listed here, it gets full edit access
7
+ roo-permissions:
8
+ # Core agents
9
+ analyst:
10
+ fileRegex: "\\.(md|txt)$"
11
+ description: "Documentation and text files"
12
+ pm:
13
+ fileRegex: "\\.(md|txt)$"
14
+ description: "Product documentation"
15
+ architect:
16
+ fileRegex: "\\.(md|txt|yml|yaml|json)$"
17
+ description: "Architecture docs and configs"
18
+ qa:
19
+ fileRegex: "\\.(test|spec)\\.(js|ts|jsx|tsx)$|\\.md$"
20
+ description: "Test files and documentation"
21
+ ux-expert:
22
+ fileRegex: "\\.(md|css|scss|html|jsx|tsx)$"
23
+ description: "Design-related files"
24
+ po:
25
+ fileRegex: "\\.(md|txt)$"
26
+ description: "Story and requirement docs"
27
+ sm:
28
+ fileRegex: "\\.(md|txt)$"
29
+ description: "Process and planning docs"
30
+ # Expansion pack agents
31
+ game-designer:
32
+ fileRegex: "\\.(md|txt|json|yaml|yml)$"
33
+ description: "Game design documents and configs"
34
+ game-sm:
35
+ fileRegex: "\\.(md|txt)$"
36
+ description: "Game project management docs"
37
+
38
+ # Cline agent ordering
39
+ # Lower numbers appear first in the list
40
+ # Agents not listed get order 99
41
+ cline-order:
42
+ # Core agents
43
+ bmad-master: 1
44
+ bmad-orchestrator: 2
45
+ pm: 3
46
+ analyst: 4
47
+ architect: 5
48
+ po: 6
49
+ sm: 7
50
+ dev: 8
51
+ qa: 9
52
+ ux-expert: 10
53
+ # Expansion pack agents
54
+ bmad-the-creator: 11
55
+ game-designer: 12
56
+ game-developer: 13
57
+ game-sm: 14
58
+ infra-devops-platform: 15
@@ -0,0 +1,123 @@
1
+ installation-options:
2
+ full:
3
+ name: Complete BMad Core
4
+ description: Copy the entire .bmad-core folder with all agents, templates, and tools
5
+ action: copy-folder
6
+ source: bmad-core
7
+ single-agent:
8
+ name: Single Agent
9
+ description: Select and install a single agent with its dependencies
10
+ action: copy-agent
11
+ ide-configurations:
12
+ cursor:
13
+ name: Cursor
14
+ rule-dir: .cursor/rules/bmad/
15
+ format: multi-file
16
+ command-suffix: .mdc
17
+ instructions: |
18
+ # To use BMad agents in Cursor:
19
+ # 1. Press Ctrl+L (Cmd+L on Mac) to open the chat
20
+ # 2. Type @agent-name (e.g., "@dev", "@pm", "@architect")
21
+ # 3. The agent will adopt that persona for the conversation
22
+ claude-code:
23
+ name: Claude Code
24
+ rule-dir: .claude/commands/BMad/
25
+ format: multi-file
26
+ command-suffix: .md
27
+ instructions: |
28
+ # To use BMad agents in Claude Code:
29
+ # 1. Type /agent-name (e.g., "/dev", "/pm", "/architect")
30
+ # 2. Claude will switch to that agent's persona
31
+ crush:
32
+ name: Crush
33
+ rule-dir: .crush/commands/BMad/
34
+ format: multi-file
35
+ command-suffix: .md
36
+ instructions: |
37
+ # To use BMad agents in Crush:
38
+ # 1. Press CTRL + P and press TAB
39
+ # 2. Select agent or task
40
+ # 3. Crush will switch to that agent's persona / task
41
+ windsurf:
42
+ name: Windsurf
43
+ rule-dir: .windsurf/workflows/
44
+ format: multi-file
45
+ command-suffix: .md
46
+ instructions: |
47
+ # To use BMad agents in Windsurf:
48
+ # 1. Type /agent-name (e.g., "/dev", "/pm")
49
+ # 2. Windsurf will adopt that agent's persona
50
+ trae:
51
+ name: Trae
52
+ rule-dir: .trae/rules/
53
+ format: multi-file
54
+ command-suffix: .md
55
+ instructions: |
56
+ # To use BMad agents in Trae:
57
+ # 1. Type @agent-name (e.g., "@dev", "@pm", "@architect")
58
+ # 2. Trae will adopt that agent's persona
59
+ roo:
60
+ name: Roo Code
61
+ format: custom-modes
62
+ file: .roomodes
63
+ instructions: |
64
+ # To use BMad agents in Roo Code:
65
+ # 1. Open the mode selector (usually in the status bar)
66
+ # 2. Select any bmad-{agent} mode (e.g., "bmad-dev", "bmad-pm")
67
+ # 3. The AI will adopt that agent's full personality and capabilities
68
+ cline:
69
+ name: Cline
70
+ rule-dir: .clinerules/
71
+ format: multi-file
72
+ command-suffix: .md
73
+ instructions: |
74
+ # To use BMad agents in Cline:
75
+ # 1. Open the Cline chat panel in VS Code
76
+ # 2. Type @agent-name (e.g., "@dev", "@pm", "@architect")
77
+ # 3. The agent will adopt that persona for the conversation
78
+ # 4. Rules are stored in .clinerules/ directory in your project
79
+ gemini:
80
+ name: Gemini CLI
81
+ rule-dir: .gemini/bmad-method/
82
+ format: single-file
83
+ command-suffix: .md
84
+ instructions: |
85
+ # To use BMad agents with the Gemini CLI:
86
+ # 1. The installer creates a .gemini/bmad-method/ directory in your project.
87
+ # 2. It concatenates all agent files into a single GEMINI.md file.
88
+ # 3. Simply mention the agent in your prompt (e.g., "As *dev, ...").
89
+ # 4. The Gemini CLI will automatically have the context for that agent.
90
+ github-copilot:
91
+ name: Github Copilot
92
+ rule-dir: .github/chatmodes/
93
+ format: multi-file
94
+ command-suffix: .md
95
+ instructions: |
96
+ # To use BMad agents with Github Copilot:
97
+ # 1. The installer creates a .github/chatmodes/ directory in your project
98
+ # 2. Open the Chat view (`⌃⌘I` on Mac, `Ctrl+Alt+I` on Windows/Linux) and select **Agent** from the chat mode selector.
99
+ # 3. The agent will adopt that persona for the conversation
100
+ # 4. Requires VS Code 1.101+ with `chat.agent.enabled: true` in settings
101
+ # 5. Agent files are stored in .github/chatmodes/
102
+ # 6. Use `*help` to see available commands and agents
103
+ kilo:
104
+ name: Kilo Code
105
+ format: custom-modes
106
+ file: .kilocodemodes
107
+ instructions: |
108
+ # To use BMAD agents in Kilo Code:
109
+ # 1. Open the mode selector in VSCode
110
+ # 2. Select a bmad-{agent} mode (e.g. "bmad-dev")
111
+ # 3. The AI adopts that agent's persona and capabilities
112
+
113
+ qwen-code:
114
+ name: Qwen Code
115
+ rule-dir: .qwen/bmad-method/
116
+ format: single-file
117
+ command-suffix: .md
118
+ instructions: |
119
+ # To use BMad agents with Qwen Code:
120
+ # 1. The installer creates a .qwen/bmad-method/ directory in your project.
121
+ # 2. It concatenates all agent files into a single QWEN.md file.
122
+ # 3. Simply mention the agent in your prompt (e.g., "As *dev, ...").
123
+ # 4. The Qwen Code CLI will automatically have the context for that agent.
@@ -1,16 +1,17 @@
1
1
  const fs = require('fs-extra');
2
- const path = require('path');
2
+ const path = require('node:path');
3
3
  const yaml = require('js-yaml');
4
+ const { extractYamlFromAgent } = require('../../lib/yaml-utils');
4
5
 
5
6
  class ConfigLoader {
6
7
  constructor() {
7
- this.configPath = path.join(__dirname, '..', 'config', 'install.config.yml');
8
+ this.configPath = path.join(__dirname, '..', 'config', 'install.config.yaml');
8
9
  this.config = null;
9
10
  }
10
11
 
11
12
  async load() {
12
13
  if (this.config) return this.config;
13
-
14
+
14
15
  try {
15
16
  const configContent = await fs.readFile(this.configPath, 'utf8');
16
17
  this.config = yaml.load(configContent);
@@ -26,48 +27,134 @@ class ConfigLoader {
26
27
  }
27
28
 
28
29
  async getAvailableAgents() {
29
- const config = await this.load();
30
- return config['available-agents'] || [];
30
+ const agentsDir = path.join(this.getBmadCorePath(), 'agents');
31
+
32
+ try {
33
+ const entries = await fs.readdir(agentsDir, { withFileTypes: true });
34
+ const agents = [];
35
+
36
+ for (const entry of entries) {
37
+ if (entry.isFile() && entry.name.endsWith('.md')) {
38
+ const agentPath = path.join(agentsDir, entry.name);
39
+ const agentId = path.basename(entry.name, '.md');
40
+
41
+ try {
42
+ const agentContent = await fs.readFile(agentPath, 'utf8');
43
+
44
+ // Extract YAML block from agent file
45
+ const yamlContentText = extractYamlFromAgent(agentContent);
46
+ if (yamlContentText) {
47
+ const yamlContent = yaml.load(yamlContentText);
48
+ const agentConfig = yamlContent.agent || {};
49
+
50
+ agents.push({
51
+ id: agentId,
52
+ name: agentConfig.title || agentConfig.name || agentId,
53
+ file: `bmad-core/agents/${entry.name}`,
54
+ description: agentConfig.whenToUse || 'No description available',
55
+ });
56
+ }
57
+ } catch (error) {
58
+ console.warn(`Failed to read agent ${entry.name}: ${error.message}`);
59
+ }
60
+ }
61
+ }
62
+
63
+ // Sort agents by name for consistent display
64
+ agents.sort((a, b) => a.name.localeCompare(b.name));
65
+
66
+ return agents;
67
+ } catch (error) {
68
+ console.warn(`Failed to read agents directory: ${error.message}`);
69
+ return [];
70
+ }
71
+ }
72
+
73
+ async getAvailableExpansionPacks() {
74
+ const expansionPacksDir = path.join(this.getBmadCorePath(), '..', 'expansion-packs');
75
+
76
+ try {
77
+ const entries = await fs.readdir(expansionPacksDir, { withFileTypes: true });
78
+ const expansionPacks = [];
79
+
80
+ for (const entry of entries) {
81
+ if (entry.isDirectory() && !entry.name.startsWith('.')) {
82
+ const packPath = path.join(expansionPacksDir, entry.name);
83
+ const configPath = path.join(packPath, 'config.yaml');
84
+
85
+ try {
86
+ // Read config.yaml
87
+ const configContent = await fs.readFile(configPath, 'utf8');
88
+ const config = yaml.load(configContent);
89
+
90
+ expansionPacks.push({
91
+ id: entry.name,
92
+ name: config.name || entry.name,
93
+ description:
94
+ config['short-title'] || config.description || 'No description available',
95
+ fullDescription:
96
+ config.description || config['short-title'] || 'No description available',
97
+ version: config.version || '1.0.0',
98
+ author: config.author || 'BMad Team',
99
+ packPath: packPath,
100
+ dependencies: config.dependencies?.agents || [],
101
+ });
102
+ } catch (error) {
103
+ // Fallback if config.yaml doesn't exist or can't be read
104
+ console.warn(
105
+ `Failed to read config for expansion pack ${entry.name}: ${error.message}`,
106
+ );
107
+
108
+ // Try to derive info from directory name as fallback
109
+ const name = entry.name
110
+ .split('-')
111
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
112
+ .join(' ');
113
+
114
+ expansionPacks.push({
115
+ id: entry.name,
116
+ name: name,
117
+ description: 'No description available',
118
+ fullDescription: 'No description available',
119
+ version: '1.0.0',
120
+ author: 'BMad Team',
121
+ packPath: packPath,
122
+ dependencies: [],
123
+ });
124
+ }
125
+ }
126
+ }
127
+
128
+ return expansionPacks;
129
+ } catch (error) {
130
+ console.warn(`Failed to read expansion packs directory: ${error.message}`);
131
+ return [];
132
+ }
31
133
  }
32
134
 
33
135
  async getAgentDependencies(agentId) {
34
136
  // Use DependencyResolver to dynamically parse agent dependencies
35
137
  const DependencyResolver = require('../../lib/dependency-resolver');
36
138
  const resolver = new DependencyResolver(path.join(__dirname, '..', '..', '..'));
37
-
38
- try {
39
- const agentDeps = await resolver.resolveAgentDependencies(agentId);
40
-
41
- // Convert to flat list of file paths
42
- const depPaths = [];
43
-
44
- // Add core files
45
- const config = await this.load();
46
- const coreFiles = config['agent-dependencies']?.['core-files'] || [];
47
- depPaths.push(...coreFiles);
48
-
49
- // Add agent file itself is already handled by installer
50
-
51
- // Add all resolved resources
52
- for (const resource of agentDeps.resources) {
53
- const filePath = `.bmad-core/${resource.type}/${resource.id}.md`;
54
- if (!depPaths.includes(filePath)) {
55
- depPaths.push(filePath);
56
- }
139
+
140
+ const agentDeps = await resolver.resolveAgentDependencies(agentId);
141
+
142
+ // Convert to flat list of file paths
143
+ const depPaths = [];
144
+
145
+ // Core files and utilities are included automatically by DependencyResolver
146
+
147
+ // Add agent file itself is already handled by installer
148
+
149
+ // Add all resolved resources
150
+ for (const resource of agentDeps.resources) {
151
+ const filePath = `.bmad-core/${resource.type}/${resource.id}.md`;
152
+ if (!depPaths.includes(filePath)) {
153
+ depPaths.push(filePath);
57
154
  }
58
-
59
- return depPaths;
60
- } catch (error) {
61
- console.warn(`Failed to dynamically resolve dependencies for ${agentId}: ${error.message}`);
62
-
63
- // Fall back to static config
64
- const config = await this.load();
65
- const dependencies = config['agent-dependencies'] || {};
66
- const coreFiles = dependencies['core-files'] || [];
67
- const agentDeps = dependencies[agentId] || [];
68
-
69
- return [...coreFiles, ...agentDeps];
70
155
  }
156
+
157
+ return depPaths;
71
158
  }
72
159
 
73
160
  async getIdeConfiguration(ide) {
@@ -77,13 +164,94 @@ class ConfigLoader {
77
164
  }
78
165
 
79
166
  getBmadCorePath() {
80
- // Get the path to .bmad-core relative to the installer (now under tools)
81
- return path.join(__dirname, '..', '..', '..', '.bmad-core');
167
+ // Get the path to bmad-core relative to the installer (now under tools)
168
+ return path.join(__dirname, '..', '..', '..', 'bmad-core');
169
+ }
170
+
171
+ getDistPath() {
172
+ // Get the path to dist directory relative to the installer
173
+ return path.join(__dirname, '..', '..', '..', 'dist');
82
174
  }
83
175
 
84
176
  getAgentPath(agentId) {
85
177
  return path.join(this.getBmadCorePath(), 'agents', `${agentId}.md`);
86
178
  }
179
+
180
+ async getAvailableTeams() {
181
+ const teamsDir = path.join(this.getBmadCorePath(), 'agent-teams');
182
+
183
+ try {
184
+ const entries = await fs.readdir(teamsDir, { withFileTypes: true });
185
+ const teams = [];
186
+
187
+ for (const entry of entries) {
188
+ if (entry.isFile() && entry.name.endsWith('.yaml')) {
189
+ const teamPath = path.join(teamsDir, entry.name);
190
+
191
+ try {
192
+ const teamContent = await fs.readFile(teamPath, 'utf8');
193
+ const teamConfig = yaml.load(teamContent);
194
+
195
+ if (teamConfig.bundle) {
196
+ teams.push({
197
+ id: path.basename(entry.name, '.yaml'),
198
+ name: teamConfig.bundle.name || entry.name,
199
+ description: teamConfig.bundle.description || 'Team configuration',
200
+ icon: teamConfig.bundle.icon || '📋',
201
+ });
202
+ }
203
+ } catch (error) {
204
+ console.warn(`Warning: Could not load team config ${entry.name}: ${error.message}`);
205
+ }
206
+ }
207
+ }
208
+
209
+ return teams;
210
+ } catch (error) {
211
+ console.warn(`Warning: Could not scan teams directory: ${error.message}`);
212
+ return [];
213
+ }
214
+ }
215
+
216
+ getTeamPath(teamId) {
217
+ return path.join(this.getBmadCorePath(), 'agent-teams', `${teamId}.yaml`);
218
+ }
219
+
220
+ async getTeamDependencies(teamId) {
221
+ // Use DependencyResolver to dynamically parse team dependencies
222
+ const DependencyResolver = require('../../lib/dependency-resolver');
223
+ const resolver = new DependencyResolver(path.join(__dirname, '..', '..', '..'));
224
+
225
+ try {
226
+ const teamDeps = await resolver.resolveTeamDependencies(teamId);
227
+
228
+ // Convert to flat list of file paths
229
+ const depPaths = [];
230
+
231
+ // Add team config file
232
+ depPaths.push(`.bmad-core/agent-teams/${teamId}.yaml`);
233
+
234
+ // Add all agents
235
+ for (const agent of teamDeps.agents) {
236
+ const filePath = `.bmad-core/agents/${agent.id}.md`;
237
+ if (!depPaths.includes(filePath)) {
238
+ depPaths.push(filePath);
239
+ }
240
+ }
241
+
242
+ // Add all resolved resources
243
+ for (const resource of teamDeps.resources) {
244
+ const filePath = `.bmad-core/${resource.type}/${resource.id}.${resource.type === 'workflows' ? 'yaml' : 'md'}`;
245
+ if (!depPaths.includes(filePath)) {
246
+ depPaths.push(filePath);
247
+ }
248
+ }
249
+
250
+ return depPaths;
251
+ } catch (error) {
252
+ throw new Error(`Failed to resolve team dependencies for ${teamId}: ${error.message}`);
253
+ }
254
+ }
87
255
  }
88
256
 
89
- module.exports = new ConfigLoader();
257
+ module.exports = new ConfigLoader();