Two Claude sessions, one Notion board, 114 PRs in 11 days
I seeded a Notion board with 92 cards on May 15. Six statuses across the top: Backlog, Next, In Progress, Ready to merge, Done, Parked.
Eleven days later the board has 114 PRs merged, 1 open, 18 closed-unmerged.
Two Claude sessions did the work. They never talked to each other.
Session one is the builder. It reads the board, picks the next unblocked card from Next, opens a worktree, writes the code and tests, opens a PR, flips the card to Ready to merge with the PR URL on it, then refills Next from Backlog.
Session two is the reviewer. It polls Ready to merge, opens the PR URL on the card, reviews the diff, merges, flips the card to Done.
That’s the whole protocol. Two sessions, one board, MCP in between.
The board is the contract
Session one doesn’t know session two exists. It writes a PR URL into a Notion field and flips a status. That’s the entire handoff.
Session two polls Ready to merge on its tick. When a card lands there with a PR URL, it acts. No queue, no webhook, no shared memory. Status plus PR URL is the contract.
Once I trusted the contract, the two sessions ran independently for hours.
Cards open themselves
When the builder hits a bug or spots a missing test mid-conversation, it opens a Notion card before writing any code. The card lands in Backlog with a description and a link back. Next refill pulls it through.
I didn’t see this one coming. Without the self-opened card, every interesting bug becomes a side-quest inside the current PR. The PR bloats, the fix gets buried, the audit trail in the board misses the work entirely.
The work types into Notion. Not me.
Parallelism was not the win
I tried six parallel builders on day one. The topology fell over inside three days. PRs collided in shared files, the reviewer got swamped, 18 of those PRs ended up closed-unmerged.
I dropped to a single builder and a single reviewer. The merge rate stayed the same. The waste went to zero.
Keep the Next column at two or three cards. Grind them all the way to Done. Refill from Backlog. Throughput came from focus, not from running more agents.
Day one was the cutover. 70 merges, most of them small fixes the board had been holding. After that the rate normalised. 15, 4, 7, 2, 5, 11.
One open PR right now. The reviewer will pick it up on the next tick.
Standups, JIRA tickets, Slack threads about what we’re working on. None of that existed for eleven days.
The board became the only interface that mattered. I talked to Claude. Claude talked to Notion. The audit trail was there for me to scroll.
Notion is my product manager now. Claude is the team. The interface between them is a status field and a PR URL.