---
title: ['The Cold', 'Read']
description: "A PR description is a claim, and whoever reads it first is primed by it. So one agent describes every PR from the diff alone, a second grades how well that agrees with the original description or prompt, and the grade tells automerge (and me) how far the description can be relied on."
---

I give every PR to a separate agent "cold". It gets the diff alone, with no description and no prompt, and I ask it to describe the change. Then a second agent judges how well that description agrees with the original (PR description, prompt, etc).

A PR description is a _claim_[^1]. On our PRs the agent that wrote the code also writes the description, and it's the first thing a reviewer reads, human or model. So every review starts out already told what the change is[^2].

Here's one it caught. The description on a PR said it was a performance enhancement, and in one way it was. But there was a cost (memory) and that had not been assessed. The usual reviews had read "this is a perf enhancement" and through that lens it looked true. The cold agent hadn't read it, and its account of the diff didn't match.

It sits alongside the [normal review](/my-current-ai-workflow-revisited/) and runs on every PR, which is around 200 a day. It's the same idea as the separate runner in [Tunnel Vision](/tunnel-vision/), a fresh context that wasn't there for the original task.

The judge grades how well the two agree, A through F. It tells me how much I can rely on the description.

It feeds the [assessment that decides whether a PR can merge itself](/start-with-one/), so a description the diff doesn't back up[^3] counts against automerge. I eyeball it too. When the two accounts agree I can merge by hand on the strength of the description, and when they don't I read the diff.

It has made automerge more reliable, and I trust it more. I argued in [Views of the Same Thing](/views-of-the-same-thing/) that a second view of a change only pays its way when it comes from an independent reading. The cold read is one, since all it shares with the agent that wrote the code is the diff.

### FOOTNOTES

[^1]: The git trailer in [Don't Run It Twice](/dont-run-it-twice/) is the same kind of thing, the agent's own word for what it ran, which is why main runs every step again.

[^2]: In [When AI Agrees Too Much](https://arxiv.org/abs/2603.18740), reframing a PR's metadata got 32 of 33 known vulnerabilities back past Claude Code and CodeRabbit reviews, and redacting the description alone restored detection in half of those cases.

[^3]: An [MSR 2026 study of 23,247 agent-authored PRs](https://doi.org/10.1145/3793302.3793583) found the most common mismatch between description and code was a description claiming changes that were never implemented.
