List the Excuses an Agent Will Use to Skip a Step
Models don't cut corners; they generate a reason to. Name the rationalizations up front.
A model doesn’t get lazy. But given a local context, it will happily generate a plausible-sounding reason to skip an expensive step — and the reason will read as good judgment, because it’s written in the same confident register as everything else it says.
The fix that has worked best for me is almost embarrassingly direct: write the excuses down in advance, inside the instructions, and pair each one with why it’s wrong.
| The rationalization it will generate | Why it’s wrong |
|---|---|
| ”This change is small, I don’t need a spec.” | Small changes can still establish the wrong abstraction. |
| ”I’m confident, I can skip the doubt step.” | Confidence correlates poorly with correctness on novel problems. |
| ”Tests pass, review is unnecessary.” | Tests only cover the assertions you already thought to write. |
| ”The user was clear, no need to ask.” | You may have accepted a surface answer. |
Rationalizations and red flags
Two ingredients make this work. Rationalizations predict the reasoning the model will use to talk itself out of a step. Red flags describe the observable behavior that shows it already has — asking three questions at once, producing a result with no cross-check, declaring done before running anything.
Naming both turns a vague instruction (“be thorough”) into something the model can actually check itself against. You’re not asking it to be more diligent. You’re removing the specific escape hatches it would otherwise reach for.
The uncomfortable part: this works on people too. The excuses are the same.