Currently Shipping AI into a real-estate acquisitions workflow Location San Mateo, CA Updated 2026-07-30
N° 008 / Writing / AI / Jul 29, 2026 / 1 min read

One model plans, another builds, a third reviews

The reliability math that keeps my pipeline to one LLM call per document also applies to the process that builds the pipeline.

Earlier this year I wrote about keeping exactly one language-model call per document in my records pipeline, because chained model steps compound their error rates. It took me embarrassingly long to notice the same math applied to the process that builds the pipeline itself.

For most of the year, one model did everything on a build: planned the change, wrote the code, then looked its own work over and told me it was fine. That last step is the problem. A model reviewing its own output brings the same assumptions to the review that it brought to the writing. The bugs it catches are mostly the ones it already avoided.

So I split the job three ways. One model — the strongest planner I have access to — reads the task and writes an implementation plan I can argue with before any code exists. A second model builds against that plan. A third model, from a different vendor entirely, reads the finished changes cold and tries to break them. It gets no context about intentions, only the work.

The vendor split is the part that matters. Two models from the same family share training and taste, and review across that line is softer than it looks. The reviewer I use disagrees with the builder in ways that are occasionally wrong and reliably uncomfortable, which is exactly what I want from a reviewer.

The review runs at every milestone rather than once at the end, and its findings come back to me as claims, not fixes. I decide which ones are real, the builder applies those, and anything confirmed becomes a regression test so the same bug can’t return quietly.

My own role shrank in a way I didn’t expect. I used to be the reviewer of first resort, reading code line by line at eleven at night. Now I mostly rule on disagreements between two machines. It’s a better job.

End · ~320 words Filed July 29, 2026
§ Continue reading All posts →
  1. 016 Deployed is not redeployable Aug 22, 2026 · AI
  2. 015 The deploy was live. My browser was running last week's code. Aug 19, 2026 · AI
  3. 014 The container ran fine. The folder it read was empty. Aug 16, 2026 · AI