DEV Community

Oskar Reyes
Oskar Reyes

Posted on • Originally published at blog.koardy.com

How to Review Pull Requests Without a Meeting

The PR review meeting usually starts with good intentions: reviews are stalling, so put everyone in a room and clear the queue. It works once. Then it becomes a standing meeting whose real function is hiding that reviews are still stalling everywhere else.

Reviews stall for structural reasons — nobody knows it's their turn, the PR is too big to start, and waiting is invisible. A meeting fixes none of those. A system does. Here's one you can set up in an afternoon.

1. Cap the size of a PR before you cap review time

A 1,200-line diff doesn't get reviewed; it gets skimmed and approved. The single highest-leverage rule is a soft cap: if a PR is over ~400 lines of diff, it gets split or it gets a written reason in the description. Reviewers may still decline a monster on sight — that's the point. Size limits are what make "review within a day" a plausible promise instead of a fantasy.

Captain America: I can do this all day

2. Make the queue visible, not verbal

Async review dies when "waiting on review" is something you have to ask about in standup. Put open PRs in a dedicated lane on the board, sorted by age, next to the tasks they close. The rule: anything older than 24 working hours is red, and red gets read first. No meeting required — the oldest item is just obviously, publicly oldest.

3. Assign an owner, not a crowd

"Anyone can review" means no one does. Every PR gets one named reviewer — round-robin, by area of the codebase, doesn't matter — and that person owns the first response, not necessarily the whole review. First response within one working day: a real review, a request for changes, or "I'm the wrong reviewer, handing to X." Silence is the only failure mode.

4. Separate blocking from non-blocking feedback

Async review gets slow when every comment is treated as a gate. Adopt two prefixes and enforce them socially:

  • blocking: must be resolved before merge (correctness, security, broken tests)
  • nit: optional; author decides (style, naming, taste)

Reviewers who write "blocking:" have to be able to say what breaks without the change. It keeps the bar honest in both directions.

5. Close the loop without a call

The author merges when CI is green and blocking comments are resolved — not when a meeting says so. The board updates itself because the merge is the update: the task moves, the PR lane clears, and the whole team can see it happened.

Approved stamp slamming down

That last part is why we built Kahoona the way we did: PRs stream into the project board next to the tasks they close, so the review queue is a live lane, not a spreadsheet someone maintains.

👉 Make your review queue visible — free to start

Related: Pull request dashboards, explained · How to run async standups from your GitHub activity

Top comments (0)