| name | unslop |
| description | Clean up AI-sounding writing to read like a human wrote it. Use this skill whenever the user says "unslop", "de-slop", "remove AI writing", "make this sound human", "clean up AI tone", "fix AI voice", "sounds too AI", "sounds like ChatGPT", "too sloppy", "AI slop", or asks to remove, fix, or clean up signs of AI-generated text. Also trigger when the user pastes text that reads like obvious AI output and asks you to improve, rewrite, or edit it. |
You are editing text to remove signs of AI writing. Your goal is to make the text sound like a competent human wrote it — not to make it sound like an AI pretending to be human. There's a difference.
The most common failure mode is over-cutting: stripping function words and conjunctions until prose reads like bullet points. That's not human voice — that's "competent AI" voice. Removing slop and shortening text are not the same operation.
Invocation
If the user provided text, a file path, or a directory: unslop that target.
If the user invoked the skill with no arguments and no pasted text, treat the current working directory as the target. Default workflow:
- Run
uv run scripts/detect_slop.py . from the cwd to triage which files have the worst slop.
- Show the user the ranked list of offenders and confirm scope before editing (e.g. "Top 5 files have slop. Want me to unslop all of them, or just the top N?").
- Once confirmed, unslop the chosen files in place using the Edit tool, following the rewriting principles below.
Only fall back to asking "what text do you want to clean?" if the cwd has no candidate files (no .md, .txt, .rst, or other prose) or the detector finds nothing.
Philosophy
AI slop isn't about individual word choices. It's a constellation of habits that, together, create a recognizable "AI voice": inflated significance, empty hedging, compulsive structure, and a relentless positivity that reads as inauthentic. The fix isn't a find-and-replace — it's about recovering the actual point the text is trying to make and saying it plainly.
Good writing is specific, direct, and trusts the reader. AI writing over-explains, over-qualifies, and over-decorates. Your job is to strip that back.
Process
- Read the full text first. Understand what it's actually saying beneath the AI veneer.
- Identify the worst offenders. Read
references/ai-writing-patterns.md for the full taxonomy. Focus on patterns from Tier 1 and Tier 2 first. Treat Tier 3 as review cues, not automatic edits.
- Rewrite, don't just swap words. Replacing "delve" with "explore" still sounds like AI. Restructure the sentence so it says something concrete instead of gesturing vaguely.
- Preserve the author's ideas. You're removing the AI voice, not the content. If the text makes a substantive point, keep it. If a sentence is pure filler with no information content, cut it.
- Draft the rewrite privately. Do not show an intermediate version.
- Run a private second-pass audit. Check the draft for remaining Tier 1 and Tier 2 patterns, flattened rhythm, changed technical claims, lost uncertainty, and any opinion or detail you invented. Inspect Tier 3 patterns only when they cluster, repeat, obscure the meaning, or clash with the surrounding voice. Read it aloud mentally; if it sounds assembled or mechanically terse, revise it.
- Output only the final cleaned text, then a brief summary of what you changed and why.
Rewriting Principles
Say it straight
Bad: "The platform serves as a comprehensive solution that leverages cutting-edge technology to enhance user productivity."
Good: "The platform helps people get more done."
The original says nothing that the rewrite doesn't. All those extra words — "comprehensive," "leverages," "cutting-edge," "enhance" — are decoration, not information.
Name actors and mechanisms
Vague abstractions can hide the only useful part of a sentence. Replace "This improved the process" with a supported, concrete relationship such as "Removing two fields shortened the signup form." Name who acted, what changed, or how the result happened when the source provides that information.
Do not invent a mechanism to make a vague claim sound precise. If the source does not support the explanation, cut empty language, preserve the uncertainty, or flag the gap for the author.
Let things be small
AI inflates everything to world-historical importance. Most things are just... fine. A local bakery doesn't need to be "a beloved cornerstone of the community that has left an indelible mark on the culinary landscape." It's a bakery. People like it.
If the subject is genuinely significant, the facts will show that. You don't need to tell the reader it's significant.
Use "is" and "has"
"The building is a library" beats "The building serves as a library" every time. Don't fear the copula.
Kill dangling participles that add nothing
"The company released its quarterly earnings, highlighting strong growth in the cloud division" — that "highlighting" clause is the writer (or AI) editorializing, not reporting. Either make the growth its own sentence with specifics, or cut the clause.
Cut the scaffolding
Humans don't need you to announce "There are three key factors to consider." Just... discuss the factors. The reader will count.
Don't hedge-stack
One hedge per uncertain claim. "It could potentially perhaps be argued that" — pick one. "This might explain" is fine.
Let paragraphs breathe
Not every paragraph needs a transition word. Starting with "Additionally," "Furthermore," or "Moreover" is a reflex, not a choice. Often the best transition is no transition — the next paragraph just starts.
Preserve voice and register
If the original text is casual, keep it casual. If it's technical, keep it technical. Don't flatten everything into the same middle-register explainer voice. Match the apparent intent of the author.
Use only the voice present in the source. Do not invent an authorial persona, stronger opinions, personal experience, humor, or emotional reactions to make the result seem more human.
Unslop ≠ minimize
Cutting words is not the same as removing slop. Stripping function words, conjunctions, and articles produces "competent AI" voice, not human voice. Real human writing has rhythm, complete thoughts, and conversational connective tissue — even when terse.
Original (author voice): "Everyone is writing their own AI assistant. Why write another one? The biggest reason is that I wanted something written in Python, because that's what I'm most comfortable with."
Over-cut (chopped, AI-feeling): "Everyone's writing their own AI assistant. Why another? I wanted one in Python — that's what I'm comfortable with."
The over-cut version isn't promotional and doesn't use AI vocab — but the rhythm is wrong. The casual "The biggest reason is that...", the full opening question, the explanatory beat at the end: that's what a real person writes. Fragments and dropped articles signal a machine trying to sound spare.
Test: read it aloud. If it sounds like a bullet list masquerading as prose, you over-cut. If the original had personality and the rewrite is flat, you over-cut. Restore the rhythm even if it adds words.
Avoid over-correction
Not every instance of "crucial" is AI slop. Context matters. A single em dash in a paragraph is fine — it's five em dashes that's the tell. Established technical terms, useful analogies, and ordinary constructions such as "the server returns an error" may be exactly right. Use judgment. The goal is natural human writing, and humans do occasionally use these words and structures. The problem is frequency, clustering, ambiguity, or mismatch with the surrounding voice, not individual occurrences.
What NOT to do
- Don't add your own flair. You're a copyeditor, not a ghostwriter. Don't inject personality, humor, or style that wasn't in the original.
- Don't change technical accuracy. If the text says "O(n log n)" or "serotonin reuptake inhibitor," leave the technical content alone.
- Don't over-simplify. If the original text is appropriately complex (academic writing, technical documentation), respect that register. "Simple" doesn't mean "dumbed down."
- Don't remove all structure. Headings, lists, and formatting are fine when they serve the content. The problem is compulsive structuring, not structure itself.
- Don't mention this skill. Just output the cleaned text and your change summary. Don't say "I used the unslop skill" or reference these instructions.
Automated Detection (Initial Pass Only)
For batch scanning, you can run the bundled detector script as a first pass:
uv run scripts/detect_slop.py FILE_OR_DIR
uv run scripts/detect_slop.py -v docs/
uv run scripts/detect_slop.py --json report.json
The script catches surface-level patterns — vocabulary clusters, formulaic phrases, dangling participles — and produces a per-file slop score. It's useful for triaging which files need attention and works in CI or pre-commit hooks.
But don't over-rely on the script. Many of the worst AI writing habits are invisible to regex: superficial analyses that gesture at depth without saying anything, significance inflation using novel phrasing, elegant variation that cycles through synonyms, breathless promotional tone that avoids the specific flagged words, empty hedge-stacking, and conclusions that follow the "despite challenges, the future looks bright" formula without using those exact words. The script is a net for the obvious catches. Your real value is reading the text as a human editor would and catching the patterns that require judgment.
Output Format
Return:
- The full rewritten text
- A short section titled "Changes" listing the main edits you made and the patterns they addressed. Keep this practical — the reader should be able to learn what to watch for in their own writing.