impeccable
- title
- impeccable
- type
- toolbox
- summary
- Набор skill'ов по дизайну и детерминированный linter из 25 правил, находящий штампы сгенерированного ИИ UI
- tags
- ai-agents, skills, design, frontend, linting
- language
- TypeScript
- license
- Apache-2.0
- created
- 2026-04-22
- updated
- 2026-04-22
- lang
- ru
- translation_of
- impeccable
- source_updated
- 2026-04-22
- translated
- 2026-09-01
- translator
- lllm/antigravity/gemini-3.7-flash-medium
Бандл из skill'ов и CLI, который пытается решить проблему "почему весь сгенерированный ИИ UI выглядит одинаково" двумя путями: загружая словарный запас дизайна в контекст агента, чтобы ему можно было задавать осмысленные вопросы о дизайне, и прогоняя детерминированный lint по результату, чтобы всё равно отлавливать штампы.
Две половины
Teach - /impeccable teach загружает в контекст агента семь измерений знаний о дизайне (типографика, цвет, компоновка, анимация, иерархия, взаимодействие, качество) плюс 10 эвристик Нильсена. Утверждается, что большинство людей, просящих LLM сделать UI, не обладают словарным запасом для точной формулировки запроса, а без этого словарного запаса модель возвращается к своим значениям по умолчанию из обучающей выборки. Это тот же аргумент "skill'ы - это знания, а не возможности" из mcp-vs-skills, применённый к области (визуальный дизайн), где проблема монокультуры особенно заметна.
Detect - 25 детерминированных правил без вызовов LLM, которые сканируют HTML/CSS/JSX/TSX/Vue/Svelte и живые URL (Puppeteer) на предмет известных признаков генерации ИИ: фиолетовые градиенты, вложенные карточки внутри карточек, заезженный шрифт Inter, текст с градиентом, недостаточный контраст, шаблонные компоновки. Поддерживает современные цветовые пространства (oklch, oklab, lch, lab). Вызывается как npx impeccable detect или через расширение для Chrome DevTools.
18 команд
Бандл skill'ов устанавливает 18 слэш-команд. Те, что вынесены на страницу проекта:
/polish,/audit,/critique- проверки качества;/critiqueоценивает по эвристикам Нильсена/typeset,/bolder,/shape- операции с типографикой, акцентами и компоновкой/overdrive,/distill,/harden- более масштабные рефакторинги/impeccable teach- загрузка контекста дизайна для проекта/impeccable craft,/impeccable extract- вспомогательные инструменты для настройки проекта
Полный справочник находится в cheatsheet'е репозитория.
Установка
npx skills add pbakaus/impeccable
Команда сразу добавляет в проект каталоги .cursor/, .claude/, .gemini/, .codex/ и .agents/, поэтому одни и те же команды работают во всех основных harness'ах для агентов без отдельной настройки под каждый инструмент. Также доступно в виде плагина для Claude Code и глобального CLI (npm i -g impeccable) для сканера.
Поддерживаемые harness'ы: Cursor, Claude Code, Gemini CLI, Codex, VS Code Copilot, Antigravity, Kiro, OpenCode, Pi.
Почему важен детерминированный детектор
Интересное архитектурное решение заключается в том, что обнаружение основано на правилах, а не на LLM. Неявный аргумент в пользу такого выбора: когда LLM оценивает вывод другой LLM на тему "выглядит ли эта страница как типичная поделка ИИ", она сталкивается с тем же смещением в обучающих данных, которое и породило проблему. Правило, говорящее "градиент от фиолетового к чуть другому фиолетовому запрещён", лишено этого смещения. Работает дёшево, результат срабатывания понятен, и ошибка во вкусовых предпочтениях не фатальна, потому что правило можно просто удалить.
Набор из 25 правил намеренно невелик - это чёрный список конкретных визуальных тиков, а не замена дизайнерскому суждению.
Ограничения
- Таксономия антипаттернов субъективна. Если эстетика проекта - "современный SaaS", детектор будет с ней бороться.
- Бандлы skill'ов занимают много контекста; загрузка всех семи измерений сжигает токены, которые лучше было бы потратить на саму задачу.
- Сканирование живых URL через Puppeteer требует загрузки Chromium.
- Качество результата после "teach" полностью зависит от базовой модели - Impeccable может загрузить словарь, но не может привить хороший вкус слабой модели.
Репозиторий
github.com/pbakaus/impeccable - 21.3k звёзд, Apache-2.0. См. также: mcp-vs-skills (аргумент "skill'ы как знания"), vamp-ai-frontend (другой заход на ту же проблему "фронтенд от LLM плох" - структура фреймворка вместо визуального вкуса), clean-code-coding-agents (взгляд на качество вывода агентов со стороны структуры кода).