On writing PR descriptions

Hey team,

We’re all producing more code than ever, meaning there’s more code to review than ever.

We’re also building critical infrastructure for our customers to rely on to build their products.

As controversial as that seems to be these days, we will continue to read the code

Because reviewing is becoming the new bottleneck, we need to optimize how we produce code for reviews. This includes many things, but let’s focus on PR descriptions.

You Know Too Much

You just did the work. You know what the code should do. You are not the audience!

LLM-generated descriptions are incredible at producing a convincing-looking summary of random facts about the PR. To you, the author, these all look legit and make sense because you have all the context.

A reviewer, however, goes into the review with zero or near-zero context and needs the PR description to get them up to speed, not only on what changed, but especially what the goal was and why you did it.

PR descriptions are primarily for the reviewer, not the author.

It’s usually not too hard to figure out what changed, you can just look at the code. But figuring out why something was done, or why a more obvious solution wasn’t chosen, is usually impossible to tell from the code diff alone.

Writing Is the First Review

Turning your mental model into complete sentences forces you to make your assumptions and reasoning explicit, which may reveal problems.

At the end of the day, this is your code and you are responsible for it. That means you need to understand it better than anyone, and writing about it is one of the easiest ways to find problems.

Slow Down, Ship Faster

Obviously, writing a PR description by hand is slower than asking an LLM to “write a PR description, make no mistakes.” But optimizing for your time means optimizing the wrong part of the process.

You already have the context and only need to write it down once. Without it, every reviewer has to reconstruct that context independently from the diff, ask questions, and wait for answers.

A few extra minutes from you can save much more time across the team, especially when several people are reviewing the same change. Slowing down before requesting review helps everyone move faster afterward. It gets your PR merged faster and frees you up to ship more.

Engineer The Review

A good PR description gives reviewers the mental model they need before they open the diff. It doesn’t replace reading the code. It tells them what they’re looking at and where to direct their attention.

Before opening the diff, a reviewer should understand:

Not every PR needs an essay. It just needs enough context for someone else to evaluate the change without reconstructing its intent from scratch. The description shouldn’t narrate the diff, the code already does that.

Code is cheap. Understanding isn’t.