bmad-method 4.27.5 → 5.0.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 (274) hide show
  1. package/.bmad-core/agent-teams/team-all.yml +16 -0
  2. package/.bmad-core/agent-teams/team-fullstack.yml +26 -0
  3. package/.bmad-core/agent-teams/team-no-ui.yml +15 -0
  4. package/{bmad-core → .bmad-core}/agents/analyst.md +23 -30
  5. package/.bmad-core/agents/architect.md +66 -0
  6. package/.bmad-core/agents/bmad-master.md +104 -0
  7. package/.bmad-core/agents/bmad-orchestrator.md +81 -0
  8. package/.bmad-core/agents/dev.md +70 -0
  9. package/{bmad-core → .bmad-core}/agents/pm.md +24 -25
  10. package/{bmad-core → .bmad-core}/agents/po.md +24 -28
  11. package/.bmad-core/agents/qa.md +52 -0
  12. package/.bmad-core/agents/sm.md +55 -0
  13. package/.bmad-core/agents/ux-expert.md +66 -0
  14. package/{bmad-core → .bmad-core}/checklists/change-checklist.md +2 -2
  15. package/{bmad-core → .bmad-core}/checklists/story-draft-checklist.md +1 -1
  16. package/.bmad-core/data/bmad-kb.md +47 -0
  17. package/.bmad-core/schemas/agent-team-schema.yml +153 -0
  18. package/.bmad-core/tasks/advanced-elicitation.md +92 -0
  19. package/.bmad-core/tasks/brainstorming-techniques.md +238 -0
  20. package/.bmad-core/tasks/core-dump.md +74 -0
  21. package/{expansion-packs/bmad-creator-tools → .bmad-core}/tasks/create-agent.md +11 -9
  22. package/.bmad-core/tasks/create-doc.md +74 -0
  23. package/.bmad-core/tasks/create-expansion-pack.md +425 -0
  24. package/.bmad-core/tasks/create-next-story.md +206 -0
  25. package/.bmad-core/tasks/create-team.md +229 -0
  26. package/{bmad-core → .bmad-core}/tasks/doc-migration-task.md +9 -9
  27. package/{common → .bmad-core}/tasks/execute-checklist.md +6 -2
  28. package/.bmad-core/tasks/generate-ai-frontend-prompt.md +58 -0
  29. package/{bmad-core → .bmad-core}/tasks/index-docs.md +7 -3
  30. package/{bmad-core → .bmad-core}/tasks/shard-doc.md +7 -25
  31. package/.bmad-core/templates/agent-tmpl.md +58 -0
  32. package/.bmad-core/templates/architecture-tmpl.md +771 -0
  33. package/.bmad-core/templates/brownfield-architecture-tmpl.md +542 -0
  34. package/.bmad-core/templates/brownfield-prd-tmpl.md +240 -0
  35. package/.bmad-core/templates/competitor-analysis-tmpl.md +289 -0
  36. package/.bmad-core/templates/expansion-pack-plan-tmpl.md +91 -0
  37. package/.bmad-core/templates/front-end-architecture-tmpl.md +173 -0
  38. package/.bmad-core/templates/front-end-spec-tmpl.md +411 -0
  39. package/.bmad-core/templates/fullstack-architecture-tmpl.md +1016 -0
  40. package/.bmad-core/templates/market-research-tmpl.md +261 -0
  41. package/.bmad-core/templates/prd-tmpl.md +200 -0
  42. package/.bmad-core/templates/project-brief-tmpl.md +228 -0
  43. package/.bmad-core/templates/simple-project-prd-tmpl.md +461 -0
  44. package/.bmad-core/templates/story-tmpl.md +61 -0
  45. package/.bmad-core/templates/web-agent-startup-instructions-template.md +39 -0
  46. package/.bmad-core/utils/agent-switcher.ide.md +112 -0
  47. package/.bmad-core/utils/template-format.md +26 -0
  48. package/.bmad-core/utils/workflow-management.md +224 -0
  49. package/.bmad-core/web-bundles/agents/analyst.txt +1684 -0
  50. package/.bmad-core/web-bundles/agents/architect.txt +3584 -0
  51. package/.bmad-core/web-bundles/agents/bmad-master.txt +9491 -0
  52. package/.bmad-core/web-bundles/agents/bmad-orchestrator.txt +1466 -0
  53. package/{dist → .bmad-core/web-bundles}/agents/dev.txt +71 -179
  54. package/{dist → .bmad-core/web-bundles}/agents/pm.txt +1058 -624
  55. package/{dist → .bmad-core/web-bundles}/agents/po.txt +138 -337
  56. package/.bmad-core/web-bundles/agents/qa.txt +129 -0
  57. package/.bmad-core/web-bundles/agents/sm.txt +658 -0
  58. package/.bmad-core/web-bundles/agents/ux-expert.txt +1099 -0
  59. package/.bmad-core/web-bundles/teams/team-all.txt +10757 -0
  60. package/.bmad-core/web-bundles/teams/team-fullstack.txt +10109 -0
  61. package/.bmad-core/web-bundles/teams/team-no-ui.txt +8950 -0
  62. package/.bmad-core/workflows/brownfield-fullstack.yml +116 -0
  63. package/.bmad-core/workflows/brownfield-service.yml +117 -0
  64. package/.bmad-core/workflows/brownfield-ui.yml +127 -0
  65. package/{bmad-core/workflows/greenfield-fullstack.yaml → .bmad-core/workflows/greenfield-fullstack.yml} +77 -140
  66. package/.bmad-core/workflows/greenfield-service.yml +143 -0
  67. package/.bmad-core/workflows/greenfield-ui.yml +172 -0
  68. package/.claude/commands/analyst.md +63 -0
  69. package/.claude/commands/architect.md +70 -0
  70. package/.claude/commands/bmad-master.md +108 -0
  71. package/.claude/commands/bmad-orchestrator.md +85 -0
  72. package/.claude/commands/dev.md +74 -0
  73. package/.claude/commands/pm.md +63 -0
  74. package/.claude/commands/po.md +64 -0
  75. package/.claude/commands/qa.md +56 -0
  76. package/.claude/commands/sm.md +59 -0
  77. package/.claude/commands/ux-expert.md +70 -0
  78. package/.cursor/rules/analyst.mdc +77 -0
  79. package/.cursor/rules/architect.mdc +84 -0
  80. package/.cursor/rules/bmad-master.mdc +122 -0
  81. package/.cursor/rules/bmad-orchestrator.mdc +99 -0
  82. package/.cursor/rules/dev.mdc +88 -0
  83. package/.cursor/rules/pm.mdc +77 -0
  84. package/.cursor/rules/po.mdc +78 -0
  85. package/.cursor/rules/qa.mdc +70 -0
  86. package/.cursor/rules/sm.mdc +73 -0
  87. package/.cursor/rules/ux-expert.mdc +84 -0
  88. package/.roo/.roomodes +95 -0
  89. package/.roo/README.md +38 -0
  90. package/.vscode/extensions.json +6 -0
  91. package/.vscode/settings.json +75 -49
  92. package/.windsurf/rules/analyst.md +71 -0
  93. package/.windsurf/rules/architect.md +78 -0
  94. package/.windsurf/rules/bmad-master.md +116 -0
  95. package/.windsurf/rules/bmad-orchestrator.md +93 -0
  96. package/.windsurf/rules/dev.md +82 -0
  97. package/.windsurf/rules/pm.md +71 -0
  98. package/.windsurf/rules/po.md +72 -0
  99. package/.windsurf/rules/qa.md +64 -0
  100. package/.windsurf/rules/sm.md +67 -0
  101. package/.windsurf/rules/ux-expert.md +78 -0
  102. package/CHANGELOG.md +16 -452
  103. package/CONTRIBUTING.md +5 -168
  104. package/LICENSE +1 -1
  105. package/README.md +230 -77
  106. package/docs/bmad-workflow-guide.md +15 -19
  107. package/docs/claude-code-guide.md +119 -0
  108. package/docs/cursor-guide.md +127 -0
  109. package/docs/roo-code-guide.md +140 -0
  110. package/docs/sample-output/simple-fullstack-greenfield/prd.md +42 -0
  111. package/docs/versioning-and-releases.md +16 -8
  112. package/docs/versions.md +5 -4
  113. package/docs/windsurf-guide.md +127 -0
  114. package/expansion-packs/README.md +112 -2
  115. package/expansion-packs/{bmad-infrastructure-devops → infrastructure-devops}/README.md +9 -9
  116. package/expansion-packs/{bmad-infrastructure-devops → infrastructure-devops}/agents/infra-devops-platform.md +15 -15
  117. package/expansion-packs/{bmad-infrastructure-devops → infrastructure-devops}/checklists/infrastructure-checklist.md +1 -1
  118. package/expansion-packs/infrastructure-devops/manifest.yml +38 -0
  119. package/expansion-packs/{bmad-infrastructure-devops → infrastructure-devops}/tasks/review-infrastructure.md +4 -4
  120. package/expansion-packs/{bmad-infrastructure-devops → infrastructure-devops}/tasks/validate-infrastructure.md +4 -4
  121. package/expansion-packs/infrastructure-devops/templates/infrastructure-architecture-tmpl.md +415 -0
  122. package/expansion-packs/infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.md +0 -0
  123. package/package.json +11 -19
  124. package/tools/bmad-npx-wrapper.js +1 -1
  125. package/tools/builders/web-builder.js +28 -563
  126. package/tools/cli.js +22 -55
  127. package/tools/installer/README.md +53 -3
  128. package/tools/installer/bin/bmad.js +56 -294
  129. package/tools/installer/config/install.config.yml +139 -0
  130. package/tools/installer/lib/config-loader.js +34 -198
  131. package/tools/installer/lib/file-manager.js +5 -123
  132. package/tools/installer/lib/ide-setup.js +189 -545
  133. package/tools/installer/lib/installer.js +55 -1136
  134. package/tools/installer/package-lock.json +3 -3
  135. package/tools/installer/package.json +4 -4
  136. package/tools/installer/templates/claude-commands.md +7 -0
  137. package/tools/installer/templates/cursor-rules.md +22 -0
  138. package/tools/installer/templates/windsurf-rules.md +22 -0
  139. package/tools/lib/dependency-resolver.js +22 -22
  140. package/tools/upgraders/v3-to-v4-upgrader.js +43 -35
  141. package/tools/version-bump.js +1 -1
  142. package/tools/yaml-format.js +2 -2
  143. package/.github/FUNDING.yaml +0 -15
  144. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -32
  145. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -22
  146. package/.prettierignore +0 -21
  147. package/.prettierrc +0 -23
  148. package/bmad-core/agent-teams/team-all.yaml +0 -14
  149. package/bmad-core/agent-teams/team-fullstack.yaml +0 -18
  150. package/bmad-core/agent-teams/team-ide-minimal.yaml +0 -10
  151. package/bmad-core/agent-teams/team-no-ui.yaml +0 -13
  152. package/bmad-core/agents/architect.md +0 -63
  153. package/bmad-core/agents/bmad-master.md +0 -110
  154. package/bmad-core/agents/bmad-orchestrator.md +0 -140
  155. package/bmad-core/agents/dev.md +0 -57
  156. package/bmad-core/agents/qa.md +0 -55
  157. package/bmad-core/agents/sm.md +0 -46
  158. package/bmad-core/agents/ux-expert.md +0 -54
  159. package/bmad-core/core-config.yaml +0 -25
  160. package/bmad-core/data/bmad-kb.md +0 -803
  161. package/bmad-core/data/brainstorming-techniques.md +0 -36
  162. package/bmad-core/data/elicitation-methods.md +0 -134
  163. package/bmad-core/tasks/advanced-elicitation.md +0 -117
  164. package/bmad-core/tasks/create-brownfield-story.md +0 -355
  165. package/bmad-core/tasks/create-next-story.md +0 -114
  166. package/bmad-core/tasks/create-workflow-plan.md +0 -289
  167. package/bmad-core/tasks/document-project.md +0 -317
  168. package/bmad-core/tasks/facilitate-brainstorming-session.md +0 -136
  169. package/bmad-core/tasks/generate-ai-frontend-prompt.md +0 -51
  170. package/bmad-core/tasks/kb-mode-interaction.md +0 -70
  171. package/bmad-core/tasks/review-story.md +0 -145
  172. package/bmad-core/tasks/update-workflow-plan.md +0 -248
  173. package/bmad-core/tasks/validate-next-story.md +0 -134
  174. package/bmad-core/templates/architecture-tmpl.yaml +0 -650
  175. package/bmad-core/templates/brainstorming-output-tmpl.yaml +0 -156
  176. package/bmad-core/templates/brownfield-architecture-tmpl.yaml +0 -476
  177. package/bmad-core/templates/brownfield-prd-tmpl.yaml +0 -280
  178. package/bmad-core/templates/competitor-analysis-tmpl.yaml +0 -293
  179. package/bmad-core/templates/front-end-architecture-tmpl.yaml +0 -206
  180. package/bmad-core/templates/front-end-spec-tmpl.yaml +0 -349
  181. package/bmad-core/templates/fullstack-architecture-tmpl.yaml +0 -805
  182. package/bmad-core/templates/market-research-tmpl.yaml +0 -252
  183. package/bmad-core/templates/prd-tmpl.yaml +0 -202
  184. package/bmad-core/templates/project-brief-tmpl.yaml +0 -221
  185. package/bmad-core/templates/story-tmpl.yaml +0 -137
  186. package/bmad-core/utils/plan-management.md +0 -219
  187. package/bmad-core/workflows/brownfield-fullstack.yaml +0 -297
  188. package/bmad-core/workflows/brownfield-service.yaml +0 -187
  189. package/bmad-core/workflows/brownfield-ui.yaml +0 -197
  190. package/bmad-core/workflows/greenfield-service.yaml +0 -206
  191. package/bmad-core/workflows/greenfield-ui.yaml +0 -235
  192. package/common/tasks/create-doc.md +0 -79
  193. package/common/utils/bmad-doc-template.md +0 -325
  194. package/common/utils/workflow-management.md +0 -69
  195. package/dist/agents/analyst.txt +0 -2849
  196. package/dist/agents/architect.txt +0 -3505
  197. package/dist/agents/bmad-master.txt +0 -9588
  198. package/dist/agents/bmad-orchestrator.txt +0 -2232
  199. package/dist/agents/qa.txt +0 -388
  200. package/dist/agents/sm.txt +0 -673
  201. package/dist/agents/ux-expert.txt +0 -987
  202. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +0 -2401
  203. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +0 -1635
  204. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +0 -825
  205. package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +0 -11730
  206. package/dist/expansion-packs/bmad-creator-tools/agents/bmad-the-creator.txt +0 -2023
  207. package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +0 -2052
  208. package/dist/teams/team-all.txt +0 -11799
  209. package/dist/teams/team-fullstack.txt +0 -11129
  210. package/dist/teams/team-ide-minimal.txt +0 -4573
  211. package/dist/teams/team-no-ui.txt +0 -9684
  212. package/docs/GUIDING-PRINCIPLES.md +0 -91
  213. package/docs/agentic-tools/claude-code-guide.md +0 -19
  214. package/docs/agentic-tools/cline-guide.md +0 -16
  215. package/docs/agentic-tools/cursor-guide.md +0 -14
  216. package/docs/agentic-tools/gemini-cli-guide.md +0 -32
  217. package/docs/agentic-tools/github-copilot-guide.md +0 -42
  218. package/docs/agentic-tools/roo-code-guide.md +0 -15
  219. package/docs/agentic-tools/trae-guide.md +0 -14
  220. package/docs/agentic-tools/windsurf-guide.md +0 -14
  221. package/docs/core-architecture.md +0 -219
  222. package/docs/expansion-packs.md +0 -280
  223. package/docs/how-to-contribute-with-pull-requests.md +0 -158
  224. package/docs/template-markup-references.md +0 -86
  225. package/docs/user-guide.md +0 -1142
  226. package/docs/working-in-the-brownfield.md +0 -361
  227. package/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +0 -13
  228. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +0 -60
  229. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +0 -68
  230. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +0 -53
  231. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +0 -201
  232. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +0 -160
  233. package/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +0 -7
  234. package/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +0 -254
  235. package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +0 -651
  236. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +0 -111
  237. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md +0 -216
  238. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +0 -308
  239. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +0 -613
  240. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +0 -356
  241. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +0 -343
  242. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +0 -253
  243. package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +0 -484
  244. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +0 -183
  245. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +0 -175
  246. package/expansion-packs/bmad-creator-tools/README.md +0 -8
  247. package/expansion-packs/bmad-creator-tools/agents/bmad-the-creator.md +0 -55
  248. package/expansion-packs/bmad-creator-tools/config.yaml +0 -5
  249. package/expansion-packs/bmad-creator-tools/tasks/generate-expansion-pack.md +0 -1020
  250. package/expansion-packs/bmad-creator-tools/templates/agent-teams-tmpl.yaml +0 -178
  251. package/expansion-packs/bmad-creator-tools/templates/agent-tmpl.yaml +0 -154
  252. package/expansion-packs/bmad-creator-tools/templates/expansion-pack-plan-tmpl.yaml +0 -120
  253. package/expansion-packs/bmad-infrastructure-devops/config.yaml +0 -8
  254. package/expansion-packs/bmad-infrastructure-devops/data/bmad-kb.md +0 -308
  255. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +0 -424
  256. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +0 -629
  257. package/tools/bump-all-versions.js +0 -107
  258. package/tools/bump-core-version.js +0 -57
  259. package/tools/bump-expansion-version.js +0 -78
  260. package/tools/installer/config/ide-agent-config.yaml +0 -58
  261. package/tools/installer/config/install.config.yaml +0 -91
  262. package/tools/lib/yaml-utils.js +0 -29
  263. package/tools/md-assets/web-agent-startup-instructions.md +0 -39
  264. package/tools/update-expansion-version.js +0 -54
  265. /package/{bmad-core → .bmad-core}/checklists/architect-checklist.md +0 -0
  266. /package/{bmad-core → .bmad-core}/checklists/pm-checklist.md +0 -0
  267. /package/{bmad-core → .bmad-core}/checklists/po-master-checklist.md +0 -0
  268. /package/{bmad-core → .bmad-core}/checklists/story-dod-checklist.md +0 -0
  269. /package/{bmad-core → .bmad-core}/data/technical-preferences.md +0 -0
  270. /package/{bmad-core → .bmad-core}/tasks/brownfield-create-epic.md +0 -0
  271. /package/{bmad-core → .bmad-core}/tasks/brownfield-create-story.md +0 -0
  272. /package/{bmad-core → .bmad-core}/tasks/correct-course.md +0 -0
  273. /package/{bmad-core → .bmad-core}/tasks/create-deep-research-prompt.md +0 -0
  274. /package/.github/workflows/{release.yaml → release.yml} +0 -0
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "bmad-method",
3
- "version": "4.3.0",
3
+ "version": "4.0.1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "bmad-method",
9
- "version": "4.3.0",
9
+ "version": "4.0.1",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "chalk": "^5.4.1",
@@ -21,7 +21,7 @@
21
21
  "bmad-method": "bin/bmad.js"
22
22
  },
23
23
  "engines": {
24
- "node": ">=20.0.0"
24
+ "node": ">=14.0.0"
25
25
  }
26
26
  },
27
27
  "node_modules/@inquirer/checkbox": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bmad-method",
3
- "version": "4.27.5",
4
- "description": "BMad Method installer - AI-powered Agile development framework",
3
+ "version": "5.0.0",
4
+ "description": "BMAD Method installer - AI-powered Agile development framework",
5
5
  "main": "lib/installer.js",
6
6
  "bin": {
7
7
  "bmad": "./bin/bmad.js",
@@ -19,7 +19,7 @@
19
19
  "installer",
20
20
  "agents"
21
21
  ],
22
- "author": "BMad Team",
22
+ "author": "BMAD Team",
23
23
  "license": "MIT",
24
24
  "dependencies": {
25
25
  "chalk": "^5.4.1",
@@ -30,7 +30,7 @@
30
30
  "ora": "^8.2.0"
31
31
  },
32
32
  "engines": {
33
- "node": ">=20.0.0"
33
+ "node": ">=14.0.0"
34
34
  },
35
35
  "repository": {
36
36
  "type": "git",
@@ -0,0 +1,7 @@
1
+ # {{AGENT_NAME}} Agent
2
+
3
+ {{AGENT_CONTENT}}
4
+
5
+ ---
6
+
7
+ This is a BMAD Method agent. For more information, visit: https://github.com/your-org/bmad-method
@@ -0,0 +1,22 @@
1
+ # BMAD Method Agents for Cursor
2
+
3
+ This file contains all BMAD Method agent personas. To use an agent, type its name or alias in the Cursor chat.
4
+
5
+ ## Available Agents
6
+
7
+ {{AGENT_LIST}}
8
+
9
+ ---
10
+
11
+ {{AGENT_RULES}}
12
+
13
+ ---
14
+
15
+ # Agent Switching
16
+
17
+ To switch between agents during a conversation:
18
+
19
+ 1. Simply type the new agent name (e.g., "architect" or "dev")
20
+ 2. The AI will adopt that agent's persona
21
+
22
+ For more information about BMAD Method, visit: https://github.com/your-org/bmad-method
@@ -0,0 +1,22 @@
1
+ # BMAD Method Agent Commands
2
+
3
+ This file contains all BMAD Method agent commands for Windsurf. Use /agent-name to switch personas.
4
+
5
+ ## Available Commands
6
+
7
+ {{COMMAND_LIST}}
8
+
9
+ ---
10
+
11
+ {{AGENT_SECTIONS}}
12
+
13
+ ---
14
+
15
+ # Usage Tips
16
+
17
+ - Type `/dev` to switch to Developer persona
18
+ - Type `/pm` to switch to Product Manager persona
19
+ - Type `/architect` to switch to Architect persona
20
+ - And so on for other agents...
21
+
22
+ For more information about BMAD Method, visit: https://github.com/your-org/bmad-method
@@ -1,13 +1,11 @@
1
1
  const fs = require('fs').promises;
2
2
  const path = require('path');
3
3
  const yaml = require('js-yaml');
4
- const { extractYamlFromAgent } = require('./yaml-utils');
5
4
 
6
5
  class DependencyResolver {
7
6
  constructor(rootDir) {
8
7
  this.rootDir = rootDir;
9
- this.bmadCore = path.join(rootDir, 'bmad-core');
10
- this.common = path.join(rootDir, 'common');
8
+ this.bmadCore = path.join(rootDir, '.bmad-core');
11
9
  this.cache = new Map();
12
10
  }
13
11
 
@@ -15,18 +13,23 @@ class DependencyResolver {
15
13
  const agentPath = path.join(this.bmadCore, 'agents', `${agentId}.md`);
16
14
  const agentContent = await fs.readFile(agentPath, 'utf8');
17
15
 
18
- // Extract YAML from markdown content with command cleaning
19
- const yamlContent = extractYamlFromAgent(agentContent, true);
20
- if (!yamlContent) {
16
+ // Extract YAML from markdown content
17
+ const yamlMatch = agentContent.match(/```ya?ml\n([\s\S]*?)\n```/);
18
+ if (!yamlMatch) {
21
19
  throw new Error(`No YAML configuration found in agent ${agentId}`);
22
20
  }
23
21
 
22
+ // Clean up the YAML to handle command descriptions after dashes
23
+ let yamlContent = yamlMatch[1];
24
+ // Fix commands section: convert "- command - description" to just "- command"
25
+ yamlContent = yamlContent.replace(/^(\s*-)(\s*"[^"]+")(\s*-\s*.*)$/gm, '$1$2');
26
+
24
27
  const agentConfig = yaml.load(yamlContent);
25
28
 
26
29
  const dependencies = {
27
30
  agent: {
28
31
  id: agentId,
29
- path: agentPath,
32
+ path: `agents#${agentId}`,
30
33
  content: agentContent,
31
34
  config: agentConfig
32
35
  },
@@ -49,14 +52,14 @@ class DependencyResolver {
49
52
  }
50
53
 
51
54
  async resolveTeamDependencies(teamId) {
52
- const teamPath = path.join(this.bmadCore, 'agent-teams', `${teamId}.yaml`);
55
+ const teamPath = path.join(this.bmadCore, 'agent-teams', `${teamId}.yml`);
53
56
  const teamContent = await fs.readFile(teamPath, 'utf8');
54
57
  const teamConfig = yaml.load(teamContent);
55
58
 
56
59
  const dependencies = {
57
60
  team: {
58
61
  id: teamId,
59
- path: teamPath,
62
+ path: `agent-teams#${teamId}`,
60
63
  content: teamContent,
61
64
  config: teamConfig
62
65
  },
@@ -116,20 +119,17 @@ class DependencyResolver {
116
119
  }
117
120
 
118
121
  try {
122
+ const extensions = ['.md', '.yml', '.yaml'];
119
123
  let content = null;
120
124
  let filePath = null;
121
125
 
122
- // First try bmad-core
123
- try {
124
- filePath = path.join(this.bmadCore, type, id);
125
- content = await fs.readFile(filePath, 'utf8');
126
- } catch (e) {
127
- // If not found in bmad-core, try common folder
126
+ for (const ext of extensions) {
128
127
  try {
129
- filePath = path.join(this.common, type, id);
128
+ filePath = path.join(this.bmadCore, type, `${id}${ext}`);
130
129
  content = await fs.readFile(filePath, 'utf8');
131
- } catch (e2) {
132
- // File not found in either location
130
+ break;
131
+ } catch (e) {
132
+ // Try next extension
133
133
  }
134
134
  }
135
135
 
@@ -141,7 +141,7 @@ class DependencyResolver {
141
141
  const resource = {
142
142
  type,
143
143
  id,
144
- path: filePath,
144
+ path: `${type}#${id}`,
145
145
  content
146
146
  };
147
147
 
@@ -168,12 +168,12 @@ class DependencyResolver {
168
168
  try {
169
169
  const files = await fs.readdir(path.join(this.bmadCore, 'agent-teams'));
170
170
  return files
171
- .filter(f => f.endsWith('.yaml'))
172
- .map(f => f.replace('.yaml', ''));
171
+ .filter(f => f.endsWith('.yml'))
172
+ .map(f => f.replace('.yml', ''));
173
173
  } catch (error) {
174
174
  return [];
175
175
  }
176
176
  }
177
177
  }
178
178
 
179
- module.exports = DependencyResolver;
179
+ module.exports = DependencyResolver;
@@ -26,10 +26,10 @@ class V3ToV4Upgrader {
26
26
 
27
27
  // 1. Welcome message
28
28
  console.log(
29
- chalk.bold("\nWelcome to BMad-Method V3 to V4 Upgrade Tool\n")
29
+ chalk.bold("\nWelcome to BMAD-METHOD V3 to V4 Upgrade Tool\n")
30
30
  );
31
31
  console.log(
32
- "This tool will help you upgrade your BMad-Method V3 project to V4.\n"
32
+ "This tool will help you upgrade your BMAD-METHOD V3 project to V4.\n"
33
33
  );
34
34
  console.log(chalk.cyan("What this tool does:"));
35
35
  console.log("- Creates a backup of your V3 files (.bmad-v3-backup/)");
@@ -98,7 +98,7 @@ class V3ToV4Upgrader {
98
98
 
99
99
  // 8. Setup IDE
100
100
  if (!options.dryRun) {
101
- await this.setupIDE(projectPath, options.ides);
101
+ await this.setupIDE(projectPath);
102
102
  }
103
103
 
104
104
  // 9. Show completion report
@@ -379,8 +379,8 @@ class V3ToV4Upgrader {
379
379
  const spinner = ora("Installing V4 structure...").start();
380
380
 
381
381
  try {
382
- // Get the source bmad-core directory (without dot prefix)
383
- const sourcePath = path.join(__dirname, "..", "..", "bmad-core");
382
+ // Get the source .bmad-core directory
383
+ const sourcePath = path.join(__dirname, "..", "..", ".bmad-core");
384
384
  const destPath = path.join(projectPath, ".bmad-core");
385
385
 
386
386
  // Copy .bmad-core
@@ -545,39 +545,47 @@ class V3ToV4Upgrader {
545
545
  }
546
546
  }
547
547
 
548
- async setupIDE(projectPath, selectedIdes) {
549
- // Use the IDE selections passed from the installer
550
- if (!selectedIdes || selectedIdes.length === 0) {
551
- console.log(chalk.dim("No IDE setup requested - skipping"));
552
- return;
553
- }
548
+ async setupIDE(projectPath) {
549
+ const { ide } = await inquirer.prompt([
550
+ {
551
+ type: "list",
552
+ name: "ide",
553
+ message: "Which IDE are you using?",
554
+ choices: [
555
+ { name: "Cursor", value: "cursor" },
556
+ { name: "Claude Code", value: "claude-code" },
557
+ { name: "Windsurf", value: "windsurf" },
558
+ { name: "Roo Code", value: "roo" },
559
+ { name: "VS Code", value: "skip" },
560
+ { name: "Other/Skip", value: "skip" },
561
+ ],
562
+ },
563
+ ]);
554
564
 
555
- const ideSetup = require("../installer/lib/ide-setup");
556
- const spinner = ora("Setting up IDE rules for all agents...").start();
565
+ const selectedIde = ide === "skip" ? null : ide;
557
566
 
558
- try {
559
- const ideMessages = {
560
- cursor: "Rules created in .cursor/rules/",
561
- "claude-code": "Commands created in .claude/commands/",
562
- windsurf: "Rules created in .windsurf/rules/",
563
- trae: "Rules created in.trae/rules/",
564
- roo: "Custom modes created in .roomodes",
565
- cline: "Rules created in .clinerules/",
566
- };
567
-
568
- // Setup each selected IDE
569
- for (const ide of selectedIdes) {
570
- spinner.text = `Setting up ${ide}...`;
571
- await ideSetup.setup(ide, projectPath);
572
- console.log(chalk.green(`\n✓ ${ideMessages[ide]}`));
573
- }
567
+ if (selectedIde) {
568
+ const ideSetup = require("../installer/lib/ide-setup");
569
+ const spinner = ora("Setting up IDE rules for all agents...").start();
574
570
 
575
- spinner.succeed(`IDE setup complete for ${selectedIdes.length} IDE(s)!`);
576
- } catch (error) {
577
- spinner.fail("IDE setup failed");
578
- console.error(
579
- chalk.yellow("IDE setup failed, but upgrade is complete.")
580
- );
571
+ try {
572
+ await ideSetup.setup(selectedIde, projectPath);
573
+ spinner.succeed("IDE setup complete!");
574
+
575
+ const ideMessages = {
576
+ cursor: "Rules created in .cursor/rules/",
577
+ "claude-code": "Commands created in .claude/commands/",
578
+ windsurf: "Rules created in .windsurf/rules/",
579
+ roo: "Custom modes created in .roomodes",
580
+ };
581
+
582
+ console.log(chalk.green(`- ${ideMessages[selectedIde]}`));
583
+ } catch (error) {
584
+ spinner.fail("IDE setup failed");
585
+ console.error(
586
+ chalk.yellow("IDE setup failed, but upgrade is complete.")
587
+ );
588
+ }
581
589
  }
582
590
  }
583
591
 
@@ -15,7 +15,7 @@ async function initializeModules() {
15
15
  }
16
16
 
17
17
  /**
18
- * Simple version bumping script for BMad-Method
18
+ * Simple version bumping script for BMAD-METHOD
19
19
  * Usage: node tools/version-bump.js [patch|minor|major]
20
20
  */
21
21
 
@@ -16,7 +16,7 @@ async function initializeModules() {
16
16
  }
17
17
 
18
18
  /**
19
- * YAML Formatter and Linter for BMad-Method
19
+ * YAML Formatter and Linter for BMAD-METHOD
20
20
  * Formats and validates YAML files and YAML embedded in Markdown
21
21
  */
22
22
 
@@ -197,7 +197,7 @@ async function main() {
197
197
  let changed = false;
198
198
  if (ext === '.md') {
199
199
  changed = await processMarkdownFile(filePath);
200
- } else if (ext === '.yaml' || ext === '.yml' || basename.includes('roomodes') || basename.includes('.yaml') || basename.includes('.yml')) {
200
+ } else if (ext === '.yml' || ext === '.yaml' || basename.includes('roomodes') || basename.includes('.yml') || basename.includes('.yaml')) {
201
201
  // Handle YAML files and special cases like .roomodes
202
202
  changed = await processYamlFile(filePath);
203
203
 
@@ -1,15 +0,0 @@
1
- # These are supported funding model platforms
2
-
3
- github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4
- patreon: # Replace with a single Patreon username
5
- open_collective: # Replace with a single Open Collective username
6
- ko_fi: # Replace with a single Ko-fi username
7
- tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8
- community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9
- liberapay: # Replace with a single Liberapay username
10
- issuehunt: # Replace with a single IssueHunt username
11
- lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
12
- polar: # Replace with a single Polar username
13
- buy_me_a_coffee: bmad
14
- thanks_dev: # Replace with a single thanks.dev username
15
- custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
@@ -1,32 +0,0 @@
1
- ---
2
- name: Bug report
3
- about: Create a report to help us improve
4
- title: ""
5
- labels: ""
6
- assignees: ""
7
- ---
8
-
9
- **Describe the bug**
10
- A clear and concise description of what the bug is.
11
-
12
- **Steps to Reproduce**
13
- What lead to the bug and can it be reliable recreated - if so with what steps.
14
-
15
- **PR**
16
- If you have an idea to fix and would like to contribute, please indicate here you are working on a fix, or link to a proposed PR to fix the issue. Please review the contribution.md - contributions are always welcome!
17
-
18
- **Expected behavior**
19
- A clear and concise description of what you expected to happen.
20
-
21
- **Please be Specific if relevant**
22
- Model(s) Used:
23
- Agentic IDE Used:
24
- WebSite Used:
25
- Project Language:
26
- BMad Method version:
27
-
28
- **Screenshots or Links**
29
- If applicable, add screenshots or links (if web sharable record) to help explain your problem.
30
-
31
- **Additional context**
32
- Add any other context about the problem here. The more information you can provide, the easier it will be to suggest a fix or resolve
@@ -1,22 +0,0 @@
1
- ---
2
- name: Feature request
3
- about: Suggest an idea for this project
4
- title: ""
5
- labels: ""
6
- assignees: ""
7
- ---
8
-
9
- **Did you discuss the idea first in Discord Server (#general-dev)**
10
- Yes/No - Link to thread. If no, please after posting request also share the link in the channel so it can be easily discussed.
11
-
12
- **Is your feature request related to a problem? Please describe.**
13
- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
14
-
15
- **Describe the solution you'd like**
16
- A clear and concise description of what you want to happen.
17
-
18
- **Describe alternatives you've considered**
19
- A clear and concise description of any alternative solutions or features you've considered.
20
-
21
- **Additional context**
22
- Add any other context or screenshots about the feature request here.
package/.prettierignore DELETED
@@ -1,21 +0,0 @@
1
- # Dependencies
2
- node_modules/
3
- package-lock.json
4
-
5
- # Build outputs
6
- dist/
7
-
8
- # Generated files
9
- *.log
10
- *.lock
11
-
12
- # BMad core files (have their own formatting)
13
- bmad-core/**/*.md
14
-
15
- # Specific files that need custom formatting
16
- .roomodes
17
- CHANGELOG.md
18
-
19
- # IDE files
20
- .vscode/
21
- .idea/
package/.prettierrc DELETED
@@ -1,23 +0,0 @@
1
- {
2
- "printWidth": 100,
3
- "tabWidth": 2,
4
- "useTabs": false,
5
- "semi": true,
6
- "singleQuote": false,
7
- "quoteProps": "as-needed",
8
- "trailingComma": "es5",
9
- "bracketSpacing": true,
10
- "bracketSameLine": false,
11
- "arrowParens": "always",
12
- "proseWrap": "preserve",
13
- "endOfLine": "lf",
14
- "overrides": [
15
- {
16
- "files": "*.md",
17
- "options": {
18
- "proseWrap": "preserve",
19
- "printWidth": 120
20
- }
21
- }
22
- ]
23
- }
@@ -1,14 +0,0 @@
1
- bundle:
2
- name: Team All
3
- icon: 👥
4
- description: Includes every core system agent.
5
- agents:
6
- - bmad-orchestrator
7
- - '*'
8
- workflows:
9
- - brownfield-fullstack.yaml
10
- - brownfield-service.yaml
11
- - brownfield-ui.yaml
12
- - greenfield-fullstack.yaml
13
- - greenfield-service.yaml
14
- - greenfield-ui.yaml
@@ -1,18 +0,0 @@
1
- bundle:
2
- name: Team Fullstack
3
- icon: 🚀
4
- description: Team capable of full stack, front end only, or service development.
5
- agents:
6
- - bmad-orchestrator
7
- - analyst
8
- - pm
9
- - ux-expert
10
- - architect
11
- - po
12
- workflows:
13
- - brownfield-fullstack.yaml
14
- - brownfield-service.yaml
15
- - brownfield-ui.yaml
16
- - greenfield-fullstack.yaml
17
- - greenfield-service.yaml
18
- - greenfield-ui.yaml
@@ -1,10 +0,0 @@
1
- bundle:
2
- name: Team IDE Minimal
3
- icon: ⚡
4
- description: Only the bare minimum for the IDE PO SM dev qa cycle.
5
- agents:
6
- - po
7
- - sm
8
- - dev
9
- - qa
10
- workflows: null
@@ -1,13 +0,0 @@
1
- bundle:
2
- name: Team No UI
3
- icon: 🔧
4
- description: Team with no UX or UI Planning.
5
- agents:
6
- - bmad-orchestrator
7
- - analyst
8
- - pm
9
- - architect
10
- - po
11
- workflows:
12
- - greenfield-service.yaml
13
- - brownfield-service.yaml
@@ -1,63 +0,0 @@
1
- # architect
2
-
3
- CRITICAL: Read the full YAML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:
4
-
5
- ```yaml
6
- root: .bmad-core
7
- IDE-FILE-RESOLUTION: Dependencies map to files as {root}/{type}/{name} where root=".bmad-core", type=folder (tasks/templates/checklists/utils), name=dependency name.
8
- REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.yaml), or ask for clarification if ambiguous.
9
- activation-instructions:
10
- - Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
11
- - Only read the files/tasks listed here when user selects them for execution to minimize context usage
12
- - The customization field ALWAYS takes precedence over any conflicting instructions
13
- - When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
14
- - Greet the user with your name and role, and inform of the *help command.
15
- - When creating architecture, always start by understanding the complete picture - user needs, business constraints, team capabilities, and technical requirements.
16
- agent:
17
- name: Winston
18
- id: architect
19
- title: Architect
20
- icon: 🏗️
21
- whenToUse: Use for system design, architecture documents, technology selection, API design, and infrastructure planning
22
- customization: null
23
- persona:
24
- role: Holistic System Architect & Full-Stack Technical Leader
25
- style: Comprehensive, pragmatic, user-centric, technically deep yet accessible
26
- identity: Master of holistic application design who bridges frontend, backend, infrastructure, and everything in between
27
- focus: Complete systems architecture, cross-stack optimization, pragmatic technology selection
28
- core_principles:
29
- - Holistic System Thinking - View every component as part of a larger system
30
- - User Experience Drives Architecture - Start with user journeys and work backward
31
- - Pragmatic Technology Selection - Choose boring technology where possible, exciting where necessary
32
- - Progressive Complexity - Design systems simple to start but can scale
33
- - Cross-Stack Performance Focus - Optimize holistically across all layers
34
- - Developer Experience as First-Class Concern - Enable developer productivity
35
- - Security at Every Layer - Implement defense in depth
36
- - Data-Centric Design - Let data requirements drive architecture
37
- - Cost-Conscious Engineering - Balance technical ideals with financial reality
38
- - Living Architecture - Design for change and adaptation
39
- # All commands require * prefix when used (e.g., *help)
40
- commands:
41
- - help: Show numbered list of the following commands to allow selection
42
- - create-doc {template}: execute task create-doc (no template = ONLY show available templates listed under dependencies/templates below)
43
- - yolo: Toggle Yolo Mode
44
- - doc-out: Output full document to current destination file
45
- - execute-checklist {checklist}: Run task execute-checklist (default->architect-checklist)
46
- - research {topic}: execute task create-deep-research-prompt for architectural decisions
47
- - exit: Say goodbye as the Architect, and then abandon inhabiting this persona
48
- dependencies:
49
- tasks:
50
- - create-doc.md
51
- - create-deep-research-prompt.md
52
- - document-project.md
53
- - execute-checklist.md
54
- templates:
55
- - architecture-tmpl.yaml
56
- - front-end-architecture-tmpl.yaml
57
- - fullstack-architecture-tmpl.yaml
58
- - brownfield-architecture-tmpl.yaml
59
- checklists:
60
- - architect-checklist.md
61
- data:
62
- - technical-preferences.md
63
- ```