From 50d17ed65d40f6688f3b6e62732fb2280b6b116e Mon Sep 17 00:00:00 2001 From: Brian Madison Date: Sat, 28 Jun 2025 01:57:02 -0500 Subject: [PATCH] fix: expansion install config --- bmad-core/core-config.yml | 1 - .../bmad-2d-phaser-game-dev/config.yml | 5 +++ .../bmad-2d-phaser-game-dev/manifest.yml | 45 ------------------- .../README.md | 0 .../agents/bmad-the-creator.md | 0 expansion-packs/bmad-creator-tools/config.yml | 5 +++ .../tasks/create-agent.md | 0 .../tasks/generate-expansion-pack.md | 0 .../templates/agent-teams-tmpl.md | 0 .../templates/agent-tmpl.md | 0 .../templates/expansion-pack-plan-tmpl.md | 0 .../bmad-infrastructure-devops/config.yml | 5 +++ .../bmad-infrastructure-devops/manifest.yml | 23 ---------- .../expansion-creator/manifest.yml | 12 ----- tools/installer/lib/config-loader.js | 43 +++++++++++++----- tools/installer/lib/installer.js | 22 ++++++--- 16 files changed, 64 insertions(+), 97 deletions(-) create mode 100644 expansion-packs/bmad-2d-phaser-game-dev/config.yml delete mode 100644 expansion-packs/bmad-2d-phaser-game-dev/manifest.yml rename expansion-packs/{expansion-creator => bmad-creator-tools}/README.md (100%) rename expansion-packs/{expansion-creator => bmad-creator-tools}/agents/bmad-the-creator.md (100%) create mode 100644 expansion-packs/bmad-creator-tools/config.yml rename expansion-packs/{expansion-creator => bmad-creator-tools}/tasks/create-agent.md (100%) rename expansion-packs/{expansion-creator => bmad-creator-tools}/tasks/generate-expansion-pack.md (100%) rename expansion-packs/{expansion-creator => bmad-creator-tools}/templates/agent-teams-tmpl.md (100%) rename expansion-packs/{expansion-creator => bmad-creator-tools}/templates/agent-tmpl.md (100%) rename expansion-packs/{expansion-creator => bmad-creator-tools}/templates/expansion-pack-plan-tmpl.md (100%) create mode 100644 expansion-packs/bmad-infrastructure-devops/config.yml delete mode 100644 expansion-packs/bmad-infrastructure-devops/manifest.yml delete mode 100644 expansion-packs/expansion-creator/manifest.yml diff --git a/bmad-core/core-config.yml b/bmad-core/core-config.yml index 9914cc96..dc119328 100644 --- a/bmad-core/core-config.yml +++ b/bmad-core/core-config.yml @@ -17,4 +17,3 @@ devLoadAlwaysFiles: - docs/architecture/source-tree.md devDebugLog: .ai/debug-log.md devStoryLocation: docs/stories -agentCoreDump: .ai/core-dump{n}.md diff --git a/expansion-packs/bmad-2d-phaser-game-dev/config.yml b/expansion-packs/bmad-2d-phaser-game-dev/config.yml new file mode 100644 index 00000000..1e84f869 --- /dev/null +++ b/expansion-packs/bmad-2d-phaser-game-dev/config.yml @@ -0,0 +1,5 @@ +name: bmad-2d-phaser-game-dev +version: 1.1.0 +short-title: 2D game development with Phaser 3 & TypeScript +description: 2D Game Development expansion pack for BMAD Method - Phaser 3 & TypeScript focused +author: Brian (BMad) diff --git a/expansion-packs/bmad-2d-phaser-game-dev/manifest.yml b/expansion-packs/bmad-2d-phaser-game-dev/manifest.yml deleted file mode 100644 index dd94c361..00000000 --- a/expansion-packs/bmad-2d-phaser-game-dev/manifest.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: bmad-2d-phaser-game-dev -version: 1.0.0 -description: 2D Game Development expansion pack for BMAD Method - Phaser 3 & TypeScript focused -author: BMAD Team -files: - - source: agents/game-designer.md - destination: .bmad-core/agents/game-designer.md - - source: agents/game-developer.md - destination: .bmad-core/agents/game-developer.md - - source: agents/game-sm.md - destination: .bmad-core/agents/game-sm.md - - source: team-game-dev.yml - destination: .bmad-core/agent-teams/team-game-dev.yml - - source: templates/game-design-doc-tmpl.md - destination: .bmad-core/templates/game-design-doc-tmpl.md - - source: templates/game-architecture-tmpl.md - destination: .bmad-core/templates/game-architecture-tmpl.md - - source: templates/level-design-doc-tmpl.md - destination: .bmad-core/templates/level-design-doc-tmpl.md - - source: templates/game-story-tmpl.md - destination: .bmad-core/templates/game-story-tmpl.md - - source: templates/game-brief-tmpl.md - destination: .bmad-core/templates/game-brief-tmpl.md - - source: tasks/create-game-story.md - destination: .bmad-core/tasks/create-game-story.md - - source: tasks/game-design-brainstorming.md - destination: .bmad-core/tasks/game-design-brainstorming.md - - source: tasks/advanced-elicitation.md - destination: .bmad-core/tasks/advanced-elicitation.md - - source: checklists/game-story-dod-checklist.md - destination: .bmad-core/checklists/game-story-dod-checklist.md - - source: checklists/game-design-checklist.md - destination: .bmad-core/checklists/game-design-checklist.md - - source: data/bmad-kb.md - destination: .bmad-core/data/bmad-kb.md - - source: data/development-guidelines.md - destination: .bmad-core/data/development-guidelines.md - - source: workflows/game-dev-greenfield.yml - destination: .bmad-core/workflows/game-dev-greenfield.yml - - source: workflows/game-prototype.yml - destination: .bmad-core/workflows/game-prototype.yml -dependencies: - - architect - - developer - - sm diff --git a/expansion-packs/expansion-creator/README.md b/expansion-packs/bmad-creator-tools/README.md similarity index 100% rename from expansion-packs/expansion-creator/README.md rename to expansion-packs/bmad-creator-tools/README.md diff --git a/expansion-packs/expansion-creator/agents/bmad-the-creator.md b/expansion-packs/bmad-creator-tools/agents/bmad-the-creator.md similarity index 100% rename from expansion-packs/expansion-creator/agents/bmad-the-creator.md rename to expansion-packs/bmad-creator-tools/agents/bmad-the-creator.md diff --git a/expansion-packs/bmad-creator-tools/config.yml b/expansion-packs/bmad-creator-tools/config.yml new file mode 100644 index 00000000..bda5452e --- /dev/null +++ b/expansion-packs/bmad-creator-tools/config.yml @@ -0,0 +1,5 @@ +name: bmad-creator-tools +version: 1.0.0 +short-title: Tools for creating BMAD framework components +description: Tools for creating and extending BMAD framework components. +author: Brian (BMad) diff --git a/expansion-packs/expansion-creator/tasks/create-agent.md b/expansion-packs/bmad-creator-tools/tasks/create-agent.md similarity index 100% rename from expansion-packs/expansion-creator/tasks/create-agent.md rename to expansion-packs/bmad-creator-tools/tasks/create-agent.md diff --git a/expansion-packs/expansion-creator/tasks/generate-expansion-pack.md b/expansion-packs/bmad-creator-tools/tasks/generate-expansion-pack.md similarity index 100% rename from expansion-packs/expansion-creator/tasks/generate-expansion-pack.md rename to expansion-packs/bmad-creator-tools/tasks/generate-expansion-pack.md diff --git a/expansion-packs/expansion-creator/templates/agent-teams-tmpl.md b/expansion-packs/bmad-creator-tools/templates/agent-teams-tmpl.md similarity index 100% rename from expansion-packs/expansion-creator/templates/agent-teams-tmpl.md rename to expansion-packs/bmad-creator-tools/templates/agent-teams-tmpl.md diff --git a/expansion-packs/expansion-creator/templates/agent-tmpl.md b/expansion-packs/bmad-creator-tools/templates/agent-tmpl.md similarity index 100% rename from expansion-packs/expansion-creator/templates/agent-tmpl.md rename to expansion-packs/bmad-creator-tools/templates/agent-tmpl.md diff --git a/expansion-packs/expansion-creator/templates/expansion-pack-plan-tmpl.md b/expansion-packs/bmad-creator-tools/templates/expansion-pack-plan-tmpl.md similarity index 100% rename from expansion-packs/expansion-creator/templates/expansion-pack-plan-tmpl.md rename to expansion-packs/bmad-creator-tools/templates/expansion-pack-plan-tmpl.md diff --git a/expansion-packs/bmad-infrastructure-devops/config.yml b/expansion-packs/bmad-infrastructure-devops/config.yml new file mode 100644 index 00000000..1f248403 --- /dev/null +++ b/expansion-packs/bmad-infrastructure-devops/config.yml @@ -0,0 +1,5 @@ +name: bmad-infrastructure-devops +version: 1.0.0 +short-title: Infrastructure and DevOps capabilities +description: This expansion pack extends BMAD Method with comprehensive infrastructure and DevOps capabilities. It's designed for teams that need to define, implement, and manage cloud infrastructure alongside their application development. +author: Brian (BMad) diff --git a/expansion-packs/bmad-infrastructure-devops/manifest.yml b/expansion-packs/bmad-infrastructure-devops/manifest.yml deleted file mode 100644 index 30e7e3ad..00000000 --- a/expansion-packs/bmad-infrastructure-devops/manifest.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: bmad-infrastructure-devops -version: 1.0.0 -description: Infrastructure & DevOps expansion pack for BMAD Method - Platform engineering and cloud infrastructure focused -author: BMAD Team -files: - - source: agents/infra-devops-platform.md - destination: .bmad-core/agents/infra-devops-platform.md - - source: templates/infrastructure-architecture-tmpl.md - destination: .bmad-core/templates/infrastructure-architecture-tmpl.md - - source: templates/infrastructure-platform-from-arch-tmpl.md - destination: .bmad-core/templates/infrastructure-platform-from-arch-tmpl.md - - source: tasks/create-doc.md - destination: .bmad-core/tasks/create-doc.md - - source: tasks/review-infrastructure.md - destination: .bmad-core/tasks/review-infrastructure.md - - source: tasks/validate-infrastructure.md - destination: .bmad-core/tasks/validate-infrastructure.md - - source: checklists/infrastructure-checklist.md - destination: .bmad-core/checklists/infrastructure-checklist.md -dependencies: - - architect - - operations-specialist - - security-specialist diff --git a/expansion-packs/expansion-creator/manifest.yml b/expansion-packs/expansion-creator/manifest.yml deleted file mode 100644 index fc4789bb..00000000 --- a/expansion-packs/expansion-creator/manifest.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: bmad-creator-tools -version: 1.0.0 -description: Tools for creating and extending BMAD framework components -type: creator-tools -compatibility: - bmad-version: '>=4.0.0' -components: - agents: - - bmad-the-creator - tasks: - - create-agent - - generate-expansion-pack diff --git a/tools/installer/lib/config-loader.js b/tools/installer/lib/config-loader.js index 71ff01dd..8a0908c7 100644 --- a/tools/installer/lib/config-loader.js +++ b/tools/installer/lib/config-loader.js @@ -77,24 +77,45 @@ class ConfigLoader { const expansionPacks = []; for (const entry of entries) { - if (entry.isDirectory()) { - const manifestPath = path.join(expansionPacksDir, entry.name, 'manifest.yml'); + if (entry.isDirectory() && !entry.name.startsWith('.')) { + const packPath = path.join(expansionPacksDir, entry.name); + const configPath = path.join(packPath, 'config.yml'); try { - const manifestContent = await fs.readFile(manifestPath, 'utf8'); - const manifest = yaml.load(manifestContent); + // Read config.yml + const configContent = await fs.readFile(configPath, 'utf8'); + const config = yaml.load(configContent); expansionPacks.push({ id: entry.name, - name: manifest.name || entry.name, - description: manifest.description || 'No description available', - version: manifest.version || '1.0.0', - author: manifest.author || 'Unknown', - manifestPath: manifestPath, - dependencies: manifest.dependencies || [] + name: config.name || entry.name, + description: config['short-title'] || config.description || 'No description available', + fullDescription: config.description || config['short-title'] || 'No description available', + version: config.version || '1.0.0', + author: config.author || 'BMAD Team', + packPath: packPath, + dependencies: config.dependencies?.agents || [] }); } catch (error) { - console.warn(`Failed to read manifest for expansion pack ${entry.name}: ${error.message}`); + // Fallback if config.yml doesn't exist or can't be read + console.warn(`Failed to read config for expansion pack ${entry.name}: ${error.message}`); + + // Try to derive info from directory name as fallback + const name = entry.name + .split('-') + .map(word => word.charAt(0).toUpperCase() + word.slice(1)) + .join(' '); + + expansionPacks.push({ + id: entry.name, + name: name, + description: 'No description available', + fullDescription: 'No description available', + version: '1.0.0', + author: 'BMAD Team', + packPath: packPath, + dependencies: [] + }); } } } diff --git a/tools/installer/lib/installer.js b/tools/installer/lib/installer.js index c41d874c..1fd8121f 100644 --- a/tools/installer/lib/installer.js +++ b/tools/installer/lib/installer.js @@ -817,7 +817,7 @@ class Installer { continue; } - const expansionPackDir = path.dirname(pack.manifestPath); + const expansionPackDir = pack.packPath; // Create dedicated dot folder for this expansion pack const expansionDotFolder = path.join(installDir, `.${packId}`); @@ -860,10 +860,22 @@ class Installer { } } - // Copy manifest to the expansion pack's dot folder - const manifestDestPath = path.join(expansionDotFolder, 'manifest.yml'); - if (await fileManager.copyFile(pack.manifestPath, manifestDestPath)) { - installedFiles.push(path.join(`.${packId}`, 'manifest.yml')); + // Copy config.yml + const configPath = path.join(expansionPackDir, 'config.yml'); + if (await fileManager.pathExists(configPath)) { + const configDestPath = path.join(expansionDotFolder, 'config.yml'); + if (await fileManager.copyFile(configPath, configDestPath)) { + installedFiles.push(path.join(`.${packId}`, 'config.yml')); + } + } + + // Copy README if it exists + const readmePath = path.join(expansionPackDir, 'README.md'); + if (await fileManager.pathExists(readmePath)) { + const readmeDestPath = path.join(expansionDotFolder, 'README.md'); + if (await fileManager.copyFile(readmePath, readmeDestPath)) { + installedFiles.push(path.join(`.${packId}`, 'README.md')); + } } // Copy common/ items to expansion pack folder