Stop Claude from inventing jargon: get it writing plainly
Claude bakes undefined compound words into specs, chat, and pull-request descriptions: blast radius, clique instead of group, fan out for anything async. A Reddit thread naming the problem pulled north of 700 upvotes and 376 comments in its first day — proof this is a shared, specific complaint, not one person’s pet peeve. Below: why the habit forms (closer to a personality trait than a bug), which fixes the thread actually tested against each other, and the copy-paste Output Style, CLAUDE.md, and hook templates that make Claude default to words your team already knows — without banning the engineering shorthand that earns its place.

On this page · 18 sections▾
- TL;DR + the fix
- The thread that named it
- The jargon hall of shame
- Why Claude does this
- Some jargon is legitimate
- Fix 1 · Output Styles
- Fix 2 · CLAUDE.md rules
- Fix 3 · Personas
- Fix 4 · Banned-word hook
- Fix 5 · Reviewer pass
- Fix 6 · Force a glossary
- Reading-level targets
- What we got wrong
- Who this helps
- The verdict
- Glossary
- FAQ
- Sources
TL;DR + the fix
- The problem is real and specific. Claude bakes undefined compound words into specs and plans: blast radius, clique, fan out, load-bearing. A Reddit thread naming this pulled hundreds of upvotes within hours — not one person’s pet peeve.
- It is a default, not a bug. RLHF research shows reward models favor longer, more elaborate answers. Nobody flipped a switch for this; it behaves more like a personality trait than a malfunction.
- Output Styles beat CLAUDE.md for this specifically. The thread’s top-voted fix works earlier in the pipeline — it is injected into the system prompt itself, before CLAUDE.md is read. Jump to the paste-ready block if that is all you need.
- Do not ban the words — force the definitions. Footgun and idempotent are real engineering shorthand. The fix is not a purge; it is making Claude define anything non-obvious on first use.
The thread that named it
On July 6, 2026, a r/ClaudeAI post asked a question that turned out to be one of the most-shared complaints on the subreddit that week:
“Claude, maybe in an effort to be concise, creates the most dense sentences and made-up compound words that are so tedious and challenging to read. It invents concepts without defining them and bakes them into specs and plans.”
beholdtoehold · r/ClaudeAI · Reddit
north of 700 upvotes, 376 comments, 0.94 upvote ratio — at the time of writing.
The post closed with the line that explains why it resonated: the author just wanted Claude to “speak plainly, similar to how Codex appears to be able to do it out of the box.” Within hours, the subreddit’s own auto-summary bot had compiled a running tally of the worst offenders from over 320 comments — a de facto “Jargon Hall of Shame”. The rest of this guide is built on that thread, a parallel Hacker News complaint, and the exact wording of Claude Code’s own docs for the fixes that actually work.
The jargon hall of shame
The most-upvoted reply nailed the pattern in one paragraph — and included the fix they’d already resorted to:
““Fan out” for asynchronous stuff. And it's using “clique” instead of just saying “group”. It loves to say “blast radius.” It would be cute if it wasn't a problem that it's polluting my application's domain with this stuff. I have a term “initialVerification” in my app, and Claude decided to start writing “IV” everywhere. Intravenous? Roman 4? I created some deterministic rules with ast-grep to reject this stuff.”
Top-Setting-3323 · r/ClaudeAI (140 upvotes) · Reddit
That last detail matters: this commenter didn’t just complain, they wrote a deterministic ast-grep rule to reject the pattern in CI, which is the sharpest available proof that this is not a taste preference. It is unwanted vocabulary shipping into a codebase’s actual domain language.
The subreddit’s auto-generated thread summary collected the recurring terms into a shortlist: load-bearing (called the “undisputed champion”), blast radius, footgun, yak shaving, belt-and-suspenders, smoking gun, spine, seams, gate, substrate, and Claude’s habit of inventing acronyms on the fly. One reply just wanted the thread to move on: “oh my god if I hear Opus say footgun one more time…”
Two more replies named the specific models involved:
“I HAVE BEEN LOSING MY MIND. Sonnet 5 and Fable are the worst offenders for me so far. At first I thought I was just having bad brain fog, I couldn't follow anything it was saying. It's like it's talking to itself. When I finally realized it wasn't just me and called it out, that was exactly how it described what it was doing: speaking essentially to itself in this very dense shorthand.”
jeangmac · r/ClaudeAI · Reddit
“Fable may be better at bughunts but wow it tries to be so clever in its phraseology that it verges on unintelligibility…”
rgkirkpatrick · r/ClaudeAI (45 upvotes) · Reddit
Read those two together and you get the shape of the problem: it is not that any single term is unreadable, it is that the density compounds across a whole plan until the reader — and, per jeangmac’s account, arguably the model itself — is working harder than the task required.
Why Claude does this
Start with what this is not. It is not the same failure as the “Claude got dumber” incident from earlier in 2026, where Anthropic’s own postmortem named three specific harness bugs that shipped and were then fixed. Dense jargon is not a regression with a start and end date. Nobody has to file an incident report, because nothing is broken — the model is doing exactly what training rewarded it for doing.
Two adjacent, peer-reviewed findings point at the likely mechanism, even though neither one studies Claude’s specific compound-word habit directly. A 2024 paper on Direct Preference Optimization states it plainly: “RLHF is known to exploit biases in human preferences, such as verbosity. A well-formatted and eloquent answer is often more highly rated by users, even when it is less helpful and objective.” A separate line of reward-modeling research documents the same pattern under the name “length bias”: reward models that overweight longer, more elaborate outputs during training, which then surfaces as excess verbosity in the finetuned model.
The closest direct study is a COLING 2025 paper asking why ChatGPT overuses words like “delve” and “intricate.” The authors call it “the puzzle of lexical overrepresentation” and, after ruling out model architecture and training data as the sole cause, find their results “consistent with RLHF playing a role.” That paper is about single flashy words, not invented compounds like “clique” for group — the mechanism for Claude’s specific habit hasn’t been isolated in a paper yet. But the direction of both findings lines up with what the Reddit thread describes: raters reward confident, information-dense, sophisticated-sounding text, and models trained on that signal learn to produce more of it, whether or not the reader asked for it.
jeangmac’s account above adds a plausible, unproven theory worth taking seriously: dense shorthand may be Claude compressing its own internal reasoning and letting that compression leak into the user-facing text, rather than translating back to plain language before it answers. Treat that as a hypothesis from someone who watched it happen, not as an established mechanism.
It also matters more here than in ordinary chat. A dense paragraph in conversation is read once and discarded. A dense paragraph baked into a plan.md or a spec gets committed, reread by teammates who weren’t in the original conversation, and reread by Claude itself in a future session that treats the file as ground truth. Chat jargon is an annoyance. Spec jargon compounds.
Some jargon is legitimate
Before the fixes: a contrarian point the thread itself raised. A vocal minority of commenters pushed back that terms like footgun, yak shaving, and idempotent are standard industry shorthand that predates Claude by decades — not evidence of anything invented. One reply put it simply:
“I do enjoy 'blast radius'”
mper33 · r/ClaudeAI · Reddit
Both things are true at once. “Footgun” is a real, widely shared word for a feature that makes it easy to shoot yourself in the foot; banning it removes vocabulary your senior readers already share, and replaces it with a clunkier paraphrase. “Clique” instead of “group,” on the other hand, is not shared vocabulary at all — it is Claude privately deciding a plainer word needed a fancier synonym.
The dividing line is not the word count of a term or how impressive it sounds. It is whether the reader can be expected to already know it. The fixes below are built around that line: force a definition for anything that fails the test, and leave working shorthand alone.
Fix 1 · Output Styles (the thread’s top-voted answer)
The single most-upvoted reply in the thread didn’t point at CLAUDE.md at all. It pointed at Output Styles, a Claude Code feature that rewrites the system prompt directly instead of adding a message after it:
“I started using Output Styles for all my projects and that's where I put things like that, since it is given to Claude with the system prompt, before the CLAUDE.md — it seems to help. There's already one in the default coding instructions that tells Claude not to use shorthand but you can add supplementary instruction too.”
EightFolding · r/ClaudeAI (95 upvotes) · Reddit
That last sentence is worth sitting with: Claude Code’s own default system prompt already tells the model not to use shorthand, and the thread exists anyway. One line of built-in guidance is easy for a strong RLHF pull to override. A dedicated Output Style adds reinforcement exactly where the default already lives, rather than hoping a single sentence buried in a long system prompt wins out.
The mechanics, confirmed against Claude Code’s own docs: Output Styles modify the system prompt and apply to every turn without re-prompting. CLAUDE.md, by contrast, “adds a user message after the system prompt”. That ordering is why the top-voted fix outranks a CLAUDE.md rule for tone specifically — it lands earlier in the pipeline. The trade-off: your selection is saved to .claude/settings.local.json, a local file, not a committed one, so it is personal to you unless your team agrees to ship it (see Fix 2 for the shared version).
A minimal custom style, saved as a Markdown file and selected via /config → Output style:
---
name: plain-writing
description: Plain, jargon-free prose for specs, plans, and chat
keep-coding-instructions: true
---
## Voice
Define any non-dictionary term the first time you use it, in 12 words
or less, then use it freely. If a sentence needs two undefined terms
to parse, split it.
## Banned compounds
Do not invent compound shorthand for existing plain verbs: no "fan
out" for "run in parallel," no "clique" for "group," no invented
acronyms for local variable or field names.
## Reading level
Target a Flesch Reading Ease score of 60-70. Prefer short, concrete
sentences over dense, qualifier-heavy ones.Keep keep-coding-instructions: true unless you are building a non-coding style — without it, Claude Code drops its own scoping and verification behavior along with the tone change, which is a much bigger trade than most people mean to make. And remember the style loads once at session start: changes take effect after /clear or a new session, not mid-conversation.
Fix 2 · CLAUDE.md rules (the shared version)
Output Styles are personal and local. If you want the whole team — and every future Claude session reading the repo — held to the same rule, put it in the committed CLAUDE.md instead. This is close to mcp.directory’s own editorial voice doctrine, which exists for exactly this reason:
## Writing style
- Define every non-dictionary term in <=12 words on first use. Do not
reuse an undefined term from an earlier doc without redefining it.
- No invented compound words for existing plain verbs or nouns: say
"group," not "clique"; say "runs in parallel," not "fans out"; say
"impact," not "blast radius" -- unless the term is already standard
in this codebase.
- Plain verbs over abstract nouns: "this breaks X" beats "this
creates risk to X's stability."
- Real engineering terms (idempotent, footgun, race condition) are
fine to keep -- define them inline in <=12 words on first use.
- Sentences average <=22 words. Split anything longer.On claude.ai, the equivalent lives under Settings → Profile → Custom Instructions, which applies the same way across every conversation. A Claude power-user guide walked through this exact path in detail earlier in 2026, built on Wikipedia’s “Signs of AI Writing” guide — the same source our own humanizer skill is built on (more on that in Fix 5).
Fix 3 · Personas
Negative rules alone (“don’t use jargon”) give a model something to route around; a persona gives it a consistent target to write toward instead. One reply described exactly this shift:
“I tell it to mix Simple English Wikipedia with Mr Rogers and Ernest Hemingway. Love it.”
0xe0da · r/ClaudeAI · Reddit
The thread’s own summary surfaced other personas people had tried with reported success: a “tired senior engineer who hates long emails,” and, more playfully, Dolly Parton. The common thread across all three is specificity. “Write plainly” is a constraint; “write like Hemingway” is a target the model has thousands of concrete examples of, from training data it already has strong opinions about.
Pair a persona with the Output Style from Fix 1 rather than replacing it — the persona sets the target, the explicit rules make sure “clique” and “fan out” are named as specifically unwelcome.
Fix 4 · A banned-word list, enforced by a hook
For the compounds Claude genuinely invents rather than borrows, a static list plus enforcement beats a polite request. Compiled from the thread’s hall of shame: blast radius, clique, fan out, load-bearing, spine, seams, gate, substrate, smoking gun, belt-and-suspenders.
Top-Setting-3323’s ast-grep rule (quoted above) is the deterministic version of this: a static, code-aware check that runs in CI with no model in the loop. Claude Code’s own hooks system gives you a semantic version of the same idea. A Stop hook runs after Claude finishes responding and can hand the response to a fast model for a judgment call — useful here because it can catch a banned term used without a definition, not just its presence:
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "prompt",
"prompt": "Check $ARGUMENTS for these undefined terms: blast radius, clique, fan out, load-bearing, spine, seams, gate, substrate, smoking gun, belt-and-suspenders. If any appear without a plain-language definition nearby, respond {\"ok\": false, \"reason\": \"rewrite without: <list the terms>\"}. Otherwise respond {\"ok\": true}.",
"timeout": 30
}
]
}
]
}
}Per Claude Code’s docs, a Stop hook that returns ok: false feeds the reason back to Claude as its next instruction and the turn continues — and Claude Code caps it at eight consecutive blocks so a bad rule can’t loop forever. Start with the deterministic ast-grep version if you want zero added latency; reach for the prompt hook when you need judgment about whether a term was actually defined nearby, not just whether it appears.
Fix 5 · A plain-English reviewer pass
The most reliable fix in our own testing isn’t a rule at all — it’s a second pass. Ask Claude to audit its own draft before you accept it, the same two-prompt pattern our humanizer skill uses to catch AI writing tells: first “What in the below is hard to follow, and which terms are undefined?”, then “Now rewrite it without them, defining anything technical inline.”
This works better than a single “write plainly” instruction because it forces Claude to name the specific offending phrase before fixing it, rather than pattern-matching “plain” against a vague target. It is also the fastest fix to try with zero setup — no Output Style, no hook, just a follow-up prompt on a plan you already have open.
Fix 6 · Force a glossary on anything long
For plans and specs specifically — the artifacts the original post called out by name — add one instruction to your planning prompt or slash command: every plan over roughly 200 words ends with a Terms used section, one line per non-dictionary term, defined in plain language. This does two things at once: it gives you a fast scan to catch anything Claude invented, and the act of writing the definition often catches the model reaching for something it can’t actually justify in twelve words.
Reading-level targets, concretely
“Write simply” is not a target a model can optimize toward; a number is. The Flesch Reading Ease formula scores text from 0 to 100 based on sentence length and syllables per word — 60–70 is the established “Plain English” band, readable by a 13- to 15-year-old, and roughly where clear technical writing for a general developer audience should land. 90+ reads as childish for a spec; below 40 is where jargon density usually shows up.
Give Claude the number directly — “target Flesch Reading Ease 60–70” — rather than an adjective. It can estimate a score and revise toward it, the same way it can hit a line-count or file-size target. This is also exactly what mcp.directory’s own editorial rules ask for: sentences averaging 22 words or fewer, paragraphs of four sentences or fewer. If a rule like that sounds familiar, it is because it is the same fix this whole post is about, applied to the writing you are reading right now.
What we got wrong
Two things, both worth naming plainly. First, we assumed a banned-word list alone would fix it. It didn’t — Claude just cycled to synonyms the list didn’t cover. “Blast radius” banned, “impact surface” appears instead. A list only works paired with the definition requirement from Fix 1 and Fix 2; banning words without demanding plain language in their place just moves the target.
Second, an early version of our own Output Style told Claude only to “write simply.” It complied by over-explaining basic concepts — defining “API” mid-sentence in a post aimed at developers — which is its own kind of unreadable. The fix was narrowing the instruction to what actually mattered: define the non-obvious, leave the obvious alone. And yes, drafting this exact post, we caught ourselves reaching for “blast radius” twice without irony before the reviewer pass in Fix 5 flagged it.
Who this helps
Worth doing
- Teams whose plans get reread by humans weeks later
- Anyone onboarding new teammates onto Claude-authored docs
- Solo devs who find chat output exhausting to parse
- Anyone shipping specs that another Claude session reads later
Skip it
- You already run a strict custom system prompt
- Your team already shares the shorthand and prefers speed
- The output never leaves a single, disposable chat
The verdict
Our take
Set up an Output Style if you use Claude Code, or Custom Instructions if you live in claude.ai chat — it is a two-minute fix that beats CLAUDE.md alone because it lands earlier in the prompt. Pair it with a named persona and a follow-up plain-English reviewer pass on anything long enough to matter, like a plan or a spec. Do not ban real engineering terms; ban the ones Claude invented, and require a definition for everything else. The complaint in the thread was never really about vocabulary — it was about being handed undefined terms and expected to just keep up.
Glossary
- Output Style
- A Claude Code feature that rewrites the system prompt to set role, tone, and format for every turn.
- CLAUDE.md
- The project memory file Claude Code reads as a message after the system prompt, at the start of every session.
- Custom Instructions
- claude.ai's equivalent of CLAUDE.md, set once under Settings → Profile and applied to every conversation.
- RLHF
- Reinforcement Learning from Human Feedback — the training step that shapes a model's tone from human ratings of its answers.
- Length / verbosity bias
- A documented RLHF failure mode where reward models rate longer, more elaborate answers higher, independent of quality.
- Lexical overrepresentation
- Researchers' term for specific words (like “delve”) appearing far more often in LLM output than in ordinary writing.
- Stop hook
- A Claude Code script or prompt check that runs after the agent finishes responding and can block it, forcing a rewrite.
- Footgun
- Real, pre-LLM engineering slang for a feature that makes it easy to accidentally hurt yourself or your system.
- Blast radius
- Real engineering term for how much breaks if a given change goes wrong. Overused by Claude on trivial changes.
- Yak shaving
- Real term for a chain of small prerequisite tasks that bury the original goal.
- Idempotent
- Real term: an operation that produces the same result no matter how many times it runs.
- Load-bearing
- Borrowed from construction to mean “quietly critical.” The thread's single most-flagged overuse, often applied to trivial code.
- Flesch Reading Ease
- A 0–100 readability score from sentence length and syllable count. 60–70 is the plain-English band.
- Reward hacking
- When a model optimizes for what a reward model scores well, rather than what a human rater actually wanted.
Frequently Asked Questions
Why does Claude invent jargon like “blast radius” or “clique”?
It is a byproduct of training, not a bug in one release. RLHF research has documented reward models favoring longer, more elaborate answers, and a COLING 2025 study found RLHF likely drives LLMs to overuse dense, impressive-sounding words. Claude compresses ideas into confident shorthand because that shorthand scored well during training.
How do I stop Claude from making up words?
Add an Output Style (Claude Code) or Custom Instructions (claude.ai) that require defining any non-dictionary term in 12 words or less on first use, and name the specific invented compounds to avoid. Output Styles beat CLAUDE.md alone here because they load into the system prompt itself, before CLAUDE.md is read.
Should I just ban words like “footgun” and “yak shaving”?
No. Both are real, decades-old engineering slang, not Claude inventions. Banning them strips vocabulary your readers already share. Ban what Claude actually invented or misapplied — clique for group, a made-up “IV” acronym — and require a plain definition for the rest.
Does this happen in Claude.ai chat too, or only Claude Code?
Both. The Reddit thread that named this is framed around Claude Code specs and plans, but the same dense default shows up in claude.ai chat. Claude Code fixes it with an Output Style; claude.ai fixes it with Custom Instructions under Settings → Profile.
What reading level should I target?
A Flesch Reading Ease score around 60–70 — the “plain English” band, readable by a 13- to 15-year-old. Tell Claude the target number directly. It can estimate toward a number far more reliably than it can follow a vague “write simply” instruction.
Will banning jargon make Claude's writing worse or more childish?
Only if you ban words instead of requiring definitions. A blanket “never use technical terms” instruction produces over-explained, condescending prose. The fix that held up in the thread was narrower: define anything non-obvious once, on first use, then use it freely.
Is this the same issue as Claude “feeling dumber”?
No — worth not conflating them. The 2026 capability-regression postmortem traced weeks of degraded output to three specific harness bugs, since fixed. Jargon-heavy writing is a standing default tied to training, not a bug; it never shows up in a postmortem because nothing broke.
Sources
- Primary — Claude Code docs: Output styles · Hooks reference
- Primary — Wikipedia: Signs of AI writing (the basis of mcp.directory’s humanizer skill)
- Research — Juzek, “Why Does ChatGPT ‘Delve’ So Much?”, COLING 2025: arxiv.org/abs/2412.11385
- Research — Park et al., “Disentangling Length from Quality in Direct Preference Optimization”: arxiv.org/abs/2403.19159
- Research — “Beyond Excess and Deficiency: Adaptive Length Bias Mitigation in Reward Models for RLHF”, ACL Findings 2025: aclanthology.org/2025.findings-naacl.169
- Community — the thread: r/ClaudeAI, “Claude’s self invented technical jargon…” — beholdtoehold, July 6 2026
- Community — Hacker News: “Ask HN: Favorite prompts for improving LLM output?” — maxutility, June 2026, independently naming “cryptic and coined jargon” as a top Claude Code and GPT complaint
- Web — Will Francis, “How to Stop Claude Writing Like an AI”, March 2026
- Related guides: Stop Claude Code From Over-Engineering · Why Claude Felt Dumber (2026 Postmortem) · Claude Code Best Practices · Claude Code Effort Levels Explained · humanizer skill
Technique
Stop Claude Code From Over-Engineering
ReadPostmortem
Why Claude Felt Dumber (2026 Postmortem)
ReadGuide
Claude Code Best Practices (2026)
ReadFound an issue?
If something in this guide is out of date — a fix that stopped working, a new Output Style default, a term that needs adding to the hall of shame — email [email protected] or read more on our about page. We keep these guides current.