You Can't Review 50 PRs a Day
The loudest critic of my post about queuing tickets and waking up to 50 open PRs said I must be rubber-stamping slop.
He’s half right.
He’s right that no one can meaningfully review 50 substantial pull requests a day. He’s wrong about what’s in those PRs, and he underestimates how good agent code gets with the right guardrails.
What’s actually in the PRs
Most tickets aren’t features. They’re the mundane or forever-backlog work:
- Flaky test fixes. Run the candidate fix 50 times in CI; green means it’s low-risk to merge.
- Dependabot updates that fail CI. Agents triage, fix, or close.
- Stale feature flags at 100% rollout. Agents delete the dead branches.
- The long tail of a 1M-line JavaScript-to-TypeScript migration.
Each one is scoped, with a tight feedback loop where review is cheap. The PR volume is a side effect of clearing that backlog, not a target.
What makes it safe to let these run overnight is the harness around the model, not the model alone.
The skill chain
I don’t write a prompt, walk away, and hope for the best. I’ve written or borrowed small skills, each with one job, that hand off to each other.
I first tried a version where subagents coordinated themselves. It wasn’t pretty. The agents wandered and wouldn’t reliably work together, so I spent more time herding them than I would have if I’d written the code myself. The fix was to break the work into stages and put a skill at each stage.
For small tasks:
/plan. Claude Code or Codex plan mode. Garbage in, garbage out, so I spend the time getting the plan right./go. Implements the plan, runs the validation commands declared inAGENTS.md, then calls/commit-push-pr./commit-push-pr. Branches, runs/simplifyto strip duplication and obvious performance hazards, opens the PR./babysit-pr. Watches CI, fixes failures and merge conflicts, and triages each AI review comment: agree and fix, disagree and explain, or defer to prevent bloat.- I review and tag humans.
For larger tasks, plan mode isn’t enough. The agent doesn’t ask hard questions, so I end up doing less thinking and pay for it later. The chain expands:
/grill-with-docsinstead of/plan. It might ask 20 questions that force a real decision tree. Two detours commonly surface here: a tangential refactor I didn’t know was lurking, which I hand off to a fresh session so the current one stays focused; or a function shape or UI I need to see before I can answer, which I hand off into/prototypeand then back to the grilling agent./to-prd, in the same grilling window, so the PRD inherits everything we just argued through./to-issuesfans it out into child tickets taggedagent-any.groundcrewchurns through them, respecting blocking relationships./babysit-pr, then human review.
The grilling step is the secret. Plan mode produces a plan. Grilling produces a set of decisions. Everything downstream is cheaper when those decisions are right.