To The Left, To The Left
Before you run the test suite, you compile. Before you compile, you lint. Before you lint, you think. Shift-left is the engineering philosophy that keeps moving “find out this is broken” earlier in the loop — past CI, past code review, past the compiler, ideally back to the moment you’re still deciding whether to build the thing at all.
Why does this matter? Because fixing a bug gets more expensive the later you catch it. A misunderstanding surfaced during a design review costs a five-minute conversation. The same misunderstanding caught during implementation costs a week. Discovered in production, it costs a quarter. Every step to the right on the timeline multiplies the cost.
Why run a two-hour CI/CD pipeline if a local type check would tell you the code doesn’t compile? Why burn an engineer’s sprint on a direction if a linter running in your editor could catch the banned pattern while they type? Why lose a code review to an architectural argument if a design doc would have surfaced the fundamental assumption two weeks earlier, before the first line was written?
Specs are shift-left for ideas. A design doc isn’t bureaucracy — it’s the earliest possible test of whether you understood the problem. A good spec review catches the category error before it becomes legacy code on day one. The alternative is discovering mid-implementation that you’ve made a structural assumption that doesn’t hold. That’s not a failure of execution. That’s a failure to specify — and the specification problem is always cheaper to fix before you start than after.
The DEAR loop applies this logic to AI agent systems. Resolve exists to shift left into Define and Enforce: every failure surfaced in Audit is evidence that the Definition was incomplete or that Enforcement was miscalibrated. The theoretical goal is a perfect Definition that makes Enforcement and Audit unnecessary. The practical outcome is using what you learn from Audit to sharpen what you check in Enforce, and what you specify in Define.
Perfect specifications don’t exist. But worse specifications cost more at every stage — and the cost compounds the longer you wait to find out. The loop is a machine for moving that discovery earlier.
The test suite is passing. The question is whether it’s the right test suite.
Related reading:
- Schrödinger’s Syntax — on why specifications are harder to write than they look
- The Push Bike Harness — on the DEAR loop and how Resolve feeds back into Define
- Death by a Thousand Tests — on calibrating enforcement cost against failure cost