DEV Community

Codzee.io
Codzee.io

Posted on

I Put an AI Reviewer on Every PR. Here's What Happened After the 100th Review.

At first, adding an AI code reviewer to every pull request feels like cheating.

Every PR gets another pair of eyes.

Every diff gets analyzed.

Potential bugs are pointed out before a human reviewer even opens the PR.

The first few reviews are impressive.

Then something strange happens.

You stop reading every comment.

Not because the reviewer is always wrong.

Because you learn that most comments aren't worth stopping for.

That's the part of AI code review I think we don't talk about enough.

The reviewer's first job isn't finding bugs

It's earning the developer's attention.

Imagine this PR:

AI review

✓ Possible null handling issue
✓ Consider extracting this function
✓ This variable could be renamed
✓ Potential race condition
✓ Missing test case
✓ This comment could be clearer
✓ Consider using...
✓ Consider using...
✓ Consider using...
Enter fullscreen mode Exit fullscreen mode

The problem isn't that every comment is bad.

Some might be useful.

The problem is that the developer now has to perform another review:

“Which of these comments should I care about?”

That's review fatigue.

And it can happen surprisingly quickly.


There are four kinds of AI review noise

I've found it useful to think about review noise in four categories.

1. Wrong

The reviewer identifies something that isn't actually a problem.

Example:

This condition can never be true.
Enter fullscreen mode Exit fullscreen mode

Except it can.

The reviewer simply misunderstood how the value reaches the function.

This is the easiest type of noise to recognize.

2. Technically correct

This one is more dangerous.

Example:

This function is 45 lines long.
Consider splitting it into smaller functions.
Enter fullscreen mode Exit fullscreen mode

Fine.

Maybe that's a good idea.

But if the PR is fixing a production incident and the function is intentionally kept together for transactional behavior, this isn't the problem the reviewer should be talking about.

The comment isn't wrong.

It just isn't useful right now.

3. Missing context

This happens constantly.

The reviewer sees:

if (!user) {
    return;
}
Enter fullscreen mode Exit fullscreen mode

and says:

“Potentially unsafe null handling.”

But the API intentionally permits anonymous users.

The reviewer doesn't understand the business rule.

The developer does.

Now the developer has to explain the business rule to the AI reviewer.

That's backwards.

4. Repetition

This is the fastest way to turn useful tooling into background noise.

The same type of comment appears over and over.

Eventually developers recognize the pattern.

They stop reading.

And once they stop reading, the good comments get ignored too.


The worst metric for AI code review

I don't care how many comments an AI reviewer generates.

Seriously.

Imagine two systems.

System A

100 comments.

8 accepted.

System B

15 comments.

9 accepted.

Which one would you rather have?

Obviously B.

But comment volume is seductive because it's easy to put on a dashboard.

PRs reviewed: 2,381

Issues detected: 14,921
Enter fullscreen mode Exit fullscreen mode

That sounds impressive.

It doesn't tell you whether developers found those issues useful.

I'd rather see:

Findings: 1,200

Accepted: 780
Dismissed: 310
Duplicates: 70
Enter fullscreen mode Exit fullscreen mode

Now we're measuring something interesting.


Try a review-noise audit

If your team already uses AI code review, here's a simple experiment.

Take the last 100 AI-generated review comments.

Put each one into one of these buckets:

A — Fixed
B — Discussed / investigated
C — Dismissed
D — Duplicate
E — Not actionable
Enter fullscreen mode Exit fullscreen mode

Then calculate the percentages.

For example:

Fixed:              31%
Investigated:       18%
Dismissed:           27%
Duplicate:           12%
Not actionable:      12%
Enter fullscreen mode Exit fullscreen mode

Now you have a much more useful picture of your reviewer.

The interesting number isn't “31% fixed.”

It's everything else.

Because every dismissed or low-value comment still consumed some amount of developer attention.


Then look at severity

This is another place where AI reviewers can lose trust.

Suppose a normal PR gets:

5 critical issues
Enter fullscreen mode Exit fullscreen mode

You investigate them.

Three are style suggestions.

One is a minor maintainability concern.

One is actually important.

After a few PRs like that, what does “critical” mean to you?

Probably not much.

Severity needs a contract.

For example:

Critical

Could realistically cause:

  • security compromise
  • data loss
  • major outage
  • broken core functionality

High

Meaningful production risk.

Medium

Worth fixing but not urgent.

Low

Minor concern.

And then there's another category:

Don't comment

If the reviewer isn't confident enough, it should stay quiet.


The uncomfortable lesson

Developers don't need an AI reviewer that notices everything.

They need one that knows what not to mention.

That's a very different optimization target.

A human reviewer naturally filters.

They might see 20 questionable things and comment on 2.

Why?

Because they understand that every comment costs the author something.

Time.

Attention.

Discussion.

Potential context switching.

AI systems don't naturally feel that cost.

They need to be designed around it.


AI writing code makes this more important

There's another reason this problem is getting bigger.

AI coding agents can produce much larger changes much faster.

A developer might ask:

“Add OAuth login.”

The agent might modify:

auth/
middleware/
routes/
database/
frontend/
tests/
configuration/
documentation/
Enter fullscreen mode Exit fullscreen mode

Now someone has to understand that entire change.

The bottleneck has moved.

We used to ask:

“How can we write code faster?”

Now we increasingly need to ask:

“How can we verify more code without increasing cognitive load at the same rate?”

That is a much harder engineering problem.


So what should an AI reviewer actually do?

My ideal reviewer has five rules.

Rule 1: Don't repeat deterministic tools

If ESLint already catches it, don't produce another paragraph explaining it.

If the compiler catches it, don't create an AI warning.

AI should focus on things that require reasoning.

Rule 2: Understand the surrounding code

A diff without context is often not enough.

The reviewer should understand relevant:

  • functions
  • tests
  • interfaces
  • configuration
  • repository conventions
  • PR intent

Rule 3: Prioritize risk

A potential authentication vulnerability should not appear underneath 12 variable-naming suggestions.

Rank findings.

Rule 4: Explain why the finding matters

Don't say:

“This could cause a problem.”

Say what could happen.

For example:

“This query now executes once per customer because it sits inside the loop. At 10,000 customers, this turns the operation into an N+1 query pattern.”

That's actionable.

Rule 5: Be willing to say nothing

This may be the most important rule.

A review that returns:

“No high-confidence issues found.”

can be a successful review.

Silence is better than noise.


Where Codzee fits

This is the problem space where Codzee is interesting.

The useful question isn't:

“Can we put AI on every pull request?”

That's relatively easy now.

The harder question is:

“Can we put AI on every pull request without making developers hate the review process?”

That requires better prioritization, useful context, and a focus on actionable findings rather than maximizing comment volume.

That's the direction AI-assisted code review needs to move.


A simple mental model

Think about AI review like a security guard.

A bad security guard stops everyone.

“Bag check.”

“Bag check.”

“Bag check.”

“Bag check.”

Enter fullscreen mode Exit fullscreen mode

Eventually everyone stops paying attention.

A good security guard doesn't stop everyone.

They identify the situations that actually deserve attention.

AI code review should work the same way.

Don't maximize interruptions.

Maximize useful interruptions.


The real success metric

After a few months of using an AI reviewer, ask your team one question:

“When this reviewer leaves a comment, do you usually read it?”

If everyone says yes, you've probably built trust.

If people say:

“I usually just dismiss them.”

You have a problem.

And it's not necessarily model accuracy.

It's relevance.

The reviewer has become background noise.

That's what I mean by earned irrelevance.

The AI didn't necessarily fail because it couldn't find bugs.

It failed because developers stopped believing that its comments were worth their attention.

And in code review, attention is the resource that matters most.


What about your team?

If you're already using an AI code reviewer, try the 100-comment audit.

Take your last 100 comments.

Classify them.

Then see how many were actually useful.

I'd be genuinely interested in what teams are finding.

Are AI reviewers reducing your review workload, or have they just created another thing you have to review?


Disclosure: This article discusses Codzee as an example of AI-assisted code-review tooling. The broader argument is about the design of AI review workflows, not a claim that any single tool solves the problem.

Top comments (0)