antislop — фильтр, который убирает «ИИ-шлам» из интерфейсов, текста и кода

· 2 мин чтения
agent-skills ai-coding prompt-engineering design code-review
📂 Исходный код на GitHub

Правила для ИИ-кодинг-агента: набор из шести agent skills, который отсекает generic «ИИ-шлам» в UI, тексте и комментариях к коду. Фильтр, а не стайлгайд: цвета, шрифты и layout он не диктует, а направление приходит из вашего DESIGN.md. Поддерживает Claude Code, Codex, Antigravity, OpenCode, Cursor, Cline, Amp, Gemini CLI, Copilot, Kimi Code, Pi и Oh My Pi. MIT.

antislop — фильтр, который убирает «ИИ-шлам» из интерфейсов, текста и кода

Каждый ИИ-кодинг-агент выдаёт узнаваемый почерк: логотип со искрой, плашка «NEXT-GEN AI 2.0 beta» над заголовком, фальшивый терминал с задержкой 0.0001ms, три одинаковые карточки фич, круглые пилюли со стрелками. Скриншот выглядит прилично, но это не дизайн, а штамп. Репозиторий miqdadbadjuber/anti-slop собран именно для борьбы с этим: это набор агентных навыков, который заставляет модель писать и рисовать конкретно, а не «в стиле ИИ».

Главная идея проекта: antislop — это фильтр, а не стайлгайд. Он не предписывает цвета, шрифты или вёрстку. Он отсеивает технику без цели и требует, чтобы результат оставался живым. Направление приходит из вашего DESIGN.md, красоту придумываете вы сами, а проект только убирает мусор.

Что внутри

Ядро — 38 обязательных правил (R-01 … R-38), разложенных по трём уровням строгости:

Уровень Что означает
Hard Gate Абсолютный запрет, без исключений: честность, работоспособность, доступность
Purpose-Gate Техника разрешена, но агент обязан письменно объяснить, зачем она здесь
Quality Locks Требования согласованности: единый радиус, осмысленные CTA, ритм секций

Плюс Liveliness Toolkit с тремя регуляторами (ENERGY / RHYTHM / MOTION) и Design Read, и Delivery Gate — обязательный отчёт PASS/FAIL из четырёх блоков, который запускается до сдачи любой работы.

Логика уровней показательна. Правило R-17 запрещает статистику без реального источника: если настоящих данных нет, не показывайте цифры вообще. R-18 запрещает выдуманные отзывы с AI-аватарами и случайными именами. R-25 требует контраста не ниже WCAG AA. R-26 запрещает кнопки, которые ничего не делают. R-35 требует реально собрать и прокликать проект, а не отдать непроверенный код. Это не «сделай красиво», это «не ври и не оставляй мёртвые элементы».

Правило R-02 отдельно запрещает символ em dash в тексте, который пишет агент. Запрет с юмором, но механически это надёжный способ выбить из модели фирменную типографику с длинными тире.

Шесть навыков

Ядро загружается всегда, остальные — только когда задача их требует. Каждый навык это папка со SKILL.md по открытому стандарту Agent Skills, он ссылается на правила по номерам и не дублирует их.

Навык Про что Версия
antislop Ядро: правила, уровни, Delivery Gate, живость v3.0.0
antislop-ui Вёрстка, цвет, компоненты, декор, движение v2.2.0
antislop-copywriting Заголовки, CTA, тон, фейковые цифры, markdown-гигиена v2.3.0
antislop-human Контраст, клавиатура, фокус, состояния v2.4.0
antislop-layoutmobile Ресайз от телефона до десктопа, брейкпоинты, переполнение, тач-таргеты v2.5.0
antislop-code Комментарии: вычистить generic-мусор, сохранить ценные, код не трогать v3.1.0

Принцип аддитивности важен: добавление навыка не меняет ядро. Нужен UI — берите antislop-ui, нужна работа с текстом — antislop-copywriting, нужны комментарии — antislop-code. Если задача не подходит ни под что, ядро само по себе остаётся полноценным фильтром.

Три регулятора живости

Фильтр убирает мусор, но не может добавить энергию: убрав всё, модель заполнит пустоту своим самым generic-результатом. Поэтому Liveliness Toolkit работает не запретами, а требованиями. Каждый дизайн обязан явно выставить три регулятора и держать их от первой секции до последней:

Регулятор 1 (спокойно) 2 (сбалансированно) 3 (смело)
ENERGY Linear, GOV.UK Stripe, Vercel Awwwards, агентские портфолио
RHYTHM равномерная сетка единообразие с парой разрывов асимметрия, смешанные композиции
MOTION только hover scroll-reveal, переходы параллакс, закрепление, хореография

Почему уровней именно три, а не десять: модель и ревьюер надёжно отвечают на вопрос «секция однообразная или разнообразная», но не могут надёжно сказать, «это шесть или семь». Три уровня делают живость проверяемой.

Поверх регуляторов лежат пять рычагов: один фокусный элемент на экран, иерархический контраст, пробелы как структура, один сдержанный акцент и identity motif — узнаваемый повторяющийся приём. Ноль акцентов выглядит стерильно, акцент везде — это уже шлап.

Два режима работы

Агент в начале сессии спрашивает, когда применять antislop:

  • DURING — вести работу по правилам в процессе, закончить Delivery Gate. Для нового UI.
  • AFTER — провести аудит готового: пронумерованный список находок в файле anti-slop/audit-001-YYYY-MM-DD.md, каждая ссылается на violated rule и получает приоритет по уровню (Hard Gate = HIGH, Purpose-Gate = MEDIUM, Quality Locks = LOW). Вы выбираете номера, которые чинить, агент правит только их и пишет follow-up отчёт.

Delivery Gate

Перед сдачей агент обязан выдать PASS/FAIL отчёт, где каждый PASS подкреплён конкретным доказательством, а любой FAIL означает «сначала починить, потом сдавать». Отчёт из четырёх блоков: Hard Gate (18 абсолютных вопросов), Purpose-Gate (12 техник с требованием письменного обоснования), Liveliness (7 вопросов, все ответы «да») и Craftsmanship с Quality Locks.

Число 18 в первом блоке — не совпадение: там 18 правил Hard Gate, и каждое проверяется напрямую. Второй блок повторяет 12 правил Purpose-Gate. Блок Liveliness требует, чтобы регуляторы были выставлены и заявлены до генерации, чтобы на каждом экране был фокус, а пробелы работали структурой, а не остатком.

Гейт нельзя делегировать и нельзя заменить: если сессию ведёт другой workflow, его собственный wrap-up отчётом не считается.

Установка

Рекомендуемый путь — инсталлятор. Он задаёт четыре вопроса (какие доп-навыки, куда ставить, какие агенты, ставить ли) и раскладывает папки. Это единственный путь, который при установке в проект пишет указатель в AGENTS.md, благодаря которому antislop перечитывается каждую сессию:

npx antislop-ai

Через каталог skills.sh копируются те же папки, но без указателя:

npx skills add miqdadbadjuber/anti-slop

Плагины ставятся из того же репозитория: у Claude Code сначала добавляется маркетплейс, потом плагин; у Antigravity, Cursor, Kimi Code, Cline, Codex и Oh My Pi своя дверь. У Pi это вообще не плагин, а пакет: ключ pi в корневом package.json указывает на папку skills/, ставится через pi install git:github.com/miqdadbadjuber/anti-slop.

Отдельный вариант — один файл antislop.md, который скачивается вручную и работает в любом чате, включая телефон:

curl -o antislop.md https://raw.githubusercontent.com/miqdadbadjuber/anti-slop/main/antislop.md

Куда именно лягут папки:

Агент Папка
Claude Code .claude/skills/
Codex .codex/skills/
Antigravity .agents/skills/
OpenCode .opencode/skills/
Cursor .cursor/skills/
Cline .cline/skills/
Amp .agents/skills/
Gemini CLI .gemini/skills/
Hermes .hermes/skills/
GitHub Copilot .agents/skills/
Kimi Code .agents/skills/
Pi .pi/skills/

С Antigravity, Copilot, Kimi Code и Amp папка общая, инсталлятор пишет один раз. Hermes после установки в проект требует отдельный hermes skills trust, Pi спрашивает о доверии проекту при первом запуске и запоминает ответ через /trust.

Обновление

Сам antislop себя не обновляет. Для первых двух путей есть короткая команда:

npx antislop-ai --update

Она заменяет все найденные папки antislop в проекте и в домашней директории, печатает, какой релиз заменила, и ничего не спрашивает. Плагины обновляются командами самого агента: claude plugin update antislop@anti-slop, codex plugin marketplace upgrade anti-slop, cline plugin install ... --force, для Oh My Pi это omp plugin marketplace update плюс omp plugin upgrade. Пакет Pi обновляется через pi update --extensions, потому что его объявление лежит в настройках Pi, а не в папке навыков.

Навыки читаются на старте сессии, поэтому после обновления нужна новая. Текущий релиз смотрите на странице releases или в файле VERSION внутри установленной папки.

Честная граница

Фильтр не превращает работу в дизайн. Удаление мусора не открывает хороший дизайн, оно оставляет пустоту, и живость приходится добавлять намеренно. Правило R-37 отражает это буквально: если дизайн сделан без направления, результат помечается как «draft without direction» с честными значениями регуляторов ENERGY 1 / RHYTHM 1 / MOTION 1 и не выдаётся как готовый продукт.

Сам проект тоже честен про свои пределы: ядро не может придумать направление, и об этом написано прямо. Подробная инструкция с нуля лежит в GUIDE.md, история релизов и планы — в ROADMAP.md, лицензия MIT — в LICENSE.

Проект написан на JavaScript (инсталлятор на npx), распространяется под MIT и принимает issue: нашли новый паттерн ИИ-шлама, правило, которое что-то пропускает, или баг в инсталляторе — пишите в issues.

Источник: https://github.com/miqdadbadjuber/anti-slop