I've seen a lot of people talking about the practice of code review in a way that I consider unrealistic lately. So here are my thoughts on what code review is—and isn't—for: https://blog.glyph.im/2026/03/what-is-code-review-for.html
What Is Code Review For?

Code review is not for catching bugs.

Sorry for the jump scare in the back half, but, this is my attempt to (A) write about The Problem without comprehensively making everything *about* The Problem all the time, and, (B) hack off a bit of useful philosophizing and writing from my Enormous Never-Going-To-Be-Finished Omnibus Post

@glyph I like point 2.

> Second — and this is actually its more important purpose — code review is a tool for acculturation.

And your points about automatic checks being the primary filters on code properties are well taken and worth repeating.

@jmeowmeow @glyph

Code review is a social process, and you should treat it as such.

This is why we also like to include a "distant voice" in code review, someone within the big org who is less intimately familiar with the code/code base, just to notice things the local folk have perhaps become blind to, and to socialize more broadly coding practices and organizational affordances. (Also catches integration bugs and interface confusion early, which is a plus.)

@glyph It worries me that I see people talking about using LLMs to perform code review.

@glyph To check the "I use AI" box at work, I've started using Copilot to "review" the code.

I kick it off at the very end: either before approving the PR when I'm a reviewer, or before requesting a review for a peer.

The goal is to keep my reviewing skills sharp by making sure that I find all the issues and the Copilot run is clean.

Is it useful? I'm not sure. I definitely think AI reviews don't worth burning the planet.

Copilot is very good at correcting natural English. This is neat, but should be easily caught by human.

Copilot might be a mix of static code analysis tools mixed together with LLMs (is it what agents are basically are), because it found some inconsistencies.

I would rather configure dedicated tools to do this and use them as I'm writing the code.