bro

bro flow loop

The autonomous backlog runner β€” claim, spawn, gate, close, repeat.

bro flow next is one scheduling step. bro flow loop IS the loop β€” it claims each ready bead, spawns the configured agent in a fresh worktree, drives the act gate, closes the bead, and repeats until the queue is idle or gated. The flat scheduler lives in bro flow next; planned group work is bro flow convoy.

CommandWhat it does
bro flow loopRun until the queue is idle or gated
bro flow loop --max NCap the number of beads in this run
bro flow loop --dry-runPrint the next plan without changing state
bro flow loop --agent '<template>'Override the configured agent β€” a value naming a configured providers.<name> spawns through the registry instead
bro flow loop --provider <name>Pick a provider explicitly
bro flow loop --profile <name>Apply a fleet.profiles preset
bro flow loop --model <m> / --auto-approveModel override / acp permission policy for the provider lane
bro flow loop --label a,bOnly claim beads carrying one of these labels
bro flow loop --batch NClump up to N same-affinity beads per claim β€” one worktree, one worker, one PR (per-bead commits name their id; uncovered members re-queue on merge)
bro flow loop --stack <name>Put each claimed bead on a named stack
bro flow loop --max-open N / --disk-min-slots NGate-stack cap / disk floor override (0 disables the floor β€” pushes hold while free disk can't cover NΓ—loop.worktreeMb)
bro flow loop --jsonEmit the loop event stream as JSON

The agent resolves like bro fleet agents up: a named provider runs its registry entry (acp providers spawn the headless acp-worker; cli providers substitute their command for the template), and a raw loop.agent/--agent template stays the escape hatch β€” {promptFile} expands to the generated work order. The agent runs to completion β€” there is no per-agent time budget; its output appends to <git-common>/bro/loop/<bead>.log and bro review watch/bro fleet status flag silence past loop.stallMin as an advisory for the orchestrator, never a kill. mergeTimeoutMin, stallMin, fixRounds, and maxItems control the run; --interval controls gate polling. See loop config.