ai.wholetech.com
CLAUDE CODE SKILL  ·  MANUAL

no-ai-slop
the complete manual

A Claude Code skill that edits drafts into sharper, more human writing while preserving your voice — or audits a draft and names every AI pattern without rewriting a word.

Created by Peter Yang · MIT License · source

  1. What it does
  2. Install
  3. How to invoke it
  4. Edit mode
  5. Detect mode
  6. Worked example
  7. Words it cuts
  8. The pattern catalog
  9. The eval loop
  10. What it protects
  11. Cross-machine sync
  12. File layout
  13. Credit

What it does

The skill turns Claude into an editor with a fixed rulebook. It has a banned-words list, a catalog of about twenty named AI writing patterns, and a self-check it runs against its own output before returning anything.

The design goal that makes it different from a generic "make this better" prompt is stated in its first line: preserve the writer's voice. Most anti-slop prompts flatten everything into the same tidy corporate register. This one is explicitly told not to — it protects your bluntness, humor, profanity, digressions, and rough edges, and cuts only the machine-sounding filler.

Install

The skill lives in a private config repo and installs as a symlink into ~/.claude/skills/.

git clone https://github.com/<you>/claude-config.git ~/claude-config
cd ~/claude-config && ./install.sh

The installer symlinks each folder under skills/ into ~/.claude/skills/, so a later git pull updates the skill with no reinstall. Verify it landed:

ls -l ~/.claude/skills/
# no-ai-slop -> /Users/you/claude-config/skills/no-ai-slop/

On Windows, run install.ps1 from PowerShell instead.

If the installer also writes settings.json

Some versions copy settings.json into ~/.claude/ rather than symlinking it, because hook commands carry a per-machine path placeholder. That copy replaces your existing settings. Your old file is preserved as settings.json.bak-1, but any hook or preference only in the local copy stops being active. Diff the two before you run it, and merge anything you want to keep into the repo copy first.

How to invoke it

Three ways, in order of how often you will use them.

1. Slash command

/no-ai-slop

Then paste the draft when it asks. This is the normal path.

2. Just describe what you want

The skill has a description Claude matches against automatically. Any of these will pull it in without naming it:

3. Name it inline

Use no-ai-slop on the draft below, detect mode only.

Useful when you want to force a specific mode.

What it will ask you

The skill asks at most one clarifying question, and only when the answer changes the edit:

Answer up front to skip the round trip: "Blog post for other operators, published on my site. I want them to go audit their own backups."

Edit mode

The default. You supply a draft, and you get back the full edited draft plus a What changed section explaining the cuts.

The governing rule is the minimum effective edit. It fixes AI patterns, errors, repetition, and genuinely tangled sentences, and leaves strong human sentences alone. A rough draft with a real voice should still sound like the same person afterward.

It will not invent claims, statistics, examples, or opinions. If a claim needs a source you did not give it, it asks rather than inventing one.

Detect mode

Triggered when you ask whether something reads as AI, or ask to audit, scan, or flag a draft without rewriting it. You get a findings report: each pattern named, the offending line quoted, and a fix in a few words.

It deliberately does not score the draft, give a percentage, or guess whether AI wrote it. The reasoning is in the skill itself — AI detectors guess, while named patterns are evidence you can check yourself. You stay the editor; it just points.

Use detect mode when the writing is someone else's, when you want to learn the patterns rather than outsource them, or when you need to justify an edit to another person.

Worked example

A short draft about a backup that silently failed, run through both modes.

Before  ·  118 words

In today's world, website backups are more important than ever. Here's the thing: most people don't think about their mirror until it's too late.

The question isn't whether you need a backup. It's whether your backup actually works.

I recently discovered something surprising. The detail that makes it fail: a manifest file silently gates what gets synced.

This is the part most people skip. Experts agree that silent failures are the worst kind. My sync script had been running nightly for months, showcasing an impressive uptime record, while quietly mirroring only 45% of my sites.

The fix was straightforward. Not a rewrite. Not a new tool. A manifest audit.

I added the missing domains and re-ran the sync. It pulled 41,225 files. That's it. That's the whole thing.

Ultimately, a backup you haven't verified is just a comforting story you tell yourself.

After  ·  58 words

My sync script ran nightly for months and mirrored only 45% of my sites. Nothing errored. A manifest file gates what gets synced, and anything missing from it is skipped silently.

I audited the manifest, added the missing domains, and re-ran the sync. It pulled 41,225 files that had never been backed up.

Both numbers survived. The voice survived. What went was the scaffolding.

The same draft in detect mode

PatternQuoted lineFix
Empty phrase"In today's world"Cut
Throat-clearing opener"Here's the thing:"Cut, state the point
Binary contrast"The question isn't whether you need a backup. It's whether…"State the second half directly
Colon reveal"The detail that makes it fail: a manifest file…"Plain sentence
Faux-insight setup"This is the part most people skip."Cut, let the claim stand
Weasel attribution"Experts agree that silent failures…"Name a source or cut
Superficial analysis"showcasing an impressive uptime record"Say what it actually did
Negative listing"Not a rewrite. Not a new tool. A manifest audit."Just say the third
Dramatic fragmentation"That's it. That's the whole thing."Cut
Fake-profound kicker"…just a comforting story you tell yourself."Delete, end on the concrete point

Words it cuts

Banned outright

These go every time, unless quoted as an example:

delve          foster         leverage       utilize
facilitate     empower        streamline     robust
cutting-edge   paradigm shift game changer   tapestry
realm          beacon         multifaceted   meticulous
intricate      paramount      transformative elevate
embark         supercharge    harness        ever-evolving
this is huge   this changes everything

Often-empty adverbs

just, literally, honestly, simply, actually, truly, fundamentally, importantly, crucially, inherently, inevitably.

Cut when they add nothing. Kept when they carry emphasis, uncertainty, contrast, or your natural spoken rhythm — which is the distinction most word-blocklists get wrong.

Often-empty phrases

it's worth noting, it's important to note, at the end of the day, when it comes to, at its core, in today's world, in the age of, the reality is, the truth is, in terms of, with regard to, in order to, going forward, in this article, let's dive in.

The pattern catalog

The heart of the skill. Each pattern is named, so you can point at one in a review instead of saying the writing feels off.

PatternLooks likeDo instead
Binary contrasts"This is not X. It's Y."State Y directly
Throat-clearing openers"Here's the thing," "Let me be clear"Cut and make the point
Faux-insight setups"What most people get wrong…"Let the claim stand alone
Colon reveals"The best part: it learns."Write a plain sentence
Superficial analysisTrailing "highlighting," "underscoring"Say the actual consequence
Importance puffery"Marks a pivotal moment"State the fact, let the reader judge
Interpretive metadiscourse"That last part matters more than it sounds"Delete, or replace with support
Weasel attribution"Experts agree," "studies show"Name the source or cut the claim
Fake-strong verbs"Serves as a centralized hub for"Prefer "is" and "has"
Synonym cyclingagent → assistant → tool, same thingRepeat the clear word
Negative listing"Not X. Not Y. A Z."Just say Z
Dramatic fragmentation"That's it. That's the whole thing."Complete sentences
Robotic rhythmIdentical sentence shapes stackedVary only when it helps
Rhetorical setups"What if I told you…", "Plot twist:"Drop and make the point
Fake-profound kickersA closing aphorism or mic-dropDelete; end on a concrete sentence
Summary-recap endings"In conclusion," "Ultimately"End on the last real point
Formatting slopEmoji headings, decorative bold, bullets that should be proseFormat follows content
Em dash crutchDashes as default rhythmNone in short copy; 1–2 in long drafts

Two of these are worth singling out because they are the hardest to see in your own writing.

The portability test is the sharpest tool in the file. If a sentence could move unchanged to another person, company, country, or product, it is filler. Cut it, or replace it with a fact, mechanism, consequence, or judgment specific to your subject.

Fake-profound kickers come with an unusual instruction: delete, do not improve. The skill explicitly forbids rewriting the closing line into a better metaphor or preserving its rhythm. End on the clearest concrete sentence already in the draft instead.

The eval loop

The skill ships with eval.md, a checklist it runs against its own output before returning it. Every check is answered pass or fail, and any fail sends it back to fix the draft and re-check.

The checks cover four areas: the editing principles, the banned words, the pattern catalog, and a final read. The final read is the interesting part, because it checks for over-editing rather than under-editing:

That second check is the guardrail against the usual failure mode, where an editing pass strips the personality out along with the slop.

What it protects

Knowing what the skill will not touch is as useful as knowing what it cuts. It is instructed to keep:

If an edit comes back flattened, that is a bug against its own eval, and worth saying so: "You flattened my voice in paragraph three, redo it with a lighter hand."

Cross-machine sync

Because the skill is a symlink into a git repo, updating it everywhere is a pull.

# edit the skill on any machine
cd ~/claude-config
git add -A && git commit -m "tune no-ai-slop" && git push

# on every other machine
cd ~/claude-config && git pull

The symlink means the pull alone is enough on macOS and Linux. Re-run the installer only if the repo also changed settings.json or added a hook, since those are copied rather than linked.

Editing the rules is the point

The banned-words list and pattern catalog are plain markdown in SKILL.md. If a word on the list is genuinely part of your vocabulary, delete it from the list. If you have a tic the catalog misses, add it as a named pattern with a before/after example, matching the format of the existing entries. The eval in eval.md is a separate file, so you can tighten the checks without touching the rules.

File layout

~/claude-config/skills/no-ai-slop/
├── SKILL.md              rules: principles, banned words, patterns
├── eval.md               pass/fail checklist run after each edit
└── agents/
    └── openai.yaml       registers the /no-ai-slop command
FileEdit it when
SKILL.mdAdding or removing a word, phrase, or named pattern
eval.mdTightening or loosening the self-check
agents/openai.yamlChanging the display name or default prompt

Start with /no-ai-slop on something you already published. The patterns you have been writing without noticing are the ones worth learning first.

Credit

no-ai-slop was created by Peter Yang and released under the MIT License, © 2026 Peter Yang. Every editing principle, banned word, and named pattern documented on this page is his work. This page is only a manual for it.

Source: github.com/petergyang/no-ai-slop

He also wrote human-review (MIT), a companion skill that opens an HTML or Markdown file in your browser so you can edit text directly and leave comments on specific parts, then sends the whole batch of feedback back to your agent at once. The two pair well: draft, run /no-ai-slop, then /human-review to do the final human pass visually.