A BMAD module pairing the automation skills with the
bmad-loop orchestrator tool (the
Python program that drives the loop). The skills can be installed by the BMAD
installer, or laid down by bmad-loop init (the orchestrator's wheel bundles
them); either way bmad-loop-setup installs the bmad-loop package from its
Git repository, so installing this module gives you a working system — skills
plus the orchestrator that invokes them. Standard BMAD installs are never
modified; the skills are bmad-loop-owned, standalone or bmad-loop-native (see
the table below).
| Component | Forked from | Role |
|---|---|---|
bmad-loop |
— (this repo, Git) | the orchestrator: ralph-loop, hooks, tmux adapters, TUI. CLI bmad-loop. Installed by bmad-loop-setup from Git. |
bmad-loop-resolve |
— (bmad-loop-native) | interactive CRITICAL-escalation resolution: a human disambiguates a frozen spec so a paused story can be re-driven (/bmad-loop-resolve <story>) |
bmad-loop-sweep |
— (bmad-loop-native) | read-only deferred-work ledger triage; owns the canonical deferred-work-format.md |
bmad-loop-setup |
— (scaffolded) | installs the orchestrator tool from Git, runs bmad-loop init + validate, refreshes _bmad/bmad-loop/module-help.csv |
The inner dev primitive is the upstream bmad-dev-auto skill (BMAD-METHOD's
generic unattended dev session). It is not owned or bundled here — the
orchestrator drives it as an external skill that must already be installed
(by the BMad installer / bmm-core). The bmad-loop orchestrator synthesizes its result.json
from the spec the session leaves on disk (see bmad_loop.devcontract). The skill
self-reviews inline (Blind + Edge-Case hunters in its step-04) and commits its own
work each iteration; the orchestrator's follow-up review is just a re-invocation
of bmad-dev-auto on the done spec (BMAD-METHOD #2508 routes a done spec to a
fresh review pass), so there is no separate review skill.
The orchestrator tool now bundles these skills, so bmad-loop init lays them
down for you:
uv tool install "bmad-loop[tui] @ git+https://github.com/bmad-code-org/bmad-loop.git"
bmad-loop init --project /path/to/project --cli claude # add --cli codex/gemini as needed
claude "/bmad-loop-setup accept all defaults" # installs the tool + wires the projectbmad-loop init installs the bmad-loop-* skills into .claude/skills/
(claude) and/or .agents/skills/ (codex/gemini), registers hooks, writes
.bmad-loop/policy.toml, and gitignores the runs dir. Existing skill dirs are
left untouched (--force-skills to overwrite, --no-skills to skip).
bmad-loop-setup is one-shot for the bootstrap the BMAD installer cannot do: it
ensures the orchestrator tool is installed, then runs bmad-loop init and
bmad-loop validate (preflight). Module registration — _bmad/bmad-loop/, the
central config.toml, the /bmad-help catalog — belongs to the BMAD installer,
which regenerates it on every run; the only file the skill writes there is
_bmad/bmad-loop/module-help.csv.
The skills must be installed together: bmad-loop-sweep owns the canonical
deferred-work-format.md that the ledger normalizes to, and the upstream
bmad-dev-auto dev session must also be present (it appends flat deferred-work
entries the orchestrator normalizes on sweep). Requires the BMad Method (bmm)
module (_bmad/bmm/config.yaml) and a sprint-status.yaml from
bmad-sprint-planning.
_bmad/custom/<skill-name>.toml customization overrides are keyed by skill
directory name.
- This directory (
src/bmad_loop/data/skills/) is canonical for the skills and is bundled into the wheel as package data, sobmad-loop initcan install them. The repo's.claude/skills/and.agents/skills/hold dev-workspace copies;tests/test_module_skills_sync.pyfails if they drift. After editing here, re-copy the skill dirs into both trees. - The orchestrator tool is not bundled in the skill dirs — the BMAD installer
copies only the skill directories, so a sibling
tool/would never reach an installed project.bmad-loop-setupinstalls thebmad-looppackage from https://github.com/bmad-code-org/bmad-loop (src/bmad_loop,pyproject.tomlare canonical at the repo root). (The skills, by contrast, ride along inside the package wheel.) - The inner dev primitive
bmad-dev-autois not maintained here — it is the upstream bmm-core skill, driven unmodified. Nothing in this directory mirrors it; the orchestrator adapts to it viabmad_loop.devcontract. - Do not rename the result.json
workflowvalues — they are machine contracts the orchestrator validates, not skill names:- dev →
"auto-dev"(checked byverify.DEV_WORKFLOWinverify_dev/verify_dev_bundle; the orchestrator forges this value indevcontractwhen synthesizing the dev result from the spec). - sweep triage / migrate →
"deferred-sweep-triage"/"deferred-sweep-migrate"(checked insweep.py).
- dev →
Validate after changes (from the repo root):
python3 .claude/skills/bmad-module-builder/scripts/validate-module.py src/bmad_loop/data/skills