Skip to main content
LLMs are exceptionally good at looping until they meet specific, verifiable goals. When you give vague instructions like “fix the authentication system,” you get vague results — the LLM makes changes, declares success, and leaves you to figure out whether anything actually improved. Goal-Driven Execution flips this: transform every task into a concrete success criterion, and let the LLM run until it can prove the goal is met.

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:
This format makes progress visible and gives the LLM clear stopping conditions for each phase.

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”
What LLMs do wrong — vague plan with no success criteria
There’s no way to verify this is done, no way to confirm it solved the right problem, and no way to catch regressions.
The correct approach — define the specific issue and verify each step

Multi-step with verification example

Request: “Add rate limiting to the API”
What LLMs do wrong — implement everything at once with no verification steps
The correct approach — incremental steps, each independently verifiable

Test-first verification example

Request: “The sorting breaks when there are duplicate scores”
What LLMs do wrong — fix without reproducing the bug first
This might fix the issue. It might not. There’s no way to know without a test that first demonstrates the broken behavior.
The correct approach — reproduce first, then fix

When this principle is working

Strong success criteria produce a clear loop: write a failing test → implement → confirm it passes → confirm nothing else broke. When you see this loop running without constant clarification questions, Goal-Driven Execution is doing its job.
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