Pairing with AI #2: fixing Opus 5’s unintelligible output
ℹ️ See my ASD-STE100 (Simplified Technical English) output style for Claude Code
This post was originally going to be about AI-assisted planning, but if you’re a Claude Code user, you may be experiencing the same frustration I have recently with Opus 5: it’s often incomprensible. Others have been frustrated also. Matt Pocock posted the other day: “Christ, Opus, talk like a normal person. I built this app and I have no idea what it’s saying.”
Sometimes it veers from extremely dense technical language to just bizarre. Opus served up this gem while I was doing a PR review the other day (the code under review provides alternative text suggestions):
…Then a permissions misconfiguration degrades to “you don’t get the 👀 and the summary” instead of “you don’t get the review.” The suggestions are the product; the acknowledgment is garnish, and garnish shouldn’t be able to take the meal down.
So the suggestions are the product, which I think Opus is saying is also the meal, which apparently can be ruined by a permissions misconfiguration. Oh wait, does it mean it’s actually the acknowledgements (the garnish) that are the problem? And what is the 👀 emoji referring to?… What are we talking about again? 😵💫
Claude’s Fable and Sonnet models don’t have this problem, but Fable is too expensive to use, and most of my current work is not “routine” so Sonnet is typically not up to the task.
You can make Opus 5 intelligible again with a custom output style.
For example, Lydia Hallie created an ELI5 output style (explain like I’m 5).
Another approach that’s getting attention is based on ASD-STE100 (Simplified Technical English):
It was originally developed in the 1980s by the European Association of Aerospace Industries (AECMA) at the request of the European airline industry, which wanted a standardized form of English for aircraft maintenance documentation that could be easily understood by non-native English-speakers. It has since been adopted in many other fields outside the aerospace, defense, and maintenance domains for its clear, consistent, and comprehensive nature.
A misunderstanding of intent in an airplane repair manual could prove fatal, so having a standard for very clear technical writing was critical. Turns out it’s great for AI assisted coding too. But I did some looking around online, and couldn’t find an example of an output style specifically based on it. So I made one: here is my ASD-STE100 (Simplified Technical English) output style for Claude Code. Copy it into your ~/.claude/output-styles directory, start a new Claude Code session, run /config and select it in the Output Styles menu.
I’ve been using it for a few days now and it’s been transformational. Opus 5 is intelligible now! 🎉 No weird analogies, no self-invented jargon, no long convoluted sentences, no hedging or obfuscation, and no rotating through multiple synonyms to refer to the same thing.
It doesn’t mean nuance is lost. It just means you get it in a series of short, clear sentences, instead of a long, obtuse one.
I used asd-ste100-skill as a starting point (it focuses only on agent output, but I want it for all output). A couple things to note:
- I didn’t attempt to use the full STE manual as that would be quite heavy and probably too limiting (the manual has 53 writing rules and a dictionary of only about 900 approved words).
- If you don’t use
CONTEXT.mdfiles in your projects, you can remove the “Project vocabulary” section.
This is the second post in a series on coding with AI. It’s inspired by the talk I gave at RubyConf in July (video should be available soon). The first post was Pairing with AI #1: brainstorming.