TL;DR When a change is too big, too new, or too unfamiliar to grasp at a glance, I don't read it in silence. I start dictation and read it out loud to Claude, file by file, flagging what I don't understand. Then I iterate in concentric circles: each pass halves the area, until the model and I understand the same thing.
With frontier models touching a pile of files at once, the bottleneck has moved. It's no longer writing the code, it's understanding the code that's already written. And reading in silence doesn't work: you skim, you skip, you lose the thread. Reading out loud forces you to actually look. And if you dictate that reading into Claude Code, the model learns exactly where you got lost.
It's not a feature. It's a method. The tool is dictation: I use VoiceInk, but Claude Code ships a native one (/voice, hold Space) if you'd rather not add anything external.
Result (the passes of a real review):
Pass 1 · the whole change (12 files)
> [voice] "auth.ts, I see the guard... Claude, why do you validate
the token in the middleware and again in the handler?"
Pass 2 · only what didn't close (5 files)
> [voice] "the refresh flow. I don't get this, where does the TTL come from?"
Pass 3 · the core (1 file)
> understanding ✓ → next action
The method
1. Outer layer: narrate the read-through
Start dictation and go file by file saying what you see. Don't summarize it in your head: say it out loud. Most of them, or the important ones, or the essential part. The act of verbalizing already makes you look where you used to skim.
2. Flag what you don't understand and address the model
Call out every doubt aloud: "Claude, I don't understand this part," or "ok, I get why you did this, but this, why?". By the end of the pass, the model already knows your blind spots and what you think needs adjusting or refactoring.
3. Close the circle: narrow and repeat
From all of the above you move to a smaller sub-context. The exploration area drops by around 50%. You read again, you ask again, the model validates. Another layer. And another. It helps to drop the blind spots into a task list so none slip between passes.
4. The center
You keep going to the core: shared understanding between human and model, or the next clear action. You start on the outside, there are layers to cross and validate; the target is the center.
Reference
| Layer | What you do | What you get |
|---|---|---|
| Outer | Narrate every (or the essential) file out loud | The model knows your doubts and suspicions |
| Middle | Narrow the area ~50% and re-read only what didn't close | The already-understood parts drop away |
| Center | Iterate to understanding or the next action | Human and model aligned on the same code |
The human: in the loop, or above it?
Even though I aim for the most atomic changes I can, with frontier models like Fable you inevitably end up with a pile of files to validate. Pair this with plan mode so the change is born already sliced up. And there's a question I'll leave for another tip: should the human be at this point in the loop, reviewing file by file, or a level above? For now, when I don't understand something, I drop into the loop. And I drop in talking.
Official docs: Voice dictation