Run the loop
Start it
Open Claude Code at the repository root, ideally on a strong model at low effort (the agents pin their own models):
claude --model opus --effort low
/dispatcher:start v1.1.0
Name one or more milestones; that is the only thing the loop will touch.
Without one it lists the board's milestones and asks. Optional, in another
terminal: dispatcher listen lets board and PR changes wake the loop within
seconds instead of at its timer (setup).
What you will see
- On the board: a dispatched task moves to
In Progresswith the developer agent shown as its agent and one claim comment on the issue. When the developer finishes, the agent flips to the reviewer; when the review passes, the task lands inHuman Reviewwith no agent. - In the session: one line of status per round saying whether it is busy, out of work, or waiting on you, plus anything that needs you: a question, a task it skipped, follow-up work an agent noticed.
- On GitHub: branches named
task/<id>-<slug>, PRs opened by the developer app, a comment-only review from the reviewer app.
What you do
- Move tasks from
BacklogtoReady, and reorder the board; the top is worked first. - Review the PRs at
Human Review. Merge, or request changes on the PR; the task goes back to the developer with your review word for word. - Answer questions: reply on the issue, then move the task to
ReadyorChanges Requested. - Put
Confirm with useron anything you want a word about before it starts. - Take a task yourself by assigning yourself with no agent (details).
Stop it
/dispatcher:stop # finish what is running, take no new work
/dispatcher:stop now # stop the running agents and put their tasks back
Run it in the same session. Nothing is lost either way: the next
/dispatcher:start resumes from the board. A session that dies without
stopping leaves claims behind; they expire after 90 minutes and the next
dispatcher takes them over.