Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

kill-ai-slop — Claude Code skill to strip AI slop from a web project

Finds and removes the generic visual and copy tics that make a site look machine-generated. Use it when a landing page or UI feels templated and needs a human touch.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add yetone/kill-ai-slop --skill kill-ai-slop -a claude-code
npx skills add yetone/kill-ai-slop --skill skill -a claude-code
Open on GitHub

What kill-ai-slop does

The skill scans a project for dozens of tells: indigo→violet gradients, gradient-clip headlines, emoji everywhere, glowing status dots, cards nested in cards, pastel icon tiles, "not just X — it's Y" copy, invented stat rows. A bundled scripts/scan.mjs scanner runs on plain Node with no dependencies and prints grouped file:line hits. It never edits files.

The workflow is strict: confirm the scope, run the scanner, then open each hit and decide whether it is slop or a deliberate choice. The report comes before any edits, not after. Fixes stay minimal — shared tokens and components get changed instead of every call site.

Filters narrow the scan: --only=01,06 picks specific tells, --skip=19 drops one, --exclude=legacy removes paths by substring. Custom rules load via --rules=extra.mjs, with scripts/rules.ru.mjs as a shipped example for Russian copy. Hits confirmed as intentional can be pinned with deslop-ignore or deslop-ignore-next-line 06 comments, so new tells still surface while old ones stay quiet.

What it helps with

  • find gradients, glows and other visual clichés in code
  • separate random decoration from deliberate choices
  • get a report before edits and agree on the scope
  • strip templated phrasing from copy and headings
  • verify that slop actually decreased after fixes

Example prompts for the agent

  • Run kill-ai-slop on this project and show me the report, don't change anything
  • Find AI slop in src and remove only gradients and badge spam
  • Scan the landing page but skip files with deslop-ignore comments

How to install kill-ai-slop

1Skills CLI (Vercel)

npx skills add yetone/kill-ai-slop --skill kill-ai-slop -a claude-code
npx skills add yetone/kill-ai-slop --skill skill -a claude-code

2Manually: put the files in place

~/.claude/skills/skill/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/skill/

Similar

filters-and-postfx phaserjs Applies visual filters and post-processing in Phaser 4. Helps configure blur, glow effects, and shader masks. Claude Code CX Codex Cursor +1 772installs react19-source-patterns official github A reference for moving React source files to React 19, covering API changes, refs, context, and props. Useful during an existing project upgrade. GitHub Copilot 967installs anti-ui-slop official UIZZE This skill guides agents toward product-specific interfaces instead of generic UI. Use it for web or iOS design, implementation, redesign, and pre-ship review. GitHub Copilot 967installs render-textures phaserjs Explains off-screen rendering in Phaser 4, covering RenderTexture game objects, DynamicTexture assets, Stamp helpers, and command buffers. Claude Code CX Codex Cursor +1 767installs physics-matter phaserjs Helps AI agents configure Matter.js physics in Phaser 4, including rigid bodies, composite shapes, constraints, and mouse dragging. Claude Code CX Codex Cursor +1 754installs ink vercel-labs Builds interactive terminal user interfaces from JSON specs using @json-render/ink. Useful when creating dynamic TUI components or agent-generated layouts. Claude Code CX Codex Cursor +1 1,300installs frontend-design official anthropics This skill guides intentional visual design for new interfaces and redesigns. Use it when a generic generated UI is not enough. Claude Code Claude.ai 1,025,790installs design-taste-frontend Leonxlnx This skill directs the design of public pages and work screens, then checks the result in a browser through screenshots. Use it when an interface feels generic or unfinished. Claude Code CX Codex Cursor +1 673,100installs

Questions about kill-ai-slop

How do I install kill-ai-slop in Claude Code?

Run npx skills add yetone/kill-ai-slop --skill kill-ai-slop -a claude-code, then npx skills add yetone/kill-ai-slop --skill skill -a claude-code. The skill lands in ~/.claude/skills/skill/SKILL.md.

What does kill-ai-slop do?

It finds typical signs of generated design and copy: gradients, glows, emoji, glassy cards, repetitive headings, "not just X — it's Y" phrasing, and more. For each hit it shows the file, the line, and a minimal fix.

How is it different from a lint rule?

A linter flags everything. This skill requires opening each hit and deciding whether it is slop or an intentional choice, so it reports before editing and asks which groups to apply. Brand colors, logos and deliberate illustrations stay untouched.

Source text

SKILL.md · Apache-2.0
---
name: kill-ai-slop
description: >-
  Find and remove AI slop — the generic, machine-default visual and copy tics of
  vibe-coded products — from a web project. Use when the user asks to "kill AI
  slop", "de-slop", "remove the AI look", "make this not look AI-generated", or
  clean up a landing page / UI / docs that feels templated. Detects and fixes
  the catalogue of tells: indigo→violet gradients, gradient-clip headlines, the
  default semantic palette, one-hue status boxes, atmospheric gradients,
  serif-italic emphasis, highlighted keywords, AI copywriting voice ("not just
  X — it's Y"), emoji everywhere, glowing status dots, wobbling spinners,
  colored-left-border
  callouts, pastel icon tiles, glassmorphism, over-rounding, oversized shadows,
  borders that die at corners, badge & pill spam, AI-drawn SVG icons, kickers
  over every heading, flat type
  hierarchies, invented stat rows, 01/02/03 section
  markers, cards nested in cards, the default Inter/Space Grotesk look, and
  more. Works on HTML/CSS, React/Vue/Svelte/Astro, Tailwind, PHP, and Markdown
  copy.
---

# Kill AI Slop

AI slop is **ugly** in a specific way: it piles on every possible style and
detail without settling on a focus. A gradient, a glow, a mascot, emoji, a wall
of glowing cards, every default switched on at once, until every product looks
like the same garish template. It reads as "designed" in a thumbnail and falls
apart the moment anyone looks. Your job is to strip it back to something a
person would actually choose.

The principles, held on every fix you make:

1. **Decide before you decorate.** Every visual choice must be explainable.
2. **One accent, one voice.**
3. **Hierarchy from scale and space.** Coloring words or swapping fonts is a shortcut.
4. **Subtract first.** The first move toward not-ugly is removing things.
5. **Specific beats punchy** in copy.
6. **Decoration must mean something** — icons, badges, callouts are signals.

## Workflow

Follow these steps in order. Do not mass-edit before the user has seen the report.

### 1. Scope
Confirm what to scan. Default to the app/site source (skip `node_modules`,
`dist`, `build`, `.git`, `vendor`, lockfiles, minified files). Ask if the
project mixes several apps.

### 2. Scan
Run the bundled scanner, which greps the codebase for the code-level signals of
each tell and prints grouped `file:line` hits:

```
node scripts/scan.mjs <root>          # human-readable report
node scripts/scan.mjs <root> --json   # machine-readable, for triage
```

It is pure Node (no dependencies) and never edits files. Use its output as a
starting map, not gospel — confirm each hit by reading the code.

To narrow a scan: `--only=01,06` / `--skip=19` filter by tell id, and
`--exclude=legacy` drops paths (substring match on the project-relative path).
`--rules=extra.mjs` loads additional project- or language-specific tells
(`scripts/rules.ru.mjs` is a shipped Russian-copy example and the template for
your own). Hits the user has confirmed as intentional can be pinned in source
with `deslop-ignore`, `deslop-ignore-next-line 06`, or `deslop-ignore-file`
comments — prefer the id-scoped forms so new tells still surface.

### 3. Triage
For every hit, open the file and decide **slop vs. intentional**. This is the
step that separates this skill from a lint rule. A gradient, a serif, or an
emoji can be a real, defended choice. Keep anything the user clearly chose
(brand tokens, a logo, a deliberate illustration). Flag only defaults.

Read `references/taxonomy.md` for what each tell is and why it reads as
machine-made, and `references/detection.md` for the exact patterns and their
common false positives.

### 4. Report
Before changing anything, give the user a grouped summary: each tell, the
`file:line` hits you confirmed, one sentence on why, and the proposed fix.
Mirror the format:

```
slop  src/Hero.tsx:12   indigo→violet gradient        → one solid accent
slop  src/Hero.tsx:31   gradient-clip headline        → solid ink, scale up
slop  src/Note.tsx:8    border-l-4 callout ×3         → 1 aside, rest is body
slop  copy.md:1         "not just X — it's Y"         → say the specific thing
→ 4 groups, 11 hits.
```

Then ask which groups to apply, or whether to proceed on all.

### 5. Fix
Apply the minimal change that removes the tell while preserving intent and
function. Use `references/fixes.md` for the before→after pattern per tell.

- Prefer editing shared tokens/components over touching every call site.
- Never invent new brand colors; if a palette must change, propose neutrals +
  the project's existing accent and let the user confirm.
- Keep copy meaning; make it specific, don't just delete it.
- Re-run the scanner after fixing to confirm the count dropped, and note any
  hits you intentionally left (with the reason).

## Guardrails

- **Respect authorship.** Treat unfamiliar files and deliberate flourishes as
  someone's choice. When unsure whether something is slop, ask — don't strip it.
- **Small, reviewable diffs.** Never reformat unrelated code. Never run
  `git add -A`; stage explicit files only, and leave others' work-in-progress
  alone.
- **No new dependencies** to do this work.
- **Verify visually when possible.** If a dev server exists, look at the before
  and after; a passing scan is not the same as a better page.

## References

- `references/taxonomy.md` — the 35 tells: what each is, why it's slop, the fix.
- `references/detection.md` — concrete ripgrep/regex patterns + false positives.
- `references/fixes.md` — before→after remediation patterns.
- `scripts/scan.mjs` — the dependency-free scanner.

© yetone · Apache-2.0 · yetone/kill-ai-slop

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor