Opus 5 talks too much. So I made it say it again, in plain English

Opus 5 is a better model than Opus 4.8. It is also, by default, exhausting to read. Ask it a yes/no question and you get a structured report with headings, a table, a trade-off analysis you did not request, and a closing paragraph that summarises the report you just read.

My first instinct was to lower the effort level. That does not work, and Anthropic says so in their own Opus 5 prompting guide: verbosity is not tied to reasoning effort. If you want a short answer, you have to ask for a short answer, in words.

So I put “Short answers. Drop filler.” in my CLAUDE.md. It helped a bit. It did not bind, because “short” is not a measurement — and because the real problem was somewhere else entirely.

The real problem was duplication, not filler

When I finally looked at why the answers were long, it was not padding. It was this: Claude writes a Markdown file, and then explains the file back to me in the chat. I already have the file. I am going to read the file. The chat copy is pure duplication.

The second source is worse: subagent reports. A subagent inherits your CLAUDE.md rules but not your main session’s output style. So a code-review agent comes back with three screens of prose regardless of how you configured the main conversation.

Why not an output style?

That was my next idea, and it is the wrong tool. Three reasons:

  • A permanent “be short” rule fights the times you genuinely need length — a design document, a review report, a book chapter.
  • A custom output style silently drops Claude Code’s built-in software-engineering instructions unless you set keep-coding-instructions: true. Easy to miss, expensive to debug.
  • Output styles apply to the main conversation only. They never reach a subagent — which is exactly where the wall of text comes from.

A skill costs nothing until you invoke it, and it works on an agent report just as well as on a chat answer. So: /light-md-Coherent.

What it does

It says the last answer again, in plain words. That is all. It is a translation of the previous message, not a second attempt at it.

Four modes, picked by the argument:

(nothing)Same answer, plain words, short sentences. Same coverage, fewer syllables.
A number/light-md-Coherent 3Exactly three numbered points, most important first. No intro, no closing.
A question/light-md-Coherent the part about the mutexExplains only that part, plus the context that made it land wrong. Ignores the rest.
A file pathSame rewrite, applied to a Markdown file, edited in place.

It also triggers without the slash command, on the things you actually type when you are annoyed: “in plain English”, “too long”, “TL;DR”, “give me 3 points”, “wait, what?”.

The two rules that make it work

Rewrite, never re-derive. Every claim in the plain version must already exist in the message being rewritten. No new files read, no new analysis, no new conclusions. Zero tool calls. If the model catches itself re-reading a unit, it has already failed — you would get a second opinion dressed up as a simplification, and you would not know which of the two to trust.

Facts move across unchanged. Numbers, versions, file paths, unit and class names, procedure signatures, [UNVERIFIED] markers, and every warning. Simplify the words, never the facts. Dropping a caveat because it “reads like hedging” is the one failure this skill must not have.

Delphi words stay. Imported words die.

This is where a generic “explain it simply” prompt goes wrong for us. Delphi vocabulary is not jargon — it is the correct vocabulary. procedure, record, RTTI, try..finally, interface section, DFM, FMX, VCL, TThread: all of those stay exactly as they are.

What gets shot on sight is the borrowed management dialect: leverage → use, surface (as a verb) → show, orchestrate → run, non-trivial → hard, semantics → meaning, canonical → standard, robust → say what actually survives what.

The dial is not ELI5, by the way. ELI5 strips precision and reads as condescending. The target is “explain it to a good developer who does not speak this sub-field’s dialect”. I aim it roughly at ASD-STE100 Simplified Technical English — one idea per sentence, active voice, one meaning per word.

An example, in Delphi

What Claude said:

The root cause is a Win64 pointer-truncation issue: SendMessage returns an LRESULT, which is 64-bit on Win64, and it is being assigned into an Integer, so the upper 32 bits of the returned handle are discarded. This is non-trivial to spot because the code is correct under Win32.

What the skill turns it into:

On Win64, SendMessage gives back an LRESULT, which is 64 bits wide. The code stores it in an Integer, which holds only 32 bits, so the top 32 bits of the handle are thrown away. The same line is correct on Win32, which is why nobody saw it.

Every fact survived. LRESULT stayed, because it is a real API name. “Upper 32 bits” stayed a number instead of becoming “half”. Only pointer-truncation issue and non-trivial to spot were traded for plain words. Nothing new was added.

The honest limitations

If the message you want re-said has already fallen out of context — the conversation was summarised, or the report went to a file instead of the screen — the skill will not invent a restatement. It says so and asks which part you want. That is deliberate: a plausible reconstruction of an answer you cannot check is worse than no answer.

And the Simplified Technical English target is a direction, not a specification. The standard has 53 rules and a dictionary of about 900 approved words. No model is actually enforcing that dictionary, mine included. I use it as an aim.

One more thing it does, which surprised me: writing something in simple words occasionally exposes that the original claim was thin. When that happens the skill is told to add a single line — “Restating this exposed a gap: …” — rather than quietly producing a different, better answer. Same reason as before. You have to be able to tell which version to trust.

Get it

It is on GitHub with the rest of my Claude Code tooling for Delphi, under MPL-2.0: Claude-Tools-for-Delphi. Drop the light-md-Coherent folder into ~/.claude/skills/ and it works in any session.

The original idea came from this video, which shows three separate small skills for the same problem. I merged them into the modes above, because three commands for one annoyance is two commands too many.

Leave a Comment

Scroll to Top