An agent loop you left running overnight has stopped at step four of nine. Its last message is a tidy summary that ends by announcing the next step. Your harness read that as the finish line and went to sleep.
That is not a hypothetical I made up for an opening. It is a failure mode Anthropic describes in its own prompting guide for Claude Opus 5.5, which shipped on Tuesday. The same day, OpenAI shipped GPT-6 Sol and GPT-6 Luna, the mid and budget tiers under Astra.
The price moves come first, because they are the headline:
| Model | Input | Output | Before (input / output) |
|---|---|---|---|
| Claude Opus 5.5 | 4 | 20 | 5 / 25 on Opus 5 |
| GPT-6 Sol | 2 | 10 | 4 / 20 on GPT-5.6 Sol |
| GPT-6 Luna | 0.10 | 0.50 | 0.20 / 1.20 on GPT-5.6 Luna |
US dollars per million tokens. Fable 5.1 and GPT-6 Astra stay at 10 / 50.
Anthropic estimates Opus 5.5 costs about 40 percent less than Opus 5 on typical workloads. The list price explains half of that. The rest comes from cache reads that are 60 percent cheaper and, per Anthropic, fewer tokens per task. OpenAI’s charts compare Sol against Claude Opus 5, the model Anthropic replaced that same day. Benchmarks are a snapshot.
This is the fifth launch post in this series. Opus 5 expired half my instructions. Astra showed both vendors giving the same advice. This week both vendors add two lines to that advice, and one of them is about the word “done.”
Reasoning depth moved out of the prompt
How hard the model thinks is now a runtime parameter, not a sentence.
On Opus 5.5, adaptive thinking is always on. A request that tries to disable thinking, or to set a manual thinking budget, returns an error. Anthropic’s guide says to remove instructions that stood in for thinking, such as asking the model to write out its reasoning in the response. Push hard enough in that direction and the request can now be declined outright. For chat, the guide suggests removing “think carefully before answering” lines: in Anthropic’s testing, replies started sooner with no clear drop in quality.
The default moved too. Opus 5.5 runs at medium effort unless told otherwise. Opus 5 ran at high. Anthropic reports that medium on Opus 5.5 matches or beats high on Opus 5 in its coding and knowledge-work evaluations, and that low comes close on several coding evaluations at much lower cost.
The trap runs the other way. At a given level, Opus 5.5 thinks more per turn than Opus 5 did, most of all at xhigh and max. A setup that carries its old “high” across pays more for the same name. Effort names are not units. At max, Simon Willison watched it spend the whole 128,000-token output budget on a single SVG and still fail.
GPT-6 Sol has six settings: none, low, medium, high, xhigh, and max. OpenAI reports its benchmarks by effort level, which tells you where the vendor thinks the control lives. It also made effort changes cache-safe. On Opus 5.5, changing the top-level effort invalidates the cache, and the per-message change that keeps it is still in beta. Same control, different plumbing.
Why it matters: “think step by step” cannot be measured, logged, or swept. A parameter is a number in a config file. You can record it next to every result, test three values against one evaluation, and route by it. That is the difference between a habit and a setting.
Shorter by default, so the brevity nags go too
OpenAI brought Astra’s communication style to Sol and Luna. In its words: “more clarity, less jargon, fewer odd turns of phrase, fewer low-value details, and slightly shorter answers overall without losing substance.” Anthropic says Opus 5.5’s reports on agentic work “say plainly what it did, what it found, and what it needs from you.”
That puts every “be concise,” “no preamble,” and “keep it short” in your setup up for the same treatment Opus 5 got. Each one compensated for a wordier model. On a model that is already brief, the instruction stacks, and a stacked brevity rule is how you get two lines in answer to a question that needed a table.
Delete them. Read a week of output. Put back only what the output proves you need.
Neither model gets to decide the work is done
This is the part that matters most, and it shows up at both vendors with opposite symptoms.
Opus 5.5 stops to report. On long multi-part tasks, the model keeps the user updated as it works, and some of those updates end the turn with text instead of a tool call. An unattended loop that treats that as the end of the task stops there. Anthropic’s fix is plain: “Treat a text-only end of turn as a report rather than as proof the task is done.” Keep the task’s parts in a checklist the model updates. If a turn ends with items still open and no blocker named, send a short message naming them. Or state the completion condition up front, and have a separate, smaller model check the conversation against it at each end of turn. Cap automatic continuations at two or three, so a run that is genuinely stuck ends and gets reviewed.
GPT-6 Sol reportedly claims to finish. Early developer reports describe Sol as more passive than the GPT-5.6 models, and prone to calling a long multi-step list finished when it is not. The workaround going around: have it write an explicit to-do list, and work exactly one item per turn. I have not reproduced this. OpenAI’s own alignment evaluations point the other way, reporting lower rates of misleading claims about coding work than GPT-5.6. Treat it as a field report, not a finding.
I do not need to settle it, because the fix is the same either way. Both sets of advice converge on a checklist that lives outside the model, worked one item at a time, closed against a stated condition, with a cap on retries. Anthropic reached it from a model that stops too early. Developers reached it from a model that claims too early. The missing piece is the same: the only record of completion is the model’s own account.
OpenAI’s launch page makes the point itself, in a side-by-side of the two Sol generations. The GPT-5.6 reply announces it is done and points you to the live site. The GPT-6 reply says what it checked: desktop, narrow mobile screens, and browser back navigation. OpenAI prefers the new reply partly because it is “more forthcoming with what it did and didn’t check.” A completion report is only as good as the checks it names.
A plan with no slot for what happened
I learned this on a content calendar, not an agent.
In August, a seven-post series was ready in every sense that usually counts. Finished copy. Rendered images. A calendar naming the exact slot for each post, and a second calendar that agreed with it. Post one was scheduled for a Thursday.
A week later, asked whether the series had started, the honest answer was that nobody could say. The calendar had a date column and a publish column. It had no column for whether anything had happened. A query against the scheduler’s live API answered it: an old post had gone out in that slot instead.
It recorded what should happen. It had no slot for what did.
The fix was not a better plan. It was a status column that holds the live post id from the scheduler, not a tick. A tick is a claim. An id is evidence that something exists outside the file that recorded it.
That is the harness change both launches are asking for. A to-do item the model marks done is a tick. A to-do item closed because the test ran, the file exists, or the endpoint answered is an id. The first is a sentence the model wrote. The second is something your harness can check without asking the model. Reading isn’t verifying, and a report of done is still reading.
What this means for the week ahead
If you build with AI, do these three audits. Each audit takes less than one hour.
- Thinking vocabulary.
- Search your prompts, skills, and system messages.
- Find these phrases: think step by step, write out your reasoning, show your work, do not think.
- Delete each phrase that you find.
- Set the effort level in each call.
- Start Opus 5.5 at medium or low effort.
- Use the two highest levels only for work where you measured a better result.
- Brevity vocabulary.
- Search for these phrases: be concise, no preamble, keep it short.
- Delete each phrase that you find.
- Read the output for one week.
- Add a phrase again only if the output shows that you need it.
- Your stop condition.
- Find the line in your harness that decides when a run is complete.
- If that line accepts any text reply as the end, it accepts a report as proof.
- Replace that line with a checklist that the harness can verify.
- When items stay open, send the model a message that names them.
- Stop after two or three automatic continuations.
If you run a business on AI and do not build it, do audit 3. It does not need code. Do not give a chat a long list with the instruction “do all of these.” Both launches warn about this type of request. Give the chat one item. Then ask it what it checked.
Try this now (10 minutes)
- Select one task with five or more steps that you often give to an agent or a chat.
- Before you start the task, write the definition of done as a list of items.
- For each item, write the evidence that proves it. Examples: a file that exists, a test that passes, a number that agrees with its source.
- Do the task as usual.
- When the model reports that the task is complete, compare each item with its evidence.
- Count the items that the model called done and that your evidence did not confirm.
If the count is zero, your definition of done is already outside the model. If the count is more than zero, that is the number of items you accepted without evidence.
Where to go next
The earlier launch posts: route down, not up for Fable 5, and the layer that did not move for Fable 5.1.
If you build agents, the discipline for how much an unattended loop may do is the autonomy calibration ladder. That is the software-engineer track version of this week.
If your ten-minute count was not zero, The Three Fixes turns the first gap into a rule, a hold, and a retirement condition.
Frequently asked questions
What are Claude Opus 5.5 and GPT-6 Sol? Both shipped on 22 September 2026. Claude Opus 5.5 is Anthropic’s new Opus-tier model, built for long-running agentic coding and knowledge work, with adaptive thinking always on and medium as its default effort. GPT-6 Sol is the mid tier of OpenAI’s GPT-6 family, released alongside the budget GPT-6 Luna. OpenAI trained both with methods similar to the flagship GPT-6 Astra, and both inherit its shorter, clearer communication style.
How do Opus 5.5 and GPT-6 Sol prices compare? Opus 5.5 costs four dollars per million input tokens and twenty per million output, 20 percent below Opus 5, and Anthropic estimates it costs about 40 percent less to run on typical workloads. GPT-6 Sol costs two and ten, half of GPT-5.6 Sol. GPT-6 Luna costs ten cents and fifty cents. Per-task cost depends on how many tokens each model spends, and that depends heavily on the effort level you choose.
Do I need to change my prompts for Opus 5.5 or GPT-6 Sol? Mostly by removing things. Delete phrases like “think step by step” or “write out your reasoning” and control depth with the effort parameter instead: Opus 5.5 rejects requests that disable thinking, and GPT-6 offers six effort settings from none to max. Delete conciseness nags too, because both models are briefer by default. Then add one thing: an explicit definition of done that your harness can check.
Why does my agent stop partway through a long task on Opus 5.5? On long multi-part tasks, Opus 5.5 posts progress updates, and some of them end the turn with text rather than a tool call. A loop that treats any text-only turn as completion stops there. Anthropic’s guide recommends treating such a turn as a report, keeping the task’s parts in a checklist, nudging the model when items remain open, and capping automatic continuations at two or three.