Deslopper — AI-assisted content cleaner, for writers and readers
Deslopper — AI-assisted content cleaner, for writers and readers
AI-assisted content cleaner — for writers and readers.
It shows you what in a text actually carries weight and what's just filler, and lets you decide what stays.
- Writers (social, web, SEO): clean your own draft before you ship it. Less filler out — and likely better reach, now that search engines reward substance.
- Readers & reviewers (teachers, editors): run it on what lands in front of you, and see how much is really there.
Install: copy the block below into ~/.claude/skills/deslopper/SKILL.md (or any skills folder your agent reads).
---
name: deslopper
description: Deslops text — decomposes it into atomic claims, drops the decorative, purely rhetorical, vacuous, banal, and AI-foam, then sorts the survivors into value categories (concrete / general / platitude / opinion / argument / self-promo / cta) and lets the user cut whole categories before reassembling the version closest to the original. The constructive twin of ai-check — ai-check asks "does this sound like AI", this asks "what here actually says something, and how much do you want to keep". Use whenever the goal is less text that keeps the load-bearing meaning and sheds the filler — phrases like "deslop this", "deslopper", "compress this", "cut the fluff", "what's the gist", "what carries weight here", "de-foam this", "cut this down without losing the point". Don't undertrigger — if someone wants a draft tightened, distilled, or de-fluffed rather than expanded, this is the tool. It cuts, sorts, consults, and narrates; it stays close to the original wording and never paraphrases the voice away.
---
# Deslopper
Strip a text to the claims that carry weight, sort what survives so the user can see what kind of weight it is, let them drop whole categories, and hand back the shortest version that still reads as the original — with a log of what went and why.
This is the constructive twin of `ai-check`. That skill diagnoses whether a draft *sounds* machine-written; this one acts on the deeper question underneath — the Phaedrus question — **does a sentence add value, or only stage the look of value?** The backbone of the method is borrowed from the summarization literature, which is good at the *structural* cut. The value cut — banal vs. substantive, foam vs. claim — is the part the literature can't do for you; that judgment is the point of the skill. And the final call on *which kinds of value stay* is the user's, not yours.
## Output language
Respond in the user's language. The compressed text and the cut log stay in the text's own language — a Hungarian source comes back Hungarian, an English one English.
## Voice
<!-- VOICE:START -->
These rules govern every word written for the user. They protect an organic, human voice actively guarded against AI-smoothing.
- **Output in the user's language.** Match the input language. Never switch mid-thread.
- **No AI tell-words.** In English: harness, leverage, delve, robust, seamless, unlock, foster, tapestry, realm. More broadly, the smoothed filler register. If a sentence could have been produced by any AI, rewrite it — these are diagnostic markers, so using them is self-refuting.
- **No AI structure.** No "in today's fast-paced world" opener, no bow-tie summary close, no tricolon padding ("clear, concise, and compelling"). Real writing is asymmetric.
- **No defensive framing.** No pre-emptive apology, no "I know you're busy", no softening the ask into invisibility.
- **Economy.** Cut every word that doesn't carry weight. Short sentences, concrete nouns, one idea per paragraph. If a clause hedges, delete it or commit to it.
- **Clean rewrites over patched drafts.** If a draft is tangled, rewrite it whole.
- **Barbs are deniable.** When a message needs an edge, it lives in the framing and the facts, never in an accusation — the reader feels it without being able to quote it.
<!-- VOICE:END -->
## The method, in order of operation
The pipeline is decompose → triage → **classify → consult** → recompose → narrate. The named methods below give you a defensible reason for each cut, so the narration isn't "I felt like it" — it's "this is a satellite whose removal keeps coherence" or "this is foam, not a claim". The two middle steps are what make the skill yours to steer: it shows you what kind of content survives, and you decide which kinds stay.
### 1. Decompose into atomic claims
Break the text into single-fact units — roughly minimal clauses, one assertion each. A complex sentence becomes several units; "A, because B, although C" splits into the claim, its reason, and its concession. This is the **Summary Content Unit** move from the Pyramid method (Nenkova & Passonneau, 2004): reduce prose to concise, single-fact pieces so each can be judged on its own. Its modern descendant is atomic-fact / proposition decomposition (FActScore and kin).
Keep a map of each unit back to the span it came from in the original — you need it for the surgical reassembly later.
### 2. Triage each unit — two layers, in this order
**Layer A — structural (inherited from the literature).** Ask of each unit: is it a **nucleus** or a **satellite**? In Rhetorical Structure Theory (Mann & Thompson, 1988; Marcu's summarization work, 1999–2000), the nucleus carries the essential point and stands alone; the satellite is peripheral and only makes sense against its nucleus. The operational test is the **coherence test**: pull the unit out — if what remains still holds together, the unit was a satellite and is a candidate to drop; if removing it makes the surrounding claims collapse, it was load-bearing, keep it.
**Layer B — value.** Structural centrality isn't the same as worth. A unit can be a grammatical nucleus and still say nothing. So among what survives Layer A, drop a unit outright if it is **decorative** (there for cadence, not information), **purely rhetorical** ("it's worth highlighting that" followed by nothing checkable), **vacuous** (true of almost anything), **banal** (zero information for *this* reader — see the guardrail), or **AI-foam** (tell-word strings, tricolon filler, the "not only X, but also Y" template, bow-tie summary sentences, the smoothed register — the same inventory `ai-check` flags). Foam almost never survives, because by construction it carries no claim.
This step removes the obvious dead weight without asking. The judgment calls go to the user in step 4.
### 3. Classify what survives
**First, mark the spine.** Before sorting, find the unit(s) that carry the text's **main message** — the single point the text exists to make, the claim that if removed leaves the rest pointless. Tag these **load-bearing** and exempt them from every category drop, whatever category they'd otherwise fall in. Decomposition scatters a thesis across several atomic units (a general statement of the point, the opinion under it, the argument for it); the spine is whichever minimal set reconstructs that central claim. This is the one thing the skill must never cut — a "tight" text that lost its point is a failure, not a compression.
Then sort every surviving unit into exactly one value category. This is the part that separates *tight content* from *tight nothing* — a unit can survive triage (non-redundant, structurally load-bearing) and still be empty of real information. The categories make that visible:
- **Concrete** — a checkable, non-obvious, topic-specific fact / event / number / name / firsthand experience. The thing the reader actually learns. **Guard:** a bare importance-or-relevance claim ("X is increasingly important", "X is transforming the industry", the typical AI intro) is **not** concrete, however specific it sounds; nor is a bare product-name drop. Those go to *general* — **unless** the claim *is* the text's main message, in which case it's spine, not droppable filler.
- **General** — true and non-redundant, but generic to the topic: it could sit in any article on the subject and teaches nothing specific. (Importance-claims and AI-intros land here — but the text's *own* central claim, even stated generally, is spine, not general.)
- **Platitude** — a universal truism, true of almost anything, not tied to the topic ("the key is persistence", "every situation is different").
- **Opinion** — a subjective stance, judgment, or evaluation.
- **Argument** — a reasoning step: a because / therefore / it-follows-that that does inferential work.
- **Self-promo** — praise of the author or their product/service.
- **CTA** — a call to action (get a quote, subscribe, read on, buy now).
### 4. Consult — let the user cut by category
Show the user the category breakdown — how many surviving claims fall in each, with a one-line example or two — and **ask which categories to keep and which to drop**. Phrase it as a real choice: "drop *general* and *cta*, keep *self-promo*?" Some writers want the sell left in; some want only concrete and argument. This is the user's call, and the whole point of sorting first.
Wait for their answer before recomposing. If they don't steer, default to keeping the spine plus everything that survived triage (concrete, argument, opinion) and flagging *general*, *platitude*, *self-promo*, and *cta* as the obvious drop candidates — but do not drop them silently, and **never** offer the spine as a drop candidate, even when it sits in a droppable category.
### 5. Recompose — surgical, closest to the original
Default to **surgical excision**: the output is the original text with the dropped spans removed, repaired only enough to stand grammatically. This is **sentence compression by deletion** (Knight & Marcu, 2000; Clarke & Lapata, 2008) — shorten by cutting words/spans while keeping the result grammatical and as close to the source as possible. Keep the author's wording, rhythm, connective tissue, and stance. You are not rewriting; you are removing the spans whose categories the user dropped.
Drop to **claim-rebuild** only where a single sentence fuses a kept claim and a cut one so tightly they can't be separated by deletion. There, rebuild that sentence from the surviving atomic claim(s) — and even then, reuse the original's words as far as you can.
In practice:
- Never paraphrase a kept claim into "cleaner" words. The voice is the asset; smoothing it is the failure mode this whole approach exists to prevent.
- Don't compress to a target ratio. The right length is however much carries weight. Report the ratio; don't aim for one.
- If almost everything is foam (common with AI-generated input), it's fine for the output to be drastically shorter, even a few sentences. Say so plainly.
### 6. Narrate the cuts
Give back a log of what you dropped and why, with the reason types kept distinct: **structural** ("peripheral; removing it keeps the surrounding claims coherent") and **value/category** (which bucket it fell in, and — for the category cuts — that the user chose to drop it). Group the log so it's skimmable; don't itemize every comma.
## Guardrails
- **Banal ≠ simple.** A short, plain sentence can be the most load-bearing one in the text. "Banal" means low information for *this* audience, not low syntactic complexity. When unsure, keep it — over-keeping is recoverable, over-cutting destroys the source.
- **Decorative ≠ a rhetorical move that works.** A deliberate repetition, a turned phrase that lands a stance, an emphasis the author clearly chose — these carry rhetorical weight even if they assert no new fact. Cut empty ornament, not effective rhetoric.
- **Don't flatten a stance into neutrality.** If the author takes a side, the compressed version takes the same side just as hard. Removing the edge is not compression, it's defanging.
- **The category call is the user's.** Your job is to sort honestly and show the breakdown. Dropping a whole category is their decision — never pre-empt it, and never mislabel to nudge the count.
- **Never drop the main message.** Decomposition scatters the thesis across general/opinion/argument units, so a by-category drop can quietly delete the point of the text. Mark the spine before classifying, keep it whatever its category, and after recomposing read the result once to confirm the central claim still survives. If a category the user dropped contained part of the spine, keep those units and say so in the log.
- **No spine = no send.** If triage leaves no unit that qualifies as the main message — it's all general / platitude / self-promo / cta — don't compress. Say it straight: the text has no spine, there's nothing here worth sending. That verdict is the honest output, not a shrunk version of empty.
- **When a kept claim depended on a cut one, fix the seam.** A dropped reason or antecedent can leave a survivor dangling — patch the connective so the result reads, without importing new claims.
## Output format
First, the breakdown and the question:
```
## What's in it
- main message: <one line — the spine, kept whatever you choose below>
- concrete: N <one short example>
- general: N <one short example>
- platitude: N
- opinion: N · argument: N
- self-promo: N · cta: N
- (already dropped as foam/redundant: N)
Which categories should stay? (default: keep the main message + concrete + argument + opinion; drop general, platitude, self-promo, cta)
```
Then, after the user's call:
```
## Deslopped text
<the result — surgical, in the original's voice, ready to read>
## What I cut and why
- "<span or paraphrase>" — <category, or "peripheral / foam"> — <what was empty about it, one line>
- ...
## Ratio
Kept ~X / Y claims, the text is ~Z% shorter. <one line on the character of the cut>
```
When nothing carried foam and every category is one the user kept, say so plainly and report `~0%`. When there's no spine at all (see the guardrail), skip the breakdown and the recompose — return the verdict instead: the text has no main message, nothing here is worth sending. If the user asks for the full claim map, add a `## Claim map` section listing the atomic units with category and kept/dropped.
The deslopped text is a clean draft to re-own, not a finished artifact — read it once and confirm nothing load-bearing went with the foam.