deslop
Skill0 starsChanged 5 months agoMITView on GitHub
Remove AI writing patterns from content. Use when reviewing blog posts, marketing copy, emails, or any customer-facing text. Checks for 22 AI-tell patterns across phrasing, rhythm, and authenticity. Trigger phrases — "deslop this", "clean up AI writing", "check for AI patterns", "remove AI tells", "content quality check", "is this sloppy".
118 other projects use a version of this.
Adopted by
Most recently taken up by
- lalulali/vespyrtheir own version, first seen Nov 8, 2026
- ferologics/pi-skillstheir own version, first seen Nov 8, 2026
- novuhq/novutheir own version, first seen Nov 8, 2026
- openclaw/openclaw-enterprisetheir own version, first seen Nov 8, 2026
- ADWilkinson/astacktheir own version, first seen Nov 8, 2026
- MammadovEshgin/clean-code-skilltheir own version, first seen Nov 8, 2026
Used with
Projects with it also use simple-issue-description, control-cli and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
JwuthriSkillsimple-issue-description
Turn a rough bug report, feature request, support note, or pull request into a short, plain-language issue focused on the problem and desired behavior. Use when a contributor asks to simplify an issue, explain what a PR is for, create the corresponding issue for a PR, remove implementation detail from a report, or invokes /simple-issue-description.
Also in 4 projects that use this
ElyzeSolutionsSkillcontrol-cli
Build or adapt a local harness to drive, inspect, and profile an interactive CLI or TUI without external services. Use for CLI UX checks, startup regressions, memory leaks, hangs, prompt flows, or terminal demos.
Also in 6 projects that use this
JwuthriSkillopenseo-review-web-content
Write and review content for the OpenSEO website (web/) — blog posts, guides, feature pages, FAQs. Distills the philosophy for on-brand, useful, accurate content. Use whenever adding or editing user-facing prose in web/content or web/src.
Also in 4 projects that use this
learnerLjSkillverify-this
Verify a claim with fresh local evidence: restate it falsifiably, capture baseline and treatment, compare artifacts, and return VERIFIED, NOT VERIFIED, or INCONCLUSIVE.
Also in 6 projects that use this
ElyzeSolutionsSkillcontrol-ui
Build or adapt a local browser/CDP harness to drive and inspect a web, IDE, or Electron UI. Use for local UI verification, screenshots, accessibility snapshots, perf profiles, visual diffs, or reproducing UI bugs.
Also in 7 projects that use this
ten9876Skillpapercuts
Read-only AetherSDR issue triage that surfaces the UX papercuts, bugs, and regressions you can fix AND prove today with the agent automation bridge. Use when the user says $papercuts or /papercuts, or asks to "find papercuts", "what can I fix and prove today", "triage bridge-provable issues", "what UX bugs can the bridge close", "sort issues by priority I can knock out", or otherwise wants a curated, lifecycle-aware (design→code→prove) shortlist of issues — NOT the label-and-respond /triage workflow. This is the discovery step that feeds /fb. Strictly read-only: it never labels, comments, closes, or edits issues.
Also in 4 projects that use this
- +5 more from Jwuthri
Other versions118 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 118
- molt-bot/clawdbot★ 391ksame name
- novuhq/novu★ 40ksame name
- every-app/open-seo★ 27ksame name
- millionco/react-doctor★ 15ksame name
- jaredpalmer/kev★ 9.8ksame name
- joe-bell/cva★ 6.9ksame name
- sanity-io/sanity★ 6.4ksame name
- millionco/expect★ 3.6ksame name
- rohitg00/pro-workflow★ 2.9ksame name
- compozy/compozy★ 2.9ksame name
108 more not listed
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 repository17 other files it gives its agents.
- battleSkill
- briefSkill
- codex-writeSkill
- councilSkill
- crawlSkill
- evaluate-planSkill
- gmail-attachmentSkill
- keyword-researchSkill
- model-scanSkill
- modeSkill
- namecheapSkill
- pair-sessionSkill
- planSkill
- salesforce-reportsSkill
- second-opinionSkill
- update-machineSkill
- week-aheadSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 7 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 116 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 24
After drafting any customer-facing content (blog posts, emails, landing pages)
- Distinctive: line 26
When reviewing existing content for quality
- Distinctive: line 27
Before publishing or committing content
- Distinctive: line 83
Scan: Read the file(s)
- Distinctive: line 150
Automated QA pipelines: Run the greppable checks as a pre-publish gate.
- Distinctive: line 152
Manual review: Use the full 22-pattern checklist before publishing.
- Distinctive: line 153
Existing content audit: Run across older posts to find and fix legacy violations.
“Common” is measured: kept by at least 6 in 10 of the 116 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
Deslop — AI Writing Pattern Removal
Strip AI-generated writing patterns from any content. Works on existing files or inline text.
When to Use
- After drafting any customer-facing content (blog posts, emails, landing pages)
- During content QA, manual or automated
- When reviewing existing content for quality
- Before publishing or committing content
The 22 AI-Tell Patterns
Phrasing Flags
| # | Pattern | Example | Fix |
| 1 | Em-dashes (max 5/file) | "AI tools — especially ChatGPT — are changing..." | Rewrite with commas, colons, or split into two sentences |
| 2 | Corrective antithesis | "It's not about X. It's about Y." / "Not X. But Y." | State your position directly without the false setup |
| 3 | Dramatic pivot phrases | "But here's the thing", "Here's the catch", "Here's what most people miss" | Cut entirely or use a natural transition |
| 4 | Soft hedging | "It's worth noting", "It's important to remember", "Something we've observed" | Say it directly — if it's worth noting, just note it |
| 5 | AI-tell words | delve, landscape, realm, tapestry, leverage (verb), paradigm, robust, utilize, synergy, elevate, foster, holistic, streamline, cutting-edge, game-changer, deep dive | Replace with plain English equivalents |
| 19 | Negation framing | "isn't just about X", "isn't simply", "it's not X, it's Y", "goes beyond merely", "more than just a" | State the positive claim directly — don't set up what something "isn't" before saying what it is |
| 20 | "From X to Y" coverage spans | "from startups to enterprises", "from beginners to experts", "from simple to complex" | Either commit to a specific audience or drop the qualifier |
| 21 | "Whether X or Y" inclusivity | "whether you're a developer or a designer", "whether you work in X or Y" | Pick your audience or trust them to self-select |
Rhythm Flags
| # | Pattern | Example | Fix |
| 6 | Staccato repetition | "Short sentence. Another short. One more short." (3+ consecutive short sentences) | Vary sentence length — mix short punches with longer context sentences |
| 7 | Cookie-cutter paragraphs | Every paragraph is exactly 3 sentences, same length | Match paragraph size to idea complexity — some ideas need 1 sentence, others need 5 |
| 8 | Gift-wrapped endings | "In summary...", "In conclusion...", "To sum up...", "The bottom line is..." | End with insight or forward-looking statement, not a recap |
| 9 | Throat-clearing openers | "Let's explore", "Let's unpack", "Let's dive in", "Let's take a closer look" | Start directly with the content — cut the throat-clearing entirely |
| 10 | List-heavy structure | Every section is a bullet list, no prose | Use prose for narrative flow, lists only for genuinely enumerable items |
Authenticity Flags
| # | Pattern | Example | Fix |
| 11 | Perfect punctuation | No fragments, no rule-breaking, reads like a textbook | Add deliberate fragments for punch. Break rules when they sound better. |
| 12 | Copy-paste metaphors | Same metaphor repeated identically 3+ times | Vary the language or trust readers to remember the concept |
| 13 | Overexplaining | "Email — a digital form of communication — has..." | Assume reader intelligence. Skip obvious definitions. |
| 14 | Generic examples | "Companies like [any company] are seeing results" | Use specific, insider-level details with sharp commentary |
| 15 | Superlative stacking | "Powerful, revolutionary, game-changing solution" | One strong claim > three weak ones |
| 16 | False balance | "While X has pros and cons..." (hedging every position) | Take a position. Strong writing commits. |
| 17 | Transition word abuse | "Moreover", "Furthermore", "Additionally", "However" starting every paragraph | Vary transitions or cut them — strong paragraphs connect through logic, not conjunctions |
| 18 | Emoji/exclamation inflation | "This is amazing! 🚀 Check it out! 🎉" | One exclamation per piece max. Zero emojis unless brand requires them. |
How to Run
On a single file
/deslop content/blog-posts/my-post.mdxOn all blog posts in a project
/deslop --allWorkflow
- Scan: Read the file(s)
- Flag: For each pattern, grep or manually identify violations
- Count: Report violation counts per pattern
- Fix: Apply fixes inline — preserve meaning, change delivery
- Verify: Re-scan to confirm clean
Automated Checks (greppable)
These patterns can be detected with grep/regex:
# Em-dashes (count, max 5)
grep -c '—' "$FILE"
# Corrective antithesis
grep -iE "(It'?s not about|Not [A-Z].*\. But |Not [A-Z].*\. It'?s )" "$FILE"
# Dramatic pivots
grep -iE "(But here'?s the (thing|catch|kicker|reality)|Here'?s what (most|many|few))" "$FILE"
# Soft hedging
grep -iE "(It'?s worth (noting|mentioning|remembering)|It'?s important to (note|remember|understand)|Something (we'?ve|I'?ve) observed)" "$FILE"
# AI-tell words
grep -iE "\b(delve|landscape|realm|tapestry|leverage[sd]?|paradigm|robust|utilize[sd]?|synergy|elevate[sd]?|foster|holistic|streamline[sd]?|cutting-edge|game-?changer|deep dive)\b" "$FILE"
# Gift-wrapped endings
grep -iE "^(In (summary|conclusion)|To sum up|The bottom line|All in all|Ultimately,)" "$FILE"
# Throat-clearing
grep -iE "^(Let'?s (explore|unpack|dive|take a closer|break down|look at)|In this (article|post|guide|section))" "$FILE"
# Transition word abuse (at paragraph start)
grep -iE "^(Moreover|Furthermore|Additionally|Consequently|Nevertheless|Nonetheless)" "$FILE"
# Negation framing (#19)
grep -iE "\b(isn'?t just|isn'?t simply|not just about|goes beyond merely|more than just a)\b" "$FILE"
# "From X to Y" coverage spans (#20)
grep -iE "from (startups?|beginners?|small|large|simple|complex|novice|expert)" "$FILE"
# "Whether X or Y" inclusivity (#21)
grep -iE "whether you'?re? (a |an )?\w+" "$FILE"Manual Checks (require human judgment)
- Staccato repetition (consecutive short sentences)
- Cookie-cutter paragraphs (uniform length)
- Perfect punctuation (no fragments or rule-breaking)
- Copy-paste metaphors (same metaphor repeated)
- Overexplaining (defining obvious terms)
- Generic examples (vague company references)
- Superlative stacking (multiple weak adjectives)
- False balance (hedging every position)
- #22 Tricolon / rule of threes — compulsive 3-part parallel lists ("fast, reliable, and scalable" / "we researched, analyzed, and synthesized"). 2 instances = fine, 4+ = pattern flag.
Severity Levels
| Level | Action | Patterns |
| BLOCK | Must fix before publish | AI-tell words, em-dashes >5, throat-clearing, gift-wrapped endings |
| WARN | Should fix, not blocking | Corrective antithesis, dramatic pivots, soft hedging, transition abuse, negation framing (#19), coverage spans (#20), inclusivity framing (#21) |
| NOTE | Improve if time allows | Staccato, cookie-cutter, perfect punctuation, overexplaining, tricolon overuse (#22) |
Integration
- Automated QA pipelines: Run the greppable checks as a pre-publish gate.
- Content-creator skills: Reference this skill in a final quality checklist.
- Manual review: Use the full 22-pattern checklist before publishing.
- Existing content audit: Run across older posts to find and fix legacy violations.
Known gotchas
- The grep checks are noisy on technical writing. "Robust" is a legitimate engineering word; "leverage" is a legitimate lever-based metaphor. Treat hits as candidates to reconsider, not auto-deletes.
- Em-dash count alone is misleading. A long technical post can earn 8–10 em-dashes legitimately; a 600-word blog post should rarely have more than 3.
- Bulk rewrites flatten voice. Apply the fixes one pattern at a time on a draft, not all at once. Reviewers can spot a globally rewritten draft.
Anti-patterns
- Treating the pattern list as a banned-words list. The patterns are tells, not slurs. The fix is rewriting the sentence, not deleting the word.
- Running deslop on the first draft. Pattern detection works best after the author has already done one human pass.
Validated patterns
- The "negation framing" check (#19) catches the highest-volume tell — most AI-written drafts hit it within the first 100 words.
- Severity levels (BLOCK / WARN / NOTE) work better than a flat list for triage.
Credit
Patterns adapted from Tahi's "12 Red Flags of AI Writing" (mooch.agency, Feb 2026) and Jejomar Contawe's "The Single Most Prevalent AI Writing Tell" (Medium, Feb 2026), plus six additional patterns observed in the wild.
Self-improvement
This skill ships with a lightweight feedback loop. Adopt or ignore — the skill works without it.
Trigger a review when:
- The user explicitly disagrees with a fix (strongest signal — log immediately; 2–3 corrections on the same pattern → promote to body or adjust the pattern).
- A novel AI-writing tell starts appearing across multiple drafts.
learnings.mdcrosses ~100 bullets (consolidation time).- The skill mis-triggers or fails to trigger.
- A new model generation changes the writing tells (e.g., new go-to phrases).
Consolidation pass (5–10 min, weekly or threshold-driven):
- Each entry gets one fate: apply, capture, or dismiss.
- Apply = merge into Known gotchas / Anti-patterns / Validated patterns, or add a new pattern to the list.
- Capture = leave in
learnings.mdfor now. - Dismiss = delete.
- Bump
last-consolidated:in frontmatter.
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.

