● MANIFESTO

The code review is broken.

Not the idea. The timing.

It was built for a world where humans wrote code and humans reviewed it; the bottleneck was quality. Careful review made sense when capacity was scarce and catching a bug early was genuinely hard.

Then AI entered the stack.

Teams with high AI adoption now ship 98% more pull requests than two years ago. Review time increased 91%. Reviewer throughput did not. Approvals became rubber stamps. The bugs moved to production anyway.

Faros.ai · 10,000+ developers · 1,255 teams

The problem isn't the reviewer.

By the time a PR is open, the author has moved on. The reviewer reads the diff cold, under time pressure, without the context that existed when the decision was made.

Both parties are operating at a disadvantage the process created.

Generic linting catches syntax. It does not catch the payment retry that charges twice, the auth gap that allows privilege escalation, or the race condition that fails under load. Those bugs require understanding the function's callers, the table's constraints, the API contract three files away. That context takes time reviewers no longer have.

The fix is timing.

Move review left — to the diff, before the branch is shared.

Flag the missing idempotency key while the author still has context. Catch the unhandled rejection before the PR description is written. Return the finding while the code is still open in the editor, not three days later on a thread.

Shift-left testing has been standard practice for two decades. The capability to apply it to code review — scanning a full diff with codebase context in seconds — is new.

What human review is for.

When the mechanical work is handled, human review gets its purpose back.

"Should this be a separate service?" is a human question.
"Is this await missing?" is not.

The code review is not dead. It is moving to where it belongs.