AI-Written Change Descriptions

2026-07-11 · page · source ↗ · source summary

Kenton Varda's sharp diagnosis of why AI-generated PR and commit messages fail at code review: they describe what the code does (visible from reading the diff) while omitting why the change exists at all — the higher-level framing that makes review possible. Simon Willison amplifies it as a one-post quote, but the argument is dense enough to deserve its own page.


Key Quotes

"I declared a moratorium against AI-written change descriptions (such as PR and commit messages). I had found them to be worse than useless when it comes to reviewing code: they spend paragraphs describing things that are obvious from reading the code, while omitting the higher-level framing that I need to understand the broader purpose and decide if the changes make sense."

This is the whole post. Varda packs three distinct claims into two sentences: (1) AI descriptions describe the observable, (2) they omit the architectural why, and (3) without that framing, code review can't do its actual job. The word "moratorium" is doing real work here — it's not "I stopped asking AI to write commit messages," it's "I banned them." The severity of the judgment matches the severity of the failure mode.

"worse than useless"

Not "unhelpful." Not "sometimes misleading." Worse than useless. An empty commit message leaves the reviewer knowing they have no context and forces them to reconstruct it. An AI-generated message provides false context — it reads like a competent summary and therefore suppresses the instinct to dig deeper. This is the same dynamic Claude Is Not Your Architect names as the "attaboy problem": AI outputs that read as coherent and confident actively prevent the skepticism that produces good work.


Key Themes


Critical Analysis

Why this lands harder than it looks. Varda's two sentences are doing something that most AI-code-review discourse misses. The AI-review conversation has focused on correctness: can an AI reviewer find bugs, spot security issues, detect anti-patterns? Those are all about evaluating the code itself. Varda's complaint is about evaluating the change — whether the delta between old and new makes sense given what we're trying to accomplish. That requires context no diff contains: product decisions, architectural direction, team constraints, the thing we learned last week that made us pivot. An AI can't know those things unless you tell it — and if you've told it, you've already done the work the commit message was supposed to capture.

The worse-than-useless dynamic is underappreciated. The standard AI criticism is that it produces confident bullshit. Varda's critique is more specific: AI commit messages aren't bullshit, they're accurate in a way that's counterproductive. They describe the diff competently — and that very competence makes the reviewer think they understand the change when they don't. A bad human commit message ("fix stuff") leaves you aware of your ignorance. A good AI commit message leaves you unaware. The second is more dangerous.

What this implies for agent workflows. If AI can't write useful change descriptions, the workflow that has an agent produce code + description + PR in one shot has a structural blind spot. Either the human writes the description (preserving the framing that only the human has), or the agent's description becomes noise that masks the absence of framing. This is a concrete argument for bram-style approval gates where human-written plans are the durable artifact and agent-generated code is a disposable implementation detail. Meat (Reading Diff) attacks the same gap from the artifact side rather than the description side: it compresses the diff itself to the load-bearing change (keeping only a one-line summary), on the bet that if the change is legible enough, a human can reconstruct the framing the description omitted.

The commit message as the only survivor. The Knowledge Chipper extends Varda's argument by naming what's not in the commit message: the entire context the agent built during the session. The agent scanned files, searched docs, built a rich understanding of the codebase — and when the session ends, the only artifact is "a commit message and whatever amount of code comments the LLM deemed fit." The commit message was always going to be inadequate; the real problem is that everything else was thrown away.

The Willison effect. Willison posting this as a standalone quote — no commentary, no "I agree," just the quote — is itself a signal. He doesn't do this for things he disagrees with or finds trivial. The format (quote-only post) is his highest-signal curation mechanism. When Simon Willison runs a quote without commentary, he's saying "this speaks for itself and I endorse it."


Sources: raw/kenton-varda Last updated: 2026-07-11