mirror of
https://github.com/bmadcode/BMAD-METHOD.git
synced 2025-12-17 09:45:25 +00:00
5.2 KiB
5.2 KiB
Installers Domain
File Index
Core CLI
- @/tools/cli/bmad-cli.js - Main CLI entry (uses Commander.js, auto-loads commands)
- @/tools/cli/README.md - CLI documentation
Commands Directory
- @/tools/cli/commands/install.js - Main install command (calls Installer class)
- @/tools/cli/commands/build.js - Build operations
- @/tools/cli/commands/list.js - List resources
- @/tools/cli/commands/update.js - Update operations
- @/tools/cli/commands/status.js - Status checks
- @/tools/cli/commands/agent-install.js - Custom agent installation
- @/tools/cli/commands/uninstall.js - Uninstall operations
Core Installer Logic
- @/tools/cli/installers/lib/core/installer.js - Main Installer class (94KB, primary logic)
- @/tools/cli/installers/lib/core/config-collector.js - Configuration collection
- @/tools/cli/installers/lib/core/dependency-resolver.js - Dependency resolution
- @/tools/cli/installers/lib/core/detector.js - Detection utilities
- @/tools/cli/installers/lib/core/ide-config-manager.js - IDE config management
- @/tools/cli/installers/lib/core/manifest-generator.js - Manifest generation
- @/tools/cli/installers/lib/core/manifest.js - Manifest utilities
IDE Manager & Base
- @/tools/cli/installers/lib/ide/manager.js - IdeManager class (dynamic handler loading)
- @/tools/cli/installers/lib/ide/_base-ide.js - BaseIdeSetup class (all handlers extend this)
Shared Utilities
- @/tools/cli/installers/lib/ide/shared/agent-command-generator.js
- @/tools/cli/installers/lib/ide/shared/workflow-command-generator.js
- @/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js
- @/tools/cli/installers/lib/ide/shared/module-injections.js
- @/tools/cli/installers/lib/ide/shared/bmad-artifacts.js
CLI Library Files
- @/tools/cli/lib/ui.js - User interface prompts
- @/tools/cli/lib/config.js - Configuration utilities
- @/tools/cli/lib/project-root.js - Project root detection
- @/tools/cli/lib/platform-codes.js - Platform code definitions
- @/tools/cli/lib/xml-handler.js - XML processing
- @/tools/cli/lib/yaml-format.js - YAML formatting
- @/tools/cli/lib/file-ops.js - File operations
- @/tools/cli/lib/agent/compiler.js - Agent YAML to XML compilation
- @/tools/cli/lib/agent/installer.js - Agent installation
- @/tools/cli/lib/agent/template-engine.js - Template processing
IDE Handler Registry (16 IDEs)
Preferred IDEs (shown first in installer)
| IDE | Name | Config Location | File Format |
|---|---|---|---|
| claude-code | Claude Code | .claude/commands/ | .md with frontmatter |
| codex | Codex | (varies) | .md |
| cursor | Cursor | .cursor/rules/bmad/ | .mdc with MDC frontmatter |
| github-copilot | GitHub Copilot | .github/ | .md |
| opencode | OpenCode | .opencode/ | .md |
| windsurf | Windsurf | .windsurf/workflows/bmad/ | .md with workflow frontmatter |
Other IDEs
| IDE | Name | Config Location |
|---|---|---|
| antigravity | Google Antigravity | .agent/ |
| auggie | Auggie CLI | .augment/ |
| cline | Cline | .clinerules/ |
| crush | Crush | .crush/ |
| gemini | Gemini CLI | .gemini/ |
| iflow | iFlow CLI | .iflow/ |
| kilo | Kilo Code | .kilocodemodes (file) |
| qwen | Qwen Code | .qwen/ |
| roo | Roo Code | .roomodes (file) |
| trae | Trae | .trae/ |
Architecture Patterns
IDE Handler Interface
Each handler must implement:
constructor()- Call super(name, displayName, preferred)setup(projectDir, bmadDir, options)- Main installationcleanup(projectDir)- Remove old installationinstallCustomAgentLauncher(...)- Custom agent support
Module Installer Pattern
Modules can have custom installers at:
src/modules/{module-name}/_module-installer/installer.js
Export: async function install(options) with:
- options.projectRoot
- options.config
- options.installedIDEs
- options.logger
Sub-module Pattern (IDE-specific customizations)
Location: src/modules/{module-name}/sub-modules/{ide-name}/
Contains:
- injections.yaml - Content injections
- config.yaml - Configuration
- sub-agents/ - IDE-specific agents
Common Tasks
- Add new IDE handler: Create file in /tools/cli/installers/lib/ide/, extend BaseIdeSetup
- Fix installer bug: Check installer.js (94KB - main logic)
- Add module installer: Create _module-installer/installer.js if custom installer logic needed
- Update shared generators: Modify files in /shared/ directory
Relationships
- Installers may trigger bundlers for web output
- Installers create files that tests validate
- Changes here often need docs updates
- IDE handlers use shared generators