6.9 KiB
6.9 KiB
Technology Stack & Setup
Core Technologies
Runtime
- Node.js: v20+ (required)
- JavaScript: ES6+ with CommonJS modules
- Package Manager: npm
Languages
- Markdown: Agent definitions, documentation
- YAML: Workflow configurations, settings
- XML: Structured agent data (embedded in markdown)
- JavaScript: CLI tools and bundler
Project Dependencies
Production Dependencies
{
"ora": "^8.1.1", // Elegant terminal spinners
"chalk": "^5.3.0", // Terminal string styling
"prompts": "^2.4.2", // Interactive CLI prompts
"commander": "^12.1.0", // CLI framework
"yaml": "^2.6.1", // YAML parser
"glob": "^11.0.0", // File pattern matching
"fast-xml-parser": "^4.5.0" // XML parsing
}
Development Dependencies
{
"@eslint/js": "^9.17.0",
"eslint": "^9.17.0",
"prettier": "^3.4.2",
"husky": "^9.1.7", // Git hooks
"lint-staged": "^15.2.11" // Pre-commit linting
}
File Structure
bmad-method/
├── package.json # Project metadata & scripts
├── package-lock.json # Dependency lock
├── .nvmrc # Node version specification
├── .npmrc # npm configuration
├── eslint.config.mjs # ESLint configuration
├── prettier.config.mjs # Prettier configuration
├── .husky/ # Git hooks
│ └── pre-commit # Pre-commit checks
├── src/ # Source code
│ └── modules/ # Module implementations
│ ├── bmm/ # BMad Method module
│ ├── bmb/ # BMad Builder module
│ └── cis/ # Creative Intelligence Suite
├── tools/ # Build & development tools
│ └── cli/ # Installation CLI
│ ├── install.js # Interactive installer
│ ├── bundler.js # Module bundler
│ └── utils/ # Shared utilities
├── bmad/ # Installed framework (runtime)
│ ├── core/ # Core framework
│ ├── _cfg/ # User customizations
│ └── {modules}/ # Installed modules
├── docs/ # Documentation
├── test/ # Test files
└── .kilocode/ # Kilocode AI configuration
Build & Development
Available Scripts
# Install alpha version
npx bmad-method@alpha install
# Install stable version (v4)
npx bmad-method install
# Development (from source)
npm install
npm run lint
npm run format
Code Quality
ESLint: JavaScript linting
- Config:
eslint.config.mjs - Rules: ES6+ standards
- Auto-fix on pre-commit
Prettier: Code formatting
- Config:
prettier.config.mjs - Runs on pre-commit via lint-staged
- Formats JS, JSON, YAML, MD
Husky: Git hooks
- Pre-commit: Runs lint-staged
- Ensures code quality before commits
Installation Process
User Installation Flow
- User runs:
npx bmad-method@alpha install - CLI downloads and executes installer
- Interactive prompts:
- Project location
- Module selection (BMM, BMB, CIS)
- User configuration (name, language)
- Game development option (for BMM)
- IDE selection
- Installer generates:
bmad/directory structure- Module files (core + selected)
config.yamlwith user settings- Customization templates in
_cfg/ - IDE-specific config files
- Manifests (agents, workflows, tasks)
- IDE integration setup
- Completion message with next steps
Technical Installation Details
Module Bundling:
- Source in
src/modules/ - CLI bundles to distributable format
- Copies to user's project as
bmad/{module}/
Manifest Generation:
- Scans installed agents →
agent-manifest.csv - Scans workflows →
workflow-manifest.csv - Scans tasks →
task-manifest.csv - Used for runtime discovery
IDE Integration:
- Claude Code:
.claude/directory setup - Cursor:
.cursorrulesfile generation - VS Code:
.vscode/settings - Cline/Roo: Compatible formats
Configuration Files
Project Configuration
config.yaml (bmad/core/config.yaml)
user_name: "Developer Name"
communication_language: "en"
output_folder: "_docs"
project_name: "MyProject"
Agent Customization
Agent Override (bmad/_cfg/agents/agent-name.yaml)
name: "Custom Name"
description: "Custom description"
communication_style: "Custom style"
additional_instructions: "Extra behavior"
IDE Configuration
.claude/ (Claude Code)
- Agent files as slash commands
- Task shortcuts
- Workflow commands
.cursorrules (Cursor)
- Inline rules for agent behavior
- Project-specific instructions
Development Workflow
Working with Agents
- Create/edit in
src/modules/{module}/agents/ - Use XML-in-markdown format
- Test with IDE integration
- Customizations go to
bmad/_cfg/agents/
Working with Workflows
- Create YAML in
src/modules/{module}/workflows/ - Add instructions.md
- Optional: template.md, checklist.md
- Test with BMad Master agent
- Reference in agent menu items
Testing Approach
- Manual testing via IDE integration
- Installer testing in clean environments
- Workflow validation with real projects
- User feedback from alpha testers
Version Control
What to Commit
- Source code (
src/,tools/) - Configuration (eslint, prettier, etc.)
- Documentation (
docs/, READMEs) - Package files (package.json, lock)
What to Ignore (.gitignore)
node_modules/bmad/(installed by users)- IDE-specific files (user-dependent)
- Build artifacts
.envfiles
Distribution
npm Package
- Package:
bmad-method - Alpha:
bmad-method@alpha - Stable:
bmad-method(v4.x currently) - Registry: npm public registry
Installation Sources
- npx: Direct from npm (recommended)
- GitHub: Clone and run from source
- Local: Development and testing
Environment Requirements
Minimum Requirements
- Node.js: v20.0.0+
- OS: Windows, macOS, Linux
- IDE: Any supporting markdown or AI agents
- Disk: ~50MB for framework + modules
Recommended Setup
- Node.js: Latest LTS
- IDE: Claude Code, Cursor, or VS Code with AI extensions
- Git: For version control integration
- Terminal: Modern with Unicode support
Troubleshooting
Common Issues
- Node version mismatch: Check
.nvmrc, use nvm - Installation fails: Clear npm cache, retry
- Agent not loading: Check file paths, manifests
- Config not found: Verify
bmad/core/config.yamlexists - Customization not applying: Check YAML syntax, file names
Debug Mode
- Check installer output for errors
- Verify manifest files were generated
- Confirm config.yaml has all required fields
- Test agents individually before workflows