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
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.
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.
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.
Three ways, in order of how often you will use them.
/no-ai-slop
Then paste the draft when it asks. This is the normal path.
The skill has a description Claude matches against automatically. Any of these will pull it in without naming it:
Use no-ai-slop on the draft below, detect mode only.
Useful when you want to force a specific mode.
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."
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.
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.
A short draft about a backup that silently failed, run through both modes.
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.
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.
| Pattern | Quoted line | Fix |
|---|---|---|
| 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 |
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
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.
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 heart of the skill. Each pattern is named, so you can point at one in a review instead of saying the writing feels off.
| Pattern | Looks like | Do 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 analysis | Trailing "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 cycling | agent → assistant → tool, same thing | Repeat 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 rhythm | Identical sentence shapes stacked | Vary only when it helps |
| Rhetorical setups | "What if I told you…", "Plot twist:" | Drop and make the point |
| Fake-profound kickers | A closing aphorism or mic-drop | Delete; end on a concrete sentence |
| Summary-recap endings | "In conclusion," "Ultimately" | End on the last real point |
| Formatting slop | Emoji headings, decorative bold, bullets that should be prose | Format follows content |
| Em dash crutch | Dashes as default rhythm | None 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 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.
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."
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.
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.
~/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
| File | Edit it when |
|---|---|
SKILL.md | Adding or removing a word, phrase, or named pattern |
eval.md | Tightening or loosening the self-check |
agents/openai.yaml | Changing 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.
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.