remove-ai-slop
Skill0 starsChanged 5 months agoMITView on GitHub
Use when the user pastes text and asks to make it "less AI", "less ChatGPT", "less slop", "more human", "humanize", "de-slop", "de-AI", "edit out the AI tells", "remove AI giveaways", "clean up this generated copy", or says "this sounds AI-generated". Also use when the user asks to check writing before publishing, or when pasted draft copy shows multiple co-occurring AI tells (em-dash overuse, hedging filler, promotional padding, recap intros, copula avoidance, bullet-and-bold soup, assistant scaffolding) even if the user hasn't named the problem.
4 other projects use a version of this.
Adopted by
Most recently taken up by
- alfonsograziano/skillstheir own version, first seen Nov 1, 2026
- sdettweiler/claude_skillstheir own version, first seen Oct 25, 2026
- christiangalsterer/documentation-plugintheir own version, first seen Oct 6, 2026
- RedRookAI/openclaw-skillstheir own version, first seen Oct 5, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- alfonsograziano/skills★ 13same name
- christiangalsterer/documentation-plugin★ 1same name
- RedRookAI/openclaw-skills★ 1same name
- sdettweiler/claude_skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository2 other files it gives its agents.
- detect-ai-slopSkill
- score-ai-slopSkill
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 3 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Preserve meaning: No new claims, no dropped facts, no editorialising.
- Distinctive: line 20
Don't act on:
- Very specific: line 27
If the input is already clean, return it unchanged and add a single line: *No changes — text reads as written by a human.*
- Distinctive: line 42
Before flagging vocabulary, read whichever of these exist (skip silently if absent):
- Very specific: line 57
Explanation is opt-in: Only explain what changed if asked ("what did you change", "show me the diff", "annotate").
- Very specific: line 59
Heavy-rewrite warning: If the input was so saturated with slop that the rewrite is materially different, end with: *Heavy rewrite — …
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Remove AI Slop
Rewrite text so it no longer reads as machine-generated, while preserving the author's meaning, register, and voice.
Three principles
- Preserve meaning. No new claims, no dropped facts, no editorialising.
- Preserve register. Formal stays formal (just less floridly so). Casual stays casual.
- Cut, don't rewrite, when you can. A lot of slop is padding. Deleting "It is important to note that" beats rephrasing it.
When to act, when to leave alone
Act when, in the same paragraph, two or more tells of any category co-occur OR three or more vocabulary-table words appear — that's the threshold for forced rewrite even if individually each one looks defensible. Single isolated tells are usually fine. (This is the unified rule in ../../shared/spec.md.)
Don't act on:
- A single em-dash in a paragraph
- One use of
robustorleveragewhen it's the right word - Lists when the content is genuinely list-shaped
- Formal register when context demands it (legal, academic, regulatory)
- Long sentences — long sentences are fine; slop is empty sentences
If the input is already clean, return it unchanged and add a single line: *No changes — text reads as written by a human.*
Categories of tells
Each category has a dedicated reference file. Read the reference only when you need it — when you've spotted that category of tell in the input and need the full table or fix recipe.
- Overused vocabulary —
references/overused-vocabulary.md— the big word→alternative table - Formulaic constructions —
references/formulaic-constructions.md— "X, not Y", "not only X but also Y", copula avoidance, rule-of-three filler - Padding and filler —
references/padding-and-filler.md— promotional padding, hedging filler, superficial-analysis-ingtails, vague attribution - Formatting tells —
references/formatting-tells.md— em-dash overuse, bullet-and-bold soup, title-cased headings, excessive bolding, redundant summary sections - Scaffolding and recap —
references/scaffolding-and-recap.md— "Certainly!", "I hope this helps!", recap intros, "In conclusion" outros, "Despite challenges..." closers - Elegant variation —
references/elegant-variation.md— synonym-swapping that humans don't do
Apply user and project overrides
Before flagging vocabulary, read whichever of these exist (skip silently if absent):
~/.claude/config/remove-ai-slop/user-vocabulary.md— the user's personal additions~/.claude/config/remove-ai-slop/user-allow-list.md— words the user never wants flagged.claude/skills/remove-ai-slop/overrides/user-vocabulary.md— project additions.claude/skills/remove-ai-slop/overrides/user-allow-list.md— project allow-list
Merge order: defaults → personal → project. Allow-list wins everything: if a word appears on any allow-list, never flag it, even if it's in the defaults or in another addition.
See overrides/README.md for the file format.
Output rules
Return the rewritten text only, in the same format as the input (plain text, markdown, etc.). No preamble. No "Here is the rewritten version:". No bullet list of changes.
Explanation is opt-in. Only explain what changed if asked ("what did you change", "show me the diff", "annotate"). If asked, follow with a short bulleted list under a ## Changes heading — one bullet per category of change, not one per edit.
Heavy-rewrite warning. If the input was so saturated with slop that the rewrite is materially different, end with: *Heavy rewrite — original meaning preserved but most sentences restructured.*
When given a file
Preserve all non-prose elements unchanged: code blocks, frontmatter, tables, image references, links. Only touch the prose. If prose is intertwined with structural markdown, edit in place and keep the structure.
Edge cases
- User wrote it themselves and is asking for a check. Same workflow — return the rewrite. Don't apologise or hedge ("This may have been written by a human, but…"). They asked.
- User wants only specific fixes ("just remove the em-dashes"). Do only that. Don't expand scope.
- Very short input (a single sentence). Apply the principles. If there's nothing to fix, say so in one line — don't invent problems.
- Translation or transcription. Some tells (formal register, slight stiffness) are translation artefacts, not AI tells. Be conservative.
- Text is intentionally in an AI voice (parody, satire, a quote of AI output). Ask before editing.
Examples
See examples/before-after.md for worked rewrites covering each category.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

