Free playbooks in your inbox
how-to · Stop AI Slop

How to Stop AI Slop in Claude Code for Good

Get Claude Code replies that open with the answer and stay clear from the first reply to the last, in every session you start. In my test of one 20-prompt session, a Plain English output style plus a small hook gave the shortest replies of any setup, 387 words on average.

From the youcanbuildthings catalog ▸ Build-tested

Hello builders,

Claude Code can open every reply with the answer and keep doing it 20 replies into a session. It can do that in every session you start, with no reminder from you. That clears out the AI slop that builds up as a session runs: the recap, the hedge, and the answer buried in paragraph three. One Reddit user described the usual experience: the writing rule “holds for a single turn and then Claude reverts back to its bullshit.” The setup I kept is a Claude Code output style plus one small hook, because it gave the shortest replies and the only answer-first openings in my runs. I tested it against three other places the rule can live.

The 20-reply test

To find where the rule should live, we held one 20-prompt work session four times on Opus 5.5. The session planned a move from a nightly cron job to a job queue. We changed only where the rule lived. Then a script counted every sentence over 25 words across all 80 replies. We also averaged the length of each session’s replies.

Claude Code output style test: sentences over 25 words across 20 turns, nowhere 32 with a 452-word average reply, typed once in turn 1 0 with 526 words, CLAUDE.md 4 with 446 words, output style and hook 5 with 387 words; only CLAUDE.md and the output style come back every session. A typed rule dies with the conversation.

Start with the second row, since it’s the one I didn’t expect. A rule typed into the first message held for all 20 replies with zero long sentences, and its replies averaged 526 words. That is 74 words more per reply than with no rule, because the model made every sentence short and then wrote more of them. The typed rule also lives only inside that conversation. A new terminal tomorrow puts you back on the first row, with 32 long sentences and 452-word replies, until you type it again.

In the last row, the style and hook let 5 long sentences through in 20 replies, one more than CLAUDE.md did. Its replies averaged 387 words, 65 fewer than the session with no rule. In my runs it was also the only setup that opened its replies with the answer. In the first prompt we asked what could make a nightly job run twice. The first sentence in the style session named the cause to check first: “The most common cause is two schedulers that run the same job.”

How does a style reach every reply when a rules file loads once, at the start? Claude Code’s docs answer that in two lines.

In their words:

An output style changes the instructions Claude Code gives Claude. Claude Code sends the active style’s instructions with every request.

(Claude Code docs, Output styles)

Build the style

An output style is a Markdown file, and we keep ours in the user folder so every project gets it. Make the folder with mkdir -p ~/.claude/output-styles and save this file in it as plain-english.md.

Here’s the whole file:

---
name: Plain English
description: Replies in the aircraft-manual style, answer first
keep-coding-instructions: true
---

Write every reply in ASD-STE100 Simplified Technical English, about 80% of the way.

- Put the answer in the first two sentences. Put the details after it.
- Keep sentences to 25 words or fewer. Keep instructions to 20 words or fewer.
- Use one name for one thing. Do not switch to a synonym.
- Use the active voice. Say who does the action.
- Put a condition before the action: "If the build fails, read the log."
- Keep paragraphs to six sentences or fewer.
- Keep the domain terms. Keep the words that say how sure you are.
- Code, commands, file paths, names, prices and numbers stay exactly as they are.

ASD-STE100 is the plain English of aircraft repair manuals, and the model already knows it by name. “About 80% of the way” is Andrej Karpathy’s softer setting, and it’s why the last two bullets keep words like “probably” in your replies. Don’t drop keep-coding-instructions: true. Without it, a custom style replaces the part of Claude Code’s instructions that covers coding work.

Switch it on, and add the hook

The hook prints the rule into the context before each of your prompts. We save it as ~/.claude/plain-rule.txt, written as facts about the replies:

Replies in this project are written in ASD-STE100 Simplified Technical English, about 80% of the way. The answer is in the first two sentences. Sentences have 25 words or fewer, and each thing has one name. Code, commands, paths and numbers stay exact.

Claude Code’s docs ask for text a hook adds to read “as factual statements rather than imperative system instructions,” because text that looks like a system command can trip its prompt-injection defenses. So there is no “YOU MUST” in that file. Then both pieces go in ~/.claude/settings.json, and if that file already exists, we add these two keys to it and keep everything else. If it already has a UserPromptSubmit hook, add this one to that list.

The two keys:

{
  "outputStyle": "Plain English",
  "hooks": {
    "UserPromptSubmit": [
      { "hooks": [ { "type": "command", "command": "cat \"$HOME/.claude/plain-rule.txt\"" } ] }
    ]
  }
}

Copy the capitals in "Plain English" exactly. I tested "plain english" and got the default style back, with no error and no warning. Typing /output-style Plain English ignores case, so the trap only bites when you edit the file by hand. One stray comma does the same kind of damage, because a settings file that doesn’t parse runs no hooks. Check it after every edit:

python3 -m json.tool ~/.claude/settings.json > /dev/null && echo "settings OK"

We restart Claude Code next, since it reads style files when it starts. Then we work a normal session for 20 replies and never type the rule or a reminder. We score replies 1, 10 and 20 to see whether it held, counting the longest sentence and noting which sentence holds the answer. Reply 20 should land within a few words of reply 1, and reply 1 should answer in sentence 1 or 2.

Now go build something this weekend!

John Cook

Why trust this? Every youcanbuildthings guide is pulled from a build-tested book: code that ran in production before it was written down.