TL;DR. Stripping out AI-ness became a skill category. For UI it's Leonxlnx/taste-skill; for prose it's hardikpandya/stop-slop. Both share the same skeleton — a catalog of AI tells + a scoring rubric + a revise threshold. This is where the conclusion of bitter-medicine (you need a judge) dropped down to the level of a solo workflow. The catch: the catalogs lean on weak markers, and they open up a place where passing the score is itself anti-slop sycophancy.
Why This Category Hardened
Over the last quarter, two signals accumulated in parallel. People started recognizing the AI tells in their own writing and their own UI, and tools got built to block them at generation time.
Hardik Pandya nails the motivation behind stop-slop in one line — "AI writing has tells. 'Here's the thing.' 'Let that sink in.' 'The uncomfortable truth is.' Once you notice them, you see them everywhere" (Hardik substack). The tool follows the place where the pattern becomes visible. The same moment played out in the visual domain — Leonxlnx defines taste-skill in one line as something that "stops the AI from generating boring, generic, 'slop'" (repo).
Academia moved at the same time. Measuring AI "Slop" in Text defines slop as "low-quality AI-generated text" and builds measurable dimensions out of an expert taxonomy plus span-level annotation — the first place where a measurement tool gets layered on top of an intuitive aversion. The Last Fingerprint proved that the em-dash is a markdown leak across 12 models × 5 providers — em-dash frequency is a signature of the fine-tuning procedure.
When the tools follow, the category hardens.
Comparing the Two Skills
| Item | taste-skill | stop-slop |
|---|---|---|
| Domain | frontend UI (landing pages, portfolios, redesigns) | prose (writing, draft editing) |
| Appeared | 2026-02-19 | 2025 |
| GitHub stars | ~7.9k (at two months into trending) | ~5.8k / 435+ forks |
| Catalog | design anti-defaults, em-dash 0, banned colors/fonts | adverbs, throat-clearing, formulaic structures, syntax blocklist |
| Score | 3 dials (1–10) — DESIGN_VARIANCE · MOTION_INTENSITY · VISUAL_DENSITY, default 8/6/4 |
5-axis rubric (each 1–10) — Directness · Rhythm · Trust · Authenticity · Density |
| Revise threshold | any single pre-flight check fails → incomplete | below 35/50 → revise |
| Activation | brief inference → dial override (no auto-trigger) | trigger-description matching (self-invokes on prose work / draft editing) |
The same skeleton dropped side by side in the same spot.
taste-skill — The Judge for the UI Domain
taste-skill acts as a context-aware design system. When a user brief comes in, it declares in one line "Reading this as: [page kind] for [audience], with [vibe] language" and then infers three dials. The default 8/6/4 is a baseline, not an auto-trigger — tools like Magnetic Micro-Physics, Sticky-Stack, and Glassmorphism only switch on when MOTION_INTENSITY > 5 AND the brief reads as premium/playful/agency.
The core is the Pre-flight check (non-optional) — before shipping, all of the following must pass:
- em-dash 0 — headlines, eyebrows, body, quotes, captions, all of it. Zero tolerance. Replace with periods, commas, or line breaks.
- accent color locked to 1
- shape consistency lock
- button contrast WCAG AA
- hero fits the viewport (no scroll)
- eyebrow count ≤ ceil(section count / 3) (mechanical count)
If even one box fails, the output is incomplete. So it's not a score, it's a gate — fail it and there is no next step.
Anti-Default 4 LLM clichés:
- no Inter+slate default (there's an override path for editorial-design briefs)
- no AI-purple gradient
- no centered hero
- no 3 equal cards
The scope statement is honest — "In scope: landing pages, portfolios, redesigns. Out of scope: dashboards, data tables, multi-step forms, code editors, native mobile, realtime collab UIs." (Self-limiting: don't take this to a dashboard.)
stop-slop — The Judge for the Prose Domain
stop-slop takes prose, scores it on five axes, and rewrites anything under 35.
8 core rules:
- Cut filler phrases — remove throat-clearing and adverbs
- Break formulaic structures — avoid binary contrasts and rhetorical setups
- Use active voice — a human subject performs the action
- Be specific — concrete over abstract
- Put the reader in the room — address them directly instead of using a distanced narrator
- Vary rhythm — diversify sentence length, avoid repeating patterns
- Trust readers — drop the hand-holding, state facts plainly
- Cut quotables — rewrite sentences that feel like pull-quotes
5-axis rubric (each 1–10): Directness · Rhythm · Trust · Authenticity · Density → revise if below 35/50.
A quick check is baked in alongside — adverbs, passive voice, inanimate agents, Wh- openers, throat-clearing, binary contrasts, sentence-length patterns, em-dash, vague declaratives. So the backbone is forcing a flag-then-rewrite cycle.
Two derivatives appeared the same quarter:
- drm-collab/stop-slop — a fork repackaged in Claude Code skill format. One-line install:
cp SKILL.md .claude/commands/stop-slop.md. - jalaalrd/anti-ai-slop-writing (~125 stars) — based on Carnegie Mellon 2025 research. 50+ banned words ("delve" · "tapestry" · "landscape") · 35+ banned phrases ("In today's competitive…") · 16 sentence-opening patterns ("Certainly,"). Compatible with 8+ agents.
stop-slop is the rules skeleton, jalaalrd is the blocklist skeleton. Two implementations of the same category.
The Shared Skeleton = A Mini Version of the Judge Pattern
Line the two skills up and the skeleton is identical — catalog of AI tells → scoring rubric → revise threshold. A place with no debaters, only a judge holding a rubric.
In bitter-medicine, the conclusion of multi-agent debate was "you need a judge." Khan et al. found that the judge, not the debaters, carries the weight of the conclusion (arxiv 2402.06782), and Constitutional AI was a degenerate case where there's only one judge in a critic→revise loop (arxiv 2212.08073). taste-skill and stop-slop are the solo-workflow variant of that conclusion — no debate, only a judge.
And here, the judge's credibility becomes the skill's credibility. If the catalog weights weak markers, the prose that passes is still AI prose; if the threshold is loose, anything passes.
Where the Scholarship Directly Refutes the Heuristic
Both skills treat the em-dash as a major marker. taste-skill makes it zero tolerance; stop-slop bakes it into the quick check. Academically, this is a weak place to stand.
The em-dash is a weak signal. The Last Fingerprint showed the per-model frequency gap is large — GPT-4.1 ran 9.1/1000 words even after suppression, Llama 0.0/1000 (arxiv 2603.27006). So it's a signature of the fine-tuning procedure, not a universal marker of AI prose. Duey AI's rebuttal is blunt — "plenty of human writers use em-dashes consistently, and a one-line system prompt can configure the model to avoid them." A weak marker.
The stronger marker is cadence uniformity. The pattern of 18–24-word sentences repeating paragraph after paragraph — measurable via perplexity + burstiness (same Duey AI analysis). Both skills put rhythm variation in their rules, but neither pins it to a measurable threshold. stop-slop has "vary rhythm" as one of its 8 rules, but what enters the score is "Rhythm: varied vs. monotone" as a 1–10 self-report — not a quant like the standard deviation of the sentence-length distribution.
The heuristic has reached a place where it could be measured, but both skills lean on eyeball judgment. The gap between measurability and the score is the biggest empty space for next quarter.
Five Strands of Limitations
1. A word/phrase blocklist is a hammer. jalaalrd pinned 50+ banned words, but "delve" · "tapestry" · "landscape" may be words the writer legitimately uses. Where the writer's voice is weak, anti-slop becomes the only voice; where there is voice, anti-slop shaves that voice off. Both bad places to be.
2. A perfect five-axis score can still pass meaningless writing. A perfectly anti-slop piece — Directness 10 + Rhythm 10 + Trust 10 + Authenticity 10 + Density 10 — that is empty of content is something the rubric cannot stop. The score only looks at form. Meaning has to come from somewhere else.
3. The risk of anti-slop sycophancy. The doubt-first-style sycophancy of a model saying "you wrote this well" can migrate to "this passes the anti-slop score." A place where a model that only looked at the score gives a content-thin piece a 35/50 and waves it through. A new mode of sycophancy.
4. taste-skill's lack of visual regression testing — the place andrew.ooo's review points to. The Pre-flight check is nominally enforced, but verifying em-dash 0 is one line of grep, and there's no tool to verify whether the design actually looks different. Even if the AI ships a UI that passes the checkboxes but is fundamentally the same, nothing catches it systematically. The user has to look with their own eyes.
5. A catalog frozen at the training cutoff. jalaalrd's 50+ banned words are the words 2025 models used often. When next quarter's models move to different slop words, the blocklist goes stale. taste-skill's "no Inter+slate default" is likewise pinned to the LLM design clichés of 2024–2025. The catalog is tied to a point in time.
When to Run It and When to Turn It Off
On the prose side:
- Turn stop-slop on where the trust axis is weak — writing where your voice isn't yet set, or fact-based writing that drifts rhetorical.
- Turn it off where your voice is set — adverbs, em-dashes, and binary contrasts a writer used on purpose get blocked by the catalog.
- Pairs well with Matt Pocock's
caveman— caveman does token compression, stop-slop does prose cleanup. Different axes of the same grain.
On the UI side:
- Turn taste-skill on only within its declared scope (landing/portfolio/redesign). Take it to dashboards, data tables, or realtime collab UIs and Anti-Default shaves off the very patterns you need (e.g. dense information tables).
- Be aware of the React/Next lock-in — Vue/Svelte users carry the cost of translating the code skeleton.
- The lack of a license gates enterprise adoption — side projects only.
Both:
- Use it as a judge. Don't leave it as the writer. The fact that passing the score doesn't guarantee the writing's value needs to be pinned into the body of the catalog itself — and neither skill has that line.
If the Reader Is an LLM, AI-ness Isn't a Defect
anti-slop assumes the reader is human. Tells grate because a person notices them, and what the rubric docks is a human's reading experience. If the reader isn't human, that assumption drops out entirely.
A site built AI-native is that case — one that takes the primary reader to be an LLM summarizer rather than a human, and treats "copy → summarize with your LLM" as the fastest path through the content. There, deliberately not stripping out AI-ness is the rational choice. A monotone cadence, the same constructions repeating paragraph after paragraph — the very properties that read as unnatural and tiring to a human become a design decision. Prose that would fail all five axes under stop-slop is, on such a site, not a defect.
Whether that's a defect depends on who the reader is. To an LLM summarizer, uniform cadence and repeating constructions are easier input to parse — the very property that wears a person down is not a cost to the machine. So the real switch for turning anti-slop on or off sits one level above is the trust axis weak — who reads this. Human, turn it on; machine, you can leave it off; both, weigh both costs. Both skills keep this switch outside the catalog — they implicitly assume the reader is human and leave that assumption itself to the user.
Synthesis
Stripping out AI-ness became a category this quarter. taste-skill hardened into the marker for UI, stop-slop for prose, and the same skeleton dropped on both sides — catalog, rubric, threshold.
The most interesting part is that this is a solo-workflow variant of the judge pattern. The conclusion of multi-agent debate was "you need a judge," and both skills pinned down the judge without the debaters — the solo user's internal debate happens in their head, and the skill plays only the role of the judge holding the rubric.
Leaning on a weak marker (em-dash), the hammer nature of word blocklists, and the risk of anti-slop sycophancy — these are what next quarter has to solve. The moment measurable anti-slop — the standard deviation of cadence uniformity, the span-level annotation of a slop taxonomy — catches up to the heuristic is the moment the judge becomes a real judge.
For now, the flat assertion that a place with a judge beats a place without one is enough. Except — where your voice is already set, the decision to turn the judge off matters just as much.
References
Skills (primary sources)
- Leonxlnx/taste-skill
- taste-skill official page
- hardikpandya/stop-slop
- drm-collab/stop-slop (fork-as-skill)
- jalaalrd/anti-ai-slop-writing
Reviews & commentary
- andrew.ooo — Taste Skill Review: Anti-Slop Frontend Skill for AI
- Hardik Pandya — New Claude Skill: Stop AI Slop in Your Content
- DEV — One Open Source Project a Day No. 78: stop-slop
- Duey AI — The Em-Dash Myth: What Actually Gives Away AI Writing
Academic
- The Last Fingerprint: How Markdown Training Shapes LLM Prose (arxiv 2603.27006)
- Measuring AI "Slop" in Text (arxiv 2509.19163)
- Khan et al., Debating with More Persuasive LLMs (arxiv 2402.06782)
- Bai et al., Constitutional AI (arxiv 2212.08073)
Related posts