finesse-skill
Скилл для верстки дорогих интерфейсов: лендинги, дашборды и мобильные экраны по четырем маршрутам с проверкой на дешевизну
- 960 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Скрипт `detect.mjs` запускается локально через Node.js
- Агент пишет файлы страниц и журнал `.finesse/log.json` в проекте
Установка
- Работает в
Ручная установка
npx skills add https://github.com/mouse-lin/finesse-skillКоманда из README. Только этот скилл ставит вариант с флагом `--skill "finesse-ui"`.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Скрипт `detect.mjs` запускается локально через Node.js
- Агент пишет файлы страниц и журнал `.finesse/log.json` в проекте
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
finesse-skill подключает к агенту набор правил дизайна и сам выбирает маршрут по задаче: `brand` для лендингов и портфолио, `product` для дашбордов и админок, `commerce` для карточек товара и корзины, `h5` для экранов под телефон. Перед версткой агент одной фразой пересказывает, что собирается сделать, и ждет согласия. В основе три ручки (характер, зрелищность, плотность), слой визуальной фактуры с шумом и виньеткой, палитры в OKLCH и пять видов hero-анимации на Three.js, Canvas, WebGL, GSAP или чистом CSS. Для дашбордов есть отдельные палитры, выбор из 25 типов графиков и описание экранов, где работает агент. Перед сдачей идут чек-лист против дешевых приемов и предполетная проверка. В репозитории 31 файл с правилами и 30 примеров страниц. Скрипт `detect.mjs` механически ищет шаблонные приемы, а журнал `.finesse/log.json` помнит прежние сборки и не дает повторить тот же стиль.
Для кого. Фронтенд-разработчикам и дизайнерам-одиночкам, которые верстают лендинги, дашборды и мобильные страницы с агентом и хотят уйти от шаблонного вида ИИ-интерфейсов.
Подходит, если
- Нужен лендинг кофейни или студии, и результат не должен выглядеть как типовой шаблон
- Дашборд получается одноцветным синим, и палитру надо выбрать до верстки
- Мобильная страница ведет себя как сайт, а должна ощущаться приложением: нижняя панель, шторки, безопасные зоны
- Готовый интерфейс хочется прогнать через аудит и сделать смелее или спокойнее
- Нужна консоль, где агент работает часами и пользователь видит ход выполнения и кнопку остановки
Не подходит, если
- Задача чисто серверная, без интерфейса: скилл исключает такие работы
- Нужна одна кнопка или поле ввода: для отдельных элементов скилл переключается на облегченный разбор состояний
- Проект живет по готовой дизайн-системе, которую менять нельзя: скилл по умолчанию задает собственный характер
- Пользователь не хочет сначала читать план действий агента и подтверждать его
Пример запроса к агенту
Сделай с finesse лендинг для небольшой кофейни: темная тема, один выразительный hero-блок и аккуратная мобильная версияОграничения
Основной язык README и значительной части правил китайский, английский вариант README есть отдельным файлом. Перед работой агент ждет подтверждения плана, поэтому быстрая правка в один заход не получится. Скрипт `detect.mjs` запускается через Node.js, без него остальные правила продолжают действовать. Cursor получает один файл правил `.cursor/rules/finesse-ui.mdc`, Codex читает `AGENTS.md`, полный набор работает в Claude Code. Для картинок агент сначала сверяется с доступными инструментами сессии и называет вариант, ничего не скачивает самовольно.
Как отключить. Удалите папку `finesse-ui` из каталога скиллов агента, например из `.claude/skills/`. Для Cursor уберите файл `.cursor/rules/finesse-ui.mdc`, для Codex удалите блок из `AGENTS.md`. Папку `.finesse/` в проекте можно удалить вместе с журналом сборок.
Частые вопросы
Как поставить finesse-skill в Claude Code?
Выполните `npx skills add https://github.com/mouse-lin/finesse-skill` и выберите Claude Code в диалоге. Репозиторий также содержит манифест `.claude-plugin/plugin.json`, поэтому скилл ставится как нативный плагин.
Как вызвать скилл и что передать в аргументах?
Скажите агенту «сделай с finesse …» или вызовите `/finesse`. После команды можно назвать режим (`craft`, `audit`, `bolder`, `quieter`, `soul`, `diverge`, `animate`, `depth`, `densify`, `redesign`, `init` или `document`) и затем цель, например страницу или компонент.
Подходит ли скилл для Cursor и Codex?
Да, но в урезанном виде. Для Cursor скопируйте `.cursor/rules/finesse-ui.mdc`, для Codex положите `AGENTS.md` в корень проекта. Полный набор из 31 файла с правилами работает через скилл в Claude Code.
Какие примеры страниц лежат в репозитории?
В папке `skills/finesse-ui/examples` лежат 30 HTML-страниц: дашборд роста, консоль API, редакторская CMS, консоль агента `relay-agent-console.html`, мобильные примеры с префиксом `h5-`. Перед сборкой дашборда скилл велит агенту открыть ближайший пример и взять из него приемы, а не файл целиком.
Что скилл оставляет в проекте после работы?
Агент дописывает журнал `.finesse/log.json` с параметрами сборки. При следующем запуске он читает журнал и выбирает другой характер, поэтому два проекта подряд не получают одинаковый стиль.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыРеестр устанавливаемых дизайн-скиллов: готовые файлы SKILL.md и DESIGN.md с токенами, правилами компонентов и доступностью под разные стили
Скиллы против шаблонных интерфейсов: сетка, типографика, анимация и отступы, плюс генерация референсов для веба и мобильных
Дизайн-скилл против шаблонных AI-интерфейсов: новые страницы, аудит, редизайн и разбор чужого дизайна по скриншоту или URL
Детали, от которых интерфейс приятнее
make-interfaces-feel-better
Скилл о мелких деталях интерфейса: анимации, типографика, иконки, тени, скругления, оптическое выравнивание и области нажатия
Скилл /taste разбирает дизайн сайта по ссылке: токены, принципы с компромиссами и готовые правила для Cursor и Claude Code
Скилл и CLI для агентов: интерфейс без шаблонного вида, 25 команд, проверка шаблонности правилами и оценка качества от 0 до 100
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Звезды репозитория | Главное отличие |
|---|---|---|---|
| finesse-skill (эта карточка) | нет | 960 | |
| Impeccable | нет | 104 096 | ревью и полировка готового интерфейса, а у finesse есть собственные маршруты сборки с нуля |
| UI UX Pro Max | нет | 146 102 | база стилей, палитр и шрифтов для выбора, без маршрутов по типу страницы |
Коротко о README
README открывается обложкой и быстрым стартом, затем описывает четыре маршрута, ключевые возможности и галереи примеров по маршрутам. Дальше таблица совместимости с инструментами, правила вклада и структура репозитория.
Бейдж для README
Исходный SKILL.md
---
name: finesse-ui
description: 'Build and refine high-craft web interfaces: brand sites, product dashboards and workflows, AI workbenches, commerce, H5/mobile screens, and individual components. Route by purpose, preserve project identity, and audit visual quality, accessibility and motion. Supports Apple-inspired / 苹果风 design through editorial, app and spatial modes with runnable card studies. Use for landing pages, portfolios, dashboards, admin panels, settings, agent consoles, product pages, checkout, mobile app UI, design-system extraction, redesign, typography, color, layout, animation, drag/swipe/sheet interactions and anti-generic iteration. Includes targeted audit, bolder, quieter, soul, diverge, animate, depth, densify, init and document workflows. Excludes backend-only tasks.'
version: 0.22.0
user-invocable: true
argument-hint: "[craft · audit · bolder|quieter|soul|diverge · animate|depth|densify · redesign · init|document] [target]"
license: MIT
metadata:
short-description: Craft interfaces that never look cheap
---
# finesse — Technically Spectacular · Soul-Distinct · Never Cheap
> **finesse builds two kinds of interface and routes by register (§0):**
> - **brand** — design IS the product: landing pages, brand sites, launches, portfolios, hero pages. Optimize for **spectacle + soul + first impression** — a real visual engine, an opinionated personality.
> - **product** — design SERVES the product: dashboards, admin panels, analytics, data tables, app shells, settings. Optimize for **clarity + density + usability** — and still never cheap.
>
> The through-line is identical: **high craft, zero AI-slop.** What applies to **both** is the **universal craft floor** (tinted neutrals, no `#fff`/`#000`, translucent/hairline borders, tinted shadows, contrast floors), the cheapness blacklist (§6), and the pre-flight (§8). What **forks** is the *substrate above that floor* and the middle: **brand** lays the §3 brand substrate (`design-dna.md` — grain, vignette, display type) and reaches for a hero engine (§4); **product** lays its **own** substrate (`product-ui.md` §0 — surfaces, cards, KPI tiles, density) and reaches for a component system + data viz. A dashboard is a **different design language**, not a brand page with charts — it does **not** inherit grain / vignette / giant hero type / dark-default / a hero engine.
>
> **Two more registers sit alongside them, and they work differently from each other.** **commerce** (PDP/PLP/cart/checkout) is a *hybrid* — route it to brand or product by what the specific page is doing. **h5** (phone-only screens: app UI, 活动页, mobile PDP, report H5) is a **container**: it fixes the frame, the safe areas, the thumb hierarchy, and the OS furniture, then wraps one of the other three for the content grammar underneath. A mobile PDP is `h5` + `commerce`; an app dashboard screen is `h5` + `product`. h5 never replaces a content register — it wraps one.
>
> Every rule below is **contextual**. Nothing fires automatically. Read the brief, set the register, then pull only what fits. A skill that produces the same page for every brief has failed.
---
## Apple design language (optional)
For Apple style / 苹果风, read `references/apple-design.md` before choosing the substrate or persona. Keep the existing register, add `design-language=apple` and choose `apple-mode=editorial|app|spatial`. Its scoped overrides take precedence over conflicting aesthetic defaults below, including pure-black/white bans, mandatory grain/vignette, extreme leading and forced persona/engine rotation. Functional and accessibility gates still apply. Component requests retain component scope. Editorial recipes and seven runnable studies are indexed in `references/apple-patterns.md`.
## How to use this skill
0. **Check the scope before anything else.** If the brief is a **single element** — a button, an input, a card, a modal, a toast — go to `references/component-scope.md` and follow it instead; steps 1–6 below are page apparatus and are wrong for one component. Detection and the ambiguity question live in that file.
1. Run **§0 Brand Read** — read `.finesse/log.json` (the rotation memory, `divergence.md` §4), then infer **register** (brand vs product) + soul before touching code. Output the Design Read: the coordinate line, **a plain `You'll see:` line the user can actually veto**, the **`Images:` line naming every slot a picture would carry and where it would come from**, its two most likely objections, and the rotation as a sentence (§0.B). Before writing that `Images:` line, **check this session's actual tool list** — an image-gen tool, an MCP image tool, a network fetch, or none — because it decides what you can honestly offer (`asset-sourcing.md` §1), and **prove the one you're about to name actually runs here** before naming it (§1.1 — listed is not usable; a generator with no credential is not Path A). Offer it and **wait**; never generate or download off your own inference.
2. Set the **§1 Three Dials** (SOUL · SPECTACLE · DENSITY). Product register pins SPECTACLE low, DENSITY high.
3. **Lay the substrate — the right one for the register.** All share the **universal craft floor** (tinted neutrals, no `#fff`/`#000`, translucent/hairline borders, tinted shadows, contrast floors — `references/design-dna.md` §1). Above that floor the substrate forks:
- **brand** → the **§3 brand substrate** (`references/design-dna.md`): grain, vignette, `clamp()` display type, dark-default, layered hero depth.
- **product** → the **product substrate** (`references/product-ui.md` §0): premium surfaces/cards, KPI tiles, floating panels, fixed type scale, feedback-only motion. **Never** pour grain / vignette / giant hero type / dark-default / a hero engine into a dashboard — that's brand grammar, not product grammar.
- **h5** → the **frame comes first** (`references/h5-mobile.md` §1): the viewport contract, the locked `body` + scrolling `#app`, the 560px desktop phone frame, then the safe-area math (§2). Only after the frame is standing do you lay the substrate of the register it wraps.
4. **Then the paths fork further:**
- **brand** → pick a **§2 Soul** (`references/style-personas.md`) and build **one §4 Hero Engine** (`references/hero-engines.md`).
- **product** → **pick a palette from `references/product-palettes.md` first** (the neutral ramp is 80% of the pixels; skipping this step is how every dashboard comes out blue). Then split by the page's job:
- **pages you read** — dashboards, analytics, monitoring → `references/product-ui.md` (density, tables, charts, interaction states). **Before writing, open the closest dashboard in `examples/`** (index: `examples/EXAMPLES.md`) to see `product-ui.md` §0 applied in shipped code — lift patterns, not whole files.
- **pages you operate** — publish/create wizards, merchant & admin consoles, config, settings, review queues → `references/workflow-ui.md` **on top of** `product-ui.md` (workflow shell, numbered sections, radio-card choices, live preview, pre-submit check, derived totals, draft/commit). There is **no form-workflow page in `examples/`** — build from the reference, and do **not** force-fit a dashboard example onto a form.
- **pages you delegate on** — AI 工作台, agent consoles, copilot UI, anything where something *other than the user* does work over a duration → `references/ai-console.md` **on top of** `product-ui.md` (three tenses on one screen, the run stream, nine run states, a resident stop, the in-stream approval card, cost as a receipt). Open `examples/relay-agent-console.html`. A dashboard fails by being unreadable and a console by being unfinishable; **this one fails by being untrustworthy**, and none of the dashboard parts address that.
- **h5** → pick one of the **six morphologies** (`h5-mobile.md` §4: app shell · paged deck · snap narrative · commerce stack · longform site · ambient screen), then load the **content register it wraps** and follow that bullet above. Build the native furniture from `h5-mobile.md` §5 rather than inventing it — a TabBar is a convention, not a design opportunity.