Opus 5 feels worse because it stopped asking. Give it somewhere to ask.

Mara Ellison
Mara Ellison August 14, 2026 · 6 min read
Left: a strong arrow skips a question mark and drifts away from the target, labelled 'assumed'. Right: the same strong arrow passes through three anchored comment pins and lands on the target, labelled 'asked'.

A post making the rounds this week asks a question a lot of working engineers have been muttering privately: why does Opus 5 feel worse to work with? Not weaker — the author doesn't dispute that it executes better and benchmarks higher than anything before it. Worse to work with: where earlier models would “stop and ask questions if my intent was unclear,” Opus 5 makes bold assumptions and runs with them, and the sessions that used to feel like collaboration now need “careful babysitting.” If that matches your experience, the interesting part isn't the complaint. It's what follows from taking both halves seriously: the model got better at executing and worse at checking — and only one of those is yours to fix.

The trade nobody chose

The post's diagnosis is worth restating, because it rings true. Benchmarks hand a model a task and score the artifact at the end. There is no rubric column for “paused to confirm intent” — a model that stops to ask scores exactly as well as one that guesses right, and strictly worse than it on time. So selecting hard for benchmark performance, as the author puts it, “inherently selects for models that make bold, usually-correct assumptions in the face of ambiguity” and “penalizes models with a tendency to stop and ask for clarification.” The result is a model that's genuinely stronger at the work and structurally disinclined to check whether it's the right work.

“Usually-correct” is carrying a lot of weight in that sentence. A benchmark task has a defined right answer, so a bold assumption is usually correct there. Your codebase is not a benchmark — “real life just isn't a benchmark,” as the post says. Your intent lives partly in your head, partly in a Slack thread, partly nowhere yet. Against that kind of ambiguity, a usually-correct guesser drifts: it reinterprets the goal a few degrees, builds confidently in the wrong direction, and hands you something polished, plausible, and not what you meant. The stronger the execution, the further the drift travels before you see it — and the more convincing it looks when you do. We wrote when Opus 5 launched that a more capable agent carries every decision further before you see the result — correct or wrong. The “feels worse” sessions are the wrong branch of exactly that.

The model isn't the only thing that stopped asking

Here's the half the post doesn't dwell on: even a model that wants to ask has almost nowhere good to do it. In a chat window or a CLI, a clarifying question is expensive for everyone. It halts the run dead until you answer. It arrives one at a time, so ten ambiguities mean ten interruptions — and ten full re-payments of the context. It scrolls away from the thing it was about. Users feel that cost and tell their agents — in system prompts, in feedback, in thumbs — to stop pestering them and just proceed. Training pressure and interface pressure point the same direction: guessing is cheap, asking is expensive. A model that asks in an interface where asking is this costly really is annoying. You've probably rated it so yourself.

Which means “make the model ask more” is only half a fix. Prompt Opus 5 to always confirm before proceeding and you get the worst of both worlds: a checkpoint toll on every trivial step, and still no guarantee it pauses on the ambiguity that mattered. The lever you actually hold is the other one — not whether the agent asks, but what asking costs.

Don't ask the model to ask more. Make asking cost nothing — then the assumptions have nowhere to hide.

Make asking cheap, and the guesser becomes a planner

This is the workflow inplan is built around, and it changes what a bold-assumption model is worth. The agent's first job isn't to build — it's to draft the plan, and to park every assumption it would otherwise silently make as an anchored comment on the exact span it concerns, with choices attached where the answer is a pick. All of them, in one turn. You answer in the editor at your own pace — each question sitting at the line it's about, nothing interleaved, nothing scrolled away — and finish the turn once. The agent gets every answer in a single context load and builds against a resolved plan.

Notice what this does to the article's three complaints, point by point. “Stop and ask if intent is unclear”: asking no longer stops anything — ten questions cost one turn, so the agent can afford to raise all of them instead of gambling on none. “Don't make assumptions without checking”: an assumption written down as a comment on the plan is an assumption you get to veto before it becomes code; the bold guess still happens, but as a proposal, where a wrong one costs you a sentence instead of a review cycle. “Don't reinterpret my plans without asking”: in inplan the plan is a live shared document, not a paragraph dissolving into chat history — if the agent's understanding shifts, it shifts as a visible edit to a document you're watching, not as a silent update to a context you can't see. Drift doesn't get twenty files to grow in. It gets caught at the sentence where it starts.

Keep the engine, fix the steering

Now run the trade back the other way. Opus 5's actual regression is narrow: it guesses where it should check. Its actual gains are broad: it executes long, hard, multi-step work better than any model before it, with less run-to-run variance, and yes, the benchmarks agree. If your workflow's defense against drift is the model's own inclination to pause, the regression eats the gains — that's the babysitting. If the checking lives in the workflow instead — assumptions surfaced as comments, intent pinned in a plan the agent builds against — the regression has nothing to eat. A model that makes bold, usually-correct assumptions is a liability in a chat window and an asset in front of a plan document: it fills the draft fast, proposes sharp defaults for you to accept or overturn, and then points all that execution at a target it can no longer mistake.

That's the pairing: the plan absorbs the ambiguity, the model spends its capability on execution — the one thing it inarguably does better than everything before it. Planned in inplan, Opus 5 isn't the model that feels worse. It's the best coding agent yet, minus the guessing.

Real life isn't a benchmark. So stop grading your agent like one.

The post is right that the labs' selection pressure won't reverse soon — if anything, benchmark-honed boldness is the trend line. You can't retrain Opus 5. You can decide where its assumptions land: in your codebase, discovered at review, twenty files deep — or in a plan, as anchored questions you settle in one pass before a line of code exists. The models will keep getting bolder. Make sure they're bold about the plan, not about your intent.

Let the bold model ask first

inplan is where you and your coding agent resolve a plan before the build: the agent drafts and parks every assumption as an anchored comment, you answer them all in one pass, and Opus 5 executes against decided intent instead of a best guess. Free and open source.

inplan on GitHub inplan.ai
← All posts inplan.ai GitHub