This is the thing from my intro, asked properly.
I request a change, I get back a diff somewhere between 300 and 800 lines, and my review degrades into skimming for anything that looks alarming. Twice now I have approved something that was obviously wrong in hindsight, and CI caught it, which means the review contributed nothing except a delay.
Reviewing a colleague's 600 line change would also be bad, but at least I could ask them why they did it that way. Here there is no why beyond what I asked for.
I do not want the answer to be discipline. Discipline is the thing I ran out of. What is the process?
The answer is smaller diffs and there is no way around that. But it is a workflow change, not a willpower one, so it is available to you.
What I do now: ask for a plan first, written out as a list of steps. Then take one step at a time and review each before the next runs. Same total work, but a 60 line diff I actually read beats a 600 line diff I pretend to.
Other half of it is that changes to tests no longer come in the same pass as changes to code. Those go separately, always. Otherwise the tests get adjusted to fit the code and I cannot see it happening.
Agree on small diffs, and the thing that helped me most on top of that is reading the diff before reading the explanation.
If I read the summary first I am only checking whether the code matches the story, and it always does, because the same thing wrote both. Cold reading the code means I have to build my own picture of what it did, and that is where I notice the bit that does not belong.
one cheap one: have it write the commit message as a list of every behaviour change, then check that list against the diff. anything in the diff that is not on the list is either an accident or something you did not ask for. that is where mine hides.
Two changes so far. Plan first with one step reviewed at a time, and reading the diff before I read the explanation.
Three days in and both are holding, though the plan step is slower than I expected and I catch myself skipping it when I am tired. Which is the same failure as before, one level up.
Commit message as a behaviour list is going in my notes. Not tried yet.