Writing August 22, 2026 Updated September 1, 2026 9 min read

Opus 5 Isn't That Bad

Claude Opus 5 has been out for about a month, which was enough time for people to decide that it is both very capable and rather unpleasant to work with.

I spent some money trying the common complaints for myself. Most of them are real, but most can also be worked around without adding another page to your prompt. In fact, old instructions are often part of the problem. They were written for models that needed more supervision, while Opus 5 expects a reasonably complete task and room to get on with it.

The suggestions below come from my own tests, Anthropic’s Opus 5 prompting guide, and their post about context engineering for Claude 5. Claude helped organize the material as well, so this is partly an AI-written post about making AI writing less annoying. Make of that what you will.

It talks too much

This seems to be the most common complaint. A small question can produce a preamble, several sections, a few related topics you did not ask about, and a conclusion in case you forgot the previous three screens. At the same time, some measurements suggest that its short answers are shorter than Opus 4.8. The problem is less that every answer is long, and more that the model is bad at deciding how long an answer deserves to be.

The effort setting does not fix this. It controls how much reasoning the model does, not the size of the answer.

What does work is being explicit about length. A profile instruction can be as simple as this:

Keep answers focused and concise. Use a short summary by default, and only go into
detail when the task needs it or I ask for it.

For tasks where length really matters, give it an actual budget.

Prompt style matters too. If the request contains six headings, four nested lists, and a small constitution’s worth of rules, the answer will often look similar. Plain prose tends to produce plain prose. I did not expect this to make as much difference as it does.

It quietly turns a small task into a project

Ask it to fix a sitemap and it may decide that the website needs a redesign while it is there. Anthropic acknowledges that the model can expand the scope of a task, and higher effort can give it more opportunity to do so.

For a narrow task, state the boundary:

Complete the requested task at its intended scope. If you see a better approach,
mention it briefly, but do not widen or replace the task without asking.

It also helps to provide the complete specification up front: the goal, relevant inputs, constraints it cannot discover from the repository, and what counts as done. Ambiguity leaves space for the model to invent a more interesting assignment for itself.

For nontrivial work in Claude Code, I still prefer to review the plan before letting it run. And I commit my current work first, because I am not that optimistic.

It narrates the work

Agentic sessions can feel like listening to commentary on tool calls that are already visible in the terminal. The model announces the next step, describes what it just did, explains every small correction, and then summarizes the summary.

A positive instruction works better than a list of things not to say:

Before using tools, briefly say what you are going to do. While working, only update
me when you find something important or change direction. Finish with the outcome.

I handle corrections separately. If a small slip does not affect the code or the conclusion, fix it and continue. I only want the explanation when the mistake changes something that matters.

It burns through tokens

Opus 5 is willing to verify its work and delegate parts of it to subagents without much encouragement. Those are useful behaviors, but they become expensive when your existing instructions also tell it to double-check everything and ask another agent to verify the result.

The first thing to try is deleting those instructions. Anthropic’s migration guidance says that redundant verification prompts increase token use without improving the result. Old CLAUDE.md files, agents, and skills are worth searching:

grep -rns -i "verify\|double-check\|re-check" ~/.claude/CLAUDE.md ./CLAUDE.md ./.claude/agents/ ./.claude/skills/

Delegation can be limited in the same way: reserve it for work that is large, independent, and genuinely useful to run in parallel. Parallel work has its own failure mode, mind you — a worktree cut from a stale main will happily hand you merge conflicts instead of throughput. Claude Code also has CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS and CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH if you would rather enforce the limit than hope the model interprets it sensibly.

Old prompts can make it worse

Many prompts contain rules added to restrain older models: be conservative, report only high-severity issues, change as little as possible, act only when necessary. Opus 5 follows these qualifiers literally enough that they can suppress work you actually wanted.

Code review is a good example. If you ask for only the most serious problems, the model may discard a real bug while trying to respect the filter. It is often better to let it find everything, then rank the results afterwards.

This is a good reason to review the rest of your setup as well. For each instruction, ask whether a capable model would do a worse job without it. If the answer is no, remove it. The same applies to information it can read from the repository, rules duplicated across several files, forced tool choices, and reminders not to be lazy.

Anthropic says it removed more than 80% of Claude Code’s own system prompt for this generation without a measurable regression. That does not make 200 lines a magical limit, but it does make a 1,000-line instruction file look rather suspicious.

Its prose sounds generated

The usual phrases are all there, along with the tidy oppositions, dramatic fragments, and conclusions that sound as if they should be delivered from a stage. The structure repeats even when the subject changes.

Examples help more than a long blacklist. Describe the voice you want and include a few paragraphs that actually sound like it. This is easier for the model to follow than fifty banned expressions, and less likely to produce new variations of the same problem.

For anything meant to be published, a separate editing pass is still useful. Let one pass sort out the argument and another make it sound like something you would willingly put your name on. Yes, that is also how this post was rewritten.

Why this keeps happening

These behaviors make more sense in the context of how Anthropic wants Claude Code to be used. Opus 5 is designed to receive a complete task and continue with less supervision. Claude Code’s system prompt became much smaller, and on August 14 auto mode became the default permission mode for Pro, Max, and Team users.

The direction is visible in Claude Code’s prompt text as well. People extract and compare the system prompts between releases, and auto mode tells the model to prefer reasonable assumptions over stopping for clarification. It is hardly surprising that users then see fewer clarifying questions.

Anthropic’s argument is that permission prompts had become routine. Its own study found that people approved 97% of them, while a classifier caught more dangerous commands than the human participants did. Human performance also became worse after repeatedly clicking through prompts. I find this believable because I have approved commands I did not properly read too.

The guardrails have not vanished, but some of them moved from the conversation into runtime controls such as the classifier, checkpoints, and /rewind. Whether that is reassuring depends partly on how much you trust Anthropic’s numbers. The company also reports a 17% false-negative rate for overly ambitious actions, and the evaluation is their own.

What I changed

Most of my Opus 5 migration was deletion. I removed redundant verification rules, vague warnings, forced tool choices, and instructions that repeated information already available in the repository. I kept the parts the model cannot infer: scope, expected length, important constraints, and the definition of done.

This does not fix every odd behavior, and it is probably not a permanent recipe. It mostly makes Opus 5 behave more like the models I was already used to. As the tools change, hanging on to that exact experience will become harder and less useful.

For now, though, the cleanup helped. Give it a complete task, make the boundary clear, and delete the rules whose original purpose you can no longer remember. That is a much less exciting conclusion than declaring prompting dead, but it works.