Thank you for your interest in contributing to the BMAD Plugin for Claude Code.
This project uses Git Flow (not GitHub Flow). The key difference:
PRs merge to dev, not main.
feature-branch → PR → dev → (accumulate) → main → tag release
| Branch | Purpose |
|---|---|
main |
Latest release. What users install from the Claude Code marketplace. |
dev |
Development. Where feature PRs merge. |
feature/* |
Individual features or fixes. Branch from dev. |
- Never push directly to
main— always merge fromdev - PR target is
dev— notmain main= release — the Claude Code marketplace reads the default branch, so every commit onmainis immediately available to users- Tag releases on
main— after mergingdev→main
The Claude Code plugin marketplace installs from the default branch (main)
with no option to specify a different branch. This means main must always be
in a releasable state. We use dev as a buffer to accumulate and test features
before promoting them to main.
# Clone and install
git clone https://github.com/PabloLION/bmad-plugin.git
cd bmad-plugin
bun install
# Switch to dev branch
git checkout dev
# Run tests (requires Claude CLI and API access)
bun test-
Create a feature branch from
dev:git checkout dev git pull git checkout -b feature/my-change
-
Make your changes
-
Run tests:
bun test -
Commit using conventional commits:
feat: add new skill for sprint review fix: correct agent prompt for quinn docs: update changelog -
Open a PR targeting
dev
This plugin tracks bmad-code-org/BMAD-METHOD
as its upstream. The version is recorded in .upstream-versions/core.json. A GitHub Action
checks weekly for new upstream releases and opens an issue when one is found.
Releases are handled by maintainers using:
./scripts/release.sh <new-version>This bumps the version in all files, commits, tags, pushes, and creates a GitHub release.