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.
- package/.bmad-core/agent-teams/team-all.yml +16 -0
- package/.bmad-core/agent-teams/team-fullstack.yml +26 -0
- package/.bmad-core/agent-teams/team-no-ui.yml +15 -0
- package/{bmad-core → .bmad-core}/agents/analyst.md +23 -30
- package/.bmad-core/agents/architect.md +66 -0
- package/.bmad-core/agents/bmad-master.md +104 -0
- package/.bmad-core/agents/bmad-orchestrator.md +81 -0
- package/.bmad-core/agents/dev.md +70 -0
- package/{bmad-core → .bmad-core}/agents/pm.md +24 -25
- package/{bmad-core → .bmad-core}/agents/po.md +24 -28
- package/.bmad-core/agents/qa.md +52 -0
- package/.bmad-core/agents/sm.md +55 -0
- package/.bmad-core/agents/ux-expert.md +66 -0
- package/{bmad-core → .bmad-core}/checklists/change-checklist.md +2 -2
- package/{bmad-core → .bmad-core}/checklists/story-draft-checklist.md +1 -1
- package/.bmad-core/data/bmad-kb.md +47 -0
- package/.bmad-core/schemas/agent-team-schema.yml +153 -0
- package/.bmad-core/tasks/advanced-elicitation.md +92 -0
- package/.bmad-core/tasks/brainstorming-techniques.md +238 -0
- package/.bmad-core/tasks/core-dump.md +74 -0
- package/{expansion-packs/bmad-creator-tools → .bmad-core}/tasks/create-agent.md +11 -9
- package/.bmad-core/tasks/create-doc.md +74 -0
- package/.bmad-core/tasks/create-expansion-pack.md +425 -0
- package/.bmad-core/tasks/create-next-story.md +206 -0
- package/.bmad-core/tasks/create-team.md +229 -0
- package/{bmad-core → .bmad-core}/tasks/doc-migration-task.md +9 -9
- package/{common → .bmad-core}/tasks/execute-checklist.md +6 -2
- package/.bmad-core/tasks/generate-ai-frontend-prompt.md +58 -0
- package/{bmad-core → .bmad-core}/tasks/index-docs.md +7 -3
- package/{bmad-core → .bmad-core}/tasks/shard-doc.md +7 -25
- package/.bmad-core/templates/agent-tmpl.md +58 -0
- package/.bmad-core/templates/architecture-tmpl.md +771 -0
- package/.bmad-core/templates/brownfield-architecture-tmpl.md +542 -0
- package/.bmad-core/templates/brownfield-prd-tmpl.md +240 -0
- package/.bmad-core/templates/competitor-analysis-tmpl.md +289 -0
- package/.bmad-core/templates/expansion-pack-plan-tmpl.md +91 -0
- package/.bmad-core/templates/front-end-architecture-tmpl.md +173 -0
- package/.bmad-core/templates/front-end-spec-tmpl.md +411 -0
- package/.bmad-core/templates/fullstack-architecture-tmpl.md +1016 -0
- package/.bmad-core/templates/market-research-tmpl.md +261 -0
- package/.bmad-core/templates/prd-tmpl.md +200 -0
- package/.bmad-core/templates/project-brief-tmpl.md +228 -0
- package/.bmad-core/templates/simple-project-prd-tmpl.md +461 -0
- package/.bmad-core/templates/story-tmpl.md +61 -0
- package/.bmad-core/templates/web-agent-startup-instructions-template.md +39 -0
- package/.bmad-core/utils/agent-switcher.ide.md +112 -0
- package/.bmad-core/utils/template-format.md +26 -0
- package/.bmad-core/utils/workflow-management.md +224 -0
- package/.bmad-core/web-bundles/agents/analyst.txt +1684 -0
- package/.bmad-core/web-bundles/agents/architect.txt +3584 -0
- package/.bmad-core/web-bundles/agents/bmad-master.txt +9491 -0
- package/.bmad-core/web-bundles/agents/bmad-orchestrator.txt +1466 -0
- package/{dist → .bmad-core/web-bundles}/agents/dev.txt +71 -179
- package/{dist → .bmad-core/web-bundles}/agents/pm.txt +1058 -624
- package/{dist → .bmad-core/web-bundles}/agents/po.txt +138 -337
- package/.bmad-core/web-bundles/agents/qa.txt +129 -0
- package/.bmad-core/web-bundles/agents/sm.txt +658 -0
- package/.bmad-core/web-bundles/agents/ux-expert.txt +1099 -0
- package/.bmad-core/web-bundles/teams/team-all.txt +10757 -0
- package/.bmad-core/web-bundles/teams/team-fullstack.txt +10109 -0
- package/.bmad-core/web-bundles/teams/team-no-ui.txt +8950 -0
- package/.bmad-core/workflows/brownfield-fullstack.yml +116 -0
- package/.bmad-core/workflows/brownfield-service.yml +117 -0
- package/.bmad-core/workflows/brownfield-ui.yml +127 -0
- package/{bmad-core/workflows/greenfield-fullstack.yaml → .bmad-core/workflows/greenfield-fullstack.yml} +77 -140
- package/.bmad-core/workflows/greenfield-service.yml +143 -0
- package/.bmad-core/workflows/greenfield-ui.yml +172 -0
- package/.claude/commands/analyst.md +63 -0
- package/.claude/commands/architect.md +70 -0
- package/.claude/commands/bmad-master.md +108 -0
- package/.claude/commands/bmad-orchestrator.md +85 -0
- package/.claude/commands/dev.md +74 -0
- package/.claude/commands/pm.md +63 -0
- package/.claude/commands/po.md +64 -0
- package/.claude/commands/qa.md +56 -0
- package/.claude/commands/sm.md +59 -0
- package/.claude/commands/ux-expert.md +70 -0
- package/.cursor/rules/analyst.mdc +77 -0
- package/.cursor/rules/architect.mdc +84 -0
- package/.cursor/rules/bmad-master.mdc +122 -0
- package/.cursor/rules/bmad-orchestrator.mdc +99 -0
- package/.cursor/rules/dev.mdc +88 -0
- package/.cursor/rules/pm.mdc +77 -0
- package/.cursor/rules/po.mdc +78 -0
- package/.cursor/rules/qa.mdc +70 -0
- package/.cursor/rules/sm.mdc +73 -0
- package/.cursor/rules/ux-expert.mdc +84 -0
- package/.roo/.roomodes +95 -0
- package/.roo/README.md +38 -0
- package/.vscode/extensions.json +6 -0
- package/.vscode/settings.json +75 -49
- package/.windsurf/rules/analyst.md +71 -0
- package/.windsurf/rules/architect.md +78 -0
- package/.windsurf/rules/bmad-master.md +116 -0
- package/.windsurf/rules/bmad-orchestrator.md +93 -0
- package/.windsurf/rules/dev.md +82 -0
- package/.windsurf/rules/pm.md +71 -0
- package/.windsurf/rules/po.md +72 -0
- package/.windsurf/rules/qa.md +64 -0
- package/.windsurf/rules/sm.md +67 -0
- package/.windsurf/rules/ux-expert.md +78 -0
- package/CHANGELOG.md +16 -452
- package/CONTRIBUTING.md +5 -168
- package/LICENSE +1 -1
- package/README.md +230 -77
- package/docs/bmad-workflow-guide.md +15 -19
- package/docs/claude-code-guide.md +119 -0
- package/docs/cursor-guide.md +127 -0
- package/docs/roo-code-guide.md +140 -0
- package/docs/sample-output/simple-fullstack-greenfield/prd.md +42 -0
- package/docs/versioning-and-releases.md +16 -8
- package/docs/versions.md +5 -4
- package/docs/windsurf-guide.md +127 -0
- package/expansion-packs/README.md +112 -2
- package/expansion-packs/{bmad-infrastructure-devops → infrastructure-devops}/README.md +9 -9
- package/expansion-packs/{bmad-infrastructure-devops → infrastructure-devops}/agents/infra-devops-platform.md +15 -15
- package/expansion-packs/{bmad-infrastructure-devops → infrastructure-devops}/checklists/infrastructure-checklist.md +1 -1
- package/expansion-packs/infrastructure-devops/manifest.yml +38 -0
- package/expansion-packs/{bmad-infrastructure-devops → infrastructure-devops}/tasks/review-infrastructure.md +4 -4
- package/expansion-packs/{bmad-infrastructure-devops → infrastructure-devops}/tasks/validate-infrastructure.md +4 -4
- package/expansion-packs/infrastructure-devops/templates/infrastructure-architecture-tmpl.md +415 -0
- package/expansion-packs/infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.md +0 -0
- package/package.json +11 -19
- package/tools/bmad-npx-wrapper.js +1 -1
- package/tools/builders/web-builder.js +28 -563
- package/tools/cli.js +22 -55
- package/tools/installer/README.md +53 -3
- package/tools/installer/bin/bmad.js +56 -294
- package/tools/installer/config/install.config.yml +139 -0
- package/tools/installer/lib/config-loader.js +34 -198
- package/tools/installer/lib/file-manager.js +5 -123
- package/tools/installer/lib/ide-setup.js +189 -545
- package/tools/installer/lib/installer.js +55 -1136
- package/tools/installer/package-lock.json +3 -3
- package/tools/installer/package.json +4 -4
- package/tools/installer/templates/claude-commands.md +7 -0
- package/tools/installer/templates/cursor-rules.md +22 -0
- package/tools/installer/templates/windsurf-rules.md +22 -0
- package/tools/lib/dependency-resolver.js +22 -22
- package/tools/upgraders/v3-to-v4-upgrader.js +43 -35
- package/tools/version-bump.js +1 -1
- package/tools/yaml-format.js +2 -2
- package/.github/FUNDING.yaml +0 -15
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -32
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -22
- package/.prettierignore +0 -21
- package/.prettierrc +0 -23
- package/bmad-core/agent-teams/team-all.yaml +0 -14
- package/bmad-core/agent-teams/team-fullstack.yaml +0 -18
- package/bmad-core/agent-teams/team-ide-minimal.yaml +0 -10
- package/bmad-core/agent-teams/team-no-ui.yaml +0 -13
- package/bmad-core/agents/architect.md +0 -63
- package/bmad-core/agents/bmad-master.md +0 -110
- package/bmad-core/agents/bmad-orchestrator.md +0 -140
- package/bmad-core/agents/dev.md +0 -57
- package/bmad-core/agents/qa.md +0 -55
- package/bmad-core/agents/sm.md +0 -46
- package/bmad-core/agents/ux-expert.md +0 -54
- package/bmad-core/core-config.yaml +0 -25
- package/bmad-core/data/bmad-kb.md +0 -803
- package/bmad-core/data/brainstorming-techniques.md +0 -36
- package/bmad-core/data/elicitation-methods.md +0 -134
- package/bmad-core/tasks/advanced-elicitation.md +0 -117
- package/bmad-core/tasks/create-brownfield-story.md +0 -355
- package/bmad-core/tasks/create-next-story.md +0 -114
- package/bmad-core/tasks/create-workflow-plan.md +0 -289
- package/bmad-core/tasks/document-project.md +0 -317
- package/bmad-core/tasks/facilitate-brainstorming-session.md +0 -136
- package/bmad-core/tasks/generate-ai-frontend-prompt.md +0 -51
- package/bmad-core/tasks/kb-mode-interaction.md +0 -70
- package/bmad-core/tasks/review-story.md +0 -145
- package/bmad-core/tasks/update-workflow-plan.md +0 -248
- package/bmad-core/tasks/validate-next-story.md +0 -134
- package/bmad-core/templates/architecture-tmpl.yaml +0 -650
- package/bmad-core/templates/brainstorming-output-tmpl.yaml +0 -156
- package/bmad-core/templates/brownfield-architecture-tmpl.yaml +0 -476
- package/bmad-core/templates/brownfield-prd-tmpl.yaml +0 -280
- package/bmad-core/templates/competitor-analysis-tmpl.yaml +0 -293
- package/bmad-core/templates/front-end-architecture-tmpl.yaml +0 -206
- package/bmad-core/templates/front-end-spec-tmpl.yaml +0 -349
- package/bmad-core/templates/fullstack-architecture-tmpl.yaml +0 -805
- package/bmad-core/templates/market-research-tmpl.yaml +0 -252
- package/bmad-core/templates/prd-tmpl.yaml +0 -202
- package/bmad-core/templates/project-brief-tmpl.yaml +0 -221
- package/bmad-core/templates/story-tmpl.yaml +0 -137
- package/bmad-core/utils/plan-management.md +0 -219
- package/bmad-core/workflows/brownfield-fullstack.yaml +0 -297
- package/bmad-core/workflows/brownfield-service.yaml +0 -187
- package/bmad-core/workflows/brownfield-ui.yaml +0 -197
- package/bmad-core/workflows/greenfield-service.yaml +0 -206
- package/bmad-core/workflows/greenfield-ui.yaml +0 -235
- package/common/tasks/create-doc.md +0 -79
- package/common/utils/bmad-doc-template.md +0 -325
- package/common/utils/workflow-management.md +0 -69
- package/dist/agents/analyst.txt +0 -2849
- package/dist/agents/architect.txt +0 -3505
- package/dist/agents/bmad-master.txt +0 -9588
- package/dist/agents/bmad-orchestrator.txt +0 -2232
- package/dist/agents/qa.txt +0 -388
- package/dist/agents/sm.txt +0 -673
- package/dist/agents/ux-expert.txt +0 -987
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +0 -2401
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +0 -1635
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +0 -825
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +0 -11730
- package/dist/expansion-packs/bmad-creator-tools/agents/bmad-the-creator.txt +0 -2023
- package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +0 -2052
- package/dist/teams/team-all.txt +0 -11799
- package/dist/teams/team-fullstack.txt +0 -11129
- package/dist/teams/team-ide-minimal.txt +0 -4573
- package/dist/teams/team-no-ui.txt +0 -9684
- package/docs/GUIDING-PRINCIPLES.md +0 -91
- package/docs/agentic-tools/claude-code-guide.md +0 -19
- package/docs/agentic-tools/cline-guide.md +0 -16
- package/docs/agentic-tools/cursor-guide.md +0 -14
- package/docs/agentic-tools/gemini-cli-guide.md +0 -32
- package/docs/agentic-tools/github-copilot-guide.md +0 -42
- package/docs/agentic-tools/roo-code-guide.md +0 -15
- package/docs/agentic-tools/trae-guide.md +0 -14
- package/docs/agentic-tools/windsurf-guide.md +0 -14
- package/docs/core-architecture.md +0 -219
- package/docs/expansion-packs.md +0 -280
- package/docs/how-to-contribute-with-pull-requests.md +0 -158
- package/docs/template-markup-references.md +0 -86
- package/docs/user-guide.md +0 -1142
- package/docs/working-in-the-brownfield.md +0 -361
- package/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +0 -13
- package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +0 -60
- package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +0 -68
- package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +0 -53
- package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +0 -201
- package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +0 -160
- package/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +0 -7
- package/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +0 -254
- package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +0 -651
- package/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +0 -111
- package/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md +0 -216
- package/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +0 -308
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +0 -613
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +0 -356
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +0 -343
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +0 -253
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +0 -484
- package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +0 -183
- package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +0 -175
- package/expansion-packs/bmad-creator-tools/README.md +0 -8
- package/expansion-packs/bmad-creator-tools/agents/bmad-the-creator.md +0 -55
- package/expansion-packs/bmad-creator-tools/config.yaml +0 -5
- package/expansion-packs/bmad-creator-tools/tasks/generate-expansion-pack.md +0 -1020
- package/expansion-packs/bmad-creator-tools/templates/agent-teams-tmpl.yaml +0 -178
- package/expansion-packs/bmad-creator-tools/templates/agent-tmpl.yaml +0 -154
- package/expansion-packs/bmad-creator-tools/templates/expansion-pack-plan-tmpl.yaml +0 -120
- package/expansion-packs/bmad-infrastructure-devops/config.yaml +0 -8
- package/expansion-packs/bmad-infrastructure-devops/data/bmad-kb.md +0 -308
- package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +0 -424
- package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +0 -629
- package/tools/bump-all-versions.js +0 -107
- package/tools/bump-core-version.js +0 -57
- package/tools/bump-expansion-version.js +0 -78
- package/tools/installer/config/ide-agent-config.yaml +0 -58
- package/tools/installer/config/install.config.yaml +0 -91
- package/tools/lib/yaml-utils.js +0 -29
- package/tools/md-assets/web-agent-startup-instructions.md +0 -39
- package/tools/update-expansion-version.js +0 -54
- /package/{bmad-core → .bmad-core}/checklists/architect-checklist.md +0 -0
- /package/{bmad-core → .bmad-core}/checklists/pm-checklist.md +0 -0
- /package/{bmad-core → .bmad-core}/checklists/po-master-checklist.md +0 -0
- /package/{bmad-core → .bmad-core}/checklists/story-dod-checklist.md +0 -0
- /package/{bmad-core → .bmad-core}/data/technical-preferences.md +0 -0
- /package/{bmad-core → .bmad-core}/tasks/brownfield-create-epic.md +0 -0
- /package/{bmad-core → .bmad-core}/tasks/brownfield-create-story.md +0 -0
- /package/{bmad-core → .bmad-core}/tasks/correct-course.md +0 -0
- /package/{bmad-core → .bmad-core}/tasks/create-deep-research-prompt.md +0 -0
- /package/.github/workflows/{release.yaml → release.yml} +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bmad-method",
|
|
3
|
-
"version": "4.
|
|
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.
|
|
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": ">=
|
|
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
|
-
"description": "
|
|
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": "
|
|
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": ">=
|
|
33
|
+
"node": ">=14.0.0"
|
|
34
34
|
},
|
|
35
35
|
"repository": {
|
|
36
36
|
"type": "git",
|
|
@@ -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
|
|
19
|
-
const
|
|
20
|
-
if (!
|
|
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:
|
|
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}.
|
|
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:
|
|
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
|
-
|
|
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.
|
|
128
|
+
filePath = path.join(this.bmadCore, type, `${id}${ext}`);
|
|
130
129
|
content = await fs.readFile(filePath, 'utf8');
|
|
131
|
-
|
|
132
|
-
|
|
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:
|
|
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('.
|
|
172
|
-
.map(f => f.replace('.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
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
|
|
556
|
-
const spinner = ora("Setting up IDE rules for all agents...").start();
|
|
565
|
+
const selectedIde = ide === "skip" ? null : ide;
|
|
557
566
|
|
|
558
|
-
|
|
559
|
-
const
|
|
560
|
-
|
|
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
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
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
|
|
package/tools/version-bump.js
CHANGED
package/tools/yaml-format.js
CHANGED
|
@@ -16,7 +16,7 @@ async function initializeModules() {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
-
* YAML Formatter and Linter for
|
|
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 === '.
|
|
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
|
|
package/.github/FUNDING.yaml
DELETED
|
@@ -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,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
|
-
```
|