bmad-method 4.37.0-beta.2 → 4.37.0-beta.3

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 (206) hide show
  1. package/README.md +3 -214
  2. package/package.json +26 -63
  3. package/.github/FUNDING.yaml +0 -15
  4. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -32
  5. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -22
  6. package/.github/workflows/discord.yaml +0 -16
  7. package/.github/workflows/release.yaml +0 -60
  8. package/.releaserc.json +0 -21
  9. package/.vscode/settings.json +0 -44
  10. package/CHANGELOG.md +0 -689
  11. package/CONTRIBUTING.md +0 -209
  12. package/LICENSE +0 -21
  13. package/bmad-core/agent-teams/team-all.yaml +0 -14
  14. package/bmad-core/agent-teams/team-fullstack.yaml +0 -18
  15. package/bmad-core/agent-teams/team-ide-minimal.yaml +0 -10
  16. package/bmad-core/agent-teams/team-no-ui.yaml +0 -13
  17. package/bmad-core/agents/analyst.md +0 -81
  18. package/bmad-core/agents/architect.md +0 -84
  19. package/bmad-core/agents/bmad-master.md +0 -108
  20. package/bmad-core/agents/bmad-orchestrator.md +0 -150
  21. package/bmad-core/agents/dev.md +0 -76
  22. package/bmad-core/agents/pm.md +0 -81
  23. package/bmad-core/agents/po.md +0 -76
  24. package/bmad-core/agents/qa.md +0 -69
  25. package/bmad-core/agents/sm.md +0 -62
  26. package/bmad-core/agents/ux-expert.md +0 -66
  27. package/bmad-core/checklists/architect-checklist.md +0 -443
  28. package/bmad-core/checklists/change-checklist.md +0 -182
  29. package/bmad-core/checklists/pm-checklist.md +0 -375
  30. package/bmad-core/checklists/po-master-checklist.md +0 -441
  31. package/bmad-core/checklists/story-dod-checklist.md +0 -101
  32. package/bmad-core/checklists/story-draft-checklist.md +0 -156
  33. package/bmad-core/core-config.yaml +0 -20
  34. package/bmad-core/data/bmad-kb.md +0 -803
  35. package/bmad-core/data/brainstorming-techniques.md +0 -36
  36. package/bmad-core/data/elicitation-methods.md +0 -134
  37. package/bmad-core/data/technical-preferences.md +0 -3
  38. package/bmad-core/tasks/advanced-elicitation.md +0 -117
  39. package/bmad-core/tasks/brownfield-create-epic.md +0 -160
  40. package/bmad-core/tasks/brownfield-create-story.md +0 -147
  41. package/bmad-core/tasks/correct-course.md +0 -70
  42. package/bmad-core/tasks/create-brownfield-story.md +0 -304
  43. package/bmad-core/tasks/create-deep-research-prompt.md +0 -289
  44. package/bmad-core/tasks/create-next-story.md +0 -112
  45. package/bmad-core/tasks/document-project.md +0 -341
  46. package/bmad-core/tasks/facilitate-brainstorming-session.md +0 -136
  47. package/bmad-core/tasks/generate-ai-frontend-prompt.md +0 -51
  48. package/bmad-core/tasks/index-docs.md +0 -179
  49. package/bmad-core/tasks/kb-mode-interaction.md +0 -75
  50. package/bmad-core/tasks/review-story.md +0 -145
  51. package/bmad-core/tasks/shard-doc.md +0 -187
  52. package/bmad-core/tasks/validate-next-story.md +0 -134
  53. package/bmad-core/templates/architecture-tmpl.yaml +0 -650
  54. package/bmad-core/templates/brainstorming-output-tmpl.yaml +0 -156
  55. package/bmad-core/templates/brownfield-architecture-tmpl.yaml +0 -476
  56. package/bmad-core/templates/brownfield-prd-tmpl.yaml +0 -280
  57. package/bmad-core/templates/competitor-analysis-tmpl.yaml +0 -293
  58. package/bmad-core/templates/front-end-architecture-tmpl.yaml +0 -206
  59. package/bmad-core/templates/front-end-spec-tmpl.yaml +0 -349
  60. package/bmad-core/templates/fullstack-architecture-tmpl.yaml +0 -805
  61. package/bmad-core/templates/market-research-tmpl.yaml +0 -252
  62. package/bmad-core/templates/prd-tmpl.yaml +0 -202
  63. package/bmad-core/templates/project-brief-tmpl.yaml +0 -221
  64. package/bmad-core/templates/story-tmpl.yaml +0 -137
  65. package/bmad-core/workflows/brownfield-fullstack.yaml +0 -297
  66. package/bmad-core/workflows/brownfield-service.yaml +0 -187
  67. package/bmad-core/workflows/brownfield-ui.yaml +0 -197
  68. package/bmad-core/workflows/greenfield-fullstack.yaml +0 -240
  69. package/bmad-core/workflows/greenfield-service.yaml +0 -206
  70. package/bmad-core/workflows/greenfield-ui.yaml +0 -235
  71. package/common/tasks/create-doc.md +0 -101
  72. package/common/tasks/execute-checklist.md +0 -93
  73. package/common/utils/bmad-doc-template.md +0 -325
  74. package/common/utils/workflow-management.md +0 -69
  75. package/dist/agents/analyst.txt +0 -2882
  76. package/dist/agents/architect.txt +0 -3543
  77. package/dist/agents/bmad-master.txt +0 -8756
  78. package/dist/agents/bmad-orchestrator.txt +0 -1490
  79. package/dist/agents/dev.txt +0 -428
  80. package/dist/agents/pm.txt +0 -2229
  81. package/dist/agents/po.txt +0 -1364
  82. package/dist/agents/qa.txt +0 -386
  83. package/dist/agents/sm.txt +0 -668
  84. package/dist/agents/ux-expert.txt +0 -701
  85. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +0 -2408
  86. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +0 -1631
  87. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +0 -822
  88. package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +0 -10989
  89. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +0 -4047
  90. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +0 -3744
  91. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +0 -465
  92. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +0 -990
  93. package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +0 -15467
  94. package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +0 -2077
  95. package/dist/teams/team-all.txt +0 -11062
  96. package/dist/teams/team-fullstack.txt +0 -10392
  97. package/dist/teams/team-ide-minimal.txt +0 -3507
  98. package/dist/teams/team-no-ui.txt +0 -8951
  99. package/docs/GUIDING-PRINCIPLES.md +0 -91
  100. package/docs/core-architecture.md +0 -219
  101. package/docs/enhanced-ide-development-workflow.md +0 -43
  102. package/docs/expansion-packs.md +0 -280
  103. package/docs/how-to-contribute-with-pull-requests.md +0 -158
  104. package/docs/user-guide.md +0 -251
  105. package/docs/versioning-and-releases.md +0 -77
  106. package/docs/versions.md +0 -48
  107. package/docs/working-in-the-brownfield.md +0 -364
  108. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/Complete AI Agent System - Flowchart.svg +0 -102
  109. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.1 Google Cloud Project Setup/1.1.1 - Initial Project Configuration - bash copy.txt +0 -13
  110. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.1 Google Cloud Project Setup/1.1.1 - Initial Project Configuration - bash.txt +0 -13
  111. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.2 Agent Development Kit Installation/1.2.2 - Basic Project Structure - txt.txt +0 -25
  112. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.3 Core Configuration Files/1.3.1 - settings.py +0 -34
  113. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.3 Core Configuration Files/1.3.2 - main.py - Base Application.py +0 -70
  114. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.4 Deployment Configuration/1.4.2 - cloudbuild.yaml +0 -26
  115. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/README.md +0 -109
  116. package/expansion-packs/README.md +0 -3
  117. package/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +0 -13
  118. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +0 -71
  119. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +0 -78
  120. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +0 -64
  121. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +0 -201
  122. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +0 -160
  123. package/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +0 -8
  124. package/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +0 -254
  125. package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +0 -651
  126. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +0 -111
  127. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md +0 -216
  128. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +0 -308
  129. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +0 -613
  130. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +0 -356
  131. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +0 -343
  132. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +0 -253
  133. package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +0 -484
  134. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +0 -183
  135. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +0 -175
  136. package/expansion-packs/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +0 -14
  137. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.md +0 -80
  138. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.md +0 -77
  139. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +0 -78
  140. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.md +0 -65
  141. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-architect-checklist.md +0 -396
  142. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-change-checklist.md +0 -203
  143. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +0 -201
  144. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +0 -132
  145. package/expansion-packs/bmad-2d-unity-game-dev/config.yaml +0 -6
  146. package/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +0 -776
  147. package/expansion-packs/bmad-2d-unity-game-dev/data/development-guidelines.md +0 -590
  148. package/expansion-packs/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +0 -111
  149. package/expansion-packs/bmad-2d-unity-game-dev/tasks/correct-course-game.md +0 -151
  150. package/expansion-packs/bmad-2d-unity-game-dev/tasks/create-game-story.md +0 -184
  151. package/expansion-packs/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +0 -308
  152. package/expansion-packs/bmad-2d-unity-game-dev/tasks/validate-game-story.md +0 -200
  153. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +0 -1030
  154. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +0 -356
  155. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +0 -705
  156. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +0 -256
  157. package/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +0 -484
  158. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +0 -183
  159. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +0 -175
  160. package/expansion-packs/bmad-infrastructure-devops/README.md +0 -147
  161. package/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md +0 -71
  162. package/expansion-packs/bmad-infrastructure-devops/checklists/infrastructure-checklist.md +0 -484
  163. package/expansion-packs/bmad-infrastructure-devops/config.yaml +0 -9
  164. package/expansion-packs/bmad-infrastructure-devops/data/bmad-kb.md +0 -308
  165. package/expansion-packs/bmad-infrastructure-devops/tasks/review-infrastructure.md +0 -160
  166. package/expansion-packs/bmad-infrastructure-devops/tasks/validate-infrastructure.md +0 -154
  167. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +0 -424
  168. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +0 -629
  169. package/tools/bmad-npx-wrapper.js +0 -39
  170. package/tools/builders/web-builder.js +0 -681
  171. package/tools/bump-all-versions.js +0 -106
  172. package/tools/bump-expansion-version.js +0 -83
  173. package/tools/cli.js +0 -154
  174. package/tools/flattener/aggregate.js +0 -76
  175. package/tools/flattener/binary.js +0 -53
  176. package/tools/flattener/discovery.js +0 -70
  177. package/tools/flattener/files.js +0 -35
  178. package/tools/flattener/ignoreRules.js +0 -176
  179. package/tools/flattener/main.js +0 -217
  180. package/tools/flattener/projectRoot.js +0 -45
  181. package/tools/flattener/prompts.js +0 -44
  182. package/tools/flattener/stats.js +0 -30
  183. package/tools/flattener/xml.js +0 -86
  184. package/tools/installer/README.md +0 -8
  185. package/tools/installer/package.json +0 -44
  186. package/tools/lib/dependency-resolver.js +0 -179
  187. package/tools/lib/yaml-utils.js +0 -29
  188. package/tools/md-assets/web-agent-startup-instructions.md +0 -39
  189. package/tools/semantic-release-sync-installer.js +0 -30
  190. package/tools/shared/bannerArt.js +0 -105
  191. package/tools/sync-installer-version.js +0 -34
  192. package/tools/update-expansion-version.js +0 -54
  193. package/tools/upgraders/v3-to-v4-upgrader.js +0 -763
  194. package/tools/version-bump.js +0 -79
  195. package/tools/yaml-format.js +0 -240
  196. /package/{tools/installer/bin → bin}/bmad.js +0 -0
  197. /package/{tools/installer/config → config}/ide-agent-config.yaml +0 -0
  198. /package/{tools/installer/config → config}/install.config.yaml +0 -0
  199. /package/{tools/installer/lib → lib}/config-loader.js +0 -0
  200. /package/{tools/installer/lib → lib}/file-manager.js +0 -0
  201. /package/{tools/installer/lib → lib}/ide-base-setup.js +0 -0
  202. /package/{tools/installer/lib → lib}/ide-setup.js +0 -0
  203. /package/{tools/installer/lib → lib}/installer.js +0 -0
  204. /package/{tools/installer/lib → lib}/memory-profiler.js +0 -0
  205. /package/{tools/installer/lib → lib}/module-manager.js +0 -0
  206. /package/{tools/installer/lib → lib}/resource-locator.js +0 -0
@@ -1,179 +0,0 @@
1
- const fs = require('fs').promises;
2
- const path = require('path');
3
- const yaml = require('js-yaml');
4
- const { extractYamlFromAgent } = require('./yaml-utils');
5
-
6
- class DependencyResolver {
7
- constructor(rootDir) {
8
- this.rootDir = rootDir;
9
- this.bmadCore = path.join(rootDir, 'bmad-core');
10
- this.common = path.join(rootDir, 'common');
11
- this.cache = new Map();
12
- }
13
-
14
- async resolveAgentDependencies(agentId) {
15
- const agentPath = path.join(this.bmadCore, 'agents', `${agentId}.md`);
16
- const agentContent = await fs.readFile(agentPath, 'utf8');
17
-
18
- // Extract YAML from markdown content with command cleaning
19
- const yamlContent = extractYamlFromAgent(agentContent, true);
20
- if (!yamlContent) {
21
- throw new Error(`No YAML configuration found in agent ${agentId}`);
22
- }
23
-
24
- const agentConfig = yaml.load(yamlContent);
25
-
26
- const dependencies = {
27
- agent: {
28
- id: agentId,
29
- path: agentPath,
30
- content: agentContent,
31
- config: agentConfig
32
- },
33
- resources: []
34
- };
35
-
36
- // Personas are now embedded in agent configs, no need to resolve separately
37
-
38
- // Resolve other dependencies
39
- const depTypes = ['tasks', 'templates', 'checklists', 'data', 'utils'];
40
- for (const depType of depTypes) {
41
- const deps = agentConfig.dependencies?.[depType] || [];
42
- for (const depId of deps) {
43
- const resource = await this.loadResource(depType, depId);
44
- if (resource) dependencies.resources.push(resource);
45
- }
46
- }
47
-
48
- return dependencies;
49
- }
50
-
51
- async resolveTeamDependencies(teamId) {
52
- const teamPath = path.join(this.bmadCore, 'agent-teams', `${teamId}.yaml`);
53
- const teamContent = await fs.readFile(teamPath, 'utf8');
54
- const teamConfig = yaml.load(teamContent);
55
-
56
- const dependencies = {
57
- team: {
58
- id: teamId,
59
- path: teamPath,
60
- content: teamContent,
61
- config: teamConfig
62
- },
63
- agents: [],
64
- resources: new Map() // Use Map to deduplicate resources
65
- };
66
-
67
- // Always add bmad-orchestrator agent first if it's a team
68
- const bmadAgent = await this.resolveAgentDependencies('bmad-orchestrator');
69
- dependencies.agents.push(bmadAgent.agent);
70
- bmadAgent.resources.forEach(res => {
71
- dependencies.resources.set(res.path, res);
72
- });
73
-
74
- // Resolve all agents in the team
75
- let agentsToResolve = teamConfig.agents || [];
76
-
77
- // Handle wildcard "*" - include all agents except bmad-master
78
- if (agentsToResolve.includes('*')) {
79
- const allAgents = await this.listAgents();
80
- // Remove wildcard and add all agents except those already in the list and bmad-master
81
- agentsToResolve = agentsToResolve.filter(a => a !== '*');
82
- for (const agent of allAgents) {
83
- if (!agentsToResolve.includes(agent) && agent !== 'bmad-master') {
84
- agentsToResolve.push(agent);
85
- }
86
- }
87
- }
88
-
89
- for (const agentId of agentsToResolve) {
90
- if (agentId === 'bmad-orchestrator' || agentId === 'bmad-master') continue; // Already added or excluded
91
- const agentDeps = await this.resolveAgentDependencies(agentId);
92
- dependencies.agents.push(agentDeps.agent);
93
-
94
- // Add resources with deduplication
95
- agentDeps.resources.forEach(res => {
96
- dependencies.resources.set(res.path, res);
97
- });
98
- }
99
-
100
- // Resolve workflows
101
- for (const workflowId of teamConfig.workflows || []) {
102
- const resource = await this.loadResource('workflows', workflowId);
103
- if (resource) dependencies.resources.set(resource.path, resource);
104
- }
105
-
106
- // Convert Map back to array
107
- dependencies.resources = Array.from(dependencies.resources.values());
108
-
109
- return dependencies;
110
- }
111
-
112
- async loadResource(type, id) {
113
- const cacheKey = `${type}#${id}`;
114
- if (this.cache.has(cacheKey)) {
115
- return this.cache.get(cacheKey);
116
- }
117
-
118
- try {
119
- let content = null;
120
- let filePath = null;
121
-
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
128
- try {
129
- filePath = path.join(this.common, type, id);
130
- content = await fs.readFile(filePath, 'utf8');
131
- } catch (e2) {
132
- // File not found in either location
133
- }
134
- }
135
-
136
- if (!content) {
137
- console.warn(`Resource not found: ${type}/${id}`);
138
- return null;
139
- }
140
-
141
- const resource = {
142
- type,
143
- id,
144
- path: filePath,
145
- content
146
- };
147
-
148
- this.cache.set(cacheKey, resource);
149
- return resource;
150
- } catch (error) {
151
- console.error(`Error loading resource ${type}/${id}:`, error.message);
152
- return null;
153
- }
154
- }
155
-
156
- async listAgents() {
157
- try {
158
- const files = await fs.readdir(path.join(this.bmadCore, 'agents'));
159
- return files
160
- .filter(f => f.endsWith('.md'))
161
- .map(f => f.replace('.md', ''));
162
- } catch (error) {
163
- return [];
164
- }
165
- }
166
-
167
- async listTeams() {
168
- try {
169
- const files = await fs.readdir(path.join(this.bmadCore, 'agent-teams'));
170
- return files
171
- .filter(f => f.endsWith('.yaml'))
172
- .map(f => f.replace('.yaml', ''));
173
- } catch (error) {
174
- return [];
175
- }
176
- }
177
- }
178
-
179
- module.exports = DependencyResolver;
@@ -1,29 +0,0 @@
1
- /**
2
- * Utility functions for YAML extraction from agent files
3
- */
4
-
5
- /**
6
- * Extract YAML content from agent markdown files
7
- * @param {string} agentContent - The full content of the agent file
8
- * @param {boolean} cleanCommands - Whether to clean command descriptions (default: false)
9
- * @returns {string|null} - The extracted YAML content or null if not found
10
- */
11
- function extractYamlFromAgent(agentContent, cleanCommands = false) {
12
- // Remove carriage returns and match YAML block
13
- const yamlMatch = agentContent.replace(/\r/g, "").match(/```ya?ml\n([\s\S]*?)\n```/);
14
- if (!yamlMatch) return null;
15
-
16
- let yamlContent = yamlMatch[1].trim();
17
-
18
- // Clean up command descriptions if requested
19
- // Converts "- command - description" to just "- command"
20
- if (cleanCommands) {
21
- yamlContent = yamlContent.replace(/^(\s*-)(\s*"[^"]+")(\s*-\s*.*)$/gm, '$1$2');
22
- }
23
-
24
- return yamlContent;
25
- }
26
-
27
- module.exports = {
28
- extractYamlFromAgent
29
- };
@@ -1,39 +0,0 @@
1
- # Web Agent Bundle Instructions
2
-
3
- You are now operating as a specialized AI agent from the BMad-Method framework. This is a bundled web-compatible version containing all necessary resources for your role.
4
-
5
- ## Important Instructions
6
-
7
- ### **Follow all startup commands**: Your agent configuration includes startup instructions that define your behavior, personality, and approach. These MUST be followed exactly.
8
-
9
- ### **Resource Navigation**: This bundle contains all resources you need. Resources are marked with tags like:
10
-
11
- - `==================== START: .bmad-core/folder/filename.md ====================`
12
- - `==================== END: .bmad-core/folder/filename.md ====================`
13
-
14
- When you need to reference a resource mentioned in your instructions:
15
-
16
- - Look for the corresponding START/END tags
17
- - The format is always the full path with dot prefix (e.g., `.bmad-core/personas/analyst.md`, `.bmad-core/tasks/create-story.md`)
18
- - If a section is specified (e.g., `{root}/tasks/create-story.md#section-name`), navigate to that section within the file
19
-
20
- **Understanding YAML References**: In the agent configuration, resources are referenced in the dependencies section. For example:
21
-
22
- ```yaml
23
- dependencies:
24
- utils:
25
- - template-format
26
- tasks:
27
- - create-story
28
- ```
29
-
30
- These references map directly to bundle sections:
31
-
32
- - `dependencies.utils: template-format` → Look for `==================== START: .bmad-core/utils/template-format.md ====================`
33
- - `dependencies.utils: create-story` → Look for `==================== START: .bmad-core/tasks/create-story.md ====================`
34
-
35
- ### **Execution Context**: You are operating in a web environment. All your capabilities and knowledge are contained within this bundle. Work within these constraints to provide the best possible assistance. You have no file system to write to, so you will maintain document history being drafted in your memory unless a canvas feature is available and the user confirms its usage.
36
-
37
- ## **Primary Directive**: Your primary goal is defined in your agent configuration below. Focus on fulfilling your designated role explicitly as defined.
38
-
39
- ---
@@ -1,30 +0,0 @@
1
- /**
2
- * Semantic-release plugin to sync installer package.json version
3
- */
4
-
5
- const fs = require('fs');
6
- const path = require('path');
7
-
8
- // This function runs during the "prepare" step of semantic-release
9
- function prepare(_, { nextRelease, logger }) {
10
- // Define the path to the installer package.json file
11
- const file = path.join(process.cwd(), 'tools/installer/package.json');
12
-
13
- // If the file does not exist, skip syncing and log a message
14
- if (!fs.existsSync(file)) return logger.log('Installer package.json not found, skipping');
15
-
16
- // Read and parse the package.json file
17
- const pkg = JSON.parse(fs.readFileSync(file, 'utf8'));
18
-
19
- // Update the version field with the next release version
20
- pkg.version = nextRelease.version;
21
-
22
- // Write the updated JSON back to the file
23
- fs.writeFileSync(file, JSON.stringify(pkg, null, 2) + '\n');
24
-
25
- // Log success message
26
- logger.log(`Synced installer package.json to version ${nextRelease.version}`);
27
- }
28
-
29
- // Export the prepare function so semantic-release can use it
30
- module.exports = { prepare };
@@ -1,105 +0,0 @@
1
- // ASCII banner art definitions extracted from banners.js to separate art from logic
2
-
3
- const BMAD_TITLE = "BMAD-METHOD";
4
- const FLATTENER_TITLE = "FLATTENER";
5
- const INSTALLER_TITLE = "INSTALLER";
6
-
7
- // Large ASCII blocks (block-style fonts)
8
- const BMAD_LARGE = `
9
- ██████╗ ███╗ ███╗ █████╗ ██████╗ ███╗ ███╗███████╗████████╗██╗ ██╗ ██████╗ ██████╗
10
- ██╔══██╗████╗ ████║██╔══██╗██╔══██╗ ████╗ ████║██╔════╝╚══██╔══╝██║ ██║██╔═══██╗██╔══██╗
11
- ██████╔╝██╔████╔██║███████║██║ ██║█████╗██╔████╔██║█████╗ ██║ ███████║██║ ██║██║ ██║
12
- ██╔══██╗██║╚██╔╝██║██╔══██║██║ ██║╚════╝██║╚██╔╝██║██╔══╝ ██║ ██╔══██║██║ ██║██║ ██║
13
- ██████╔╝██║ ╚═╝ ██║██║ ██║██████╔╝ ██║ ╚═╝ ██║███████╗ ██║ ██║ ██║╚██████╔╝██████╔╝
14
- ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝
15
- `;
16
-
17
- const FLATTENER_LARGE = `
18
- ███████╗██╗ █████╗ ████████╗████████╗███████╗███╗ ██╗███████╗██████╗
19
- ██╔════╝██║ ██╔══██╗╚══██╔══╝╚══██╔══╝██╔════╝████╗ ██║██╔════╝██╔══██╗
20
- █████╗ ██║ ███████║ ██║ ██║ █████╗ ██╔██╗ ██║█████╗ ██████╔╝
21
- ██╔══╝ ██║ ██╔══██║ ██║ ██║ ██╔══╝ ██║╚██╗██║██╔══╝ ██╔══██╗
22
- ██║ ███████║██║ ██║ ██║ ██║ ███████╗██║ ╚████║███████╗██║ ██║
23
- ╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝
24
- `;
25
-
26
- const INSTALLER_LARGE = `
27
- ██╗███╗ ██╗███████╗████████╗ █████╗ ██╗ ██╗ ███████╗██████╗
28
- ██║████╗ ██║██╔════╝╚══██╔══╝██╔══██╗██║ ██║ ██╔════╝██╔══██╗
29
- ██║██╔██╗ ██║███████╗ ██║ ███████║██║ ██║ █████╗ ██████╔╝
30
- ██║██║╚██╗██║╚════██║ ██║ ██╔══██║██║ ██║ ██╔══╝ ██╔══██╗
31
- ██║██║ ╚████║███████║ ██║ ██║ ██║███████╗███████╗███████╗██║ ██║
32
- ╚═╝╚═╝ ╚═══╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝
33
- `;
34
-
35
- // Curated medium/small/tiny variants (fixed art, no runtime scaling)
36
- // Medium: bold framed title with heavy fill (high contrast, compact)
37
- const BMAD_MEDIUM = `
38
- ███╗ █╗ █╗ ██╗ ███╗ █╗ █╗███╗█████╗█╗ █╗ ██╗ ███╗
39
- █╔═█╗██╗ ██║█╔═█╗█╔═█╗ ██╗ ██║█╔═╝╚═█╔═╝█║ █║█╔═█╗█╔═█╗
40
- ███╔╝█╔███╔█║████║█║ █║██╗█╔███╔█║██╗ █║ ████║█║ █║█║ █║
41
- █╔═█╗█║ █╔╝█║█╔═█║█║ █║╚═╝█║ █╔╝█║█╔╝ █║ █╔═█║█║ █║█║ █║
42
- ███╔╝█║ ╚╝ █║█║ █║███╔╝ █║ ╚╝ █║███╗ █║ █║ █║╚██╔╝███╔╝
43
- ╚══╝ ╚╝ ╚╝╚╝ ╚╝╚══╝ ╚╝ ╚╝╚══╝ ╚╝ ╚╝ ╚╝ ╚═╝ ╚══╝
44
- `;
45
-
46
- const FLATTENER_MEDIUM = `
47
- ███╗█╗ ██╗ █████╗█████╗███╗█╗ █╗███╗███╗
48
- █╔═╝█║ █╔═█╗╚═█╔═╝╚═█╔═╝█╔═╝██╗ █║█╔═╝█╔═█╗
49
- ██╗ █║ ████║ █║ █║ ██╗ █╔█╗█║██╗ ███╔╝
50
- █╔╝ █║ █╔═█║ █║ █║ █╔╝ █║ ██║█╔╝ █╔═█╗
51
- █║ ███║█║ █║ █║ █║ ███╗█║ █║███╗█║ █║
52
- ╚╝ ╚══╝╚╝ ╚╝ ╚╝ ╚╝ ╚══╝╚╝ ╚╝╚══╝╚╝ ╚╝
53
- `;
54
-
55
- const INSTALLER_MEDIUM = `
56
- █╗█╗ █╗████╗█████╗ ██╗ █╗ █╗ ███╗███╗
57
- █║██╗ █║█╔══╝╚═█╔═╝█╔═█╗█║ █║ █╔═╝█╔═█╗
58
- █║█╔█╗█║████╗ █║ ████║█║ █║ ██╗ ███╔╝
59
- █║█║ ██║╚══█║ █║ █╔═█║█║ █║ █╔╝ █╔═█╗
60
- █║█║ █║████║ █║ █║ █║███╗███╗███╗█║ █║
61
- ╚╝╚╝ ╚╝╚═══╝ ╚╝ ╚╝ ╚╝╚══╝╚══╝╚══╝╚╝ ╚╝
62
- `;
63
-
64
- // Small: rounded box with bold rule
65
- // Width: 30 columns total (28 inner)
66
- const BMAD_SMALL = `
67
- ╭──────────────────────────╮
68
- │ BMAD-METHOD │
69
- ╰──────────────────────────╯
70
- `;
71
-
72
- const FLATTENER_SMALL = `
73
- ╭──────────────────────────╮
74
- │ FLATTENER │
75
- ╰──────────────────────────╯
76
- `;
77
-
78
- const INSTALLER_SMALL = `
79
- ╭──────────────────────────╮
80
- │ INSTALLER │
81
- ╰──────────────────────────╯
82
- `;
83
-
84
- // Tiny (compact brackets)
85
- const BMAD_TINY = `[ BMAD-METHOD ]`;
86
- const FLATTENER_TINY = `[ FLATTENER ]`;
87
- const INSTALLER_TINY = `[ INSTALLER ]`;
88
-
89
- module.exports = {
90
- BMAD_TITLE,
91
- FLATTENER_TITLE,
92
- INSTALLER_TITLE,
93
- BMAD_LARGE,
94
- FLATTENER_LARGE,
95
- INSTALLER_LARGE,
96
- BMAD_MEDIUM,
97
- FLATTENER_MEDIUM,
98
- INSTALLER_MEDIUM,
99
- BMAD_SMALL,
100
- FLATTENER_SMALL,
101
- INSTALLER_SMALL,
102
- BMAD_TINY,
103
- FLATTENER_TINY,
104
- INSTALLER_TINY,
105
- };
@@ -1,34 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Sync installer package.json version with main package.json
5
- * Used by semantic-release to keep versions in sync
6
- */
7
-
8
- const fs = require('fs');
9
- const path = require('path');
10
-
11
- function syncInstallerVersion() {
12
- // Read main package.json
13
- const mainPackagePath = path.join(__dirname, '..', 'package.json');
14
- const mainPackage = JSON.parse(fs.readFileSync(mainPackagePath, 'utf8'));
15
-
16
- // Read installer package.json
17
- const installerPackagePath = path.join(__dirname, 'installer', 'package.json');
18
- const installerPackage = JSON.parse(fs.readFileSync(installerPackagePath, 'utf8'));
19
-
20
- // Update installer version to match main version
21
- installerPackage.version = mainPackage.version;
22
-
23
- // Write back installer package.json
24
- fs.writeFileSync(installerPackagePath, JSON.stringify(installerPackage, null, 2) + '\n');
25
-
26
- console.log(`Synced installer version to ${mainPackage.version}`);
27
- }
28
-
29
- // Run if called directly
30
- if (require.main === module) {
31
- syncInstallerVersion();
32
- }
33
-
34
- module.exports = { syncInstallerVersion };
@@ -1,54 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- const fs = require('fs');
4
- const path = require('path');
5
- const yaml = require('js-yaml');
6
-
7
- const args = process.argv.slice(2);
8
-
9
- if (args.length < 2) {
10
- console.log('Usage: node update-expansion-version.js <expansion-pack-id> <new-version>');
11
- console.log('Example: node update-expansion-version.js bmad-creator-tools 1.1.0');
12
- process.exit(1);
13
- }
14
-
15
- const [packId, newVersion] = args;
16
-
17
- // Validate version format
18
- if (!/^\d+\.\d+\.\d+$/.test(newVersion)) {
19
- console.error('Error: Version must be in format X.Y.Z (e.g., 1.2.3)');
20
- process.exit(1);
21
- }
22
-
23
- async function updateVersion() {
24
- try {
25
- // Update in config.yaml
26
- const configPath = path.join(__dirname, '..', 'expansion-packs', packId, 'config.yaml');
27
-
28
- if (!fs.existsSync(configPath)) {
29
- console.error(`Error: Expansion pack '${packId}' not found`);
30
- process.exit(1);
31
- }
32
-
33
- const configContent = fs.readFileSync(configPath, 'utf8');
34
- const config = yaml.load(configContent);
35
- const oldVersion = config.version || 'unknown';
36
-
37
- config.version = newVersion;
38
-
39
- const updatedYaml = yaml.dump(config, { indent: 2 });
40
- fs.writeFileSync(configPath, updatedYaml);
41
-
42
- console.log(`✓ Updated ${packId}/config.yaml: ${oldVersion} → ${newVersion}`);
43
- console.log(`\n✓ Successfully updated ${packId} to version ${newVersion}`);
44
- console.log('\nNext steps:');
45
- console.log('1. Test the changes');
46
- console.log('2. Commit: git add -A && git commit -m "chore: bump ' + packId + ' to v' + newVersion + '"');
47
-
48
- } catch (error) {
49
- console.error('Error updating version:', error.message);
50
- process.exit(1);
51
- }
52
- }
53
-
54
- updateVersion();