Every PR review process I've worked with treats the comment as a social object: nice tone, unambitious wording, "LGTM" as a closing gesture. That's fine for trivial diffs. It is not fine for diffs that ship to production at scale, because the closing gesture is also the audit trail.
The phrase carries weight it can't bear
When you sign off "LGTM" on a 200-line refactor, the literal English is "looks good to me." The thing the team and the on-call rotation hears is "I have read this, traced its consequences, and consider the risk acceptable." Those are two different statements. The first one is what you typed. The second one is what shipped.
This isn't a problem in small teams where everyone knows everyone. It's a catastrophe in 200-engineer teams where the on-call at 3 a.m. has to reconstruct, from the comment thread, what the reviewer actually verified.
Make the contract literal
Three changes that cost almost nothing and fix a lot:
-
Pre-canned approvals with a domain. Instead of one "Approve" button, expose three: I checked the contract, I traced the impact, I trust the author. Three different commitments. The on-call gets to know which one was made.
-
A required line on the verdict. "What did you check?" — one short sentence in the approval. If you can't write the sentence, you didn't check. The friction is the point.
-
Comments on what you didn't do. A small culture-shift: it's polite to say I didn't review the migration; @teammate, can you?. This used to feel passive-aggressive in some teams. With one or two senior engineers modelling it, it becomes the norm in two months.
None of these requires tooling. All of them are upstream of tooling.
Why this is a codingassist.bot topic
Half of what an automated reviewer does is make the contract literal. The codingassist.bot verdict isn't "looks good" — it's "the four ACs you wrote in the ticket are bound to these four hunks, and I have signed evidence each binding holds." The verdict says exactly what was checked, and the trace shows exactly how. Comment language was always going to be ambiguous; the trace can't be.
The phrase "LGTM" stays in the language. It just stops being load-bearing.