Contributing to BMad Method
Thank you for considering contributing! We believe in Human Amplification, Not Replacement — bringing out the best thinking in both humans and AI through guided collaboration. 💬 Discord: Join our community for real-time discussions, questions, and collaboration.Our Philosophy
BMad strengthens human-AI collaboration through specialized agents and guided workflows. Every contribution should answer: “Does this make humans and AI better together?”✅ What We Welcome
- Enhanced collaboration patterns and workflows
- Improved agent personas and prompts
- Domain-specific modules leveraging BMad Core
- Better planning and context continuity
- Documentation improvements
- Bug fixes and performance enhancements
❌ What Doesn’t Fit
- Purely automated solutions that sideline humans
- Complexity that creates barriers to adoption
- Features that fragment BMad Core’s foundation
Reporting Issues
ALL bug reports and feature requests MUST go through GitHub Issues.Before Creating an Issue
- Search existing issues — Use the GitHub issue search to check if your bug or feature has already been reported
- Search closed issues — Your issue may have been fixed or addressed previously
- Check discussions — Some conversations happen in GitHub Discussions
Bug Reports
After searching, if the bug is unreported, use the bug report template and include:- Clear description of the problem
- Steps to reproduce the issue
- Expected vs actual behavior
- Your environment:
- AI model (Claude, GPT, Gemini, etc.)
- IDE (Claude Code, Cursor, etc.)
- BMad version
- Operating system
- Screenshots or error messages if applicable
Feature Requests
After searching, use the feature request template and explain:- What the feature is — Clear description of the proposed functionality
- Why it would benefit the BMad community — Use cases and problems it solves
- How it strengthens human-AI collaboration — Alignment with BMad philosophy
Before Starting Work
⚠️ Required before submitting PRs:| Work Type | Requirement |
|---|---|
| Bug fix | An open issue (create one if it doesn’t exist) |
| Feature | An open feature request issue |
| Large changes | Discussion via issue first |
Pull Request Guidelines
Target Branch
Submit PRs to themain branch. We use trunk-based development: main is the trunk where all work lands, and stable release branches receive only cherry-picked fixes.
PR Size
- Ideal: 200-400 lines of code changes
- Maximum: 800 lines (excluding generated files)
- One feature/fix per PR
New to Pull Requests?
- Fork the repository on GitHub
- Clone your fork:
- Create a branch:
- Make changes — Keep them focused on one thing
- Commit with conventional commit message:
- Push to your fork:
- Open PR from your fork on GitHub
PR Description Template
Commit Messages
Use conventional commits:feat:New featurefix:Bug fixdocs:Documentation onlyrefactor:Code change (no bug/feature)test:Adding testschore:Build/tools changes
What Makes a Good PR?
| ✅ Do | ❌ Don’t |
|---|---|
| Change one thing per PR | Mix unrelated changes |
| Clear title and description | Vague or missing explanation |
| Reference related issues | Reformat entire files |
| Small, focused commits | Copy your whole project |
| Work on a branch | Work directly on main |
| Test your changes | Submit untested code |
| Follow existing style | Introduce new patterns |
Development Guidelines
Prompt & Agent Guidelines
- Keep dev agents lean — Focus on coding context, not documentation
- Web/planning agents can be larger with complex tasks
- Everything is natural language (markdown) — No code in core framework
- Use BMad modules for domain-specific features
Validation
Run validation before submitting:File-Pattern-to-Validator Mapping
| File Pattern | Validator | Extraction Function |
|---|---|---|
*.yaml, *.yml | validate-file-refs.js | extractYamlRefs |
*.md, *.xml | validate-file-refs.js | extractMarkdownRefs |
*.csv | validate-file-refs.js | extractCsvRefs |
Real Contribution Examples
Here are some actual contributions from the community:Bug Fix Example
PR #1735: Fixed installer refusing installation in nested directories- Problem: Autocomplete duplicates when installing in nested dirs
- Solution: Check ancestor directories for existing BMAD commands
- Impact: Prevents confusing duplicate commands
Feature Example
PR #1790: Added edge case hunter review task- Problem: Need systematic way to find unhandled edge cases
- Solution: New reusable review task that traces branching paths
- Impact: Complements adversarial review with method-driven analysis
Documentation Example
PR #1772: Fixed broken TEA hyperlinks- Problem: Links pointed to old repository URL
- Solution: Updated all TEA links to new repository
- Impact: Users can access TEA documentation correctly
Need Help?
- 💬 Discord: Join the community
- 🐛 Bugs: Use the bug report template
- 💡 Features: Use the feature request template
Code of Conduct
By participating, you agree to abide by our Code of Conduct.License
By contributing, your contributions are licensed under the same MIT License. See CONTRIBUTORS.md for contributor attribution.Thank you for making BMad Method better for everyone! 🎉
