Skip to content
Essay6 min readCritique

You Merged That. Why.

The unglamorous part of vibe coding nobody posts about — when the merge queue moves faster than anyone can understand what's actually in it.

Critique

Critique

Essay

You merged that.

Why the merge queue outran review

critique.sh

Agent harness · BYOA · Composer 2.5

Merge queue · 11:47pm
Output velocity ↑ · Review capacity →
merged anyway
#847fix authmerged
#851bump depsmerged
#853ai refactormerged
#856quick patchreview
#859cursor genqueued
#862claude sessqueued

Three Claude sessions. Nobody read end to end. Production incident at 11pm.

The gap
Plausible ≠ correct
AI tools daily
72%
developers
Code AI-written
41%
globally
Has vulns
45%
AI-generated
Review capacity
unchanged

Stop shipping straight bullshit and calling it velocity.

You knew it wasn't ready. You merged it anyway.

Not because you're lazy — because you had four other PRs open, a teammate pinging you, and the AI wrote something that looked clean on first scroll. Good enough. Ship it. Figure it out later.

This is the unglamorous part of the vibe coding era nobody's posting about.

Stop shipping straight bullshit and calling it velocity.

Vibe coding unlocked something real. You can go from idea to working feature in an afternoon. The barrier is basically gone. That's not hype — that's just true now.

But here's the thing: the model doesn't know your codebase. It doesn't know what broke last month, why that auth flow is structured that way, or that you should never touch the billing reconciliation logic without three eyes on it. It knows what looks plausible. It's optimising for plausible.

0%
of AI-generated code has security vulnerabilities — plausible and correct are not the same thing.
0%
of developers use AI coding tools daily. Review capacity didn't move.
0%
of code being written globally is now AI-generated.
0min
average teammate approval when everyone's swamped and the diff looks fine.

Here's a scenario that's probably familiar:

The usual loop
Open PRAI wrote most of itSkim — looks fineTeammate approves in 4minMergeWorks for a whileDownstream breaks2hr trace-back
What you needed
Open PRSandbox runs build + testsScout maps blast radiusSpecialists inspect lanesBlock with cited evidenceFix or rejectMerge with proof

Then something downstream breaks and it takes two hours to trace it back to that PR because the logic was subtly wrong in a way that only shows up under a specific condition that nobody tested.

Senior engineers started calling this "development hell" — inheriting AI-written code where nothing is obviously wrong until it is.

If nobody on the team can explain the PR in one sentence, it doesn't merge.

Critique spins up an ephemeral sandbox, runs your code, and catches the breakage before it touches production. Not vibes — actual sandbox verification. Build proof. Type proof. A real block with cited evidence if something's wrong.

If it blocks, it tells you exactly why and where. Whole loop.

Probably you if
  • Solo dev pushing to prod without a real review step.
  • Small team drowning in PRs — everyone's also the reviewer.
  • Founder who gave junior devs AI tools and said go fast.
  • OSS maintainer with contributor PRs stacking faster than you can look.
  • Anyone whose merge queue moves faster than their ability to understand what's in it.
The tell
  • You've merged something you knew wasn't ready.
  • A production incident traced back to an AI-written PR nobody read end to end.
  • Teammates approve in minutes because they're swamped too.
  • You can't explain why the auth flow works that way — the model decided.
  • "Figure it out later" became "debug it at 11pm."

You're already building fast. Critique is just the part that checks if what you built is actually good.

Stop merging bullshit.

Sandbox verification, specialist review lanes, merge policy as code — built for teams whose merge queue moves faster than their ability to understand what's in it.

Try Critique → critique.sh