The spec is the oracle, not the reread
Agents are biased toward their first plausible
solution. Give them a file they wrote and they will
grade the file. That is not verification. Verification
is an external object: the task spec, the test runner,
the schema, the authority list. LangChain’s 13.7-point
climb happened after they stopped letting the agent
exit on “looks ok.” OpenAI’s dated spec is the same
idea at product scale — a ranked contract the model is
trained to obey, with defaults you can override and
root rules you cannot.
Put the contract where the model cannot politely ignore
it. A system prompt that says “please test” is a
suggestion. A pre-completion hook that injects the
checklist on the way out is a gate. Same for
authority: if untrusted tool output can rewrite the
job, you do not have a chain of command. You have a
suggestion box. Root and system stay above developer
and user; fetched pages stay below all of them.
Then stop paying for a standing sermon. 0.7’s empty
default and opt-in todos are the token version of
yesterday’s effort knob. Planning is a feature you
turn on when the eval says the agent is wandering, not
a tax on “hello.” Extra-high reasoning on a timed bench
scored worse than high because the clock is also a
spec. The harness holds three contracts at once: what
the task is, who may change it, and how long you have.
Do not confuse this with removing humans. Taste,
product intent, and “is this even the right task”
still need a person. Repetitive correctness — did the
test run, did the path match, did a webpage just try
to become the boss — belongs in the harness. The
reviewer who must “find every possible problem” will
invent complexity. The stop condition is: the named
checks are green, the authority list was not bypassed,
and a human can still say the product is wrong.
Checklist
-
Write a four-line chain of command: root, system,
developer/user, untrusted context. Keep it next to
the tools.
-
Name the oracle before the first run: test, schema,
path, or screenshot — something the agent did not
author.
-
Intercept exit. If the last act was rereading its
own diff, send it back to the oracle.
-
Start the base prompt empty. Restore planning
middleware only after a wandering-eval fails.
-
Set reasoning effort against the real timeout. If
xhigh makes you miss the clock, it failed.
-
Iterate the harness on the model you ship. A Codex
loop is not a Claude loop.
This week: add one exit check that cites the original
spec, and delete one paragraph of standing tool
advice that already lives in the schema.