bmad-method 4.4.0 → 4.4.1

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 (126) hide show
  1. package/.claude/commands/bmad-orchestrator.md +65 -6
  2. package/.cursor/rules/bmad-orchestrator.mdc +65 -6
  3. package/.roo/README.md +0 -11
  4. package/.windsurf/rules/bmad-orchestrator.md +65 -6
  5. package/CHANGELOG.md +9 -3
  6. package/{.bmad-core → bmad-core}/agent-teams/team-all.yml +1 -3
  7. package/bmad-core/agent-teams/team-fullstack.yml +18 -0
  8. package/{.bmad-core → bmad-core}/agent-teams/team-no-ui.yml +0 -2
  9. package/bmad-core/agents/bmad-orchestrator.md +128 -0
  10. package/{.bmad-core → bmad-core}/agents/qa.md +11 -17
  11. package/{.bmad-core → bmad-core}/agents/ux-expert.md +14 -20
  12. package/{.bmad-core → bmad-core}/tasks/shard-doc.md +5 -3
  13. package/{.bmad-core → bmad-core}/templates/architecture-tmpl.md +2 -2
  14. package/{.bmad-core → bmad-core}/templates/brownfield-architecture-tmpl.md +6 -6
  15. package/{.bmad-core → bmad-core}/templates/front-end-spec-tmpl.md +6 -6
  16. package/{.bmad-core → bmad-core}/utils/agent-switcher.ide.md +6 -6
  17. package/{.bmad-core → bmad-core}/utils/workflow-management.md +4 -4
  18. package/{.bmad-core → bmad-core}/web-bundles/agents/architect.txt +3 -3
  19. package/{.bmad-core → bmad-core}/web-bundles/agents/bmad-master.txt +10 -10
  20. package/{.bmad-core → bmad-core}/web-bundles/agents/bmad-orchestrator.txt +67 -8
  21. package/{.bmad-core → bmad-core}/web-bundles/agents/pm.txt +1 -1
  22. package/{.bmad-core → bmad-core}/web-bundles/agents/po.txt +1 -1
  23. package/{.bmad-core → bmad-core}/web-bundles/agents/qa.txt +11 -17
  24. package/{.bmad-core → bmad-core}/web-bundles/agents/ux-expert.txt +16 -22
  25. package/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/team-game-dev.yml +12 -0
  26. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +58 -0
  27. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +66 -0
  28. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +51 -0
  29. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +201 -0
  30. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +160 -0
  31. package/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +254 -0
  32. package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +631 -0
  33. package/expansion-packs/bmad-2d-phaser-game-dev/manifest.yml +45 -0
  34. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +111 -0
  35. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md +216 -0
  36. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +308 -0
  37. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.md +560 -0
  38. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.md +345 -0
  39. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.md +331 -0
  40. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.md +235 -0
  41. package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.md +451 -0
  42. package/expansion-packs/bmad-2d-phaser-game-dev/web-bundles/agents/game-designer.txt +1758 -0
  43. package/expansion-packs/bmad-2d-phaser-game-dev/web-bundles/agents/game-developer.txt +1444 -0
  44. package/expansion-packs/bmad-2d-phaser-game-dev/web-bundles/agents/game-sm.txt +674 -0
  45. package/expansion-packs/bmad-2d-phaser-game-dev/web-bundles/team-game-dev.txt +4395 -0
  46. package/expansion-packs/bmad-2d-phaser-game-dev/web-bundles/teams/team-game-dev.txt +4395 -0
  47. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yml +183 -0
  48. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yml +175 -0
  49. package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/README.md +5 -5
  50. package/expansion-packs/bmad-infrastructure-devops/manifest.yml +23 -0
  51. package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/templates/infrastructure-platform-from-arch-tmpl.md +0 -0
  52. package/expansion-packs/bmad-infrastructure-devops/web-bundles/agents/infra-devops-platform.txt +2021 -0
  53. package/package.json +3 -3
  54. package/tools/builders/web-builder.js +191 -2
  55. package/tools/cli.js +55 -7
  56. package/tools/installer/bin/bmad.js +65 -7
  57. package/tools/installer/config/install.config.yml +43 -43
  58. package/tools/installer/lib/config-loader.js +39 -2
  59. package/tools/installer/lib/installer.js +126 -0
  60. package/tools/installer/package-lock.json +3 -3
  61. package/tools/installer/package.json +2 -2
  62. package/tools/lib/dependency-resolver.js +1 -1
  63. package/.bmad-core/agent-teams/team-fullstack.yml +0 -26
  64. package/.bmad-core/agents/bmad-orchestrator.md +0 -69
  65. package/.bmad-core/web-bundles/teams/team-all.txt +0 -10262
  66. package/.bmad-core/web-bundles/teams/team-fullstack.txt +0 -9614
  67. package/.bmad-core/web-bundles/teams/team-no-ui.txt +0 -8462
  68. package/expansion-packs/infrastructure-devops/manifest.yml +0 -38
  69. /package/{.bmad-core → bmad-core}/agents/analyst.md +0 -0
  70. /package/{.bmad-core → bmad-core}/agents/architect.md +0 -0
  71. /package/{.bmad-core → bmad-core}/agents/bmad-master.md +0 -0
  72. /package/{.bmad-core → bmad-core}/agents/dev.md +0 -0
  73. /package/{.bmad-core → bmad-core}/agents/pm.md +0 -0
  74. /package/{.bmad-core → bmad-core}/agents/po.md +0 -0
  75. /package/{.bmad-core → bmad-core}/agents/sm.md +0 -0
  76. /package/{.bmad-core → bmad-core}/bmad-core-config.yml +0 -0
  77. /package/{.bmad-core → bmad-core}/checklists/architect-checklist.md +0 -0
  78. /package/{.bmad-core → bmad-core}/checklists/change-checklist.md +0 -0
  79. /package/{.bmad-core → bmad-core}/checklists/pm-checklist.md +0 -0
  80. /package/{.bmad-core → bmad-core}/checklists/po-master-checklist.md +0 -0
  81. /package/{.bmad-core → bmad-core}/checklists/story-dod-checklist.md +0 -0
  82. /package/{.bmad-core → bmad-core}/checklists/story-draft-checklist.md +0 -0
  83. /package/{.bmad-core → bmad-core}/data/bmad-kb.md +0 -0
  84. /package/{.bmad-core → bmad-core}/data/technical-preferences.md +0 -0
  85. /package/{.bmad-core → bmad-core}/tasks/advanced-elicitation.md +0 -0
  86. /package/{.bmad-core → bmad-core}/tasks/brainstorming-techniques.md +0 -0
  87. /package/{.bmad-core → bmad-core}/tasks/brownfield-create-epic.md +0 -0
  88. /package/{.bmad-core → bmad-core}/tasks/brownfield-create-story.md +0 -0
  89. /package/{.bmad-core → bmad-core}/tasks/core-dump.md +0 -0
  90. /package/{.bmad-core → bmad-core}/tasks/correct-course.md +0 -0
  91. /package/{.bmad-core → bmad-core}/tasks/create-deep-research-prompt.md +0 -0
  92. /package/{.bmad-core → bmad-core}/tasks/create-doc.md +0 -0
  93. /package/{.bmad-core → bmad-core}/tasks/create-next-story.md +0 -0
  94. /package/{.bmad-core → bmad-core}/tasks/doc-migration-task.md +0 -0
  95. /package/{.bmad-core → bmad-core}/tasks/document-project.md +0 -0
  96. /package/{.bmad-core → bmad-core}/tasks/execute-checklist.md +0 -0
  97. /package/{.bmad-core → bmad-core}/tasks/generate-ai-frontend-prompt.md +0 -0
  98. /package/{.bmad-core → bmad-core}/tasks/index-docs.md +0 -0
  99. /package/{.bmad-core → bmad-core}/templates/agent-tmpl.md +0 -0
  100. /package/{.bmad-core → bmad-core}/templates/brownfield-prd-tmpl.md +0 -0
  101. /package/{.bmad-core → bmad-core}/templates/competitor-analysis-tmpl.md +0 -0
  102. /package/{.bmad-core → bmad-core}/templates/expansion-pack-plan-tmpl.md +0 -0
  103. /package/{.bmad-core → bmad-core}/templates/front-end-architecture-tmpl.md +0 -0
  104. /package/{.bmad-core → bmad-core}/templates/fullstack-architecture-tmpl.md +0 -0
  105. /package/{.bmad-core → bmad-core}/templates/market-research-tmpl.md +0 -0
  106. /package/{.bmad-core → bmad-core}/templates/prd-tmpl.md +0 -0
  107. /package/{.bmad-core → bmad-core}/templates/project-brief-tmpl.md +0 -0
  108. /package/{.bmad-core → bmad-core}/templates/simple-project-prd-tmpl.md +0 -0
  109. /package/{.bmad-core → bmad-core}/templates/story-tmpl.md +0 -0
  110. /package/{.bmad-core → bmad-core}/templates/web-agent-startup-instructions-template.md +0 -0
  111. /package/{.bmad-core → bmad-core}/utils/template-format.md +0 -0
  112. /package/{.bmad-core → bmad-core}/web-bundles/agents/analyst.txt +0 -0
  113. /package/{.bmad-core → bmad-core}/web-bundles/agents/dev.txt +0 -0
  114. /package/{.bmad-core → bmad-core}/web-bundles/agents/sm.txt +0 -0
  115. /package/{.bmad-core → bmad-core}/workflows/brownfield-fullstack.yml +0 -0
  116. /package/{.bmad-core → bmad-core}/workflows/brownfield-service.yml +0 -0
  117. /package/{.bmad-core → bmad-core}/workflows/brownfield-ui.yml +0 -0
  118. /package/{.bmad-core → bmad-core}/workflows/greenfield-fullstack.yml +0 -0
  119. /package/{.bmad-core → bmad-core}/workflows/greenfield-service.yml +0 -0
  120. /package/{.bmad-core → bmad-core}/workflows/greenfield-ui.yml +0 -0
  121. /package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/agents/infra-devops-platform.md +0 -0
  122. /package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/checklists/infrastructure-checklist.md +0 -0
  123. /package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/tasks/create-doc.md +0 -0
  124. /package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/tasks/review-infrastructure.md +0 -0
  125. /package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/tasks/validate-infrastructure.md +0 -0
  126. /package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/templates/infrastructure-architecture-tmpl.md +0 -0
@@ -261,6 +261,10 @@ class Installer {
261
261
  }
262
262
  }
263
263
 
264
+ // Install expansion packs if requested
265
+ const expansionFiles = await this.installExpansionPacks(installDir, config.expansionPacks, spinner);
266
+ files.push(...expansionFiles);
267
+
264
268
  // Set up IDE integration if requested
265
269
  const ides = config.ides || (config.ide ? [config.ide] : []);
266
270
  if (ides.length > 0) {
@@ -505,6 +509,11 @@ class Installer {
505
509
  console.log(chalk.bold("\n🎯 Installation Summary:"));
506
510
  console.log(chalk.green("✓ .bmad-core framework installed with all agents and workflows"));
507
511
 
512
+ if (config.expansionPacks && config.expansionPacks.length > 0) {
513
+ const packNames = config.expansionPacks.join(", ");
514
+ console.log(chalk.green(`✓ Expansion packs installed: ${packNames}`));
515
+ }
516
+
508
517
  if (ides.length > 0) {
509
518
  const ideNames = ides.map(ide => {
510
519
  const ideConfig = configLoader.getIdeConfiguration(ide);
@@ -569,6 +578,33 @@ class Installer {
569
578
  );
570
579
  }
571
580
 
581
+ async listExpansionPacks() {
582
+ // Initialize ES modules
583
+ await initializeModules();
584
+ const expansionPacks = await this.getAvailableExpansionPacks();
585
+
586
+ console.log(chalk.bold("\nAvailable BMAD Expansion Packs:\n"));
587
+
588
+ if (expansionPacks.length === 0) {
589
+ console.log(chalk.yellow("No expansion packs found."));
590
+ return;
591
+ }
592
+
593
+ for (const pack of expansionPacks) {
594
+ console.log(chalk.cyan(` ${pack.id.padEnd(20)}`),
595
+ `${pack.name} v${pack.version}`);
596
+ console.log(chalk.dim(` ${' '.repeat(22)}${pack.description}`));
597
+ if (pack.author && pack.author !== 'Unknown') {
598
+ console.log(chalk.dim(` ${' '.repeat(22)}by ${pack.author}`));
599
+ }
600
+ console.log();
601
+ }
602
+
603
+ console.log(
604
+ chalk.dim("Install with: npx bmad-method install --full --expansion-packs <id>\n")
605
+ );
606
+ }
607
+
572
608
  async showStatus() {
573
609
  // Initialize ES modules
574
610
  await initializeModules();
@@ -624,6 +660,96 @@ class Installer {
624
660
  return configLoader.getAvailableAgents();
625
661
  }
626
662
 
663
+ async getAvailableExpansionPacks() {
664
+ return configLoader.getAvailableExpansionPacks();
665
+ }
666
+
667
+ async installExpansionPacks(installDir, selectedPacks, spinner) {
668
+ if (!selectedPacks || selectedPacks.length === 0) {
669
+ return [];
670
+ }
671
+
672
+ const installedFiles = [];
673
+ const glob = require('glob');
674
+
675
+ for (const packId of selectedPacks) {
676
+ spinner.text = `Installing expansion pack: ${packId}...`;
677
+
678
+ try {
679
+ const expansionPacks = await this.getAvailableExpansionPacks();
680
+ const pack = expansionPacks.find(p => p.id === packId);
681
+
682
+ if (!pack) {
683
+ console.warn(`Expansion pack ${packId} not found, skipping...`);
684
+ continue;
685
+ }
686
+
687
+ const expansionPackDir = path.dirname(pack.manifestPath);
688
+
689
+ // Define the folders to copy from expansion packs to .bmad-core
690
+ const foldersToSync = [
691
+ 'agents',
692
+ 'agent-teams',
693
+ 'templates',
694
+ 'tasks',
695
+ 'checklists',
696
+ 'workflows',
697
+ 'data',
698
+ 'utils',
699
+ 'schemas'
700
+ ];
701
+
702
+ // Copy each folder if it exists
703
+ for (const folder of foldersToSync) {
704
+ const sourceFolder = path.join(expansionPackDir, folder);
705
+
706
+ // Check if folder exists in expansion pack
707
+ if (await fileManager.pathExists(sourceFolder)) {
708
+ // Get all files in this folder
709
+ const files = glob.sync('**/*', {
710
+ cwd: sourceFolder,
711
+ nodir: true
712
+ });
713
+
714
+ // Copy each file to the destination
715
+ for (const file of files) {
716
+ const sourcePath = path.join(sourceFolder, file);
717
+ const destPath = path.join(installDir, '.bmad-core', folder, file);
718
+
719
+ if (await fileManager.copyFile(sourcePath, destPath)) {
720
+ installedFiles.push(path.join('.bmad-core', folder, file));
721
+ }
722
+ }
723
+ }
724
+ }
725
+
726
+ // Also copy web-bundles if they exist (to a different location)
727
+ const webBundlesSource = path.join(expansionPackDir, 'web-bundles');
728
+ if (await fileManager.pathExists(webBundlesSource)) {
729
+ const files = glob.sync('**/*', {
730
+ cwd: webBundlesSource,
731
+ nodir: true
732
+ });
733
+
734
+ for (const file of files) {
735
+ const sourcePath = path.join(webBundlesSource, file);
736
+ const destPath = path.join(installDir, '.bmad-core', 'web-bundles', 'expansion-packs', packId, file);
737
+
738
+ if (await fileManager.copyFile(sourcePath, destPath)) {
739
+ installedFiles.push(path.join('.bmad-core', 'web-bundles', 'expansion-packs', packId, file));
740
+ }
741
+ }
742
+ }
743
+
744
+ console.log(chalk.green(`✓ Installed expansion pack: ${pack.name}`));
745
+ } catch (error) {
746
+ console.error(chalk.red(`Failed to install expansion pack ${packId}: ${error.message}`));
747
+ }
748
+ }
749
+
750
+ return installedFiles;
751
+ }
752
+
627
753
  async findInstallation() {
628
754
  // Look for .bmad-core in current directory or parent directories
629
755
  let currentDir = process.cwd();
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "bmad-method",
3
- "version": "4.0.1",
3
+ "version": "4.3.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "bmad-method",
9
- "version": "4.0.1",
9
+ "version": "4.3.0",
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": ">=14.0.0"
24
+ "node": ">=20.0.0"
25
25
  }
26
26
  },
27
27
  "node_modules/@inquirer/checkbox": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bmad-method",
3
- "version": "4.4.0",
3
+ "version": "4.4.1",
4
4
  "description": "BMAD Method installer - AI-powered Agile development framework",
5
5
  "main": "lib/installer.js",
6
6
  "bin": {
@@ -30,7 +30,7 @@
30
30
  "ora": "^8.2.0"
31
31
  },
32
32
  "engines": {
33
- "node": ">=14.0.0"
33
+ "node": ">=20.0.0"
34
34
  },
35
35
  "repository": {
36
36
  "type": "git",
@@ -5,7 +5,7 @@ const yaml = require('js-yaml');
5
5
  class DependencyResolver {
6
6
  constructor(rootDir) {
7
7
  this.rootDir = rootDir;
8
- this.bmadCore = path.join(rootDir, '.bmad-core');
8
+ this.bmadCore = path.join(rootDir, 'bmad-core');
9
9
  this.cache = new Map();
10
10
  }
11
11
 
@@ -1,26 +0,0 @@
1
- bundle:
2
- name: Team Fullstack
3
- icon: 🚀
4
- description: >-
5
- Comprehensive full-stack development team capable of handling both greenfield
6
- application development and brownfield enhancement projects. This team combines
7
- strategic planning, user experience design, and holistic system architecture
8
- to deliver complete solutions from concept to deployment. Specializes in
9
- full-stack applications, SaaS platforms, enterprise apps, feature additions,
10
- refactoring, and system modernization.
11
-
12
- agents:
13
- - bmad-orchestrator
14
- - analyst
15
- - pm
16
- - ux-expert
17
- - architect
18
- - po
19
-
20
- workflows:
21
- - brownfield-fullstack
22
- - brownfield-service
23
- - brownfield-ui
24
- - greenfield-fullstack
25
- - greenfield-service
26
- - greenfield-ui
@@ -1,69 +0,0 @@
1
- # bmad
2
-
3
- CRITICAL: Read the full YML to understand your operating params, start activation to alter your state of being, follow startup instructions, stay in this being until told to exit this mode:
4
-
5
- ```yaml
6
- agent:
7
- name: BMad Orchestrator
8
- id: bmad-orchestrator
9
- title: BMAD Master Orchestrator
10
- icon: 🎭
11
- whenToUse: Use for workflow coordination, multi-agent tasks, role switching guidance, and when unsure which specialist to consult
12
- persona:
13
- role: Master Orchestrator & BMAD Method Expert
14
- style: Knowledgeable, guiding, adaptable, efficient, encouraging, technically brilliant yet approachable. Helps customize and use BMAD Method while orchestrating agents
15
- identity: Unified interface to all BMAD-METHOD capabilities, dynamically transforms into any specialized agent
16
- focus: Orchestrating the right agent/capability for each need, loading resources only when needed
17
- core_principles:
18
- - Become any agent on demand, loading files only when needed
19
- - Never pre-load resources - discover and load at runtime
20
- - Assess needs and recommend best approach/agent/workflow
21
- - Track current state and guide to next logical steps
22
- - When embodied, specialized persona's principles take precedence
23
- - Be explicit about active persona and current task
24
- - Always use numbered lists for choices
25
- - Process (*) commands immediately
26
- startup:
27
- - Announce: Hey! I'm BMad, your BMAD-METHOD orchestrator. I can become any specialized agent, suggest workflows, explain setup, or help with any BMAD task. Type *help for options.
28
- - Assess user goal, suggest agent transformation if match, offer numbered options if generic
29
- - Load resources only when needed
30
- commands:
31
- - '*help" - Show commands/workflows/agents'
32
- - '*chat-mode" - Conversational mode with advanced-elicitation'
33
- - '*kb-mode" - Load knowledge base for full BMAD help'
34
- - '*status" - Show current context/agent/progress'
35
- - '*agent {name}" - Transform into agent (list if unspecified)'
36
- - '*exit" - Return to BMad or exit (confirm if exiting BMad)'
37
- - '*task {name}" - Run task (list if unspecified)'
38
- - '*workflow {type}" - Start/list workflows'
39
- - '*checklist {name}" - Execute checklist (list if unspecified)'
40
- - '*yolo" - Toggle skip confirmations'
41
- - '*party-mode" - Group chat with all agents'
42
- - '*doc-out" - Output full document'
43
- fuzzy-matching:
44
- - 85% confidence threshold
45
- - Show numbered list if unsure
46
- transformation:
47
- - Match name/role to agents
48
- - Announce transformation
49
- - Operate until exit
50
- loading:
51
- - KB: Only for *kb-mode or BMAD questions
52
- - Agents: Only when transforming
53
- - "Templates/Tasks: Only when executing"
54
- - Always indicate loading
55
- workflow:
56
- - Ask project type (greenfield/brownfield)
57
- - Ask scope (UI/service/fullstack/other)
58
- - Recommend workflow, guide through stages
59
- - Explain web context management if needed
60
- dependencies:
61
- tasks:
62
- - advanced-elicitation
63
- - create-doc
64
- data:
65
- - bmad-kb
66
- utils:
67
- - workflow-management
68
- - template-format
69
- ```