← field notes N°003

The review gate

practice note · 3 min · companion to essay N°001

A rule I hold that agents never volunteer: a change is not done when it merges. If it revealed a new class of failure, it is done when that class has been made unrepeatable.

The founding case: an agent-authored change to a graph-sync layer passed every unit test and failed in production — it referenced a column that existed in the test fixtures and not in the live schema. The fix took an afternoon. The response took longer and was worth more: a typed column-contract layer now generates the sync queries from the actual schema, and CI runs schema tests against the live database shape. That failure is no longer possible to write.

The practice

Treat the failure class, not the failure. Each caught incident becomes one of three artifacts: a blocking rule (a written constraint agents cannot cross — twenty-one and counting, each anchored to a real commit), a generated contract (structure that makes the mistake unexpressible), or a CI check (the mistake becomes a build error). The apparatus is unglamorous and decisive — and it compounds, because every rule is also a teaching document: a new developer who reads them absorbs the codebase's failure history in an afternoon.

The economics are the point. Review that only catches bugs is linear — you pay for every catch, forever. Review that converts failure classes into structure is compounding — you pay once, and the codebase enforces it for free from then on. Nearly a third of the commits in my main repository are review-driven work. On a system whose answers must hold up in public, that is not overhead on the job. It is the job.


The full argument, with the numbers behind it, is essay N°001 — Agents write the code. Someone still owns it.