diff --git a/README.md b/README.md
index 84dc0e91..b8be3e55 100644
--- a/README.md
+++ b/README.md
@@ -97,10 +97,10 @@ The BMad Method (BMM) is a complete AI-driven agile development framework that r
- **PM** - Product planning and requirements
- **Analyst** - Research and business analysis
- **Architect** - Technical architecture and design
-- **Game Designer** - Game-specific design and documentation
- **Scrum Master** - Sprint planning and story management
- **Developer** - Implementation with senior dev review
-- **And more** - UX, Test Architect, specialized game roles
+- **Game Development** (Optional) - Game Designer, Game Developer, Game Architect
+- **And more** - UX, Test Architect, and other specialized roles
### Documentation
@@ -168,6 +168,7 @@ The interactive installer will guide you through:
1. **Project location** - Where to install BMad
2. **Module selection** - Choose which modules you need (BMM, BMB, CIS)
3. **Configuration** - Set your name, language preferences, and module options
+ - **Game Development (Optional)**: When installing BMM, you can optionally include game development agents and workflow!
4. **IDE integration** - Configure your development environment
### What Gets Installed
diff --git a/bmad/bmb/workflows/create-agent/agent-architecture.md b/bmad/bmb/workflows/create-agent/agent-architecture.md
index 46ad6441..9a6d0732 100644
--- a/bmad/bmb/workflows/create-agent/agent-architecture.md
+++ b/bmad/bmb/workflows/create-agent/agent-architecture.md
@@ -230,7 +230,7 @@ Bad: ../../../relative/paths/
```xml
-
+ data="{project-root}/bmad/_cfg/agent-manifest.csv">
Run daily standup
```
diff --git a/bmad/bmb/workflows/create-agent/agent-command-patterns.md b/bmad/bmb/workflows/create-agent/agent-command-patterns.md
index f4c4cbe5..84d64911 100644
--- a/bmad/bmb/workflows/create-agent/agent-command-patterns.md
+++ b/bmad/bmb/workflows/create-agent/agent-command-patterns.md
@@ -119,7 +119,7 @@ Execute single operations
-
+ data="{project-root}/bmad/_cfg/agent-manifest.csv">
Run agile team standup
```
diff --git a/src/modules/bmb/workflows/create-agent/agent-architecture.md b/src/modules/bmb/workflows/create-agent/agent-architecture.md
index 0fb4e60b..f025cdde 100644
--- a/src/modules/bmb/workflows/create-agent/agent-architecture.md
+++ b/src/modules/bmb/workflows/create-agent/agent-architecture.md
@@ -230,7 +230,7 @@ Bad: ../../../relative/paths/
```xml
-
+ data="{project-root}/bmad/_cfg/agent-manifest.csv">
Run daily standup
```
diff --git a/src/modules/bmb/workflows/create-agent/agent-command-patterns.md b/src/modules/bmb/workflows/create-agent/agent-command-patterns.md
index f4c4cbe5..84d64911 100644
--- a/src/modules/bmb/workflows/create-agent/agent-command-patterns.md
+++ b/src/modules/bmb/workflows/create-agent/agent-command-patterns.md
@@ -119,7 +119,7 @@ Execute single operations
-
+ data="{project-root}/bmad/_cfg/agent-manifest.csv">
Run agile team standup
```
diff --git a/src/modules/bmm/README.md b/src/modules/bmm/README.md
index e63369f1..ed92f354 100644
--- a/src/modules/bmm/README.md
+++ b/src/modules/bmm/README.md
@@ -21,6 +21,15 @@ Specialized AI agents for different development roles:
- **UX** - User experience design
- And more specialized roles
+**Game Development Agents** (Optional):
+During installation, you can optionally include game development specialists:
+
+- **Game Designer** - Creative vision and game design documents (GDD)
+- **Game Developer** - Game-specific implementation
+- **Game Architect** - Game systems and technical infrastructure
+
+These agents come with specialized workflows (`brainstorm-game`, `game-brief`, `gdd`) and are only installed if you select "Include Game Planning Agents and Workflows" during BMM installation.
+
### 📋 `/workflows`
The heart of BMM - structured workflows for the four development phases:
diff --git a/src/modules/bmm/_module-installer/install-config.yaml b/src/modules/bmm/_module-installer/install-config.yaml
index 8ec4c7c4..285feb20 100644
--- a/src/modules/bmm/_module-installer/install-config.yaml
+++ b/src/modules/bmm/_module-installer/install-config.yaml
@@ -19,6 +19,11 @@ project_name:
default: "{directory_name}"
result: "{value}"
+include_game_planning:
+ prompt: "Include Game Planning Agents and Workflows?"
+ default: false
+ result: "{value}"
+
user_skill_level:
prompt:
- "What is your technical experience level?"
diff --git a/src/modules/bmm/agents/sm.agent.yaml b/src/modules/bmm/agents/sm.agent.yaml
index 8f627d7a..cb71525e 100644
--- a/src/modules/bmm/agents/sm.agent.yaml
+++ b/src/modules/bmm/agents/sm.agent.yaml
@@ -47,7 +47,7 @@ agent:
- trigger: retrospective
workflow: "{project-root}/bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml"
- data: "{project-root}/bmad/_cfg/agent-party.xml"
+ data: "{project-root}/bmad/_cfg/agent-manifest.csv"
description: Facilitate team retrospective after epic/sprint
- trigger: correct-course
diff --git a/src/modules/bmm/tasks/daily-standup.xml b/src/modules/bmm/tasks/daily-standup.xml
index 90c5f048..4fa9fa34 100644
--- a/src/modules/bmm/tasks/daily-standup.xml
+++ b/src/modules/bmm/tasks/daily-standup.xml
@@ -26,7 +26,7 @@
- Blockers: {{blockers-from-story}}
Team assembled based on story participants:
- {{ List Agents from {project-root}/bmad/_cfg/agent-party.xml }}
+ {{ List Agents from {project-root}/bmad/_cfg/agent-manifest.csv }}
diff --git a/src/modules/bmm/teams/team-gamedev.yaml b/src/modules/bmm/teams/team-gamedev.yaml
index 0f1000e0..f2c8e702 100644
--- a/src/modules/bmm/teams/team-gamedev.yaml
+++ b/src/modules/bmm/teams/team-gamedev.yaml
@@ -7,3 +7,8 @@ agents:
- game-designer
- game-dev
- game-architect
+
+workflows:
+ - brainstorm-game
+ - game-brief
+ - gdd
diff --git a/tools/cli/README.md b/tools/cli/README.md
index fd66209c..68b1e38b 100644
--- a/tools/cli/README.md
+++ b/tools/cli/README.md
@@ -66,7 +66,7 @@ node tools/cli/bundlers/bundle-web.js agent bmm pm # One agent
```bash
npm run bmad:status # Installation status
npm run validate:bundles # Validate web bundles
-node tools/cli/regenerate-manifests.js # Regenerate agent-party.xml files
+node tools/cli/regenerate-manifests.js # Regenerate agent-manifest.csv files
```
---
@@ -566,10 +566,10 @@ To add a new handler type (e.g., `validate-workflow`):
### Regenerating Manifests
```bash
-# Regenerate agent-party.xml for all modules
+# Regenerate agent-manifest.csv for all modules
node tools/cli/regenerate-manifests.js
-# Location: src/modules/{module}/agents/agent-party.xml
+# Location: src/modules/{module}/agents/agent-manifest.csv
```
---
diff --git a/tools/cli/bundlers/test-bundler.js b/tools/cli/bundlers/test-bundler.js
index 1ea108cc..6e17cc2e 100755
--- a/tools/cli/bundlers/test-bundler.js
+++ b/tools/cli/bundlers/test-bundler.js
@@ -45,7 +45,7 @@ async function testWebBundler() {
const hasPersona = content.includes('');
const activationBeforePersona = content.indexOf('');
const hasManifests =
- content.includes('') && content.includes('');
+ content.includes('') && content.includes('');
const hasDependencies = content.includes('');
console.log(chalk.green('✓ Analyst bundle created successfully'));
diff --git a/tools/cli/bundlers/web-bundler.js b/tools/cli/bundlers/web-bundler.js
index 382e261b..e31abe1b 100644
--- a/tools/cli/bundlers/web-bundler.js
+++ b/tools/cli/bundlers/web-bundler.js
@@ -620,8 +620,8 @@ class WebBundler {
}
processed.add(filePath);
- // Skip agent-party.xml manifest for web bundles (agents are already bundled)
- if (filePath === 'bmad/_cfg/agent-party.xml' || filePath.endsWith('/agent-party.xml')) {
+ // Skip agent-manifest.csv manifest for web bundles (agents are already bundled)
+ if (filePath === 'bmad/_cfg/agent-manifest.csv' || filePath.endsWith('/agent-manifest.csv')) {
return;
}
@@ -1393,8 +1393,8 @@ class WebBundler {
// Ensure temp directory exists
await fs.ensureDir(this.tempManifestDir);
- // Generate agent-party.xml using shared generator
- const agentPartyPath = path.join(this.tempManifestDir, 'agent-party.xml');
+ // Generate agent-manifest.csv using shared generator
+ const agentPartyPath = path.join(this.tempManifestDir, 'agent-manifest.csv');
await AgentPartyGenerator.writeAgentParty(agentPartyPath, this.discoveredAgents, { forWeb: true });
console.log(chalk.dim(' ✓ Created temporary manifest files'));
diff --git a/tools/cli/installers/lib/core/installer.js b/tools/cli/installers/lib/core/installer.js
index ea2e6dae..318160ad 100644
--- a/tools/cli/installers/lib/core/installer.js
+++ b/tools/cli/installers/lib/core/installer.js
@@ -912,6 +912,9 @@ class Installer {
* @param {Object} moduleFiles - Module files to install
*/
async installModuleWithDependencies(moduleName, bmadDir, moduleFiles) {
+ // Get module configuration for conditional installation
+ const moduleConfig = this.configCollector.collectedConfig[moduleName] || {};
+
// Use existing module manager for full installation with file tracking
// Note: Module-specific installers are called separately after IDE setup
await this.moduleManager.install(
@@ -922,6 +925,7 @@ class Installer {
},
{
skipModuleInstaller: true, // We'll run it later after IDE setup
+ moduleConfig: moduleConfig, // Pass module config for conditional filtering
},
);
@@ -1990,7 +1994,7 @@ class Installer {
* @param {Array} agentDetails - Array of agent details
*/
async generateAgentManifest(bmadDir, agentDetails) {
- const manifestPath = path.join(bmadDir, '_cfg', 'agent-party.xml');
+ const manifestPath = path.join(bmadDir, '_cfg', 'agent-manifest.csv');
await AgentPartyGenerator.writeAgentParty(manifestPath, agentDetails, { forWeb: false });
}
diff --git a/tools/cli/installers/lib/modules/manager.js b/tools/cli/installers/lib/modules/manager.js
index 0724751d..06a5d531 100644
--- a/tools/cli/installers/lib/modules/manager.js
+++ b/tools/cli/installers/lib/modules/manager.js
@@ -113,7 +113,7 @@ class ModuleManager {
}
// Copy module files with filtering
- await this.copyModuleWithFiltering(sourcePath, targetPath, fileTrackingCallback);
+ await this.copyModuleWithFiltering(sourcePath, targetPath, fileTrackingCallback, options.moduleConfig);
// Process agent files to inject activation block
await this.processAgentFiles(targetPath, moduleName);
@@ -231,14 +231,26 @@ class ModuleManager {
}
/**
- * Copy module with filtering for localskip agents
+ * Copy module with filtering for localskip agents and conditional content
* @param {string} sourcePath - Source module path
* @param {string} targetPath - Target module path
+ * @param {Function} fileTrackingCallback - Optional callback to track installed files
+ * @param {Object} moduleConfig - Module configuration with conditional flags
*/
- async copyModuleWithFiltering(sourcePath, targetPath, fileTrackingCallback = null) {
+ async copyModuleWithFiltering(sourcePath, targetPath, fileTrackingCallback = null, moduleConfig = {}) {
// Get all files in source
const sourceFiles = await this.getFileList(sourcePath);
+ // Game development files to conditionally exclude
+ const gameDevFiles = [
+ 'agents/game-architect.agent.yaml',
+ 'agents/game-designer.agent.yaml',
+ 'agents/game-dev.agent.yaml',
+ 'workflows/1-analysis/brainstorm-game',
+ 'workflows/1-analysis/game-brief',
+ 'workflows/2-plan-workflows/gdd',
+ ];
+
for (const file of sourceFiles) {
// Skip sub-modules directory - these are IDE-specific and handled separately
if (file.startsWith('sub-modules/')) {
@@ -255,6 +267,19 @@ class ModuleManager {
continue;
}
+ // Skip game development content if include_game_planning is false
+ if (moduleConfig.include_game_planning === false) {
+ const shouldSkipGameDev = gameDevFiles.some((gamePath) => {
+ // Check if file path starts with or is within any game dev directory
+ return file === gamePath || file.startsWith(gamePath + '/') || file.startsWith(gamePath + '\\');
+ });
+
+ if (shouldSkipGameDev) {
+ console.log(chalk.dim(` Skipping game dev content: ${file}`));
+ continue;
+ }
+ }
+
const sourceFile = path.join(sourcePath, file);
const targetFile = path.join(targetPath, file);
diff --git a/tools/cli/lib/agent-party-generator.js b/tools/cli/lib/agent-party-generator.js
index 03995c3f..1528ae68 100644
--- a/tools/cli/lib/agent-party-generator.js
+++ b/tools/cli/lib/agent-party-generator.js
@@ -3,7 +3,7 @@ const fs = require('fs-extra');
const AgentPartyGenerator = {
/**
- * Generate agent-party.xml content
+ * Generate agent-manifest.csv content
* @param {Array} agentDetails - Array of agent details
* @param {Object} options - Generation options
* @returns {string} XML content
@@ -28,7 +28,7 @@ const AgentPartyGenerator = {
let xmlContent = `
-
+
Complete roster of ${forWeb ? 'bundled' : 'installed'} BMAD agents with summarized personas for efficient multi-agent orchestration.
Used by party-mode and other multi-agent coordination features.
@@ -193,7 +193,7 @@ const AgentPartyGenerator = {
},
/**
- * Write agent-party.xml to file
+ * Write agent-manifest.csv to file
*/
async writeAgentParty(filePath, agentDetails, options = {}) {
const content = this.generateAgentParty(agentDetails, options);