Skip to content

Quickstart ​

This guide walks through running the loop on the shipped sample data. By the end you will have seen a full pipeline run — input file, plan display, lifecycle trace, sample output file.

Before you start ​

Confirm the prerequisites:

bash
node --version        # >= 18
git --version
gh --version && gh auth status

All three should report healthy versions. The gh auth status line should show your account as logged in.

1. Install the skill ​

From the project where you want to use it:

bash
node /tmp/bmad-dev-loop/bin/bmad-dev-loop.js install

Expected output:

installed bmad-dev-loop to /your/project/.opencode/skills/bmad-dev-loop
scope:   project
invoke:  /bmad-dev-loop <story-keys>

2. Drop the sample data into your project ​

The skill ships sample data inside the skill folder. To try the loop on it:

bash
mkdir -p _bmad-output/implementation-artifacts
cp .opencode/skills/bmad-dev-loop/examples/sample-sprint-status.yaml \
   _bmad-output/implementation-artifacts/sprint-status.yaml
cp .opencode/skills/bmad-dev-loop/examples/sample-story.md \
   _bmad-output/implementation-artifacts/4-1-dry-run-mode.md
cp .opencode/skills/bmad-dev-loop/examples/sample-story.md \
   _bmad-output/implementation-artifacts/4-2-posix-compliant-cli.md
cp .opencode/skills/bmad-dev-loop/examples/sample-story.md \
   _bmad-output/implementation-artifacts/4-3-ide-extension-socket.md

3. Try the dry-run first ​

Before dispatching real subagents, preview what the loop would do:

bash
/bmad-dev-loop epic-4

With workflow.dry_run = true set, the skill will:

  1. Parse epic-4 → expand to 4-1, 4-2, 4-3.
  2. Validate each against sprint-status.yaml.
  3. Print the plan.
  4. Write _bmad-output/implementation-artifacts/loop-status.yaml with all three stories set to pending plus a # DRY RUN marker.
  5. HALT with status halted_dry_run.

The plan will look like:

Loop Plan (3 stories):

  [1/3] 4-1 — dry-run-mode          (ready-for-dev)
  [2/3] 4-2 — posix-compliant-cli   (ready-for-dev)
  [3/3] 4-3 — ide-extension-socket  (ready-for-dev)

To set dry-run, add to your _bmad/custom/bmad-dev-loop.toml:

toml
[workflow]
dry_run = true

4. Run the loop for real ​

When you're ready to dispatch real subagents:

bash
/bmad-dev-loop 4-1 4-2 4-3

You will be asked once:

Ready to start the loop? This will process 3 stories sequentially.

Confirm. The skill then iterates through the stories. For each one it:

  1. Dispatches a dev subagent running bmad-dev-story.
  2. Dispatches a review subagent running bmad-code-review.
  3. Creates a branch, commits, pushes, opens a PR.
  4. Polls CI; auto-fixes on transient failures (up to ci_max_retries).
  5. Merges the PR with the configured strategy (default: squash).
  6. Moves on to the next story.

5. Inspect the output ​

After the loop finishes, open:

bash
cat _bmad-output/implementation-artifacts/loop-status.yaml

You should see something like the sample output. Every story's status transitions are recorded, plus a rollup summary at the bottom.

What it looked like on the leanproxy-mcp origin run ​

Phase4-1 (dry-run-mode)4-2 (posix-cli)4-3 (ide-socket)
DEV8m 12s7m 58s6m 02s
REVIEW1m 14s1m 30s1m 11s
PR0m 22s0m 18s0m 25s
CI (attempt 1)3m 04s ✅3m 30s ✅3m 18s ❌ lint
CI (attempt 2)——3m 34s ✅
MERGE0m 06s0m 06s0m 07s
Total12m 58s13m 22s14m 37s

Run wall-clock for the whole loop: ~36 minutes, mostly human-waiting on CI.

Next step ​

Continue to The workflow for a deeper look at each phase.

Released under the MIT License.