The Rallypoint Playbook
A repository protocol agents can actually follow.
Rallypoint does not run your models. It gives every coding agent a shared operating system for deciding what to do, proving ownership, shipping changes, reviewing them, and keeping the queue healthy.
The party oath
- 1
One issue, one branch, one pull request.
- 2
A worker claims exactly one ready issue before editing code.
- 3
A reviewer never approves work produced by the same agent.
- 4
The repository and GitHub API are the only coordination state.
- 5
Every role has explicit GitHub permissions and explicit prohibitions.
- 6
Failed checks and requested changes stay with the current quest.
Role boundaries
| Role | Claims? | Reviews? | Purpose |
|---|---|---|---|
| Planner | No | No | Grooms a ready backlog. |
| Worker | One | Never own work | Ships one issue as one pull request. |
| Reviewer | No | Yes | Grants or withholds the verdict. |
| Tester | Filed gap only | No | Finds and closes coverage gaps. |
| Fixer | No | No | Addresses review feedback in place. |
| Janitor | No | No | Releases stale claims and reservations. |
| Orchestrator | No | No | Reads state and dispatches the next role. |
Install the campaign pack
Rallypoint’s CLI reads its own signed campaign manifest and writes each file to an explicit repository-root path. It stops on conflicts rather than overwriting anything silently. An existing AGENTS.md gets special handling: it’s left untouched, the rest of the loop still installs, and the CLI suggests adding a one-line @AGENTIC_LOOP.md reference to it.
npx rallypoint@latest view loopnpx rallypoint@latest add loopPrompt the party
A role is one file, so at minimum, prompting an agent to become that role means pointing a fresh session at AGENTS.md and exactly one file under .rallypoint/roles/. The table below is that literal minimum — the shortest instruction an agent needs, stripped of anything a person would normally say.
Don’t know what should happen next? Prompt the orchestrator first. It reads the same queue every other role reads and names the next role and target, so you know exactly what to prompt a fresh session with.
| Role | Prompt |
|---|---|
| Orchestrator | Read AGENTS.md, then read .rallypoint/roles/orchestrator.md. Decide which role should run next and name the exact issue or pull request it targets. |
| Planner | Read AGENTS.md, then read .rallypoint/roles/planner.md and follow it exactly. |
| Worker | Read AGENTS.md, then read .rallypoint/roles/worker.md and follow it exactly. |
| Reviewer | Read AGENTS.md, then read .rallypoint/roles/reviewer.md and follow it exactly. |
| Tester | Read AGENTS.md, then read .rallypoint/roles/tester.md and follow it exactly. |
| Fixer | Read AGENTS.md, then read .rallypoint/roles/fixer.md and follow it exactly. |
| Janitor | Read AGENTS.md, then read .rallypoint/roles/janitor.md and follow it exactly. |
Read AGENTS.md, then read .rallypoint/roles/orchestrator.md. Decide which role should run next and name the exact issue or pull request it targets.How a person actually asks
Nobody talks like the table above. People say please, add context the role file doesn’t need, chain two or three asks into one message, run several roles at once, or set the whole thing on a schedule. None of that breaks the loop — the role files are boundaries, not scripts, so any of these land the same as the literal prompts above.
A simple, polite ask
“Could you grab the next ready issue and ship it? Thanks!”
With extra context the role file doesn’t need
“A couple of users got stuck on the auth step in yesterday's onboarding call — can you check the backlog reflects that, add whatever's missing, and reprioritize anything blocking a fix?”
Chained into one message
“Run the planner to top up the ready queue, then have a worker pick up whatever's highest priority, and kick off review as soon as that PR is open.”
Several roles at once
“Spin up three workers in parallel on the three oldest ready issues, and have a reviewer standing by for whichever one finishes first.”
On a schedule
“Set this up to loop: run the janitor every morning to clear stale claims, and have the orchestrator check in every few hours to tell me what's next.”