I dismissed an AI code review comment.
Nothing unusual there.
What was interesting was what happened in the next pull request.
A few PRs later, a similar pattern appeared in the code. I expected the same review comment.
It wasn't there.
That small behavior points to a bigger question for AI-assisted code review:
What should an AI reviewer do when an engineer disagrees with it?
If the answer is simply “nothing,” the reviewer stays stateless.
If the answer is “learn from the decision,” review behavior can become more aligned with the repository over time.
The annoying part of automated review
AI code review can catch things that are easy to miss.
But there is another failure mode: repetition.
A reviewer finds something that looks questionable according to a general coding guideline.
The developer knows the pattern is intentional.
The comment gets dismissed.
Then another PR comes along.
The same pattern appears.
The reviewer raises the same concern.
The developer dismisses it again.
And again.
At some point, the problem isn't that the reviewer cannot find issues.
The problem is that it hasn't learned which issues this repository doesn't need to discuss repeatedly.
That is where dismissal-learning becomes interesting.
PR #1: The first review
Imagine a repository where a particular implementation pattern is intentional.
An AI reviewer sees it and leaves a comment:
AI reviewer:
Consider changing X to Y for better consistency.
The comment is reasonable in isolation.
But the repository has a reason for using X.
So the engineer dismisses the comment:
Dismissed.
This pattern is intentional in this repository.
Normally, that interaction is over.
The comment disappears from the PR.
But the dismissal contains useful information.
A dismissal is engineering feedback
A dismissal doesn't necessarily mean:
“The reviewer is useless.”
It can mean:
“This recommendation doesn't apply to this codebase.”
That's an important distinction.
Repositories have local conventions that aren't always obvious from the code itself.
Some exist because of:
- compatibility requirements
- architectural decisions
- performance constraints
- legacy integrations
- operational considerations
- team conventions
- deliberate trade-offs
A generic reviewer doesn't automatically know all of these.
The developer does.
So when a developer dismisses a review comment, that decision can be treated as feedback about the repository.
The interesting part is what happens next.
Turning the dismissal into repository memory
Instead of storing only the conversation, the system can extract the underlying pattern from the interaction.
Conceptually:
Review comment
↓
Developer dismissal
↓
Underlying pattern identified
↓
Repository memory
↓
Future reviews use that context
For example:
Repository memory:
"This pattern is accepted/preferred in this repository."
The important word here is repository.
This isn't a global rule saying that the pattern is always correct.
It is context associated with this particular codebase.
That's important because engineering decisions are rarely universal.
A pattern that is discouraged in one repository may be completely intentional in another.
PR #2: The same situation appears again
Now a different pull request arrives.
The code contains a similar pattern.
Without repository memory, the reviewer might produce:
AI reviewer:
Consider changing X to Y for better consistency.
Which leads to another dismissal.
With the previous feedback available as repository context, the reviewer can recognize that this type of comment has already been rejected for this repository.
So the result is:
AI reviewer:
[No comment]
That's the part I find interesting.
The system didn't need another configuration file.
The developer didn't need to write a permanent rule manually.
A previous engineering decision influenced a future review.
Before vs. after
| Situation | Without dismissal-learning | With repository memory |
|---|---|---|
| First PR | Review comment appears | Review comment appears |
| Developer response | Dismisses comment | Dismisses comment |
| Feedback retained | Little or no context | Pattern becomes repository context |
| Similar later PR | Same comment may return | Reviewer can stay quiet |
| Developer experience | Repeated explanation | Less repeated feedback |
This doesn't mean every similar comment should disappear.
Context still matters.
But it creates the possibility of a reviewer that becomes better aligned with the repository's actual engineering decisions.
This isn't “remembering a conversation”
This distinction is worth making.
When people hear “AI memory,” they often think about conversational memory:
“Remember what I told you yesterday.”
That's not the interesting part here.
The useful unit is the engineering decision.
The system needs to understand something closer to:
Pattern:
X is used in this repository.
Developer decision:
This usage is intentional.
Review implication:
Don't repeatedly flag this pattern in the same context.
That's repository memory.
It turns feedback from an individual review interaction into context that can influence future reviews.
Why this feedback loop matters
Code review isn't just about detecting problems.
It's also about communicating what a team considers important.
Human reviewers naturally build this context over time.
After reviewing hundreds of pull requests, an experienced engineer knows:
- which patterns are normal
- which warnings are usually noise
- which conventions are intentional
- which architectural decisions shouldn't be revisited every PR
An AI reviewer that doesn't retain any of that context has to rediscover the same information repeatedly.
That creates review fatigue.
A feedback loop changes the model:
Find something
↓
Developer responds
↓
Learn from the response
↓
Apply the context later
↓
Produce more relevant feedback
The goal isn't fewer comments for the sake of fewer comments.
It's higher-signal comments.
There are caveats
Dismissal-learning shouldn't turn every dismissal into a permanent rule.
A developer can dismiss something because the comment is wrong.
They can also dismiss it because the context is different in that particular file or PR.
The architecture may change later.
A pattern that was acceptable six months ago might become a technical debt issue today.
So repository memory needs scope and context.
The right behavior isn't:
“This was dismissed once, never mention it again.”
It's closer to:
“Previous engineering feedback says this pattern is acceptable here. Consider that context before raising the same observation again.”
That's a much more useful mental model.
The interesting shift
AI code review is often discussed in terms of how much it can detect.
I think another question deserves equal attention:
How well can it learn what not to say?
A reviewer that finds everything but repeatedly generates low-value comments can still create friction.
A reviewer that incorporates developer feedback can gradually become more aligned with the repository.
That's what makes this behavior interesting.
One comment gets dismissed.
The underlying pattern becomes repository memory.
A similar situation appears later.
The reviewer stays quiet.
Not because the reviewer has learned everything.
Not because repeated comments magically disappear.
But because a real engineering decision from the repository has become part of the context for the next review.
That's what “gets quieter” actually means.
If you want to see this behavior rather than read about it, the most useful test is simple: try it on a repository with an established review convention and watch what happens across two similar PRs.
See the mechanism in action on your own repository.
Top comments (0)