A fluent summary can make a patch feel finished before you have read it. Start with the original problem, then inspect the complete diff. The review question is whether these particular changes solve that problem without introducing a more expensive one.
Trace the user-visible path
Follow the changed input from its entry point to the result. Check callers, error handling, and any persisted state. A helper can look correct while a caller still passes the wrong value. Read deleted code as carefully as additions.
Review in three passes
- Intent
Restate the bug or requirement in one sentence. Account for each changed file.
- Boundaries
Inspect empty input, invalid state, partial failure, and interfaces touched by the patch.
- Evidence
Run the check that exercises the original failure. Read what it actually asserts.
Challenge the convenient test
A new test may reproduce the implementation instead of the requirement. Ask whether it would fail on the original code and whether its expected value has an independent basis. Keep existing checks when they protect behavior outside the immediate fix.
Close with a reviewable record
Record the behavior changed, the checks run, and any unresolved limitation. If the patch contains unrelated cleanup, separate that work so each decision remains understandable. Passing checks are evidence; they are not a substitute for understanding the change.