The core transformation
Instead of telling the LLM what to do, give it a definition of done:The multi-step plan format
For tasks with multiple steps, state a brief plan where each step has an explicit verification check:Key insight
From Andrej Karpathy:“LLMs are exceptionally good at looping until they meet specific goals… Don’t tell it what to do, give it success criteria and watch it go.”Strong success criteria let the LLM loop independently. Weak criteria (“make it work”) require constant clarification.
Vague vs. verifiable example
Request: “Fix the authentication system”The correct approach — define the specific issue and verify each step
Multi-step with verification example
Request: “Add rate limiting to the API”The correct approach — incremental steps, each independently verifiable
Test-first verification example
Request: “The sorting breaks when there are duplicate scores”The correct approach — reproduce first, then fix
When this principle is working
You’ll know it’s working when:- The LLM asks for a specific failure condition before touching auth, search, or other complex systems
- Multi-step tasks arrive with explicit verify checkpoints at each step
- Bug fixes start with a reproducing test rather than a code change
- You can confirm a task is complete by running a command, not by reading the diff and guessing