mirror of
https://github.com/bmadcode/BMAD-METHOD.git
synced 2025-12-17 09:45:25 +00:00
4.2 KiB
4.2 KiB
Modules Domain
File Index
Module Source Locations
- @/src/modules/bmb/ - BMAD Builder module
- @/src/modules/bmgd/ - BMAD Game Development module
- @/src/modules/bmm/ - BMAD Method module (flagship)
- @/src/modules/cis/ - Creative Innovation Studio module
- @/src/modules/core/ - Core module (always installed)
Module Structure Pattern
src/modules/{module-name}/
├── agents/ # Agent YAML files
├── workflows/ # Workflow directories
├── tasks/ # Task definitions
├── tools/ # Tool definitions
├── templates/ # Document templates
├── teams/ # Team definitions
├── _module-installer/ # Custom installer (optional)
│ └── installer.js
├── sub-modules/ # IDE-specific customizations
│ └── {ide-name}/
│ ├── injections.yaml
│ ├── config.yaml
│ └── sub-agents/
├── module.yaml # Module install configuration
└── README.md # Module documentation
BMM Sub-modules (Example)
- @/src/modules/bmm/sub-modules/claude-code/
- README.md - Sub-module documentation
- config.yaml - Configuration
- injections.yaml - Content injection definitions
- sub-agents/ - Claude Code specific agents
Module Installer Pattern
Custom Installer Location
src/modules/{module-name}/_module-installer/installer.js
Installer Function Signature
async function install(options) {
const { projectRoot, config, installedIDEs, logger } = options;
// Custom installation logic
return true; // success
}
module.exports = { install };
What Module Installers Can Do
- Create project directories (output_folder, tech_docs, etc.)
- Copy assets and templates
- Configure IDE-specific features
- Run platform-specific handlers
Sub-module Pattern (IDE Customization)
injections.yaml Structure
name: module-claude-code
description: Claude Code features for module
injections:
- file: .bmad/bmm/agents/pm.md
point: pm-agent-instructions
content: |
Injected content...
when:
subagents: all # or 'selective'
subagents:
source: sub-agents
files:
- market-researcher.md
- requirements-analyst.md
How Sub-modules Work
- Installer detects sub-module exists
- Loads injections.yaml
- Prompts user for options (subagent installation)
- Applies injections to installed files
- Copies sub-agents to IDE locations
IDE Handler Requirements
Creating New IDE Handler
- Create file:
tools/cli/installers/lib/ide/{ide-name}.js - Extend BaseIdeSetup
- Implement required methods
const { BaseIdeSetup } = require('./_base-ide');
class NewIdeSetup extends BaseIdeSetup {
constructor() {
super('new-ide', 'New IDE Name', false); // name, display, preferred
this.configDir = '.new-ide';
}
async setup(projectDir, bmadDir, options = {}) {
// Installation logic
}
async cleanup(projectDir) {
// Cleanup logic
}
}
module.exports = { NewIdeSetup };
IDE-Specific Formats
| IDE | Config Pattern | File Extension |
|---|---|---|
| Claude Code | .claude/commands/bmad/ | .md |
| Cursor | .cursor/rules/bmad/ | .mdc |
| Windsurf | .windsurf/workflows/bmad/ | .md |
| GitHub Copilot | .github/ | .md |
Platform Codes
Defined in @/tools/cli/lib/platform-codes.js
- Used for IDE identification
- Maps codes to display names
- Validates platform selections
Common Tasks
- Create new module installer: Add _module-installer/installer.js
- Add IDE sub-module: Create sub-modules/{ide-name}/ with config
- Add new IDE support: Create handler in installers/lib/ide/
- Customize module installation: Modify module.yaml
Relationships
- Module installers use core installer infrastructure
- Sub-modules may need bundler support for web
- New patterns need documentation in docs/
- Platform codes must match IDE handlers