docs(rules): PSR_v1 v1.4 — формализация UPM + 21st Magic MCP + R15 motion-системы

Триггер: пользователь спросил «хочу добавить плагины 21st, framer motion,
UI UX max — проанализируй конфликты». Проверка показала: UPM (skill) и 21st
Magic MCP (`magic` сервер) уже фактически включены в ~/.claude/settings.json
и ~/.claude.json, но в правилах не описаны. Framer Motion — React-only
runtime npm-библиотека, не Claude-плагин, физически не работает в Vue.

Через цикл brainstorming → 3 варианта → итерации согласовано: формализовать
UPM + 21st; для motion — двухуровневая R15 (framer-motion hard-запрет
навсегда + motion-v узкое окно по 4 условиям).

PSR_v1 v1.3 → v1.4 (главный артефакт):
- R6 → R6.0 универсальная таблица фильтра для FD/UPM/21st
- R6.1 hard-override Forest расширен на все три плагина
- R10.1 +21st row, ослабление UPM (FD молчит ИЛИ R12 третий вариант)
- R11.5 (новое) активация UPM в R12 архитектурном
- R11.6 (новое) иерархия 7 motion-источников
- R0.6 +3 hard-стопа (App* через 21st, Vuetify-эквивалент, motion-v)
- R13 +9 строк matrix'а
- R14 (новое, 7 подразделов) pipeline UPM + 21st
- R15 (новое, 7 подразделов) motion-системы
- R8 +7 тай-брейкеров

Pravila v1.7 → v1.8: §13 расширен на расширенный пул, §13.10 hard-link на R14.

Tooling Прил. Н v1.11 → v1.12: #31 UPM + #32 21st (off-phase tools), §9.2
motion-runtime denylist (framer-motion + react-spring R15.1; motion-v + gsap
+ anime + lottie + popmotion R15.2/R15.7). 31 формализованных позиций
(19/29 активных по фазам + 2 off-phase).

CLAUDE.md v1.82 → v1.83: §0 cross-refs, §2 +Animation default stack, §3.3
+#31 UPM +#32 21st, §5 п.5 расширен, §5 п.12 motion-runtime новый,
§6 обновлён, §9 +entry.

cspell-words.txt: +UPM +gsap +LLM (валидные термины проекта).

Через /claude-md-management:claude-md-improver. 6 файлов, 0 изменений
в коде проекта (resources/js/, app/, db/ нетронуты), 0 npm install.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Дмитрий
2026-05-10 04:33:42 +03:00
parent f77c91d5fa
commit 833e3e6083
5 changed files with 462 additions and 54 deletions
+13 -7
View File
@@ -1,6 +1,6 @@
# CLAUDE.md — техконтекст Лидерры
**Версия:** 1.82 от 09.05.2026 — Sprint 1 «Hygiene» Phase D: sync метрик schema v8.10 → v8.11 (97 индексов, 38 RLS после audit P0-02 + O-perf-02/03 в commit `e01caa3`) + Histoire 21/43 → 21/43 (audit P1-03) + F-K cross-link на [Plugin_stack_rules_v1.md История версий](docs/Plugin_stack_rules_v1.md#история-версий) (audit P2-03). Через `/claude-md-management:claude-md-improver`. Предыдущая v1.81Plugin_stack_rules_v1 v1.2 → v1.3 (6 трений второго порядка F–K, детали в [Plugin_stack_rules_v1.md История версий](docs/Plugin_stack_rules_v1.md#история-версий)) + Pravila v1.5 → v1.6 (§13.9 hard-link на R10).
**Версия:** 1.83 от 10.05.2026 — формализация двух фактически включённых внешних UI-инструментов (UI UX Pro Max skill + 21st.dev Magic MCP) + двухуровневое решение по runtime motion-библиотекам. **PSR_v1 v1.3 → v1.4** (новые R14 pipeline UI-генераторов + R15 motion-системы; R6/R6.1/R10/R11/R0.6/R13 расширены, детали в [Plugin_stack_rules_v1.md История версий](docs/Plugin_stack_rules_v1.md#история-версий)). **Pravila v1.7 → v1.8** (§13 расширен, §13.10 hard-link на R14). **Tooling Прил. Н v1.11 → v1.12** (#31 UPM + #32 21st как off-phase tools; §9 motion-runtime denylist). §2 +Animation default stack, §3.3 +UPM/21st строки, §5 п.5 расширен на UPM+21st, §5 п.12 motion-runtime новый, §6 обновлён. Через `/claude-md-management:claude-md-improver`. Предыдущая v1.82sync метрик schema v8.10 → v8.11 (97 индексов, 38 RLS после audit P0-02 + O-perf-02/03 в commit `e01caa3`) + Histoire 21/43 + F-K cross-link на [Plugin_stack_rules_v1.md История версий](docs/Plugin_stack_rules_v1.md#история-версий).
**Назначение:** оперативная карта для Claude Code. Не первоисточник — первоисточники указаны в §0.
**Владелец и режим правок:** все изменения этого файла — **только** через плагин `claude-md-management` (skills `/claude-md-management:claude-md-improver` для audit/targeted-updates и `/claude-md-management:revise-claude-md` для capture session-learnings). Прямые правки запрещены — см. §5 п.11.
@@ -12,9 +12,9 @@
| Тема | Документ |
|---|---|
| Продуктовые правила работы Claude | [docs/Pravila_raboty_Claude_v1_1.md](docs/Pravila_raboty_Claude_v1_1.md) (v1.6 от 09.05.2026 — добавлен §13.9 hard-link на R10 PSR_v1: байпас stack-gate без явной /команды или R0.4.A исключения = нарушение §13) |
| **Правила совместного использования плагинов Claude** | [docs/Plugin_stack_rules_v1.md](docs/Plugin_stack_rules_v1.md) (**v1.3 от 09.05.2026** — 6 трений второго порядка F–K закрыты: R12 override §4.5 через brainstorming, R12 тактическое split «с альтернативами/без», R13 фича вне ТЗ → hard-стоп, R11.4 fallback при недоступности уровней, R10.4 смягчение + Pravila §13.9 hard-link, R0.1 точный scope «головенства») |
| Полный реестр 29 инструментов и фазы | [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md) (Прил. Н v1.10 от 09.05.2026 — добавлен #30 Frontend Design plugin в фазе 2 (paired со Superpowers); всего активно 19/29) |
| Продуктовые правила работы Claude | [docs/Pravila_raboty_Claude_v1_1.md](docs/Pravila_raboty_Claude_v1_1.md) (**v1.8 от 10.05.2026**§13 расширен на расширенный пул UI-инструментов: paired-stack ядро (Superpowers + Frontend Design) + UPM (резерв-библиотека) + 21st Magic MCP (генератор шаблонов); §13.10 hard-link на R14 PSR_v1) |
| **Правила совместного использования плагинов Claude** | [docs/Plugin_stack_rules_v1.md](docs/Plugin_stack_rules_v1.md) (**v1.4 от 10.05.2026** — формализация UPM + 21st Magic MCP + двухуровневое R15 motion: R6/R6.1 расширены на FD/UPM/21st, R10.1 +21st row, R11.5 (UPM в R12) + R11.6 (motion-иерархия 7 уровней), R0.6 +3 hard-стопа (App* через 21st, Vuetify-эквивалент через 21st, motion-v без R15.2), R13 +9 строк matrix'а, R14 (новое) pipeline UI-генераторов с R14.4 21st pre-check, R15 (новое) motion-системы — R15.1 framer-motion hard-запрет + R15.2 motion-v 4 условия + R15.3 default стойка) |
| Полный реестр 29 инструментов и фазы | [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md) (**Прил. Н v1.12 от 10.05.2026**формализованы #31 UPM + #32 21st Magic MCP как off-phase tools; §9 motion-runtime denylist (framer-motion + react-spring R15.1 hard-запрет; motion-v + gsap + anime + lottie + popmotion R15.2/R15.7 условно); 31 формализованных позиций (19/29 активных по фазам + 2 off-phase)) |
| Главное ТЗ | [docs/CRM_bp-gr_Инструкция_v8_5.md](docs/CRM_bp-gr_Инструкция_v8_5.md) (v8.5 от 07.05.2026 — реализация 27 решений аудита C; in-place hygiene v1.20 от 08.05.2026 поздний вечер: §2.4/§5.5/§5.6/§6.5/§11/§20.12.3/§21.1/§27.1 синхронизированы под schema v8.6 двустадийный dedup) |
| Схема БД | [db/schema.sql](db/schema.sql) (**v8.11 от 09.05.2026** — Sprint 1 Phase A: RLS на `impersonation_tokens` + 2 missing FK indices (audit P0-02 + O-perf-02/03). Метрики: 56 базовых таблиц + 12 партиций + 97 индексов + 38 RLS + 5 функций + 13 триггеров) |
| Открытые вопросы | [docs/Открытые_вопросы_v8_3.md](docs/Открытые_вопросы_v8_3.md) (**v1.75 от 09.05.2026 — Post-MVP Reports backend закрыт** (4 этапа); MVP по Claude-зоне закрыт в v1.74; финал-метрики Pest 403/403 + Vitest 393/393 + Histoire 21/43) |
@@ -65,7 +65,7 @@
| Sentry | self-hosted в Yandex Cloud |
| Helpdesk | JivoSite |
**Шрифты:** Inter (UI, axis `opsz` 14..32), JetBrains Mono (numerics с `tnum`, код). **Иконки:** Lucide. **Палитра v8 Forest:** Teal `#0F6E56` (primary, неоспариваемый), `#F6F3EC` warm ivory (page bg), `#012019` теало-нуар (sidebar). 14 OKLCH-статусов в [BRANDBOOK_v2 §3.6](liderra_v8_handoff/docs/BRANDBOOK_v2.md) — **палитра используется**, но мапить на 14 slug'ов из [db/schema.sql:2076](db/schema.sql#L2076) (источник истины для статусов воронки — schema/ТЗ §6.4, не handoff). **A11y:** WCAG 2.1 AA.
**Шрифты:** Inter (UI, axis `opsz` 14..32), JetBrains Mono (numerics с `tnum`, код). **Иконки:** Lucide. **Палитра v8 Forest:** Teal `#0F6E56` (primary, неоспариваемый), `#F6F3EC` warm ivory (page bg), `#012019` теало-нуар (sidebar). 14 OKLCH-статусов в [BRANDBOOK_v2 §3.6](liderra_v8_handoff/docs/BRANDBOOK_v2.md) — **палитра используется**, но мапить на 14 slug'ов из [db/schema.sql:2076](db/schema.sql#L2076) (источник истины для статусов воронки — schema/ТЗ §6.4, не handoff). **A11y:** WCAG 2.1 AA. **Animation default stack** (R11.6 + R15 PSR_v1): Vue native `<Transition>` / `<TransitionGroup>` + Vuetify transitions (`v-fade`, `v-slide-y`, `v-scale`, `v-expand`, `v-dialog-transition`) + CSS `@keyframes` + `prefers-reduced-motion` + View Transitions API (Chrome 111+ / Safari 18+). motion-v / framer-motion / gsap / anime.js / lottie-web — **не установлены** и условно разрешены только по R15.2 (4 триггера), см. §5 п.12.
---
@@ -112,6 +112,8 @@
| 23 | Тесты Vue | Vitest | `npm run test:vue` |
| 24 | Каталог компонентов | Histoire (НЕ Storybook) | `npm run story` |
| 30 | Доменная база UI (компоненты, паттерны, состояния, a11y-принципы) | **Frontend Design plugin** (Anthropic, paired со Superpowers) | автоматически через `~/.claude/settings.json`; **обязательный стек-фильтр** Vue+Vuetify (см. [Plugin_stack_rules_v1.md](docs/Plugin_stack_rules_v1.md) Правило 6) |
| 31 | Резерв-библиотека UI (50+ стилей, 161 палитра, 99 UX-гайдлайнов, 25 типов графиков) — *off-phase tool* | **UI UX Pro Max** (skill `ui-ux-pro-max@ui-ux-pro-max-skill`) | автоматически через `~/.claude/settings.json`; активация — только через PSR_v1 v1.4 R14.3 pipeline (фаза 2 R2 fallback к FD ИЛИ фаза 1 R2 «третий вариант» в R12 архитектурном); R6.0 фильтр + R6.1 hard-override Forest обязательны |
| 32 | Генератор стартовых шаблонов для UI-компонентов (LLM-based) — *off-phase tool* | **21st.dev Magic MCP** (`magic` сервер в `~/.claude.json`, tools `mcp__magic__21st_magic_component_*` + `logo_search`) | активация — только через PSR_v1 v1.4 R14.4 pipeline (pre-check R0.6 пунктов 910: брендовый App*? Vuetify-эквивалент? существующий компонент? — все «нет» обязательно) → R6.0 фильтр (JSX→Vue, Tailwind→utility, shadcn→Vuetify) → R6.1 hard-override → FD адаптация; Pa11y обязателен на deployable |
### 3.4. Фаза 3 — pre-production (+5, итого 28)
@@ -173,7 +175,7 @@ trivy image liderra:latest
2. **Не использовать Inertia / Livewire / Tailwind / Filament / Flux UI / Nova / Folio / Volt / Wayfinder guidelines** Boost'ау нас Vue + Vuetify.
3. **Не запускать a11y через Lighthouse** — единственный источник истины Pa11y.
4. **Не помещать ПДн / токены / API-ключи в коммиты.** Правило §5.2 правил Claude. Защита — gitleaks в pre-commit.
5. **Frontend Design plugin — paired stack со Superpowers, координируется через [docs/Plugin_stack_rules_v1.md](docs/Plugin_stack_rules_v1.md)** (запрет снят 09.05.2026 в v1.78). Frontend Design отвечает за визуальные UI-задачи и доменное знание UI; Superpowers — за процесс. Совместное использование — по 10 правилам Plugin_stack_rules_v1 (gate, классификация, фазы UI-фичи, разделение TDD/визуал, ревью по аспекту). **Обязательный стек-фильтр** (Правило 6): из ответов Frontend Design брать принципы и паттерны, отфильтровывать React/Tailwind/shadcn/JSX — наш стек Vue 3 + Vuetify 3. **A11y технический** остаётся за Pa11y (см. п.3 ниже), Frontend Design покрывает только a11y-принципы.
5. **Расширенный пул UI-инструментов — координируется через [docs/Plugin_stack_rules_v1.md](docs/Plugin_stack_rules_v1.md) v1.4** (paired stack ядро Superpowers + Frontend Design; запрет FD снят 09.05.2026 в v1.78; UPM + 21st Magic MCP формализованы 10.05.2026 в v1.83). **Frontend Design** — решатель визуальных UI-задач (фаза 2 R2). **Superpowers** — процесс. **UI UX Pro Max** (skill, R10.1/R11.5) — резерв-библиотека (50+ стилей, 161 палитра, 99 UX-гайдлайнов): активируется только через R14.3 pipeline как fallback к FD ИЛИ как «третий вариант» в R12 архитектурном (никогда параллельно с FD, никогда не решатель). **21st.dev Magic MCP** (R10.1/R14.4) — генератор стартовых шаблонов: активируется только через R14.4 pipeline с обязательным pre-check R0.6 пунктов 910 (брендовый App*? Vuetify-эквивалент? существующий? — все «нет» обязательно), затем R6.0 фильтр (JSX→Vue, Tailwind→utility, shadcn→Vuetify), R6.1 hard-override Forest, FD адаптация. **Обязательный стек-фильтр** R6.0 (применяется к выводу всех трёх внешних плагинов): отфильтровывать React/Tailwind/shadcn/JSX — наш стек Vue 3 + Vuetify 3. **R6.1 hard-override Forest** на палитру/шрифты/иконки/aesthetic — Forest приоритетнее любых предложений плагинов. **A11y технический** остаётся за Pa11y (см. п.3 ниже), все три плагина покрывают только a11y-принципы. **Запрет дублирования R14.5:** UPM и 21st не запускаются на одной фазе.
6. **Не ставить два инструмента на одну задачу** — список 10+ запрещённых дублей в [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md) §9.
7. **Не редактировать этот `CLAUDE.md` без обновления** [docs/Pravila_raboty_Claude_v1_1.md](docs/Pravila_raboty_Claude_v1_1.md) и [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md) — иначе три источника разойдутся (применяется ВНУТРИ flow п.10; пропуск синхронизации — отдельная ошибка даже при работающем плагине).
8. **Не править `db/schema.sql`** без записи в [db/CHANGELOG_schema.md](db/CHANGELOG_schema.md) — правило §4.2 правил Claude.
@@ -185,11 +187,13 @@ trivy image liderra:latest
Плагин — **единственный** интерфейс ведения файла; он отвечает за содержание и качество (по `references/quality-criteria.md` плагина: commands/architecture/non-obvious patterns/conciseness/currency/actionability). Прямые `Edit`/`Write` по `CLAUDE.md` без вызова skill'а — нарушение, фиксировать в feedback. Внутри flow плагина продолжают действовать пп.7 (синхронизация Pravila + Tooling) и общие §4 правил Claude.
11. **Не пропускать инвокацию Superpowers skill'а** для задачи, попадающей под карту §12.2 правил Claude (TDD, debug, plan, parallel, review, verify, brainstorm, worktree, finishing PR, subagent, writing-skills). Это **hard rule** (§12 правил Claude), §9 «Отступления» к нему **не применяется**. Рационализация типа «эта задача проще, чем требует skill» / «сейчас быстрее без skill'а» — нарушение того же уровня, что игнорирование §5 ПДн. Исключения — только §12.3: чтение/grep/glob, тривиальные правки (опечатки/синхронизация ссылок/версионные метки), справочные ответы без действий над кодом, документация уровня §4 (Pravila/Tooling/CLAUDE.md/narrative), работа с открытыми вопросами реестра. Запрос заказчика «не используй superpowers сейчас» — единственная отмена, и **только** на текущее действие. См. Pravila §12.4.
12. **Не устанавливать motion runtime библиотеки без прохождения R15.2 PSR_v1** (4 условия триггера) — `framer-motion` (R15.1 hard-запрет навсегда: React-only архитектурно, не работает в Vue), `react-spring` (R15.1-аналог: тоже React-only), `motion-v` (R15.2: Vue 3 порт framer-motion, условно по 4 триггерам), `gsap`, `anime.js`, `react-spring`, `lottie-web`, `popmotion`, `@motionone/dom` (R15.7: аналогично). **Default motion stack** — Vue native `<Transition>` / `<TransitionGroup>` + Vuetify transitions + CSS `@keyframes` + View Transitions API (R11.6 уровни 3–6). Большинство задач закрываются на уровнях 1–2. Установка любой animation runtime библиотеки в `package.json`**R0.6 пункт 11 hard-стоп**, Auto mode не отменяет. Подробности — PSR_v1 v1.4 R15 + Tooling Прил. Н v1.12 §9.2.
---
## 6. Текущая фаза проекта
**Post-MVP (09.05.2026).** Фазы 0/1/2 по тулчейну закрыты (19/29 активны после установки Frontend Design plugin v1.78). MVP Claude-зоны закрыт в v1.72; затем закрыт Reports backend epic (v1.73, 4 этапа `19f319c..e0ffe7e`). 13/13 экранов handoff покрыты UI + 3 ErrorView (404/403/500); landing ⏸ Б-1. Backend: auth (login/register/2FA/recovery/forgot/reset) + deals API (index/show/store/update/transition/destroy/restore/export-CSV+XLSX) + 3 lookup-API + reminders CRUD + cron + in_app_notifications + bell-UI polling + notification-preferences PATCH + admin (tenants/billing/incidents/system) + impersonation + webhook receive (HMAC + per-token rate-limit). Все 8 schema-default событий уведомлений интегрированы. **Pest 403/403, Vitest 393/393, Histoire 21/43.**
**Post-MVP (10.05.2026).** Фазы 0/1/2 по тулчейну закрыты (19/29 активны по фазам после установки Frontend Design plugin v1.78). **+2 off-phase tools формализованы 10.05.2026 в v1.83:** #31 UI UX Pro Max (skill, резерв-библиотека) + #32 21st.dev Magic MCP (генератор шаблонов). Оба активируются только через PSR_v1 v1.4 R14 pipeline — без формализации до v1.83 их использование = нарушение R0.2/R10.4. Итого формализованных позиций тулчейна: **31** (19/29 активных по фазам + 2 off-phase). MVP Claude-зоны закрыт в v1.72; затем закрыт Reports backend epic (v1.73, 4 этапа `19f319c..e0ffe7e`). 13/13 экранов handoff покрыты UI + 3 ErrorView (404/403/500); landing ⏸ Б-1. Backend: auth (login/register/2FA/recovery/forgot/reset) + deals API (index/show/store/update/transition/destroy/restore/export-CSV+XLSX) + 3 lookup-API + reminders CRUD + cron + in_app_notifications + bell-UI polling + notification-preferences PATCH + admin (tenants/billing/incidents/system) + impersonation + webhook receive (HMAC + per-token rate-limit). Все 8 schema-default событий уведомлений интегрированы. **Pest 403/403, Vitest 393/393, Histoire 21/43.**
- Активно: **19 инструментов из 29** — 9 из фазы 0 (см. §3.1) + 8 из фазы 1: **#10 Boost v2.4.6**, **#11 Pint v1.29**, **#12 Larastan v3.9.6**, **#13 Roave/SecurityAdvisories**, **#14 IDE Helper v3.7.0**, **#15 squawk v2.51.0**, **#16 pgFormatter v5.9**, **#18 Pest v4.7.0** + 7 из фазы 2 (закрыта по тулчейну, см. ниже): #19 Superpowers + #2024 + **#30 Frontend Design plugin** (новый, paired stack).
- Готово в фазе 1: Laravel 13.7 в `app/`, predis 3.4.2, **schema.sql v8.6 развёрнута через `migrate:fresh` (870 ms, 1 миграция `load_initial_schema.php` — raw SQL через `DB::unprepared(file_get_contents(...))`)**, 3 default Laravel-миграции удалены (users/cache/jobs дублировались с нашей schema), smoke-test'ы (**Pest 19/19 за 1711 ms** — 4 RLS smoke + 8 model smoke + 5 middleware + 2 default; Pint passed, PHPStan analyse passed с baseline, ide-helper:generate OK + ide-helper:models -W -M -N для @mixin IdeHelper*, squawk 0 issues с конфигом, pgFormatter dry-run OK), MCP-сервер `boost:mcp` через Roster auto-detect (9 tools, JSON-RPC 2024-11-05). **Eloquent-модели**: `Tenant`, `User`, `Project` (+ factories) — `User` переписан под нашу схему (`password_hash` вместо `password`, override `getAuthPassword()`), Soft Deletes на Tenant + User. **Middleware `SetTenantContext`** (alias `tenant`): резолюция tenant_id из `auth()->user()`, subdomain или `X-Tenant-Id` header → `SET LOCAL app.current_tenant_id` в обёртке транзакции (PgBouncer-safe). **Deployment-скрипты ролей БД** для production: `db/00_create_roles.sql`, `db/02_grants.sql`. На dev — `postgres` superuser. **CTO-13 RLS smoke-test реализован**: `tests/Feature/RlsSmokeTest.php` + `TenantModelsTest.php` + `SetTenantContextTest.php`.
@@ -240,6 +244,8 @@ trivy image liderra:latest
Полная история — [docs/CHANGELOG_claude_md.md](docs/CHANGELOG_claude_md.md) (вынесена 09.05.2026 при правке v1.73→v1.74 ради лаконичности шапки). Здесь — две последние:
- **v1.83 от 10.05.2026** — **формализация двух фактически включённых внешних UI-инструментов + двухуровневое решение по runtime motion-библиотекам.** Триггер: пользователь спросил «хочу добавить стек плагинов 21st, framer motion, UI UX max — проанализируй конфликты». Проверка показала: 21st (MCP `magic`) и UI UX Pro Max (skill) уже включены в `~/.claude.json` и `~/.claude/settings.json` соответственно, но в правилах не описаны (любое использование = нарушение R0.2/R10.4 PSR_v1). Framer Motion — React-only runtime-библиотека, не Claude-плагин, физически не работает в Vue. Через цикл brainstorming → 3 варианта → итерации согласовано: формализовать UPM + 21st; для motion — двухуровневая R15-конструкция (framer-motion hard-запрет + motion-v узкое окно по 4 условиям). **PSR_v1 v1.3 → v1.4** (R6/R6.1 расширены на FD/UPM/21st, R10.1 +21st row, R11.5 + R11.6, R0.6 +3 hard-стопа, R13 +9 строк matrix'а, R14 (новое) pipeline UI-генераторов с R14.4 21st pre-check, R15 (новое) motion-системы — R15.1 framer-motion hard-запрет + R15.2 motion-v 4 условия + R15.3 default стойка + R15.7 расширение на gsap/anime/lottie). **Pravila v1.7 → v1.8** (§13 расширен, §13.10 hard-link на R14: использование UPM/21st вне pipeline'а = нарушение §13). **Tooling Прил. Н v1.11 → v1.12** (#31 UPM + #32 21st как off-phase tools; §9.2 motion-runtime denylist). **CLAUDE.md изменения:** §0 cross-refs обновлены (Pravila v1.8, PSR_v1 v1.4, Tooling v1.12); §2 +Animation default stack; §3.3 +#31 UPM +#32 21st строки; §5 п.5 расширен на расширенный пул UI-инструментов; §5 п.12 motion-runtime новый; §6 обновлён (31 формализованных позиций: 19/29 по фазам + 2 off-phase). Через `/claude-md-management:claude-md-improver`.
- **v1.82 от 09.05.2026** — Sprint 1 «Hygiene» Phase D: sync метрик schema v8.10 → v8.11 (97 индексов, 38 RLS после Sprint 1 Phase A `e01caa3`: RLS на impersonation_tokens + 2 FK indices) + Histoire 21/28 → 21/43 (фактическое значение из stage1 аудита) + cross-link на детали FK патчей PSR_v1 в [Plugin_stack_rules_v1.md История версий](docs/Plugin_stack_rules_v1.md#история-версий). Закрывает audit P1-03 (Histoire) + P2-03 (F-K детализация) + post-A метрики. Через `/claude-md-management:claude-md-improver`.
- **v1.81 от 09.05.2026** — Plugin_stack_rules_v1 v1.2 → v1.3 (6 трений второго порядка F–K) + Pravila v1.5 → v1.6 (§13.9 hard-link на R10). **F**: R12 архитектурное → override §4.5 через явный `brainstorming` skill или просьбу «свободно/без вариантов» (Pravila §11.1). **G**: R12 тактическое разделено на «с альтернативами» (A/B/C формат разрешён под user-стиль «а/б») и «без альтернатив» (одна BOLD от FD). **H**: R13 строка про новую UI-фичу разделена — «вне ТЗ И не в Открытые_вопросы» = hard-стоп (Pravila §7), «в рамках MVP-skopa без детализации» = средняя+предположение. **I**: R11.4 «Fallback при технической недоступности уровня» — таблица 6 уровней с маршрутами; недоступность 1–2 = hard-стоп, 36 = мягкий fallback. **J**: R10.4 смягчение формулировки + hard-link через Pravila §13.9 (нарушение R10 = нарушение §13). **K**: R0.1 точный scope «головенства» через таблицу priority chain — Stack головной над уровнями 46 (settings.json, memory, прочие плагины), не над 02 (Pravila §12, Pravila, CLAUDE.md). Через `/claude-md-management:claude-md-improver`.
- **v1.80 от 09.05.2026** — Plugin_stack_rules_v1 v1.1 → v1.2: закрытие 9 проектных перекрытий + принцип-аксиома «stack — головной». **R10** (новое): внешние плагины как инструменты — реестр 11 плагинов с явными ролями (ui-ux-pro-max = резерв-библиотека, claude-md-management = инструмент CLAUDE.md edits, review/security-review/init/simplify = только по явному `/имя`, Boost = служебный слой ниже). **R11** (новое): иерархия 6 источников истины UI/UX — Brandbook → ТЗ+schema → FD → Boost guidelines → ui-ux-pro-max → Vue/Vuetify docs. **R12** (новое): три паттерна дизайн-решений (архитектурное §4.5, тактическое brainstorm/BOLD, стилевое одна идея, тривиальное прямое). **R13** (новое): decision matrix Auto+§12+R0.6 на 14 типов задач × confidence × действие. Только §0 строка PSR_v1; в составе инструментов — без изменений. Через `/claude-md-management:claude-md-improver`.
File diff suppressed because one or more lines are too long
+291 -27
View File
@@ -1,15 +1,15 @@
# Plugin Stack Rules — Superpowers + Frontend Design (v1.3)
# Plugin Stack Rules — Superpowers + Frontend Design (v1.4)
**Дата:** 09.05.2026
**Назначение:** свод правил совместного использования двух плагинов Claude Code в проекте Лидерра — `obra/superpowers` (14 skills) и `anthropics/frontend-design`. Снимает запрет CLAUDE.md §5 п.5 на Frontend Design plugin (действовал до v1.77 включительно). Документ — внутренне непротиворечив: 8 первичных конфликтов закрыты в v1.0 + 5 патчей по реальным трениям A–E в v1.1 + 4 новых правила R10–R13 против перекрытий с другими плагинами в v1.2 + 6 уточняющих патчей F–K по найденным трениям второго порядка в v1.3.
**Дата:** 10.05.2026
**Назначение:** свод правил совместного использования плагинов Claude Code в проекте Лидерра — paired-stack ядро `obra/superpowers` (14 skills) + `anthropics/frontend-design`, плюс расширенный пул UI-инструментов `ui-ux-pro-max` (skill, marketplace `nextlevelbuilder/ui-ux-pro-max-skill`) и `21st.dev Magic MCP` (MCP-сервер `magic`), плюс правила runtime motion-стойки. Снимает запрет CLAUDE.md §5 п.5 на Frontend Design plugin (действовал до v1.77 включительно). Документ — внутренне непротиворечив: 8 первичных конфликтов закрыты в v1.0 + 5 патчей по реальным трениям A–E в v1.1 + 4 новых правила R10–R13 против перекрытий с другими плагинами в v1.2 + 6 уточняющих патчей F–K по найденным трениям второго порядка в v1.3 + 2 новых правила R14 (pipeline внешних UI-генераторов: UPM + 21st Magic MCP) и R15 (motion-системы: framer-motion hard-запрет + motion-v узкое окно по 4 условиям) в v1.4.
**Принцип-аксиома (v1.2, уточнён в v1.3):** **Stack (Superpowers + Frontend Design) — головной при решении любой задачи** в части плагинов и поведенческих слоёв. Stack-gate (R0) — единственная и **первая** точка входа. Все остальные плагины (ui-ux-pro-max, claude-md-management, review, security-review, init, simplify и др.) — **инструменты**, инвокируемые **внутри** stack-flow как подзадачи, не как альтернативы или параллельные решатели. Stack **исполняет** Pravila/CLAUDE.md, а не перебивает их (см. R0.1 для точного scope «головенства»). Другие плагины могут получить работу только по делегированию из stack'а или по явному `/имя-плагина` от пользователя.
**Принцип-аксиома (v1.2, уточнён в v1.3, расширен в v1.4):** **Stack (Superpowers + Frontend Design) — головной при решении любой задачи** в части плагинов и поведенческих слоёв. Stack-gate (R0) — единственная и **первая** точка входа. Все остальные плагины (ui-ux-pro-max, 21st Magic MCP, claude-md-management, review, security-review, init, simplify и др.) — **инструменты**, инвокируемые **внутри** stack-flow как подзадачи, не как альтернативы или параллельные решатели. Stack **исполняет** Pravila/CLAUDE.md, а не перебивает их (см. R0.1 для точного scope «головенства»). Другие плагины могут получить работу только по делегированию из stack'а или по явному `/имя-плагина` от пользователя. Runtime-зависимости проекта (motion-библиотеки и т.п.) подчиняются R15.
**Связанные документы:**
- [CLAUDE.md](../CLAUDE.md) v1.78+ — оперативная карта; §5 п.5 ссылается на этот документ как замену прежнего запрета
- [docs/Pravila_raboty_Claude_v1_1.md](Pravila_raboty_Claude_v1_1.md) v1.5+ — §13 «Frontend Design plugin — paired stack» ссылается сюда
- [docs/Tooling_v8_3.md](Tooling_v8_3.md) v1.10+ — реестр инструментов; #30 Frontend Design отсылает сюда
- [CLAUDE.md](../CLAUDE.md) v1.83+ — оперативная карта; §5 п.5 ссылается на этот документ (расширенный пул UI-инструментов: FD + UPM + 21st), §5 п.12 — на R15 (motion-системы)
- [docs/Pravila_raboty_Claude_v1_1.md](Pravila_raboty_Claude_v1_1.md) v1.8+ — §13 «paired stack + расширенный пул UI-инструментов»; §13.10 hard-link на R14
- [docs/Tooling_v8_3.md](Tooling_v8_3.md) v1.12+ — реестр инструментов; #30 Frontend Design + #31 UPM + #32 21st Magic MCP + §9.2 motion-runtime denylist отсылают сюда
> **Техническая особенность Claude Code:** при первой установке Frontend Design plugin в долгой сессии плагин не появляется в системном списке доступных skills до старта **новой** сессии (новый чат, не reload). Это конструктивная особенность Claude Code (skill list = constant per conversation), не правило и не баг. Файлы плагина доступны на диске сразу, инвокация через `Skill` tool — только в новом чате.
@@ -138,6 +138,9 @@ Stack стоит **ниже** в приоритете, чем:
- Добавление новой технологии в стек (новый фреймворк, новая UI-библиотека, новый шрифт, новая иконографическая библиотека).
- Изменение брендовой палитры/шрифтов — даже одного значения (Teal, Ivory, теало-нуар, Inter, JetBrains Mono).
- Изменение 14 OKLCH-статусов воронки или их slug-маппинга на UI.
- **[v1.4]** Использование 21st Magic MCP (`mcp__magic__21st_magic_component_*`) для генерации компонента из брендового семейства App* (`AppButton`, `AppCard`, `AppDataTable`, `AppDialog` и любых других с префиксом `App` в `resources/js/components/`). Брендовые компоненты проходят полный R12 архитектурный flow.
- **[v1.4]** Использование 21st для генерации компонента, для которого **уже есть Vuetify-эквивалент** (`v-data-table`, `v-text-field`, `v-dialog`, `v-select`, `v-card`, `v-btn` и т.д.) **или существующий компонент** в `resources/js/components/`. Это дублирование стека (нарушение CLAUDE.md §5 п.6 «не два инструмента на одну задачу»).
- **[v1.4]** Установка **motion-v** или любой другой animation runtime библиотеки (`gsap`, `anime.js`, `react-spring`, `lottie-web`, `popmotion`, `@motionone/*` и т.д.) в `package.json` без прохождения R15.2 (а)+(б)+(в)+(г).
В этих ситуациях — обязательный стоп + вопрос пользователю, без попытки «middle confidence» обойти. Auto mode не отменяет hard-стоп.
@@ -258,36 +261,45 @@ TDD применяется **только к фазе 4** (логика). На
---
## Правило 6 — стековый фильтр для Frontend Design
## Правило 6 — стековый фильтр для внешних UI-источников (FD, UPM, 21st)
Frontend Design предполагает дефолтные стеки (React/Tailwind/shadcn). В Лидерре стек — Vue 3 + Vuetify 3 (CLAUDE.md §2). Адаптация на стек проекта — **обязательная внутренняя часть ответа Frontend Design**, не отдельный шаг и не работа другого плагина.
Все внешние UI-источники предполагают дефолтные стеки React/Tailwind/shadcn (FD по умолчанию универсален, но примеры тяготеют к React-экосистеме; UPM держит библиотеку с 10 стеками включая React/Next/Tailwind/shadcn; 21st Magic MCP **по умолчанию генерирует React + Tailwind + shadcn компоненты**). В Лидерре стек — Vue 3 + Vuetify 3 (CLAUDE.md §2). Адаптация на стек проекта — **обязательная внутренняя часть ответа любого из трёх плагинов**, не отдельный шаг и не работа другого плагина.
### 6.0. Универсальная таблица фильтра (применяется ко всем трём плагинам одинаково)
| Что брать (универсально) | Что отфильтровать (стек-зависимо) |
|---|---|
| Принципы (a11y, контраст, фокус, иерархия, spacing-шкала) | Конкретные имена компонентов чужого стека |
| Паттерны (modal-flow, form-validation UX, empty/loading/error states) | Tailwind-классы, shadcn-импорты, JSX (CLAUDE.md §5 п.2) |
| Структуры состояний и переходов | Конкретные библиотеки иконок (у нас Lucide) |
| Структуры состояний и переходов | React imports / hooks (`useState`, `useEffect`, `useRef`, `useMemo`) |
| Цветовые/типографические системы как принципы | Конкретные палитры/шрифты (у нас Forest v8 + Inter/JetBrains Mono) |
| State-машины и переходы | Конкретные библиотеки иконок (у нас Lucide) |
Ответ Frontend Design без выполненной адаптации = **неполный ответ**, возвращается в плагин на доработку. Внешний пост-процессинг другим плагином не предусмотрен.
Ответ внешнего плагина без выполненной адаптации = **неполный ответ**, возвращается в плагин на доработку. Внешний пост-процессинг другим плагином не предусмотрен — каждый плагин сам обязан выдать стек-совместимый материал.
### 6.1. Hard-override (этот проект)
**Per-plugin specifics:**
`SKILL.md` плагина Frontend Design содержит директивные «NEVER» в отношении ряда брендовых решений Лидерры. Эти рекомендации **полностью игнорируются** — в проекте они зафиксированы как источники истины:
- **Frontend Design** (`anthropics/frontend-design`): фильтр применяется к фразеологии плагина; типичные находки — JSX-снимки, Tailwind-классы, shadcn `<Button>`/`<Dialog>`. Конверт: JSX → Vue SFC template, Tailwind → Vuetify utility / inline CSS, shadcn → Vuetify-эквивалент.
- **UI UX Pro Max** (skill `ui-ux-pro-max`): библиотека стилей + палитр + UX-гайдлайнов. Фильтр срезает 6 из 10 стеков (React, Next, Svelte, SwiftUI, React Native, Flutter, Tailwind, shadcn) — оставляем Vue + HTML/CSS как опорные. Конкретные палитры/шрифты из библиотеки **не переносим** (R11.3 запрет инверсии иерархии); берём только UX-принципы.
- **21st Magic MCP** (`mcp__magic__21st_magic_component_*`): генератор по умолчанию выдаёт **React + Tailwind + shadcn**. Фильтр обязателен **до любого использования** сгенерированного кода. Сгенерированный JSX никогда не коммитится в `resources/js/` напрямую — только после полного конверта (см. R14.4).
| Артефакт | Что говорит SKILL.md плагина | Что у нас (источник истины) |
### 6.1. Hard-override (этот проект, применяется к FD/UPM/21st)
`SKILL.md` плагина Frontend Design содержит директивные «NEVER» в отношении ряда брендовых решений Лидерры. UPM держит библиотеку 161 палитры + 57 шрифтовых пар + 50+ aesthetic-стилей; 21st Magic MCP по умолчанию выдаёт trendy-стиль (часто dark mode + gradients + неоновые акценты). Все эти рекомендации **полностью игнорируются** — в проекте они зафиксированы как источники истины:
| Артефакт | Что говорят внешние плагины | Что у нас (источник истины) |
|---|---|---|
| Шрифт UI-текста | «NEVER use Inter, Roboto, Arial, system fonts» (overused) | **Inter** — primary UI font ([BRANDBOOK_v2 §4.1](../liderra_v8_handoff/docs/BRANDBOOK_v2.md)) с axis `opsz` 14..32 |
| Шрифт numerics/code | | **JetBrains Mono** с feature `tnum` (BRANDBOOK_v2 §4.1) |
| Палитра primary | «Avoid timid palettes» (бери жирные, неожиданные) | **Teal `#0F6E56`** (Forest, BRANDBOOK_v2 §3.6) — неоспариваемый |
| Палитра background | «Avoid solid colors, add atmosphere/textures/gradients» | **Ivory `#F6F3EC`** — однородный page bg (Forest) |
| Шрифт UI-текста | FD: «NEVER use Inter, Roboto, Arial, system fonts» (overused). UPM: 57 шрифтовых пар на выбор. 21st: trendy display-шрифты | **Inter** — primary UI font ([BRANDBOOK_v2 §4.1](../liderra_v8_handoff/docs/BRANDBOOK_v2.md)) с axis `opsz` 14..32 |
| Шрифт numerics/code | UPM: разные mono-шрифты | **JetBrains Mono** с feature `tnum` (BRANDBOOK_v2 §4.1) |
| Палитра primary | FD: «Avoid timid palettes» (бери жирные, неожиданные). UPM: 161 палитра. 21st: trendy bright accents | **Teal `#0F6E56`** (Forest, BRANDBOOK_v2 §3.6) — неоспариваемый |
| Палитра background | FD: «Avoid solid colors, add atmosphere/textures/gradients». 21st: gradient-backgrounds по умолчанию | **Ivory `#F6F3EC`** — однородный page bg (Forest) |
| Палитра sidebar | — | **Теало-нуар `#012019`** (Forest sidebar) |
| Aesthetic направление | «Bold maximalism / brutalism / retro-futuristic / маx тематика» | **Restrained / minimal Forest** — спокойный тон, без brutalism/maximalism |
| Иконки | | **Lucide** (CLAUDE.md §2) |
| Aesthetic направление | FD: «Bold maximalism / brutalism / retro-futuristic». UPM: 50+ стилей (glassmorphism/claymorphism/neumorphism/brutalism). 21st: trendy/playful по умолчанию | **Restrained / minimal Forest** — спокойный тон, без brutalism/maximalism/glassmorphism/неонов |
| Иконки | UPM: 25 иконографических наборов; 21st: lucide-react / heroicons | **Lucide** (CLAUDE.md §2), Vue-обёртка |
| Статусы воронки | — | 14 OKLCH-статусов из [db/schema.sql:2076](../db/schema.sql#L2076), мапить через slug |
| Brand направление в целом | «Bold aesthetic direction», «UNFORGETTABLE differentiation» | **Forest v8** как зафиксированная эстетическая платформа — отклонения только через изменение брендбука |
| Brand направление в целом | FD: «Bold aesthetic direction», «UNFORGETTABLE differentiation»; UPM/21st: множественные trendy-направления | **Forest v8** как зафиксированная эстетическая платформа — отклонения только через изменение брендбука |
**Правило применения hard-override:** при обработке ответа Frontend Design — даже если плагин использует категоричные «NEVER» / «NEVER use X» / «AVOID Y» — для пунктов из таблицы 6.1 эти запреты **полностью игнорируются**. Брендовый фундамент Forest приоритетнее любой стилевой эстетики плагина. Плагин остаётся ценен на уровне принципов, паттернов, состояний, ритма spacing — то есть в зоне таблицы 6 (универсальное).
**Правило применения hard-override:** при обработке ответа FD / UPM / 21st — даже если плагин использует категоричные «NEVER» / «NEVER use X» / «AVOID Y» или предлагает альтернативную палитру/шрифт/aesthetic — для пунктов из таблицы 6.1 эти рекомендации **полностью игнорируются**. Брендовый фундамент Forest приоритетнее любой стилевой эстетики любого внешнего плагина. Плагины остаются ценны на уровне принципов, паттернов, состояний, ритма spacing, UX-флоу — то есть в зоне таблицы 6.0 (универсальное).
При обнаружении нового потенциального hard-override (плагин противоречит ещё какому-то источнику истины проекта) — добавлять строку в таблицу 6.1 через `/claude-md-management:claude-md-improver` и bump PSR_v1 минор-версии.
@@ -328,6 +340,13 @@ Frontend Design предполагает дефолтные стеки (React/Ta
| Запрос на правку существующего `.vue` файла | UI-фича + лёгкое возвращение (R4) |
| Hard-стоп триггер R0.6 сработал в Auto mode | стоп + вопрос пользователю, Auto mode не отменяет hard-стоп |
| §12 Pravila hard rule «Superpowers first» противоречит R1 «Frontend Design только» | **§12 побеждает над R1 для §12.2-задач**: Superpowers инвокируется первым; если задача чисто визуальная по артефакту — после первой инвокации skill сам передаёт работу Frontend Design (skill не пишет визуал, поэтому это не override) |
| **[v1.4]** Хочется использовать UPM **параллельно с FD** на одной фазе | R10.1 + R14.5 — последовательно, не параллельно. UPM — fallback / источник материала, FD — решатель |
| **[v1.4]** Хочется использовать 21st **параллельно с UPM** | R14.5 — один генератор на задачу. Если кажется что нужны оба — задача декомпозируется |
| **[v1.4]** UPM-палитра «выглядит лучше» Forest | R11.3 запрет инверсии иерархии + R6.1 hard-override. Forest — закон, не предложение |
| **[v1.4]** 21st сгенерировал готовый JSX-компонент с Tailwind, можно ли просто импортировать | **нет**, R14.4 требует полный pipeline: R6.0 → R6.1 → FD → возврат |
| **[v1.4]** «Поставим motion-v, у нас в Vuetify не хватает spring-physics» | без письменного кейса из ТЗ + категории (б) + Brandbook approval (в) + R12 flow (г) — R15.2 не удовлетворён, hard-стоп R0.6 пункт 11 |
| **[v1.4]** «Поставим framer-motion, у других проектов работает» | R15.1 hard-запрет. React-only физически. Не отменяется live-командой |
| **[v1.4]** Для анимации список задача — какой слой? | R11.6: 1 (Vue native `<Transition>`) → 2 (Vuetify) → 3 (CSS) → 4 (View Transitions). На уровне 1 уже закрывается типичный case |
---
@@ -357,7 +376,8 @@ Stack — **головной**. Все плагины вне stack'а — **ин
| Плагин | Роль | Когда инвокировать |
|---|---|---|
| **ui-ux-pro-max** | резервная UI-библиотека (50+ стилей, 161 палитра, 99 UX-гайдлайнов, 25 типов графиков) | **только** когда Frontend Design выдал «не знаю» / не покрывает узкоспецифический вопрос (типичные случаи: chart-стек, экзотические типографические пары, региональные UX-паттерны). Активируется **внутри** фазы 2 R2 как fallback к FD, не параллельно |
| **ui-ux-pro-max** *(skill, marketplace `nextlevelbuilder/ui-ux-pro-max-skill`)* | резервная UI-библиотека (50+ стилей, 161 палитра, 99 UX-гайдлайнов, 25 типов графиков, 10 стеков). Не источник истины (R11 уровень 5) | (1) когда Frontend Design выдал «не знаю» / не покрывает узкоспецифический вопрос (типичные случаи: chart-стек, экзотические типографические пары, региональные UX-паттерны); **(2) [v1.4]** когда в фазе 1 R2 нужен «третий вариант» для архитектурного решения R12 (см. R11.5). Активируется **внутри** R2 как fallback / источник материала, не параллельно с FD |
| **21st.dev Magic MCP** *(MCP-сервер `magic`, конфиг в `~/.claude.json`, deferred tools `mcp__magic__21st_magic_component_*` + `logo_search`)* | **генератор стартовых шаблонов** для UI-компонентов, отсутствующих в Vuetify и `resources/js/components/`. Не источник истины, не решатель, не закрыватель задачи | (1) задача = UI-фича по R1; (2) нужный паттерн **отсутствует** в Vuetify-наборе и `resources/js/components/`; (3) задача **не попадает** в R0.6 hard-стоп (не брендовый App*-компонент, не изменение токенов, не cross-cutting); (4) FD на фазе 2 R2 принял решение «нужен кастомный компонент». Активируется на **фазе 5 R2** (визуальная сборка) как **подзадача**: генерация черновика → R6.0 фильтр → R6.1 hard-override → FD адаптация → возврат в фазу 5. Полный pipeline — R14.4 |
| **claude-md-management** | инфраструктурный плагин для CLAUDE.md edits (`claude-md-improver` + `revise-claude-md`) | **обязательно** при любом изменении CLAUDE.md внутри stack-flow (выполнение CLAUDE.md §5 п.10). Не альтернатива stack'у, а инструмент внутри stack-фазы «реализация» |
| **review** | code review tool | **только** при явном `/review` от пользователя. Дефолт код-ревью — Superpowers `requesting-code-review` (R5) |
| **security-review** | security audit tool | **только** при явном `/security-review`, либо в фазе 3 проекта (Semgrep). Дефолт security-проверка — Superpowers + Semgrep MCP (Tooling §3.4 фаза 3) |
@@ -461,6 +481,38 @@ Stack — **головной**. Все плагины вне stack'а — **ин
В **этой** сессии (после установки FD-плагина 09.05.2026): уровень 3 в текущем разговоре «молчит», работаю по уровням 1, 2, 4, 5, 6. R2 фазы 2/5/7 (FD-зависимые) — частично ослаблены до открытия нового чата.
### 11.5. Активация UPM в архитектурном решении R12 (v1.4)
Активация уровня 5 (UPM) разрешена **не только** при «молчании уровней 1–4», но и при **архитектурном решении R12**, где требуется ≥3 различающихся варианта (A/B/C) по Pravila §4.5: один из вариантов **может** исходить из UPM-библиотеки. Это снимает рестриктивный «only when silent» и даёт UPM роль на **фазе 1 R2** (brainstorming) для архитектурных решений.
Ограничение: даже в этом случае конечное решение принимается через **уровни 12** (Brandbook + ТЗ); UPM остаётся **материалом**, не решением (R10.2). UPM не может «выиграть» против Brandbook через факт «вариант UPM красивее» — иерархия R11 остаётся законом (R11.3).
### 11.6. Иерархия motion-источников (внутри уровня визуального дизайна, v1.4)
Параллельная под-иерархия для motion (анимаций / transition'ов / gesture'ов). Применяется при ЛЮБОЙ задаче на анимацию — последовательно сверху вниз; решение принимается на первом уровне, который покрывает кейс:
```
1. BRANDBOOK (motion-tokens, если/когда добавятся в v3+)
2. ТЗ v8.5 / Открытые_вопросы (явные motion-требования)
3. Vue 3 native <Transition> + <TransitionGroup>
4. Vuetify 3 transitions
(v-fade, v-slide-y, v-slide-x, v-scale, v-expand, v-dialog-transition)
5. CSS @keyframes + transition + prefers-reduced-motion
6. View Transitions API (с feature-detection, Chrome 111+ / Safari 18+)
7. motion-v (Vue port framer-motion) — ТОЛЬКО при удовлетворении R15.2 (а)+(б)+(в)+(г)
```
**framer-motion — вне иерархии** (запрещён R15.1 — React-only).
**gsap / anime.js / react-spring / lottie-web** — также вне иерархии без явного R15-аналога активации (R0.6 пункт 11 hard-стоп).
Большинство motion-задач закрываются на уровнях 3–4 без вынесения в R12 архитектурное решение. Уровни 5–6 — для произвольных кастомных анимаций. Уровень 7 — последняя инстанция, требует R15-flow.
---
## Правило 12 — три паттерна дизайн-решений по типу решения
@@ -517,6 +569,15 @@ Stack — **головной**. Все плагины вне stack'а — **ин
| Тривиальная синхронизация (опечатка, версия, кросс-ссылка) | высокая | **действую без stack** (R0.4.A), без §12, без R0.6 |
| Read-only исследование, grep, git log | высокая | **действую без stack** (R0.4.A) |
| Справочный ответ без действия над кодом | высокая | **действую без stack** (R0.4.A); §12 не применяется (§12.3) |
| **[v1.4]** UI-фича из ТЗ, нужен паттерн **отсутствующий в Vuetify+`resources/js/components/`**, **не брендовый** | средняя | **действую**, инвокирую R14 pipeline: фаза 5 → 21st черновик → R6.0/R6.1 → FD адаптация |
| **[v1.4]** UI-фича из ТЗ, паттерн **есть в Vuetify** | высокая | **используем Vuetify**, 21st **не вызывается** (R0.6 пункт 10 hard-стоп) |
| **[v1.4]** UI-фича из ТЗ, паттерн = **брендовый компонент App*** | низкая | **hard-стоп R0.6 пункт 9** + 3 варианта по §4.5 (R12 архитектурное), 21st не вызывается |
| **[v1.4]** Архитектурное решение R12, FD дал 1–2 варианта, нужен третий | средняя | **действую**, фаза 1 R2 → подключить UPM (R11.5) для третьего варианта |
| **[v1.4]** Анимация на экране, простая (fade/slide/scale/expand) | высокая | **действую**, использую Vuetify transition или Vue `<Transition>` (R11.6 уровни 34) |
| **[v1.4]** Анимация средней сложности (custom keyframes, hover-state с timing) | высокая | **действую**, использую CSS `@keyframes` (R11.6 уровень 5) |
| **[v1.4]** Cross-route transition (hero-transition при переходе между экранами) | средняя | **фиксирую предположение**: «использую View Transitions API с fallback на Vue `<Transition>` для не-Chromium»; если кейс требует motion-v → R15.2 |
| **[v1.4]** Запрос «давай добавим framer-motion / motion-v / gsap / lottie» **без явного кейса** | низкая | **hard-стоп R0.6 пункт 11** + R15.2 формальная проверка триггеров; нельзя действовать в Auto mode |
| **[v1.4]** Кейс из ТЗ требует gesture с физикой (drag с инерцией, swipe с pinch) | средняя | **действую**, R15.2 запускает brainstorming + 3 варианта (motion-v vs vanilla pointer events vs CSS scroll-snap); презентую таблицу |
### 13.1. Принципы matrix'а
@@ -536,16 +597,203 @@ Memory feedback: пользователь предпочитает коротк
---
## Правило 14 — Pipeline внешних UI-генераторов (UPM + 21st Magic MCP, v1.4)
**Назначение:** одно правило связывает R6.0 / R6.1 / R10.1 / R11.5 / R0.6 в исполнимый pipeline для двух новых UI-инструментов. Снимает риск ad-hoc использования вне stack-flow.
### 14.1. Триггер активации pipeline'а
Pipeline активируется при одновременном выполнении:
- задача = **UI-фича** по R1 (логика + визуал) ИЛИ чисто визуальная задача из R1;
- нужный паттерн **не покрыт уровнями 1–4 R11** (Brandbook самодостаточно, ТЗ-требование выполнимо без расширения, FD-самодостаточно, Boost guidelines покрывают паттерн);
- задача **не попадает** в R0.6 hard-стоп (особенно пункты 9, 10, 11 v1.4).
### 14.2. Шаги pipeline'а
```
Запрос
┌─────────────────────────────────────┐
│ Stack-gate R0 + классификация R1 │
└─────────────────────────────────────┘
▼ (UI-фича)
Фаза 1: brainstorming (Superpowers)
├── архитектурное R12? → подключить UPM на этой фазе (R11.5) для третьего варианта
└── продолжить
Фаза 2: visual design (FD)
├── FD пытается решить
│ ├── решил → дальше фаза 3
│ └── не покрыл / нужны альтернативы → R14.3 (UPM fallback)
Фаза 3: writing-plans (Superpowers)
Фаза 4: TDD логика (Superpowers)
Фаза 5: визуальная сборка
├── FD ассемблирует на основе фазы 2
├── если нужен черновик template для нестандартного non-brand non-Vuetify
│ компонента → R14.4 (21st Magic MCP)
Фаза 6: verification логики (Superpowers verification-before-completion)
Фаза 7: verification визуала (FD UI-чеклист) + Pa11y проход (R7) на deployable
Фаза 8: review по аспектам (R5 — оба плагина параллельно)
```
### 14.3. R14.3 — подключение UPM (в фазах 1 или 2)
- **Триггер активации (фаза 2):** FD выдал «не покрывает» / «не знаю» / нужна вторая итерация для сравнения.
- **Триггер активации (фаза 1):** R12 архитектурное решение, нужен «третий вариант» (R11.5).
- **Что делает:** отдаёт принципы / палитры (как принципы, не как готовые наборы) / типографические пары (как принципы) / chart-паттерны / UX-гайдлайны.
- **Обязательные обработки до использования:**
1. R6.0 фильтр стека (срезать React/Tailwind/shadcn материалы; оставить Vue + HTML/CSS-уровневые принципы);
2. R6.1 hard-override Forest (палитра/шрифты/иконки/aesthetic — Forest, не UPM-предложения);
3. R11.3 запрет инверсии (UPM-палитра НЕ заменяет Brandbook).
- **Решение остаётся за FD** (R10.2 «UPM read-only для решений»).
- **Не параллельно с FD** — последовательно.
- **Не закрывает задачу** (R7 не упоминает UPM).
### 14.4. R14.4 — подключение 21st Magic MCP (в фазе 5)
- **Триггер активации:** FD на фазе 2 принял решение «нужен кастомный компонент», для которого нет ни Vuetify-эквивалента, ни существующего компонента в `resources/js/components/`.
- **Pre-check R0.6 пункты 9–10 ОБЯЗАТЕЛЕН до вызова `mcp__magic__*` tool:**
- Брендовый компонент App*? → **hard-стоп**, R12 архитектурное (3 варианта по §4.5).
- Vuetify-эквивалент существует? → **hard-стоп**, использовать Vuetify.
- Существующий компонент в `resources/js/components/`? → **hard-стоп**, использовать его.
- Если на все три «нет» → переходим к генерации.
- **Шаги генерации:**
1. Вызов `mcp__magic__21st_magic_component_builder` (или `_inspiration` / `_refiner`) с описанием паттерна;
2. Сгенерированный черновик (по умолчанию React + Tailwind + shadcn) → через **R6.0 фильтр** (JSX → Vue SFC template, Tailwind → utility-CSS / Vuetify, shadcn → Vuetify-эквивалент, React imports/hooks → Vue Composition API);
3. → через **R6.1 hard-override** (палитра/шрифты/иконки → Forest, Lucide);
4. → **FD адаптирует** под фазу 5 (применяет принципы из фазы 2 к стек-совместимому скелету);
5. → возврат в фазу 5 stack-flow для финальной сборки.
- **Сгенерированный черновик НЕ коммитится в неизменном виде** — только после полного pipeline'а.
- **Не закрывает задачу** (R7 не упоминает 21st).
- **Pa11y обязателен** на deployable артефакт (R7).
### 14.5. Запрет дублирования
Одна задача = один генератор. UPM и 21st **не запускаются на одной фазе**:
- если UPM выдал материал и FD адаптировал — 21st не вызывается;
- если 21st выдал черновик — UPM на этом этапе не нужен.
Если кажется, что нужны оба — это сигнал, что задача декомпозируется (например, на два разных компонента), и каждая под-задача проходит pipeline отдельно.
### 14.6. Live-override
- `/ui-ux-pro-max` — прямой вызов UPM (R0.4.B, на одно действие). R6.0 фильтр и R6.1 override остаются обязательными.
- «вызови magic» / «через 21st» / «дай шаблон через magic» — прямой вызов 21st (R0.4.B). R6.0 + R6.1 + R0.6 пункты 910 pre-check остаются обязательными.
В обоих случаях live-override снимает только требование stack-gate первенства (R0.2), но не отменяет фильтрацию и hard-override Forest.
### 14.7. Hard-link на §13 Pravila
Нарушение R14 (использование UPM или 21st вне pipeline'а — без R6.0 фильтра, без R6.1 override, без pre-check R0.6, без FD-адаптации) = нарушение **§13 Pravila** через цепочку R10.4 → §13.9 → §13. Фиксируется в feedback memory аналогично §12.7 / §13.9.
---
## Правило 15 — Motion-системы (animation libraries, v1.4)
**Назначение:** двухуровневое решение по runtime-библиотекам анимаций. Уровень 1 — постоянный hard-запрет архитектурно несовместимых. Уровень 2 — узкое легальное окно для совместимых при выполнении 4 условий.
### 15.1. framer-motion — запрещено всегда (hard-запрет)
`framer-motion` — React-only runtime библиотека (использует React fiber-tree, hooks, JSX). В Vue + Vuetify стеке физически не работает. Установка через npm бессмысленна — мёртвый код в `node_modules`.
Hard-запрет, **не отменяется** ни Auto mode, ни live-командой пользователя уровня R0.4.B. Единственный путь снятия — **смена базового frontend-стека** (изменение CLAUDE.md §2), что само по себе — R0.6 hard-стоп «изменение технологии в стек» с brainstorming + 3 варианта §4.5 + явное согласование Brandbook update.
### 15.2. motion-v — условно разрешено по 4 условиям триггера
`motion-v` = Vue 3 порт API framer-motion (отдельный пакет от того же maintainer'а Motion, ~30 KB gzipped). Технически совместим со стеком, но добавление в проект — R0.6 hard-стоп «новая технология в стек» (пункт 11 v1.4).
Активация motion-v разрешена **ТОЛЬКО при одновременном выполнении ВСЕХ четырёх условий**:
**(а) Письменный кейс.** Конкретный UX-кейс из ТЗ v8.5 ИЛИ из Открытые_вопросы_*.md (закрытый пользователем), который НЕ покрывается дефолтной motion-стойкой R11.6 уровни 3–6. Без явного кейса в письменном источнике — **нельзя**, даже если задача кажется подходящей.
**(б) Категория оправданности.** Кейс попадает в одну из категорий, где motion-v реально оправдан:
- gesture-driven UI с физикой (drag с инерцией, swipe, pinch);
- shared-layout transitions между route'ами (hero-transition);
- spring-physics на интерактивных контролах (где CSS-easings демонстративно недостаточно).
Все остальные категории (fade, slide, scale, expand, hover, простые route-transitions) — **уровни 34 R11.6** их закрывают, motion-v избыточен.
**(в) Brandbook approval.** Brandbook v2 (или последующий) явно допускает motion-rich направление для затронутого экрана. По умолчанию Forest = restrained (R6.1) — любое отклонение требует **Brandbook-update пользователем** (новая запись в [BRANDBOOK_v2 §X](../liderra_v8_handoff/docs/BRANDBOOK_v2.md) о motion-направлении или явное изменение R6.1 hard-override).
**(г) Полный R12 архитектурный flow.** Прохождение:
- `brainstorming` (Superpowers) — фаза 1;
- 3 варианта решения (Pravila §4.5): «motion-v vs CSS @keyframes vs View Transitions API» с честной сравнительной таблицей (bundle size / поддержка браузеров / совместимость с SSR / кривая обучения / Forest-совместимость);
- явное согласование пользователем («делай», «вариант X»).
### 15.3. Default motion stack (без motion-v) — действует всегда по умолчанию
При ЛЮБОЙ задаче на анимацию — сначала пробуем эти слои в порядке (по R11.6):
1. Vue 3 native `<Transition>` / `<TransitionGroup>` (enter/leave hooks, FLIP через TransitionGroup, JS-callbacks);
2. Vuetify 3 transitions (`v-fade-transition`, `v-slide-y-transition`, `v-slide-x-transition`, `v-scale-transition`, `v-expand-transition`, `v-dialog-transition`);
3. CSS `@keyframes` + `transition` + поддержка `prefers-reduced-motion` (произвольные анимации, GPU-acceleration через `transform`/`opacity`);
4. View Transitions API (Chrome 111+, Safari 18+) — для cross-document / cross-route переходов с feature-detection.
Эти четыре слоя — источники истины для motion (R11.6 уровни 36). **Большинство задач закрываются на уровне 1 или 2**, без motion-v и без View Transitions.
### 15.4. Триггер «дефолт не покрывает» — формальная проверка
Прежде чем поднимать вопрос motion-v, требуется **явная фиксация одной строкой**:
> «Попробовал слои 1–4 R11.6 (R15.3). Не закрывает потому что [конкретная техническая причина]. Поднимаю R15.2 для активации motion-v.»
Без этой фиксации R15.2 (а)+(б) **не считаются удовлетворёнными**.
**Типичные ложные триггеры (НЕ повод для motion-v):**
- «хочется живее» — субъективно, не кейс;
- «в дизайне у других CRM это есть» — не источник истины;
- «framer-motion смотрится круто» — Forest = restrained (R6.1);
- «спросил пользователя — он сказал давай» — устной просьбы недостаточно, нужен письменный кейс (а).
### 15.5. Hard-запрет дублирования
После активации motion-v (если когда-либо) — Vuetify transitions и Vue native `<Transition>` **не удаляются** из проекта. motion-v применяется **ТОЛЬКО к экранам/компонентам, прошедшим R15.2**; всё остальное продолжает работать на дефолтной стойке R15.3. Это снимает риск ad-hoc «давайте перепишем всё на motion».
### 15.6. Live-override
- **framer-motion:** live-override **запрещён** (R15.1 hard).
- **motion-v:** live-override **запрещён без прохождения R15.2** — пользователь может сказать «через motion-v», но это всё равно проходит через brainstorming + 3 варианта (R15.2 пункт г).
Это исключение из общего R0.4.B — обоснование: установка runtime-зависимости ≠ инвокация плагина, у неё другой класс последствий (bundle size, CI, lock-file, browser compat).
### 15.7. Аналогичные правила для других animation runtime библиотек
`gsap`, `anime.js`, `react-spring` (React-only), `lottie-web`, `popmotion`, `@motionone/dom` и любые другие animation runtime библиотеки — попадают под **R0.6 пункт 11 hard-стоп**. Активация — по аналогии с R15.2 (4 условия + R12 flow).
`react-spring` дополнительно — **R15.1 аналог** (React-only, физически не работает в Vue стеке).
---
## Финальная формула
> **Любая задача → Правило 0 (gate, stack-головной) → Правило 1 (классификация по типу) → Правило 9 (решение, ≤2 итерации) → Правило 13 (decision matrix по уверенности) → Правило 2 (фаза UI-фичи) → исполнение по Правилам 3, 4, 6 → завершение по Правилу 7 → ревью по Правилу 5. Источники истины — Правило 11. Паттерны решений — Правило 12. Координация с не-stack плагинами — Правило 10. Тай-брейкеры — Правило 8.**
> **Любая задача → Правило 0 (gate, stack-головной) → Правило 1 (классификация по типу) → Правило 9 (решение, ≤2 итерации) → Правило 13 (decision matrix по уверенности) → Правило 2 (фаза UI-фичи) → исполнение по Правилам 3, 4, 6 → если нужен внешний UI-генератор: Правило 14 pipeline (UPM на фазах 1/2, 21st на фазе 5) → если нужна анимация: Правило 15 (default стойка R15.3, motion-v только по 4 условиям R15.2) → завершение по Правилу 7 → ревью по Правилу 5. Источники истины — Правило 11 (UI/UX) + R11.6 (motion). Паттерны решений — Правило 12. Координация с не-stack плагинами — Правило 10. Тай-брейкеры — Правило 8.**
---
## Свойства свода
- **Полнота:** каждая задача попадает в одну ветку Правила 1, каждая фаза имеет одного владельца (Правило 2), каждый артефакт ревью — один аспект (Правило 5), каждый тип закрытия — один gate (Правило 7), каждое дизайн-решение — один паттерн (Правило 12), каждая комбинация Auto+§12+R0.6 — одна строка matrix'а (Правило 13).
- **Головенство stack'а (v1.2 принцип-аксиома):** stack — головной при решении любой задачи. Внешние плагины — инструменты, инвокируемые внутри stack-flow (Правило 10). Иерархия источников UI — закон, не гайдлайн (Правило 11).
- **Полнота:** каждая задача попадает в одну ветку Правила 1, каждая фаза имеет одного владельца (Правило 2), каждый артефакт ревью — один аспект (Правило 5), каждый тип закрытия — один gate (Правило 7), каждое дизайн-решение — один паттерн (Правило 12), каждая комбинация Auto+§12+R0.6 — одна строка matrix'а (Правило 13), каждый внешний UI-генератор имеет одно место в pipeline (Правило 14), каждая motion-задача — один слой R11.6 (Правило 15).
- **Головенство stack'а (v1.2 принцип-аксиома, расширена в v1.4):** stack — головной при решении любой задачи. Внешние плагины (включая UPM и 21st Magic MCP) — инструменты, инвокируемые внутри stack-flow (Правило 10) через pipeline R14. Иерархия источников UI — закон, не гайдлайн (Правило 11). Runtime-зависимости (motion) подчиняются R15.
- **Непротиворечивость:** все найденные конфликты закрыты:
- **v1.0 (8 первичных):**
1. «Активны» → «подключены к gate» (0.1).
@@ -559,13 +807,29 @@ Memory feedback: пользователь предпочитает коротк
- **v1.1 (5 трений AE):** hard-override (6.1), дезамбигуация (R1), Pa11y gate на deployable (R7), runtime-заметка (intro), hard-стоп список (R0.6).
- **v1.2 (4 проектных перекрытия):** ui-ux-pro-max + другие плагины как tools (R10), иерархия источников истины UI (R11), три паттерна дизайн-решений (R12), decision matrix Auto/§12/R0.6 (R13).
- **v1.3 (6 трений второго порядка F–K):** R12 override через `brainstorming` (F); R12 тактическое разделено на «с альтернативами»/«без» для user-стиля «а/б» (G); R13 новая фича вне ТЗ — hard-стоп вместо предположения (H); R11.4 fallback при недоступности уровней источников (I); R10.4 смягчение + hard-link в Pravila §13.9 (J); R0.1 уточнение scope «головенства» через таблицу priority chain (K).
- **v1.4 (формализация UPM + 21st Magic MCP + motion-системы):** R6 расширен на FD/UPM/21st (универсальная таблица 6.0); R6.1 hard-override Forest расширен на все три плагина; R10.1 +1 строка для 21st + ослабление UPM до v1.4 двух-триггера (FD молчит ИЛИ R12 третий вариант); R11.5 активация UPM в R12; R11.6 параллельная иерархия motion-источников (7 уровней); R0.6 +3 hard-стопа (брендовый App* через 21st, Vuetify-эквивалент через 21st, motion-v без R15.2); R13 +9 строк matrix'а; R14 новое правило (pipeline UPM + 21st с R14.3/R14.4 + R14.7 hard-link на §13 Pravila); R15 новое правило (R15.1 framer-motion hard-запрет, R15.2 motion-v 4 условия (а)+(б)+(в)+(г), R15.3 default стойка, R15.4 формальная проверка триггера, R15.5 hard-запрет дублирования, R15.6 live-override запрет, R15.7 расширение на gsap/anime/lottie); R8 +7 тай-брейкеров; финальная формула расширена.
- **Действенность:** решение — за 3 вопроса (Правило 9) + matrix Правила 13; если не сработало — явный fallback на пользователя (0.6).
- **Симметрия:** оба плагина stack'а имеют равные права на закрытие задач в своём домене (7), на ревью в своём аспекте (5), на отмену через live-команду (0.4.B). **Асимметрия** введена только между stack'ом и не-stack плагинами: stack головной, остальные — инструменты (R10).
- **Симметрия:** оба плагина stack'а имеют равные права на закрытие задач в своём домене (7), на ревью в своём аспекте (5), на отмену через live-команду (0.4.B). **Асимметрия** введена только между stack'ом и не-stack плагинами: stack головной, остальные — инструменты (R10/R14). Внутри пула «инструменты» — UPM и 21st имеют разные роли (UPM = библиотека принципов; 21st = генератор кода) и разные точки активации в pipeline (R14.3 фазы 1/2 vs R14.4 фаза 5).
---
## История версий
- **v1.4 от 10.05.2026** — формализация двух новых внешних UI-инструментов (UI UX Pro Max + 21st.dev Magic MCP, оба фактически были включены в `~/.claude/settings.json` и `~/.claude.json` без правил) + двухуровневое решение по runtime motion-библиотекам (framer-motion / motion-v / gsap / anime.js / lottie-web):
- **R6 → R6.0** «Универсальная таблица фильтра» (применяется к FD, UPM, 21st одинаково; per-plugin specifics вынесены отдельным абзацем).
- **R6.1 расширен** — hard-override Forest применяется к выводу всех трёх плагинов (а не только FD). Таблица из 9 артефактов брендового фундамента остаётся той же; в колонку «Что говорят внешние плагины» добавлены реакции UPM (161 палитра/57 шрифтов/50+ стилей) и 21st (trendy-default).
- **R10.1 +1 строка** для 21st (роль «генератор стартовых шаблонов»); ослабление UPM (раньше «только когда FD молчит» → теперь «FD молчит ИЛИ R12 третий вариант»).
- **R11.5 (новое)** — активация UPM в R12 архитектурном решении на фазе 1 R2 (источник «третьего варианта» по §4.5). Снимает рестриктивный «only when silent».
- **R11.6 (новое)** — параллельная под-иерархия 7 motion-источников: Brandbook → ТЗ → Vue native → Vuetify → CSS → View Transitions API → motion-v (последняя только по R15.2). framer-motion вне иерархии (R15.1).
- **R0.6 +3 hard-стопа:** (9) 21st для брендового App*-компонента; (10) 21st для компонента с Vuetify-эквивалентом; (11) motion-v / gsap / anime.js / lottie-web без R15.2.
- **R13 +9 строк matrix'а:** 4 строки UI-фич с/без 21st-pipeline + 1 строка R12 третий вариант UPM + 5 строк motion-сценариев (простая/средняя/cross-route/произвольный motion-runtime/gesture).
- **R14 (новое правило)** — Pipeline внешних UI-генераторов: R14.1 триггер активации, R14.2 шаги (схема), R14.3 UPM в фазах 1/2, R14.4 21st в фазе 5 с pre-check R0.6 + R6.0 + R6.1 + FD адаптация, R14.5 запрет дублирования, R14.6 live-override (с обязательным сохранением фильтров), R14.7 hard-link на §13 Pravila через R10.4 → §13.9.
- **R15 (новое правило)** — Motion-системы: R15.1 framer-motion hard-запрет (React-only архитектурно), R15.2 motion-v 4 условия (а) письменный кейс из ТЗ (б) категория оправданности — gesture/shared-layout/spring (в) Brandbook approval (г) полный R12 flow + brainstorming + 3 варианта, R15.3 default стойка (Vue native + Vuetify + CSS + View Transitions), R15.4 формальная проверка «дефолт не покрывает» одной строкой, R15.5 hard-запрет дублирования (motion-v не вытесняет Vuetify transitions), R15.6 live-override запрещён без R15.2, R15.7 аналогичные правила для gsap/anime.js/lottie-web/react-spring.
- **R8 +7 тай-брейкеров:** UPM параллельно с FD, 21st параллельно с UPM, UPM-палитра «лучше» Forest, 21st JSX import напрямую, motion-v без письменного кейса, framer-motion «у других работает», какой motion-слой R11.6 для задачи.
- **Финальная формула** расширена ссылками на R14 (внешние UI-генераторы) и R15 (motion).
Заказчик подтвердил v1.4 командой «двух уровневый» (выбор между двухуровневой R15-конструкцией и полным запретом всех motion-runtime библиотек) после полного цикла brainstorming → 3 варианта → итераций → финального предложения с alternatives. Через `/claude-md-management:claude-md-improver`.
- **v1.3 от 09.05.2026** — закрытие 6 трений второго порядка (F–K), найденных при повторном глубинном аудите v1.2:
- **F (R12 архитектурное vs Pravila §11.1)**: добавлено условие override через `brainstorming` skill или просьбу «свободно/без вариантов» — снимает требование §4.5 на 3 варианта A/B/C. R12.2 уточнён (исключение для архитектурного override).
- **G (R12.2 тактическое vs user-стиль «а/б»)**: тактическое разделено на «с альтернативами» (≥2 разных компонента — A/B/C формат разрешён для совместимости с короткими ответами user'а) и «без альтернатив» (одна BOLD от FD).
+45 -9
View File
@@ -1,10 +1,17 @@
# Правила работы Claude в проекте «Лидерра»
**Версия:** v1.7 (утверждена заказчиком 09.05.2026)
**Дата:** 09.05.2026
**Версия:** v1.8 (утверждена заказчиком 10.05.2026)
**Дата:** 10.05.2026
**Назначение:** настройки проекта (Project instructions) — Claude читает этот файл в каждом чате и следует правилам ниже.
**Статус документа:** ✅ утверждён. Содержимое скопировано в поле "Project instructions" Claude.ai. Файл хранится в архиве как служебный документ.
**Что изменилось в v1.8 относительно v1.7:**
- §13 расширен: paired stack ядра (Superpowers + Frontend Design) дополнен **расширенным пулом UI-инструментов**`ui-ux-pro-max` skill (резерв-библиотека) и `21st.dev Magic MCP` (генератор шаблонов). Координация всех четырёх — через PSR_v1 v1.4 (новые R14 pipeline UI-генераторов + R15 motion-системы). Без изменений в §13.1–13.9.
- §13.9 cross-ref на PSR_v1 обновлён: `(v1.3)``(v1.4)` (для синхронизации с актуальной версией реестра).
- §13.10 (новый) — Hard-link на R14 PSR_v1: использование UPM или 21st вне pipeline'а R14 (без R6.0 фильтра, R6.1 hard-override Forest, pre-check R0.6, FD-адаптации) = нарушение §13. Hard-link через цепочку R10.4 → §13.9 → §13. Аналогично §13.9 для R10.
- Без других содержательных изменений в §§1–12 + §§13.113.9.
**Что изменилось в v1.7 относительно v1.6:**
- §13.9 cross-ref на PSR_v1 теперь явно указывает версию: `[Plugin_stack_rules_v1.md](Plugin_stack_rules_v1.md) (v1.3)`. Закрывает audit P1-06 (неполная cross-reference). Без других содержательных изменений в §§1–13.8.
@@ -455,6 +462,7 @@ P0 = блокер старта спринта или регуляторного
| **v1.2** | **06.05.2026** | **Утверждена заказчиком 06.05.2026** («да, A, делай. Подтверждаю»). §4.8 — шифр **Н занят** (создано Прил. Н — `Tooling_v8_3.md`, реестр 28 инструментов разработки в 4 фазах). Счётчик занятых шифров: 11 → 12. Свободные шифры: 16 → 15. Уточнён статус шифра Л (занят за HTML-прототипами в `web/`). Создан корневой `CLAUDE.md` — оперативная карта для Claude Code (приоритет правил, стек, карта 28 инструментов, 10 запретов, текущая фаза). Архитектурных изменений в §§1–9: 0. |
| **v1.3** | **09.05.2026** | **Утверждена заказчиком 09.05.2026** («B → 1»). Подключён плагин `obra/superpowers` v5.1.0 через `~/.claude/settings.json` (`extraKnownMarketplaces` + `enabledPlugins`). Добавлен §11 «Superpowers override» — при явном вызове skill'ов плагина конвенции §2.2/§4.5/§8.4 могут быть временно перевешены. Соответствующее CLAUDE.md §5 п.4 удалено (через плагин claude-md-management по §5 п.11). Архитектурных изменений в §§1–10: 0. |
| **v1.4** | **09.05.2026** | **Утверждена заказчиком 09.05.2026** («Создай правило, что ты всегда в первую очередь пользуешься superpowers. При этом ты не можешь игнорировать и обходить это правило»). Добавлен §12 «Superpowers — приоритет первого выбора (hard rule)». **Единственное hard-правило документа**: §9 «Отступления» к нему не применяется. Карта 14 skills → 14 типов задач (§12.2). Чёткие исключения (§12.3) для тривиальных операций. Приоритет в §0 расширен — §12 встаёт выше всех §§1–11. Архитектурных изменений в §§1–11: 0; уточнён §11.1 ссылкой на §12.5. |
| **v1.8** | **10.05.2026** | **Утверждена заказчиком 10.05.2026** («двух уровневый» — выбор подхода для R15 motion-системы; финальное согласование PSR_v1 v1.4). §13 расширен: paired-stack ядро (Superpowers + Frontend Design) дополнено расширенным пулом UI-инструментов — `ui-ux-pro-max` skill (резерв-библиотека, R10/R11.5) и `21st.dev Magic MCP` (генератор шаблонов, R14.4). Координация — через PSR_v1 v1.4 (R14 pipeline UI-генераторов + R15 motion-системы). §13.9 cross-ref bumped (v1.3 → v1.4). §13.10 (новый) — hard-link на R14: использование UPM или 21st вне pipeline'а = нарушение §13 (вторая hard-link строка после §13.9). Архитектурных изменений в §§1–12 + §§13.113.8: 0. |
---
@@ -566,15 +574,22 @@ P0 = блокер старта спринта или регуляторного
`anthropics/frontend-design` — плагин Claude Code, дающий доменное знание UI: компоненты, layout, цвет, типография, паттерны, состояния (loading/empty/error), a11y-принципы. Установлен 09.05.2026 после снятия запрета CLAUDE.md §5 п.5.
### 13.2. Парность со Superpowers
### 13.2. Парность со Superpowers + расширенный пул UI-инструментов (v1.8)
Frontend Design и `obra/superpowers` (v5.1.0, 14 skills) — **парный stack одного приоритетного уровня**. Оба плагина подключены к gate stack'а одновременно, между ними нет иерархии. Координация — через [docs/Plugin_stack_rules_v1.md](Plugin_stack_rules_v1.md), 10 правил.
Frontend Design и `obra/superpowers` (v5.1.0, 14 skills) — **парный stack одного приоритетного уровня**. Оба плагина подключены к gate stack'а одновременно, между ними нет иерархии. Координация — через [docs/Plugin_stack_rules_v1.md](Plugin_stack_rules_v1.md) v1.4 (15 правил).
Краткое разделение:
**Расширенный пул UI-инструментов (v1.8)** добавляет к paired-stack ядру два внешних плагина в роли **инструментов** (R10.1 PSR_v1, не решателей):
- **ui-ux-pro-max** (skill, marketplace `nextlevelbuilder/ui-ux-pro-max-skill`) — резерв-библиотека (50+ стилей, 161 палитра, 99 UX-гайдлайнов, 25 типов графиков). Активируется в фазе 2 R2 как fallback к FD ИЛИ в фазе 1 R2 как источник «третьего варианта» в R12 архитектурном решении (R11.5 PSR_v1).
- **21st.dev Magic MCP** (`magic` сервер, `mcp__magic__21st_magic_component_*` + `logo_search`) — генератор стартовых шаблонов для UI-компонентов, отсутствующих в Vuetify и `resources/js/components/`. Активируется на фазе 5 R2, проходит обязательный pipeline R14.4 (pre-check R0.6 → R6.0 фильтр → R6.1 hard-override → FD адаптация).
Краткое разделение по типам задач:
- **Superpowers** — процесс (TDD, debug, brainstorm, plans, parallel, review, verify, worktree, finishing). Запускается на процессных задачах + на фазах 1, 3, 4, 6, 8 UI-фичи.
- **Frontend Design** — домен UI (визуал, паттерны, a11y-принципы). Запускается на чисто визуальных задачах + на фазах 2, 5, 7, 8 UI-фичи.
- **Совместно** — на UI-фичах (компоненты с логикой и визуалом), по фазам Правила 2 Plugin_stack_rules_v1.
- **Frontend Design** — домен UI (визуал, паттерны, a11y-принципы). Запускается на чисто визуальных задачах + на фазах 2, 5, 7, 8 UI-фичи. Решатель в R11 уровень 3.
- **UI UX Pro Max** — инструмент-резерв (R10/R11.5). Никогда не решатель.
- **21st Magic MCP** — инструмент-генератор (R14.4). Никогда не решатель.
- **Совместно** — на UI-фичах по фазам Правила 2 PSR_v1; pipeline внешних UI-генераторов — R14 PSR_v1.
### 13.3. Скоуп
@@ -614,7 +629,7 @@ Frontend Design покрывает **a11y-принципы** (контраст,
### 13.9. Hard-link на R10 PSR_v1 — байпас stack-gate
**Нарушение Правила 10 [Plugin_stack_rules_v1.md](Plugin_stack_rules_v1.md) (v1.3)** (введено в PSR v1.2; формализовано через hard-link в Pravila v1.6, версия ссылки уточнена в Pravila v1.7):
**Нарушение Правила 10 [Plugin_stack_rules_v1.md](Plugin_stack_rules_v1.md) (v1.4)** (введено в PSR v1.2; формализовано через hard-link в Pravila v1.6, версия ссылки уточнена в Pravila v1.7, обновлена в Pravila v1.8):
Прямой `Skill` tool на не-stack плагин (ui-ux-pro-max, claude-md-management, review, security-review, init, simplify и т.д.) **до прохождения R0 stack-gate**, без явной live-команды `/имя-плагина` от пользователя (R0.4.B PSR_v1) и вне технических исключений R0.4.A PSR_v1 (read-only исследование, тривиальные синки, справочные ответы) = **нарушение §13 этого документа**.
@@ -624,7 +639,28 @@ Frontend Design покрывает **a11y-принципы** (контраст,
- Утрата головенства stack'а (R0.1 PSR_v1) на текущее действие; восстановление — через явную классификацию задачи через R1 на следующем шаге.
- При системности (≥3 раза в сессии) — заказчик может потребовать явной правки §13 / R10 / отключения внешнего плагина в `~/.claude/settings.json`.
Этот hard-link единственный «жёсткий» элемент §13. Остальная часть §13 (13.1–13.8) — стандартные правила без hard-rule статуса (см. 13.6 — §12 hard rule применяется только к Superpowers).
Этот hard-link был единственным «жёстким» элементом §13 в v1.6/v1.7. С v1.8 добавлен ещё один — §13.10 (см. ниже). Остальная часть §13 (13.1–13.8) — стандартные правила без hard-rule статуса (см. 13.6 — §12 hard rule применяется только к Superpowers).
### 13.10. Hard-link на R14 PSR_v1 — байпас pipeline'а внешних UI-генераторов (v1.8)
**Нарушение Правила 14 [Plugin_stack_rules_v1.md](Plugin_stack_rules_v1.md) (v1.4)** (введено в PSR v1.4 одновременно с формализацией UPM + 21st Magic MCP в `~/.claude/settings.json` и `~/.claude.json`).
Использование `ui-ux-pro-max` или `21st.dev Magic MCP` (`mcp__magic__21st_magic_component_*`, `mcp__magic__logo_search`) **вне pipeline'а R14** = нарушение §13 этого документа.
«Вне pipeline'а» означает любое из:
- **UPM:** активирован параллельно с FD на одной фазе (нарушение R14.5); вызван без R6.0 фильтра стека; вызван без R6.1 hard-override Forest (UPM-палитра/шрифты использованы напрямую вопреки Brandbook); вызван как решатель, не как материал (нарушение R10.2).
- **21st Magic MCP:** вызван без pre-check R0.6 пунктов 9–10 (используется для брендового App*-компонента или для компонента с Vuetify-эквивалентом); сгенерированный JSX-черновик коммитится в `resources/js/` без полного конверта (R6.0 фильтр + R6.1 hard-override + FD адаптация); вызван как закрыватель задачи (нарушение R7).
Hard-link идёт через цепочку: R14 нарушено → R10.4 «по последствиям сопоставимо с игнорированием §12» → §13.9 hard-link на R10 → §13. Поэтому процедурно нарушение R14 эквивалентно нарушению §13.
Последствия:
- Фиксация в feedback memory (`feedback_*.md`) для коррекции в будущих сессиях — аналогично нарушению §12.7 / §13.9.
- Утрата головенства stack'а (R0.1 PSR_v1) на текущее действие; восстановление — через явную классификацию задачи через R1 + повторный проход pipeline R14 на следующем шаге.
- При системности (≥3 раза в сессии) — заказчик может потребовать явной правки §13 / R14 / отключения внешнего плагина в `~/.claude/settings.json` или `~/.claude.json`.
§13.10 — **второй hard-link** §13 (после §13.9). Mid-tier — между декларативными §§13.1–13.8 и hard-rule §12.
---
+110 -10
View File
@@ -1,18 +1,27 @@
# Приложение Н — Tooling, скиллы и плагины Claude (v8.3)
**Дата:** 09.05.2026
**Версия:** 1.11 (Sprint 1 «Hygiene» Phase D — закрытие audit P1-08: §2.1 п.7 Stylelint раздел дополнен версией пакета `stylelint-config-standard ^40.0.0`. Без структурных изменений. Через `/claude-md-management:claude-md-improver`.)
**Предыдущая версия:** 1.10 (добавлен #30 Frontend Design plugin (Anthropic) в фазе 2 как paired stack со Superpowers; запрет CLAUDE.md §5 п.5 снят 09.05.2026 по явной команде заказчика. Координация двух плагинов — через `docs/Plugin_stack_rules_v1.md` (10 правил, 8 конфликтов закрыты патчами). Активных инструментов: 18 → 19 из 28 → 29. См. §4.4 ниже + Pravila §13.)
**Дата:** 10.05.2026
**Версия:** 1.12 (формализация двух фактически включённых внешних UI-инструментов + расширенная denylist motion-runtime: #31 UI UX Pro Max (skill, marketplace `nextlevelbuilder/ui-ux-pro-max-skill`) + #32 21st.dev Magic MCP (MCP-сервер `magic`); §9 «Что НЕ ставим» дополнен разделом «Motion runtime библиотеки» (framer-motion / motion-v / gsap / anime.js / react-spring / lottie-web / popmotion). Координация — PSR_v1 v1.4 R14 pipeline + R15 motion-системы. Через `/claude-md-management:claude-md-improver`.)
**Предыдущая версия:** 1.11 (Sprint 1 «Hygiene» Phase D — закрытие audit P1-08: §2.1 п.7 Stylelint раздел дополнен версией пакета `stylelint-config-standard ^40.0.0`. Без структурных изменений.)
**Адресат:** Claude + разработчики проекта Лидерра
**Назначение:** единый источник истины по 28 инструментам разработки, скиллам Claude Code, MCP-серверам и плагинам, используемым в проекте. Зафиксирован выбор, объяснено, что заменяет что, и в какой фазе вводится каждый инструмент.
**Назначение:** единый источник истины по 30 инструментам разработки (29 «активных» номеров фаз + 2 формализованных в v1.12 как «инструменты-резерв вне фаз»), скиллам Claude Code, MCP-серверам и плагинам, используемым в проекте. Зафиксирован выбор, объяснено, что заменяет что, и в какой фазе вводится каждый инструмент.
> **Связано:**
>
> - `Pravila_raboty_Claude_v1_1.md` v1.5+ — §11 «Superpowers override», §12 «Superpowers hard rule», §13 «Frontend Design plugin — paired stack», §4.8 «Шифры приложений» (Н занят)
> - `Plugin_stack_rules_v1.md` v1.0+ — координация Superpowers + Frontend Design (10 правил)
> - `CLAUDE.md` (корень репозитория) v1.78+ — оперативная карта инструментов с приоритетом правил (уровень 0 = Pravila §12, уровень 3 = Plugin_stack_rules_v1)
> - `Pravila_raboty_Claude_v1_1.md` v1.8+ — §11 «Superpowers override», §12 «Superpowers hard rule», §13 «paired stack + расширенный пул UI-инструментов», §13.9 hard-link на R10 PSR_v1, §13.10 hard-link на R14 PSR_v1, §4.8 «Шифры приложений» (Н занят)
> - `Plugin_stack_rules_v1.md` v1.4+ — координация paired-stack ядра (Superpowers + Frontend Design) + расширенного пула (UPM + 21st Magic MCP) + R15 motion-системы (15 правил R0–R15)
> - `CLAUDE.md` (корень репозитория) v1.83+ — оперативная карта инструментов с приоритетом правил (уровень 0 = Pravila §12, уровень 3 = Plugin_stack_rules_v1); §3.3 +#31 UPM +#32 21st; §5 п.12 motion-runtime denylist
> - `README_АРХИВ_v8_4.md` v8.4+ — состав архива
**Что нового в v1.12 (10.05.2026):**
- **#31 UI UX Pro Max (skill, `nextlevelbuilder/ui-ux-pro-max-skill`) формализован как «инструмент-резерв вне фаз».** Был фактически включён в `~/.claude/settings.json` (`enabledPlugins.ui-ux-pro-max@ui-ux-pro-max-skill=true`) до v1.12 без формализации. Теперь зафиксирован: роль = резерв-библиотека (50+ стилей, 161 палитра, 99 UX-гайдлайнов, 25 типов графиков, 10 стеков); активация — только через PSR_v1 v1.4 R14.3 pipeline (фаза 2 R2 как fallback к FD ИЛИ фаза 1 R2 как «третий вариант» в R12 архитектурном). Никогда не решатель (R10.2 PSR_v1). Не закрывает задачу (R7). Обязательный стек-фильтр R6.0 PSR_v1 (срезать React/Next/Tailwind/shadcn материалы) + hard-override Forest R6.1. См. §4.5 ниже.
- **#32 21st.dev Magic MCP (`magic` MCP-сервер) формализован как «инструмент-резерв вне фаз».** Был фактически подключён в `~/.claude.json` (с API-ключом, npm-пакет `@21st-dev/magic@latest`) до v1.12 без формализации. Tools: `mcp__magic__21st_magic_component_builder`, `_inspiration`, `_refiner`, `logo_search`. Роль = генератор стартовых шаблонов для UI-компонентов, отсутствующих в Vuetify и `resources/js/components/`. По умолчанию выдаёт **React + Tailwind + shadcn** — обязательный полный pipeline R14.4 PSR_v1: pre-check R0.6 (брендовый App*? Vuetify-эквивалент? существующий компонент? — все три «нет» обязательно) → R6.0 фильтр (JSX→Vue SFC, Tailwind→utility-CSS, shadcn→Vuetify) → R6.1 hard-override (палитра/шрифты/иконки → Forest, Lucide) → FD адаптация → возврат в фазу 5 R2 stack-flow. Никогда не решатель. Не закрывает задачу. Pa11y обязателен на deployable (R7). См. §4.6 ниже.
- **Структура §4 обновлена:** добавлены §4.5 «Резерв-библиотека UI — UI UX Pro Max» и §4.6 «Генератор шаблонов — 21st.dev Magic MCP». Оба не привязаны к фазе по тулчейну (post-MVP инструменты-резерв).
- **§9 «Что НЕ ставим» дополнен разделом «Motion runtime библиотеки» (R15 PSR_v1 v1.4):** framer-motion (R15.1 hard-запрет, React-only), motion-v (R15.2 условно по 4 триггерам), gsap, anime.js, react-spring (R15.1-аналог, React-only), lottie-web, popmotion, @motionone/dom — все под R0.6 пункт 11 hard-стоп. Default motion stack: Vue native `<Transition>` + Vuetify transitions + CSS @keyframes + View Transitions API.
- **Сводка §0:** 28 «активных» номеров фаз → 29 номеров фаз (как было в v1.10/v1.11) + 2 формализованных «вне фаз» в v1.12 (UPM + 21st Magic MCP) = **31 формализованных позиций тулчейна** (но активных «по фазе» считаются только 19 из 29 на текущий момент; UPM + 21st — *off-phase tools*).
- **Связано:** Pravila v1.7 → v1.8 (§13 расширен, §13.10 hard-link на R14); CLAUDE.md v1.82 → v1.83 (§3.3 + новые строки, §5 п.5 расширен, §5 п.12 motion-runtime новый); PSR_v1 v1.3 → v1.4 (R6/R6.1/R10/R11/R0.6/R13/R14/R15).
**Что нового в v1.10 (09.05.2026):**
- **#30 Frontend Design plugin (Anthropic) добавлен в фазе 2 (paired stack со Superpowers).** Запрет CLAUDE.md §5 п.5 снят 09.05.2026 по явному решению заказчика. Координация двух плагинов вынесена в `docs/Plugin_stack_rules_v1.md` (10 правил: gate, классификация, фазы UI-фичи, разделение TDD/визуал, ревью по аспекту, стек-фильтр Vue+Vuetify, gate готовности, тай-брейкеры). 8 ранее найденных конфликтов между плагинами закрыты патчами. Установка через `~/.claude/settings.json`: `extraKnownMarketplaces` + `enabledPlugins.frontend-design@anthropics-claude-plugins=true`. Обязательный стек-фильтр (Правило 6 Plugin_stack_rules_v1): Vue 3 + Vuetify 3, отфильтровывать React/Tailwind/shadcn/JSX. A11y технический остаётся за Pa11y (CLAUDE.md §5 п.3); Frontend Design покрывает только a11y-принципы. Активных инструментов фазы 2: 6 → 7. Всего активных: 18 → 19 из 28 → 29 номеров.
@@ -212,6 +221,68 @@
- «не используй Frontend сейчас» — отключает Frontend Design на текущее действие, Superpowers остаётся.
- «не используй плагины сейчас» — отключает весь stack на текущее действие.
### 4.5. Резерв-библиотека UI — UI UX Pro Max plugin (off-phase tool)
> **Введено 10.05.2026 (v1.12 Прил. Н):** формализован как «инструмент-резерв вне фаз». Был фактически включён через `~/.claude/settings.json` ещё с момента активации (до v1.12 — без правил). Координация — PSR_v1 v1.4 R10/R11/R14.3.
| # | Инструмент | Установка | Состав | Когда использовать |
|---|---|---|---|---|
| 31 | **ui-ux-pro-max** (skill, marketplace `nextlevelbuilder/ui-ux-pro-max-skill`) | `~/.claude/settings.json`: `extraKnownMarketplaces.ui-ux-pro-max-skill` (`{"source":"github","repo":"nextlevelbuilder/ui-ux-pro-max-skill"}`) + `enabledPlugins.ui-ux-pro-max@ui-ux-pro-max-skill=true`. Перезапуск Claude Code → плагин подгружается из marketplace в кэш | Резерв-библиотека: 50+ aesthetic-стилей, 161 палитра, 99 UX-гайдлайнов, 25 типов графиков, 161 product type, 57 шрифтовых пар, 10 стеков (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind, shadcn/ui, HTML/CSS) | (1) Frontend Design выдал «не покрывает» / нужна узкоспецифика (chart-стек, экзотические шрифтовые пары, региональные UX-паттерны); (2) **R12 архитектурное решение** — UPM как источник «третьего варианта» в A/B/C по Pravila §4.5 (R11.5 PSR_v1) |
**Обязательные правила использования (PSR_v1 v1.4):**
| Правило | Где | Что значит |
|---|---|---|
| **R10.2** «UPM read-only для решений» | R10.1 PSR_v1 | UPM выдаёт **материал** (палитра/паттерн/гайдлайн), решение принимает FD/Superpowers |
| **R10.1** «не параллельно» | R10.1 PSR_v1 | UPM активируется **последовательно**, не одновременно с FD |
| **R6.0** стек-фильтр | R6 PSR_v1 | срезать React/Next/Tailwind/shadcn материалы; оставить Vue + HTML/CSS-уровневые принципы |
| **R6.1** hard-override Forest | R6.1 PSR_v1 | UPM-палитра/шрифты/aesthetic игнорируются; Brandbook v2 Forest приоритетнее |
| **R11.3** запрет инверсии иерархии | R11 PSR_v1 | UPM-палитра НЕ заменяет Brandbook, даже если «выглядит лучше» |
| **R7** не закрывает задачу | R7 PSR_v1 | UPM никогда не закрыватель (нет в списке gate'ов) |
| **R11.5** активация в R12 | R11.5 PSR_v1 | На фазе 1 R2 для архитектурных решений как источник «третьего варианта» |
| **R14.3** место в pipeline | R14.3 PSR_v1 | Подзадача внутри R14 pipeline'а, не самостоятельный flow |
**Live-отмена (R0.4.B PSR_v1):** `/ui-ux-pro-max` — прямой вызов на одно действие (R6.0 фильтр и R6.1 override остаются обязательными).
### 4.6. Генератор шаблонов — 21st.dev Magic MCP (off-phase tool)
> **Введено 10.05.2026 (v1.12 Прил. Н):** формализован как «инструмент-резерв вне фаз». Был фактически подключён через `~/.claude.json` (с API-ключом, npm-пакет `@21st-dev/magic@latest`) ещё с момента активации (до v1.12 — без правил). Координация — PSR_v1 v1.4 R10/R14.4.
| # | Инструмент | Установка | Состав | Когда использовать |
|---|---|---|---|---|
| 32 | **21st.dev Magic MCP** (`magic` сервер) | `~/.claude.json``mcpServers.magic.command="cmd"` + `args=["/c", "npx", "@21st-dev/magic@latest", "API_KEY=<ключ>"]` (npm wrapper). Tools: `mcp__magic__21st_magic_component_builder`, `_inspiration`, `_refiner`, `logo_search` | Генератор стартовых шаблонов для UI-компонентов (LLM-based, по умолчанию **React + Tailwind + shadcn**) | (1) задача = UI-фича по R1 PSR_v1; (2) нужный паттерн **отсутствует** в Vuetify-наборе и `resources/js/components/`; (3) задача **не попадает** в R0.6 hard-стоп (не брендовый App*, не изменение токенов, не cross-cutting); (4) FD на фазе 2 R2 принял решение «нужен кастомный компонент» |
**Обязательный pipeline R14.4 PSR_v1:**
```
1. Pre-check R0.6 пункты 9–10 (ОБЯЗАТЕЛЬНО):
- Брендовый App*-компонент? → hard-стоп, R12 архитектурное (3 варианта §4.5)
- Vuetify-эквивалент существует? → hard-стоп, использовать Vuetify
- Существующий компонент в resources/js/components/? → hard-стоп, использовать его
- Если на все три «нет» → продолжить
2. Вызов mcp__magic__21st_magic_component_builder с описанием паттерна
3. Сгенерированный черновик (по умолчанию React + Tailwind + shadcn) → R6.0 фильтр:
- JSX → Vue SFC template
- Tailwind classes → Vuetify utility / inline CSS
- shadcn components → Vuetify-эквивалент
- React imports/hooks → Vue Composition API
4. → R6.1 hard-override:
- Палитра → Forest (Teal/Ivory/теало-нуар)
- Шрифты → Inter / JetBrains Mono
- Иконки → Lucide
5. → FD адаптирует под фазу 5 R2
6. → возврат в фазу 5 stack-flow
7. Pa11y проход (R7) на deployable артефакт ОБЯЗАТЕЛЕН перед commit
```
**Сгенерированный JSX-черновик НЕ коммитится в `resources/js/` напрямую** — только после полного pipeline'а.
**Запрет дублирования (R14.5):** одна задача = один генератор. UPM и 21st **не запускаются на одной фазе**.
**Live-отмена (R0.4.B PSR_v1):** «вызови magic» / «через 21st» / «дай шаблон через magic» — прямой вызов на одно действие (pre-check R0.6 + R6.0 + R6.1 + FD-адаптация остаются обязательными).
**Безопасность:** API-ключ в `~/.claude.json` в открытом виде. Файл **глобальный, не в репо** (gitleaks ловит при попытке коммита). При случайном попадании settings.json в репо — немедленно ротировать ключ через 21st.dev dashboard.
---
## 5. Фаза 3 — pre-production (+5 новых, итого 29 активных)
@@ -291,11 +362,13 @@ Superpowers skills и другие плагины (поведенческие п
---
## 9. Что НЕ ставим и почему (10 пунктов)
## 9. Что НЕ ставим и почему (10 пунктов + motion-runtime раздел v1.12)
### 9.1. Изначальный список
| Инструмент | Причина отказа |
|---|---|
| **Frontend Design** plugin (Anthropic) | Anti-pattern «Inter» противоречит брендбуку §4.1; не знает Vuetify; нет a11y; рассчитан на лендинги, не на B2B-CRM |
| ~~**Frontend Design** plugin (Anthropic)~~ | **СНЯТО 09.05.2026** (v1.10): запрет CLAUDE.md §5 п.5 снят, плагин включён как paired stack со Superpowers; координация — `docs/Plugin_stack_rules_v1.md`. Anti-pattern «Inter» нейтрализован hard-override R6.1 PSR_v1 |
| **CodeQL** | Дублирует Semgrep; платный для private-репо; Semgrep CE покрывает наши потребности |
| **Laravel Security Checker** (`enlightn/security-checker`) | Дублирует Dependabot + Roave |
| **PHP-CS-Fixer** | Перекрывается Pint'ом (Pint = надстройка над CS-Fixer) |
@@ -309,6 +382,30 @@ Superpowers skills и другие плагины (поведенческие п
| **Tailwind MCP / shadcn-vue** | У нас Vuetify (CTO-11), не Tailwind |
| **Inertia / Livewire / Filament / Flux UI / Nova / Folio / Volt / Wayfinder guidelines** Boost'а | Не используются в стеке проекта |
### 9.2. Motion runtime библиотеки (введено в v1.12, R15 PSR_v1 v1.4)
Двухуровневое решение по runtime-зависимостям анимаций. Default motion stack — **Vue native `<Transition>` + Vuetify transitions + CSS @keyframes + View Transitions API** (R11.6 уровни 36 PSR_v1). Большинство задач закрываются на уровнях 1–2.
| Библиотека | Статус | Причина / условие |
|---|---|---|
| **framer-motion** (npm `framer-motion`) | **❌ HARD-ЗАПРЕТ навсегда** (R15.1) | React-only архитектурно: использует React fiber-tree + hooks + JSX. В Vue 3 + Vuetify стеке физически не работает — мёртвый код в `node_modules`. Не отменяется ни Auto mode, ни live-командой R0.4.B. Единственный путь снятия — смена базового frontend-стека (само по себе R0.6 hard-стоп) |
| **react-spring** (npm `@react-spring/*`) | **❌ HARD-ЗАПРЕТ навсегда** (R15.1-аналог) | React-only по той же причине |
| **motion-v** (npm `motion-v`, Vue порт от автора framer-motion) | **⚠ УСЛОВНО разрешено** (R15.2) | Технически совместим со стеком, но активация требует одновременного выполнения 4 условий: (а) письменный кейс из ТЗ v8.5 / Открытые_вопросы; (б) категория оправданности — gesture-driven с физикой / shared-layout transitions / spring-physics на интерактивных контролах; (в) Brandbook v2 (или последующий) явно допускает motion-rich направление; (г) полный R12 архитектурный flow — brainstorming + 3 варианта (motion-v vs CSS @keyframes vs View Transitions API) + явное согласование. Без 4 условий — **R0.6 пункт 11 hard-стоп**. Bundle ~30 KB gzipped |
| **gsap** (`gsap` npm) | **⚠ УСЛОВНО разрешено** (R15.7 R15.2-аналог) | Imperative timeline-driven; нишево для marketing/agency UI. Для нашего B2B-CRM избыточно. Если когда-либо — через те же 4 условия R15.2 |
| **anime.js** | **⚠ УСЛОВНО разрешено** (R15.7) | Аналогично gsap, но ещё нишевее |
| **lottie-web** (`lottie-web`) | **⚠ УСЛОВНО разрешено** (R15.7) | Только для Lottie/After Effects-ассетов. У нас таких ассетов в Brandbook v2 нет; если появятся — через те же 4 условия |
| **popmotion**, **@motionone/dom** | **⚠ УСЛОВНО разрешено** (R15.7) | Низкоуровневые движки. Default стойка покрывает |
| **Auto-Animate** (`@formkit/auto-animate`) | ⚠ Возможный кандидат | Один компонент, FLIP под капотом, ~3 KB. Если потребуется list/grid reorder — отдельный R15-flow |
**Default motion stack (без runtime-зависимостей):**
| Слой | Что покрывает | Размер |
|---|---|---|
| Vue 3 native `<Transition>` / `<TransitionGroup>` | enter/leave hooks, FLIP через TransitionGroup, JS-callbacks | 0 KB (нативно) |
| Vuetify 3 transitions (`v-fade`, `v-slide-y`, `v-slide-x`, `v-scale`, `v-expand`, `v-dialog-transition`) | Material-design анимации; уже в `vuetify@3.12` | 0 KB сверху |
| CSS `@keyframes` + `transition` + `prefers-reduced-motion` | Произвольные анимации, GPU-acceleration через `transform`/`opacity`, поддержка a11y | 0 KB |
| View Transitions API (Chrome 111+, Safari 18+) | Cross-document / cross-route переходы, FLIP под капотом нативно | 0 KB (браузер) |
---
## 10. Процедура перехода между фазами
@@ -451,10 +548,13 @@ Vuetify-тема — `liderraLight` и `liderraDark` — определена в
|---|---|---|
| **v1.0** | 06.05.2026 | Первая версия. Зафиксированы 28 активных инструментов в 4 фазах, перечень того, что НЕ ставим (10+ пунктов), источники истины для конфигураций, процедура перехода между фазами, особенности Windows + PowerShell. Утверждено заказчиком 06.05.2026 («да, A, делай. Подтверждаю»). Архитектурных изменений в основном архиве: 0 (только добавлен новый шифр Н). |
| **v1.10** | 09.05.2026 | Добавлен **#30 Frontend Design plugin (Anthropic)** в фазе 2 — paired stack со Superpowers. Запрет CLAUDE.md §5 п.5 снят по явной команде заказчика. Координация через новый документ `docs/Plugin_stack_rules_v1.md` (10 правил, 8 ранее найденных конфликтов закрыты патчами). Добавлен §4.4 «Доменный слой UI — Frontend Design plugin». Phase 2: 6 → 7, total: 28 → 29 номеров (активных 18 → 19). Установка через `~/.claude/settings.json`. |
| **v1.12** | 10.05.2026 | **Формализация двух фактически включённых внешних UI-инструментов как «инструменты-резерв вне фаз»:** **#31 UI UX Pro Max** (skill, marketplace `nextlevelbuilder/ui-ux-pro-max-skill`) — резерв-библиотека (50+ стилей, 161 палитра, 99 UX-гайдлайнов, 25 типов графиков); активация через PSR_v1 v1.4 R14.3 pipeline (фаза 2 R2 fallback к FD ИЛИ фаза 1 R2 «третий вариант» в R12). **#32 21st.dev Magic MCP** (`magic` MCP-сервер) — генератор стартовых шаблонов; активация через PSR_v1 v1.4 R14.4 pipeline (pre-check R0.6 + R6.0 фильтр + R6.1 hard-override + FD адаптация). Оба не привязаны к фазе по тулчейну (post-MVP инструменты-резерв). Добавлены §4.5 + §4.6. **§9 «Что НЕ ставим» дополнен разделом «Motion runtime библиотеки»:** framer-motion + react-spring (R15.1 hard-запрет, React-only); motion-v + gsap + anime.js + lottie-web + popmotion (R15.2/R15.7 условно по 4 триггерам, R0.6 пункт 11 hard-стоп). Default motion stack: Vue native + Vuetify + CSS + View Transitions API. Total формализованных: 29 → **31 позиций** (активных по фазам — 19/29; +2 off-phase). Связано: PSR_v1 v1.3 → v1.4; Pravila v1.7 → v1.8 (§13.10 hard-link на R14); CLAUDE.md v1.82 → v1.83. |
---
*Прил. Н v1.12 от 10.05.2026 — формализованы #31 UPM + #32 21st Magic MCP как off-phase tools; §9 расширен motion-runtime denylist'ом. 31 позиций (19/29 активны по фазам + 2 off-phase).*
*Прил. Н v1.10 от 09.05.2026 — добавлен #30 Frontend Design plugin (paired со Superpowers), 19/29 активных.*
*Прил. Н v1.0 от 06.05.2026 — старт документации по tooling.*
*Связано: `CLAUDE.md` (корень), `Pravila_raboty_Claude_v1_1.md` v1.2+, `README_АРХИВ_v8_4.md` v8.4+.*
*Связано: `CLAUDE.md` (корень), `Pravila_raboty_Claude_v1_1.md` v1.8+, `README_АРХИВ_v8_4.md` v8.4+.*