Programming with AI
ENRU
4.7

The acceptance checklist

in what order to look at a change

What it is

Article 2.14 lists what to look for in code. This one is about the order: in what sequence to look at a change so you neither drown nor miss the main thing.

Order matters because attention runs out. Start with the small stuff and there will be none left for the serious parts.

Six steps in order

1. The size of the change

git diff --stat

Does it match your expectation? One line where you expected one — carry on. Seven files where you expected one — stop and work out why before reading the contents (article 3.13).

2. What was removed

Look at the - lines before the + lines. Removal is more dangerous than addition: added code is visible, a vanished check is not.

Typical losses: if not data: return, length checks, edge handling.

3. Behaviour in the unhappy case

One question: what happens if the data isn't what was expected? If the change introduced .get() with a default, an except, or substituted values, check whether the error is being hidden rather than fixed (articles 2.8, 2.14).

4. Boundaries

Does the change do what was asked and nothing beyond? Logging, caching, retries nobody ordered are unchecked code in your project.

5. Run it

The case the whole thing was for, plus one unhappy one. If there are tests, run them (article 4.6).

6. Explanation

Can you explain the change in two sentences? If not, go back to reading, or ask (article 3.7).

What to tell the AI

The checklist can be handed to the AI too, with a caveat: about its own code it is lenient (article 3.8). So — in a clean session:

Prompt
Here is a diff. I didn't write it; I need an acceptance review.
Go in order:
1. What was removed and why that might have mattered
2. What happens on unexpected data
3. What in the change goes beyond the stated task

The task was: <what was asked>.
If there are no problems, say so plainly.

For yourself, something else is useful — recording what you checked:

Prompt
Turn this change into a list of what I should check by hand.
Short, as bullet points, so I can tick them off.

What not to check

So that attention is left for what matters, some things are worth deliberately leaving alone:

Don't check by handWhy
formatting and indentationthat is the formatter's job, not yours
naming styleif it reads, it is enough
micro-optimisationsuntil there is a speed problem, this is not a problem
"I would have written it differently"differently does not mean worse

The last point matters most. Arguing with an AI about taste is wasted time: it will yield and the code will be no better.

What to look for

Checking that starts with the contents rather than the size. You read two hundred lines carefully when you should have stopped at --stat and asked a question.

Removed lines scrolled past. The most common way to miss a real problem.

The checklist turned into a ritual. Six steps in a row with no questions means you are looking without seeing. A proper acceptance includes at least one question.

Acceptance postponed. Five changes, then an examination of everything at once. Now go and find which of the five.

Cheat sheet

  • The order: size · removals · unhappy case · boundaries · run · explanation.

  • Start with --stat, not with the contents.

  • Read the - lines before the + lines.

  • Short on attention — stop after step 2, it catches the most.

  • Don't check formatting, naming or matters of taste.

  • An acceptance without a single question is not an acceptance.