“I’d treat the five agents as five contractors who can’t talk to each other. They never collide while they work; they collide at merge time, in the files they both touched, and they all queue behind the same reviewer. So the setup is mostly about which tasks I hand out and how much review I can absorb, not about launching agents.
First, triage the backlog by files. Only tasks that are independent, scoped to named files and checkable by a command go to the fleet: a flaky test, one endpoint, a dependency bump. A rename or a framework upgrade runs alone and merges first, because it overlaps everything. If two tasks touch the same file, they’re one task.
Second, each agent gets its own branch, its own VM or container with no secrets inside, and a network allowlist. The rules live in the harness, not the prompt: allow the test runner, deny force-push and .env, a Stop hook that won’t accept ‘done’ while tests fail, required checks, and the person who asked for the PR can’t approve it.
Third, size the fleet to review and to the bill. Five agents at three PRs a day is fifteen PRs, about five hours of careful reading. I track merged PRs per reviewer hour and cost per merged PR, and I only add a sixth agent while the queue still drains.”