kill-ai-slop — скилл для Claude Code: убрать шаблонный ИИ-вид
Скилл находит и убирает визуальные и текстовые штампы, из-за которых сайт выглядит сгенерированным. Пригодится, когда лендинг или интерфейс кажется шаблонным и хочется человеческого вида.
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Что делает kill-ai-slop
Скилл сканирует проект и ловит десятки типичных признаков машинного дизайна: градиенты indigo→violet, заголовки с gradient-clip, эмодзи повсюду, светящиеся точки статуса, карточки внутри карточек, пастельные иконки-плитки, «not just X — it's Y» в текстах, выдуманные ряды статистики. В комплекте сканер scripts/scan.mjs на чистом Node без зависимостей, который выдаёт сгруппированные file:line-попадания. Файлы он не меняет.
Работает по жёсткому порядку: сначала подтвердить область, потом прогнать сканер, затем для каждого попадания открыть файл и решить — это действительно слоп или осознанный выбор. Отчёт показывается до правок, а не после. Исправления минимальные: предпочитает менять общие токены и компоненты, а не каждый вызов отдельно.
Фильтры позволяют сузить проверку: --only=01,06 берёт конкретные типы, --skip=19 исключает один, --exclude=legacy отбрасывает пути по подстроке. Свои правила загружаются через --rules=extra.mjs, пример для русского текста лежит в scripts/rules.ru.mjs. Подтверждённые как намеренные места можно закрепить комментариями deslop-ignore или deslop-ignore-next-line 06 — тогда новые проверки их пропустят, но остальные сработают.
Какие задачи решает
- найти градиенты, глоу и другие визуальные штампы по коду
- отделить случайные украшательства от осознанных решений
- получить отчёт до правок и согласовать объём изменений
- убрать шаблонные формулировки из текстов и заголовков
- проверить, что после правок слоп реально убавился
Примеры запросов агенту
- Прогони kill-ai-slop по этому проекту и покажи отчёт, ничего не меняй
- Найди AI slop в src и убери только градиенты и badge-спам
- Отсканируй лендинг, но не трогай файлы с deslop-ignore
Как установить kill-ai-slop
1Через Skills CLI (Vercel)
npx skills add yetone/kill-ai-slop --skill kill-ai-slop -a claude-codenpx skills add yetone/kill-ai-slop --skill skill -a claude-code2Вручную: положить файлы
~/.claude/skills/skill/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/skill/
1Через Skills CLI (Vercel)
npx skills add yetone/kill-ai-slop --skill skill -a codex2Вручную: положить файлы
.agents/skills/skill/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add yetone/kill-ai-slop --skill skill -a cursor2Вручную: положить файлы
.cursor/skills/skill/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install yetone/kill-ai-slop skill2Вручную: положить файлы
.github/skills/skill/SKILL.md1Через Skills CLI (Vercel)
npx skills add yetone/kill-ai-slop --skill skill -a gemini-cli2Командой платформы
gemini skills install https://github.com/yetone/kill-ai-slop --path skillВручную: положить файлы
.devin/skills/skill/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add yetone/kill-ai-slop --skill skill -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Похожие
Вопросы о kill-ai-slop
Как установить kill-ai-slop в Claude Code?
Выполни 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. Скилл появится в ~/.claude/skills/skill/SKILL.md.
Что делает kill-ai-slop?
Ищет в проекте типичные признаки сгенерированного дизайна и копирайтинга: градиенты, глоу, эмодзи, стеклянные карточки, однотипные заголовки, «not just X — it's Y» и прочее. По каждому попаданию показывает файл, строку и предлагает минимальное исправление.
Чем kill-ai-slop отличается от обычного линтера?
Линтер отметит всё подряд, а скилл требует для каждого попадания открыть код и решить, слоп это или осознанный выбор. Поэтому он показывает отчёт до правок и спрашивает, какие группы применять. Брендовые цвета, логотип или намеренную иллюстрацию он не трогает.
Исходный текст
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