Files
brain/project-files/docs/Tooling.template.md
T
Дмитрий ed9bade863 feat: extract brain artifacts from Liderra + ~/.claude/
project-files/:
- CLAUDE.md.template (266 lines)
- docs/Pravila_raboty_Claude.template.md (720 lines)
- docs/Plugin_stack_rules.template.md (916 lines)
- docs/Tooling.template.md (613 lines)
- docs/CHANGELOG_claude_md.template.md
- docs/visualizations/hooks-skills-plugins-map.html (3122 lines)
- .mcp.json.template (universal: playwright/github/semgrep; laravel-boost dropped)

user-level-files/:
- hooks/ (10 Python files: skill-marker, skill-check, economy-* x8)
- settings-fragment.json (enabledPlugins + permissions + hooks only)
- marketplaces.json (3 sources)
- plugins-manifest.json (4 plugins pinned with gitCommitSha)
- mcp-user.template.json (magic with <<MAGIC_API_KEY>> placeholder)

Gitleaks scan: 0 findings.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 00:46:51 +03:00

88 KiB
Raw Blame History

Приложение Н — Tooling, скиллы и плагины Claude (v8.3)

Дата: 10.05.2026 (поздний вечер) Версия: 1.15 (закрытие 4 находок третьего аудита правил использования плагинов и скилов в части, касающейся Tooling: P1-03/04/05 — sync cross-refs шапки на актуальные версии связанных документов после bump'ов CLAUDE.md v1.85 → v1.86 и PSR_v1 v1.6 → v1.7 («Pravila v1.9+»→«v1.10+», «PSR_v1 v1.5+»→«v1.7+», «CLAUDE.md v1.84+»→«v1.86+»; «+»-нотация сохранена как forward-compat); §11.5/§12 — формулировка «28 инструментов» → «33 формализованных позиции» (исторически фраза «28» оставалась в DevOps-разделе с эпохи v1.0, но смысловое назначение фразы — «реестр Лидерры», который теперь имеет 33 формализованных позиции; §13 история версий и changelog'и сохранены без правки — это снимки эпох и часть истории). Координация — PSR_v1 v1.6 → v1.7 + CLAUDE.md v1.85 → v1.86. Pravila v1.10 — без правок. Через /claude-md-management:claude-md-improver.) Предыдущая версия: 1.14 (закрытие 3 находок второго аудита: §10.3 шаг 2 sync с §4.1, §13 +v1.13 +v1.14 entries, §7 priority chain +Tooling explicit slot 2b). Адресат: Claude + разработчики проекта Лидерра Назначение: единый источник истины по 33 формализованным позициям тулчейна (29 «активных» номеров фаз + 3 off-phase инструмента-резерв в категориях UI-пул и инфраструктура — UPM, 21st, claude-md-management; +1 заменённый PG MCP исторически), скиллам Claude Code, MCP-серверам и плагинам, используемым в проекте. Зафиксирован выбор, объяснено, что заменяет что, и в какой фазе вводится каждый инструмент.

Связано:

  • Pravila_raboty_Claude_v1_1.md v1.10+ — §11 «Superpowers override», §12 «Superpowers hard rule», §12.3 SoT для exclusions, §13 «paired stack + расширенный пул UI-инструментов» + claude-md-management как off-pool, §13.6 hard-rule tier-таблица, §13.9 hard-link на R10 PSR_v1, §13.10 hard-link на R14 PSR_v1, §4.8 «Шифры приложений» (Н занят)
  • Plugin_stack_rules_v1.md v1.7+ — координация paired-stack ядра (Superpowers + Frontend Design) + расширенного пула (UPM + 21st Magic MCP) + инфраструктурного плагина (claude-md-management) + R15 motion-системы (R10.1 разбит на 3 блока, R0.4.A SoT cross-ref, R10.4/R14.7 tier-метки, R8 +тай-брейкер FD↔21st, R0.1 scope-метка)
  • CLAUDE.md (корень репозитория) v1.86+ — оперативная карта инструментов с приоритетом правил (уровень 0 = Pravila §12, уровень 3 = Plugin_stack_rules_v1); §3.3 +#31 UPM +#32 21st +#33 claude-md-management; §5 п.5 свёрнут со ссылкой на PSR_v1 R14; §5 п.11 cross-ref на Pravila §12.3 SoT; §5 п.12 motion-runtime denylist; §6 счётчик 33 (3 off-phase tools)
  • README_АРХИВ_v8_4.md v8.4+ — состав архива

Что нового в v1.13 (10.05.2026):

  • §7 «Source of truth» обновлён с 5-уровневой на 7-уровневую цепочку. Добавлен Plugin_stack_rules_v1.md (PSR_v1) уровнем 3 — координирующий слой между paired-stack ядром (Superpowers + Frontend Design) и расширенным UI-пулом (UPM + 21st). Также явно вынесен Pravila §12 (Superpowers hard rule) уровнем 0 — выше всех остальных параграфов Pravila. Sync с CLAUDE.md §1. Закрывает audit находку «Tooling §7 не упоминает PSR_v1 в иерархии» (1 из 14 находок).
  • §4.7 (новый) — #33 claude-md-management plugin формализован как off-phase инфраструктурный инструмент. Был фактически включён в ~/.claude/settings.json (enabledPlugins.claude-md-management@claude-plugins-official=true) с момента появления требования CLAUDE.md §5 п.10 «правки CLAUDE.md только через плагин» — но до v1.13 без формализации в реестре. Теперь имеет номер #33 (по аналогии с UPM #31 и 21st #32 в v1.12), при этом в отдельной категории (инфраструктурная, не UI) — поэтому не попадает под Pravila §13 расширенного UI-пула и не проходит R6.0/R6.1 фильтр / R14 pipeline. Закрывает audit находку «5-й включённый плагин без номера в реестре».
  • §6 «Конфликты и решения» расширен с 5 до 10 строк. Добавлены 5 новых конфликтов из PSR_v1 v1.4: (6) UPM ↔ FD на одной фазе, (7) 21st ↔ существующий Vuetify-компонент, (8) 21st ↔ брендовый App*-компонент, (9) framer-motion ↔ motion-v, (10) UPM ↔ 21st на одной фазе. Закрывает audit находку «Tooling §6 застрял на v1.0».
  • §4.6 — settings.json → ~/.claude.json: уточнено, что API-ключ 21st хранится именно в ~/.claude.json, не в ~/.claude/settings.json (отдельный файл без секретов). При случайном попадании в репо ротация — через 21st.dev dashboard. Закрывает audit находку «текстовая неточность в комментарии безопасности».
  • §0 сводка обновлена: добавлена строка «off-phase tools» с 3 инструментами (UPM #31, 21st #32, claude-md-management #33). Итого формализованных позиций: 33 (19/29 активных по фазам + 3 off-phase + 1 заменённый PG MCP исторически).
  • Связано: Pravila v1.8 → v1.9 (§12.3 SoT, §13.2 +claude-md-management как off-pool, §13.6 hard-rule tier, §0 scope-метка); PSR_v1 v1.4 → v1.5 (R10.1 на 3 блока, R0.4.A SoT cross-ref, R10.4/R14.7 tier-метки, R8 +тай-брейкер, R0.1 scope); CLAUDE.md v1.83 → v1.84 (§1 scope, §3.3 +#33, §5 п.5 свёрнут, §5 п.11 cross-ref, §6 счётчик 33).

Что было в 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 номеров.
  • Структура §4 обновлена: добавлен §4.4 «Доменный слой UI — Frontend Design plugin». Ранее §4 (фаза 2) состоял из §4.1 Superpowers + §4.2 Frontend-инструменты + §4.3 Histoire. Теперь — §4.1 Superpowers + §4.2 Frontend-инструменты + §4.3 Histoire + §4.4 Frontend Design plugin.

Что было в v1.6 (08.05.2026 поздний вечер):

  • #15 squawk v2.51.0 установлен (npm-wrapper squawk-cli + бинарь скопирован в bin/squawk.exe, паттерн как у gitleaks/lychee). Конфиг .squawk.toml в корне отключает 9 правил: 5 bootstrap-неприменимых (require-timeout-settings, prefer-robust-stmts, require-concurrent-index-creation, constraint-missing-not-valid, adding-foreign-key-constraint) и 4 дизайнных (prefer-identity, prefer-text-field, prefer-bigint-over-int, prefer-bigint-over-smallint). Smoke-test на db/schema.sql — 0 issues с конфигом. Pre-commit хук в lefthook.yml (job 7) на staged *.sql. npm-скрипт npm run lint:sql.
  • #16 pgFormatter v5.9 установлен (Perl-скрипт + lib/ из GitHub Releases распакованы в bin/pgFormatter/, запуск через Cygwin Perl 5.42.2 из Git for Windows). Без pre-commit хука auto-fix — diff против db/schema.sql 3255 строк (pgFormatter переписывает UPPERCASE→lowercase для типов, плотный одностроковый стиль для колонок, перетасовывает inline-комментарии). Стиль schema.sql ручной (выровненные колонки, ASCII-разделители) — авто-fix недопустим. Доступ через npm-скрипты npm run format:sql:check (dry-run + diff) и npm run format:sql (пишет в db/schema.sql.formatted для review, не перезаписывает source).
  • Активных инструментов фазы 1: 13 из 17. Установлено в фазе 1: #10 Boost, #11 Pint, #12 Larastan, #13 Roave/SA, #14 IDE Helper, #15 squawk, #16 pgFormatter, #18 Pest 4. Не применимо: #17 pg_partman (Windows native стек не имеет PG-расширения, заменён ручным cron'ом). Фаза 1 по тулчейну закрыта — следующий триггер (фаза 2) — первый коммит в resources/js/.

Что было в v1.5 (08.05.2026 поздний вечер):

  • #10 Laravel Boost v2.4.6 установлен ВРУЧНУЮ (коммит e04f53b). Wizard php artisan boost:install сломан в обоих режимах на этой машине: интерактив падает на UTF-8 кириллице в пути при рендере laravel/prompts multiselect, --no-interaction падает в баге L13 ConfiguresPrompts::multiselectFallback (null → array_map crash). Manual setup: app/boost.json (3 ключа: agents/guidelines/mcp), запись laravel-boost в корневом .mcp.json (command=php, args=[app/artisan, boost:mcp]), кастомный guideline app/.ai/guidelines/vuetify.md. Smoke-test JSON-RPC 2024-11-05 — 9 tools (database-query/schema/connections, application-info, last-error, read-log-entries, search-docs, browser-logs, get-absolute-url). Подробности — memory feedback_environment.md п.26.
  • Уточнение к §3.1 п.3 «отключить guidelines» — избыточно. Boost через laravel/roster auto-detect видит установленные пакеты в composer.lock; то, что не установлено (Inertia, Livewire, Tailwind, Filament, Flux UI, Nova, Folio, Volt, Wayfinder, Sail, PHPUnit), не серверится. Список оставлен в §3.1 как исторический контекст того, что мы НЕ ставим (CLAUDE.md §5 п.2), но как «отключение» в boost.json не реализуется.
  • Уточнение к §10.2 пути — кастомные guidelines идут в app/.ai/guidelines/*.md (или *.blade.php), а не в resources/boost/guidelines/. Подтверждено source-кодом GuidelineComposer::userGuidelineDir = '.ai/guidelines'.
  • #13 Roave/SecurityAdvisories установлен (коммит 0eb2f72). Метапакет roave/security-advisories:dev-latest в require-dev. Conflict-only — блокирует install версий с известными CVE. На текущем снапшоте — 0 advisories.
  • Активных инструментов фазы 1: 11 из 17 (на момент v1.5; в v1.6 → 13/17 после squawk+pgFormatter). Установлено в фазе 1: #10 Boost, #11 Pint, #12 Larastan, #13 Roave/SA, #14 IDE Helper, #18 Pest 4. Остаются: #15 squawk (Windows binary), #16 pgFormatter (Perl), #17 pg_partman (заменён ручным cron'ом — Windows native стек не имеет PG-расширения, см. project_phase1_strategy).

Что нового в v1.4 (08.05.2026 поздний вечер): Laravel 11 → Laravel 13 в §0 (стек) и §3.2 (фаза 1 backend). Произошло так: при composer create-project laravel/laravel app без ^11 Composer подтянул свежайшую — laravel/framework: ^13.7 (Laravel 13.7, релиз ~Feb 2026). Live-проверка совместимости 5 ключевых плагинов прошла без блокеров: Boost v2.4.6 (composer dry-run резолвит lock без conflict), Larastan v3.9.6 (analyse прошёл с baseline), Pest v4.7.0 (smoke-test 2/2 за 281 ms), barryvdh/laravel-ide-helper v3.7.0 (ide-helper:generate создал _ide_helper.php), laravel/pint v1.29 (pint --test passed). Заказчик 08.05 (поздний вечер) принял Laravel 13 как latest stable. Откат дороговат — rm -rf app/ && composer create-project laravel/laravel:^11 app && повторить predis/Pest/Pint/Larastan/IDE Helper. Техдолг: синхронизация narrative ТЗ + Vybor_oblaka_v8_3.md + Админка_SaaS_v8_2.md под Laravel 13 — отдельная задача для следующих сессий (пока эти документы упоминают Laravel 11 как было). Подробности в Открытые_вопросы_v8_3.md §3 и блоке v1.17.

Установлены 3 dev-инструмента из фазы 1 (Прил. Н #11/#12/#14): laravel/pint v1.29, larastan/larastan v3.9.6 (+ phpstan v2.1.54), barryvdh/laravel-ide-helper v3.7.0. phpstan.neon level 5 + phpstan-baseline.neon (3 ошибки в default scaffold зафиксированы как baseline). composer.json scripts: composer pint, composer pint:test, composer stan, composer ide-helper.

Что было в v1.3 (08.05.2026 поздний вечер): Pest 3 → Pest 4 в §3.3 п.18 (тестирование), §6 п.2 (конфликт), §10.1 п.9 (boost:install). Решение: при composer require pestphp/pest --dev --with-all-dependencies без ^3 composer подтянул Pest v4.7.0; smoke-test 2/2 на default-тестах Laravel прошёл за 281 ms — backward-compat подтверждён. Бонус Pest 4: browser testing (без Dusk), stress testing, mutation testing v2. Откат дёшев — composer require pestphp/pest:^3. Подробности в Открытые_вопросы_v8_3.md §3 и блоке «Что изменилось в v1.16» там же.

Что было в v1.2 (08.05.2026 вечер): Sail отключён из allow-list Boost (§3.1 п.2/п.3). Причина: машина — OpenStack-VPS, nested virtualization выключена провайдером, Docker Desktop/WSL2/Hyper-V запустить невозможно (HypervisorPresent = True, но guest не получает VT-x). Переход на native-стек: PostgreSQL 16 (choco install postgresql16, Windows-сервис) + Memurai Developer (choco install memurai-developer.install, Redis 7-совместимый Windows-сервис, free до 1GB). pg_partman/pg_audit/pg_anonymizer на native Windows — ручная сборка/замена; на MVP — заменить ручным cron'ом для партиций и triggers (которые уже в schema v8.5). Подробности в memory/project_phase1_strategy.md.

Что было в v1.1 (08.05.2026): закрыт CTO-12 — выбран Pest 3 (не PHPUnit). Обновлены §3.1 п.4 (boost:install), §3.4 (тестирование), §6 п.2 (конфликт Pest↔PHPUnit), §10.1 п.9 (процедура перехода). Обоснование выбора — в Открытые_вопросы_v8_3.md §3 (Pest dataset'ы для 14 статусов / 34 RLS, architecture testing для закрепления правил Claude, родной для Boost).

Что было в v1.0: первая версия 06.05.2026. Зафиксированы 28 активных инструментов в 4 фазах, перечень того, что НЕ ставим (10 пунктов), источники истины для конфигураций, процедура перехода между фазами, особенности Windows + PowerShell.


0. Сводка

Фаза Триггер Активных к концу фазы Δ к предыдущей
0 — сейчас (документация + 8 HTML-прототипов) сразу 9 +9
1 — старт Laravel composer create-project laravel/laravel 17 +9 новых, −1 заменённый (PostgreSQL MCP → Laravel Boost)
2 — старт frontend первый коммит в resources/js/ (Vue 3 + Vuetify 3) 24 +7 (включая #30 Frontend Design plugin, добавлен post-MVP в v1.10)
3 — pre-production ~спринт 12, перед публичным релизом 29 +5
off-phase tools по факту включения в ~/.claude/settings.json / ~/.claude.json +3 #31 UPM (UI-резерв), #32 21st Magic MCP (UI-генератор), #33 claude-md-management (инфраструктура CLAUDE.md edits)

Итого формализованных позиций: 33 (29 активных по фазам + 3 off-phase + 1 заменённый PG MCP исторически). Полный перечень — §2–§5 (по фазам) + §4.5/§4.6/§4.7 (off-phase). Карта «когда что использовать» — §7. Что НЕ ставим и почему — §9.

Ключевой принцип фазирования: не активируем фазу N+1, пока не закрыт триггер фазы N. Без composer create-project Boost не работает; без Vuetify-приложения Histoire бесполезен.


1. Принципы выбора

  1. Один инструмент на задачу. Если две тулзы делают одно — оставляем одну, явно указываем какую (см. §6 «Конфликты и решения»).
  2. Dev-only для local tooling. Boost, IDE Helper, Pint, Histoire и т. п. ставятся как --dev и не идут в production.
  3. Pre-commit для быстрых проверок, CI для медленных. gitleaks / markdownlint / Pint — pre-commit. Larastan / Semgrep / Trivy / Pa11y — CI.
  4. Контекст Claude — это ресурс. Не ставим тулзы, дублирующие моё базовое поведение (Memory MCP, Sequential Thinking MCP).
  5. Phase-gating. Триггер каждой фазы — конкретное действие в репозитории. До триггера — не ставим.
  6. Дополнение, не замена правил Claude. Любой плагин уступает в приоритете Pravila_raboty_Claude_v1_1.md — см. §7.
  7. Бесплатное предпочтительнее платного при сопоставимом качестве. Dependabot вместо Snyk; Semgrep CE вместо CodeQL Enterprise.

2. Фаза 0 — текущая (9 инструментов)

Применяется немедленно. Покрывает работу с документацией (17 файлов в docs/ + db/) и HTML-прототипами (web/*.html, 2 из 8 готовы).

2.1. MCP-серверы (3)

# Инструмент Установка Когда использовать Не использовать когда
1 PostgreSQL MCP (@modelcontextprotocol/server-postgres) claude mcp add postgres ... Валидация db/schema.sql запросами к локальной БД (information_schema, \d <table>, FK-проверки) На production-БД; после установки Boost (заменяется)
2 Playwright MCP (@playwright/mcp) claude mcp add playwright ... Открыть web/*.html, скриншот, проверка интерактива (zxcvbn в 01-login, ApexCharts в 02-dashboard) Для unit-тестов Vue (это Vitest в фазе 2)
3 GitHub MCP claude mcp add github ... Issues по Биз-10..16, PR с авто-changelog, привязка коммитов к ID открытых вопросов С токеном, имеющим delete_repo или admin:org

2.2. Линтеры документации (4)

# Инструмент Установка Когда использовать Конфликт
4 markdownlint-cli2 npm i -D markdownlint-cli2 Стиль 17 .md файлов (заголовки, таблицы, списки, длина строк) Не использовать Prettier для .md — портит таблицы
5 cspell + словари ru/en + проектный npm i -D cspell @cspell/dict-ru_ru @cspell/dict-en_us Орфография ru/en + кастомный словарь («Лидерра», «УПД», «РКН», «ГЦК», «КЦ», «Yandex», «Vuetify»)
6 lychee cargo install lychee или GitHub Releases Проверка кросс-ссылок между 17 файлами архива (правило §4.7 правил Claude) Не использовать markdown-link-check (lychee быстрее, на Rust)
7 Stylelint + stylelint-config-standard ^40.0.0 npm i -D stylelint stylelint-config-standard Стиль CSS в <style> прототипов; в фазе 2 распространяется на Vue SFC

2.3. Безопасность (2)

# Инструмент Установка Когда использовать
8 gitleaks GitHub Releases (gitleaks_<v>_windows_x64.zip) Pre-commit hook: поиск телефонов, email, токенов, ИНН, КЭП в diff. Правило §5.2 правил Claude
9 Pa11y npm i -D pa11y pa11y-ci WCAG 2.1 AA проверка прототипов. Требование брендбука §3.4. Единственный источник истины по a11y во всём проекте

3. Фаза 1 — старт Laravel (+9 новых, −1 заменён, итого 17 активных)

Триггер: composer create-project laravel/laravel app в подпапке проекта.

3.1. Главное — замена PostgreSQL MCP на Laravel Boost

# Инструмент Установка Что заменяет
1 → 10 Laravel Boost composer require laravel/boost --dev + php artisan boost:install Заменяет PostgreSQL MCP (#1). Даёт 9 MCP-tools (Application Info, Database Query, Database Schema, Browser Logs, Last Error, Read Log Entries, Get Absolute URL, Search Docs, Database Connections) + guidelines + Documentation API на 17 000+ фрагментов

Обязательные настройки при boost:install:

  1. CLAUDE.md — НЕ перезаписывать. Сохранить уже существующий (см. §7). Слить вручную, если Boost создаст черновик: добавить boost-секции в конец, оставив §1–§7 нашего CLAUDE.md выше.
  2. Из 25+ встроенных guidelines оставить только: Laravel Framework, Pint, Pennant, MCP. (Sail убран 08.05.2026 — на текущей машине Docker невозможен из-за отсутствия nested virtualization, см. project_phase1_strategy memory. Native стек: native PostgreSQL 16 + Memurai Redis-compatible.)
  3. Отключить: Inertia, Livewire, Tailwind, Filament, Flux UI, Nova, Folio, Volt, Wayfinder, Sail — у нас их нет (Sail отключён 08.05.2026 после обнаружения OpenStack-VPS без nested-virt; native стек = единственный путь).
  4. Pest 4 — выбран (CTO-12 переоткрыт+закрыт 08.05.2026 поздний вечер, см. Открытые_вопросы_v8_3.md §3). Отключить guideline PHPUnit, оставить только Pest. composer.json в app/ уже на pestphp/pest: ^4.7.
  5. Создать кастомный guideline для Vuetify 3: resources/boost/guidelines/vuetify.blade.php (см. §10.2).
  6. Запретить production DB connection.env.production не должен попадать в локальный Boost-конфиг.
  7. .mcp.jsonв репозиторий (не в gitignore), чтобы у команды одинаковая конфигурация (расхождение со стандартной рекомендацией Boost'а).

3.2. Анализаторы PHP (4)

# Инструмент Установка Роль
11 Laravel Pint composer require laravel/pint --dev Code style PSR-12. Pre-commit hook
12 Larastan (PHPStan для Laravel) composer require larastan/larastan --dev Статанализ типов, level 8/9. CI-only (медленно для pre-commit)
13 Roave/SecurityAdvisories composer require --dev roave/security-advisories:dev-latest Превентивная блокировка установки composer-пакетов с известными CVE
14 Laravel IDE Helper composer require barryvdh/laravel-ide-helper --dev Stubs для IDE (фасады, модели, мета-инфо)

3.3. БД-инструменты (3)

# Инструмент Установка Роль
15 squawk npm i -g squawk-cli + копия ~/AppData/Roaming/npm/.../binaries/squawkbin/squawk.exe (npm-wrapper не находит spawn-target без .exe на Windows) Линтер миграций PostgreSQL — предупреждает о блокирующих ALTER на партиционированных таблицах (deals, supplier_lead_costs). Конфиг .squawk.toml отключает 9 правил (5 bootstrap + 4 дизайнных). Pre-commit hook на staged *.sql
16 pgFormatter curl -L https://github.com/darold/pgFormatter/archive/refs/tags/v5.9.tar.gz | tar xz; копия pg_format + lib/ в bin/pgFormatter/; запуск через Cygwin Perl 5.42.2 из Git for Windows Форматирование SQL. Только ручной режим через npm run format:sql:check / npm run format:sql — без авто-fix хука (diff vs db/schema.sql 3255 строк, ручной стиль не перезаписывается)
17 pg_partman Расширение PostgreSQL: CREATE EXTENSION pg_partman Автоматическое создание помесячных партиций deals_YYYY_MM и supplier_lead_costs_YYYY_MM (вместо ручного списка из db/schema.sql)

3.4. Тестирование (1)

# Инструмент Установка Роль
18 Pest 4 composer require pestphp/pest --dev --with-all-dependencies + vendor/bin/pest --init Тесты PHP. Pest 3 → Pest 4 после live-проверки на стеке 08.05.2026 поздний вечер (CTO-12 переоткрыт+закрыт, см. Открытые_вопросы_v8_3.md §3). Использовать datasets для параметризации 14 статусов воронки и 34 RLS-политик; architecture testing — для закрепления правил Claude (например, запрет mocks на integration-тестах). Бонус Pest 4: browser testing (без Dusk), stress, mutation v2

4. Фаза 2 — старт frontend (+7 новых, итого 24 активных)

Триггер: первый коммит в resources/js/ или отдельную папку Vue-приложения.

4.1. Поведенческий слой — Superpowers (полный, hard rule)

Обновлено 09.05.2026 (v1.9 Прил. Н): заказчик ввёл hard rule §12 правил Claude: «всегда в первую очередь пользуешься superpowers. При этом ты не можешь игнорировать и обходить это правило». §9 «Отступления» к §12 не применяется. Карта 14 skills → 14 типов задач — в Pravila §12.2.

Прежнее (0809.05.2026): v1.7 — 3/13 skills с запретами; v1.8 — снятие запретов через §11 override (вариант "A. Полное снятие"). Сейчас (v1.9) — обязательное первоочерёдное использование.

# Инструмент Установка Состав Когда использовать
19 Superpowers v5.1.0 (все 14 skills) Декларативно через ~/.claude/settings.json: extraKnownMarketplaces.superpowers-dev ({"source":"github","repo":"obra/superpowers"}) + enabledPlugins.superpowers@superpowers-dev=true. Перезапуск Claude Code → плагин подгружается из marketplace в кэш автоматически. /plugin install в VSCode-extension недоступен brainstorming, dispatching-parallel-agents, executing-plans, finishing-a-development-branch, receiving-code-review, requesting-code-review, subagent-driven-development, systematic-debugging, test-driven-development, using-git-worktrees, using-superpowers, verification-before-completion, writing-plans, writing-skills TDD биллинга/RLS, разбор инцидентов, двухстадийный review schema.sql, planning-flow для крупных эпиков, parallel agents для независимых задач

Снятые ранее запреты (для исторической записи):

  • brainstorming — раньше дублировал §4.5 правил Claude. Теперь Pravila §11.1 разрешает override §4.5 при явном вызове skill.
  • writing-plans + executing-plans — раньше дублировали §8.4. Теперь §11.1 разрешает хранить план в формате skill.
  • dispatching-parallel-agents — раньше конфликтовал с §2.2. Теперь §11.1 разрешает закрытие подзадач без отдельного «закрываем»; финальные закрытия открытых вопросов реестра — по-прежнему только заказчиком.
  • using-git-worktrees — Windows-нестабильность сохраняется как факт среды (см. §11.2 правил), но запрет в правилах снят.

Что остаётся: §1 (роль), §3.6 (язык), §5 (ПДн), §7 (финал-закрытие открытых вопросов) — не override-ятся (см. Pravila §11.2).

4.2. Frontend-инструменты (4)

# Инструмент Установка Роль Конфликт
20 Volar (Vue.volar) VSCode Marketplace Language server для .vue (типы, intellisense, навигация)
21 vue-tsc npm i -D vue-tsc typescript Type-check .vue файлов Только в CI, не в редакторе — иначе тормозит Volar
22 ESLint + Prettier + eslint-config-prettier + eslint-plugin-vue (связка, 1 инструмент в учёте) npm i -D eslint prettier eslint-config-prettier eslint-plugin-vue Линт + форматтер JS/Vue. eslint-config-prettier обязательно — отключает в ESLint всё, что делает Prettier. Для .md Prettier отключён через .prettierignore (markdownlint главный) Связка ставится только целиком. Без eslint-config-prettier — конфликт правил
23 Vitest + @vue/test-utils npm i -D vitest @vue/test-utils @vitest/ui Тесты компонентов. Синтаксис близок к Pest для унификации backend↔frontend Не использовать Jest — один тест-раннер на проект

4.3. Каталог компонентов (1)

# Инструмент Установка Роль Альтернатива
24 Histoire 1.0-beta.1 npm i -D --legacy-peer-deps histoire @histoire/plugin-vue Каталог Vue-компонентов на базе Vuetify. Передача дизайнеру (Диз-1) и frontend-команде. Vite 8 несовместимость: заявлен peerDep vite ^7, ставим через --legacy-peer-deps; runtime smoke OK (08.05.2026 поздний вечер). При выходе beta.2+ с поддержкой Vite 8 — обновить. Конфиг: app/histoire.config.ts + app/resources/js/histoire.setup.ts (Vuetify через defineSetupVue3) Не Storybook — он тяжелее, медленнее, ориентирован на React

4.4. Доменный слой UI — Frontend Design plugin (paired со Superpowers)

Введено 09.05.2026 (v1.10 Прил. Н): запрет CLAUDE.md §5 п.5 на Frontend Design plugin снят по явному решению заказчика. Координация с #19 Superpowers — через docs/Plugin_stack_rules_v1.md (v1.6, 16 правил R0R15; cross-ref bumped в Tooling v1.14, раньше «10 правил» с эпохи v1.0). Парный stack одного приоритетного уровня; между плагинами нет иерархии. См. Pravila §13.

# Инструмент Установка Состав Когда использовать
30 Frontend Design plugin (Anthropic) Декларативно через ~/.claude/settings.json: extraKnownMarketplaces.anthropics-claude-plugins ({"source":"github","repo":"anthropics/claude-plugins"} или другой источник, утверждённый Anthropic) + enabledPlugins.frontend-design@anthropics-claude-plugins=true. Перезапуск Claude Code → плагин подгружается из marketplace. /plugin install в VSCode-extension недоступен — ставится только через settings.json Доменное знание UI: компоненты, layout, цвет, типография, паттерны, состояния (loading/empty/error), a11y-принципы Чисто визуальные задачи (палитра, типография, layout-эскиз, выбор паттерна, иконка, состояния) и фазы 2/5/7 UI-фичи (см. Plugin_stack_rules_v1 Правило 2)

Обязательный стек-фильтр (Правило 6 Plugin_stack_rules_v1):

Что брать (универсально) Что отфильтровать (стек-зависимо)
Принципы (a11y, контраст, фокус, иерархия, spacing-шкала) Конкретные имена компонентов чужого стека
Паттерны (modal-flow, form-validation UX, empty/loading/error states) Tailwind-классы, shadcn-импорты, JSX (CLAUDE.md §5 п.2)
Структуры состояний и переходов Конкретные библиотеки иконок (у нас Lucide)
Цветовые/типографические системы как принципы Конкретные палитры/шрифты (у нас Forest v8 + Inter/JetBrains Mono)

Ответ Frontend Design без выполненной адаптации = неполный ответ, возвращается в плагин на доработку.

A11y: Frontend Design покрывает только a11y-принципы (контраст, фокус-порядок, иерархия). Технический a11y (DOM-семантика, aria-роли, keyboard) остаётся за Pa11y (CLAUDE.md §5 п.3). Без подмены источника истины.

Live-отмены (Правило 0.4.B Plugin_stack_rules_v1):

  • «не используй 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.6+ R10/R11/R14.3 (cross-ref bumped в Tooling v1.14).

# Инструмент Установка Состав Когда использовать
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.6+):

Правило Где Что значит
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.6+ R10/R14.4 (cross-ref bumped в Tooling v1.14).

# Инструмент Установка Состав Когда использовать
32 21st.dev Magic MCP (magic сервер) ~/.claude.jsonmcpServers.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 ловит при попытке коммита). При случайном попадании именно ~/.claude.json (где хранится API-ключ; не путать с ~/.claude/settings.json — отдельный файл без секретов) в репо — немедленно ротировать ключ через 21st.dev dashboard.

4.7. Инфраструктурный слой — claude-md-management plugin (off-phase tool)

Введено 10.05.2026 (v1.13 Прил. Н): формализован как «инструмент-резерв вне фаз, инфраструктурная категория». Был фактически включён через ~/.claude/settings.json (enabledPlugins.claude-md-management@claude-plugins-official=true) с момента появления CLAUDE.md §5 п.10 (требование «правки CLAUDE.md только через плагин») — до v1.13 без формализации в реестре. Категория инфраструктурная, отличная от UI-пула (UPM/21st) — поэтому отдельная нумерация и не попадает под Pravila §13 (расширенный UI-пул).

# Инструмент Установка Состав Когда использовать
33 claude-md-management (skills, marketplace anthropics/claude-plugins-official) ~/.claude/settings.json: extraKnownMarketplaces.claude-plugins-official ({"source":"github","repo":"anthropics/claude-plugins-official"}) + enabledPlugins.claude-md-management@claude-plugins-official=true Два skill: claude-md-improver (audit + targeted updates CLAUDE.md по references/quality-criteria.md), revise-claude-md (capture session learnings в CLAUDE.md) Обязательно при любом изменении CLAUDE.md (CLAUDE.md §5 п.10). Прямые Edit/Write по корневому CLAUDE.md без вызова skill — нарушение §5 п.10

Обязательные правила использования (PSR_v1 v1.6+):

Правило Где Что значит
R10.1 инфраструктурный, не UI R10.1 PSR_v1 claude-md-management в отдельной категории от UPM/21st; не попадает в R14 pipeline UI-генераторов
R10.2 «инструмент, не решатель» R10.1 PSR_v1 Skill выполняет правки по делегированию из stack-flow или по явной /команде пользователя; не подменяет stack-gate
R0.4.A не требует gate R0.4.A PSR_v1 Тривиальные синки (опечатки, версии, кросс-ссылки) — без stack-gate, но через claude-md-improver (CLAUDE.md §5 п.10)
CLAUDE.md §5 п.10 SoT для интерфейса CLAUDE.md Единственный канал правок CLAUDE.md; внутри flow продолжают действовать §4 правил Claude (синхронизация Pravila + Tooling)

Live-отмена (R0.4.B PSR_v1): /claude-md-management:claude-md-improver или /claude-md-management:revise-claude-md — прямой вызов на одно действие.

Аналогичные категории (built-in skills Claude Code, не плагины через marketplace): review, security-review, init, simplify, update-config, keybindings-help, fewer-permission-prompts, loop, schedule, claude-api. Активируются по явному /имя от пользователя; не входят в enabledPlugins. См. PSR_v1 R10.1 блок 2 для полного реестра.


5. Фаза 3 — pre-production (+5 новых, итого 29 активных)

Триггер: ~спринт 12, перед публичным релизом MVP.

# Инструмент Установка Категория Роль
25 Semgrep + Semgrep MCP pip install semgrep + claude mcp add semgrep SAST Скан по антипаттернам Прил. М §6.6: пароль в <input type="text">, API-ключи в <input type="text">, hardcoded URL вроде prostats.info/bitrix24/webhook.php
26 Trivy GitHub Releases Container scan Скан Docker-образов перед push в Yandex Container Registry
27 GitHub Dependabot .github/dependabot.yml Dependency scan Авто-PR с фиксом CVE для composer.json и package.json
28 pg_audit (расширение PostgreSQL) CREATE EXTENSION pgaudit Compliance Аудит-логи в дополнение к auth_log, pd_processing_log, incidents_log (требование 152-ФЗ)
29 pg_anonymizer (расширение PostgreSQL) CREATE EXTENSION anon Compliance Маскирование ПДн в dev/staging-дампах. Правило §5.1 правил Claude (+7XXXXXXXXXX, ***@***)

Нумерация 25–29 — это глобальные индексы в порядке введения. Активных в финале — 28 (см. §0): из 29 номеров минус #1 (PostgreSQL MCP) — заменён Boost'ом.


6. Конфликты и решения

10 зон, где без явного правила я выберу не тот инструмент (5 классических из v1.0 + 5 новых из v1.4 PSR_v1, формализованных в Прил. Н v1.13):

# Конфликт Решение
1 PostgreSQL MCP ↔ Laravel Boost (Database Query) в момент перехода фазы 0→1 В момент boost:install сразу убрать PG MCP из .mcp.json. Не оставлять оба активными
2 Pest ↔ PHPUnit Pest 4 (CTO-12 переоткрыт+закрыт 08.05.2026 поздний вечер). На boost:install отключить guideline PHPUnit
3 vue-tsc ↔ Volar inline check Volar — для редактора (быстрый). vue-tsc — только в CI (полный pass)
4 ESLint stylistic ↔ Prettier eslint-config-prettier обязателен. Без него — конфликт правил
5 Pa11y ↔ Lighthouse a11y Lighthouse не входит в 28 (он инфраструктурный, см. §12). Если будет добавлен — отключить категорию accessibility через --only-categories=performance,best-practices
6 UPM (#31) ↔ Frontend Design (#30) на одной фазе UI-фичи PSR_v1 R10.1 + R14.5: не параллельно. UPM активируется последовательно как fallback (R14.3 «FD выдал не покрывает») или как «третий вариант» в R12 архитектурном (R11.5). Решатель — всегда FD; UPM — материал
7 21st Magic MCP (#32) ↔ существующий Vuetify-компонент PSR_v1 R0.6 пункт 10: hard-стоп даже в Auto mode. Для v-data-table/v-text-field/v-dialog/v-select/v-card/v-btn и др. — использовать Vuetify, 21st не вызывается. Дублирование инструментов на одну задачу = нарушение CLAUDE.md §5 п.6
8 21st Magic MCP (#32) ↔ брендовый компонент App* PSR_v1 R0.6 пункт 9: hard-стоп. Для AppButton/AppCard/AppDataTable/AppDialog и любых App*-семейств — R12 архитектурное (3 варианта по Pravila §4.5), 21st не вызывается. Брендовая оболочка проектируется руками с FD-принципами
9 framer-motion ↔ motion-v (Vue порт) PSR_v1 R15.1 + R15.2: framer-motion — hard-запрет навсегда (React-only архитектурно, не работает в Vue). motion-v — условно по 4 триггерам (а)+(б)+(в)+(г). По умолчанию ни то, ни другое — стойка R15.3 (Vue native + Vuetify + CSS + View Transitions API)
10 UPM (#31) ↔ 21st Magic MCP (#32) на одной фазе PSR_v1 R14.5: не на одной фазе. UPM работает на фазах 1/2 R2 (brainstorming + visual design); 21st — на фазе 5 R2 (визуальная сборка). Если кажется, что нужны оба — задача декомпозируется на под-задачи

7. Source of truth — приоритет правил

При противоречии между правилами (синхронизировано с CLAUDE.md §1, 7-уровневая файловая иерархия; добавлен PSR_v1 уровнем 3 в v1.13):

0. docs/Pravila_raboty_Claude_v1_1.md §12 (Superpowers hard rule — выше всех)
        ↓
1. docs/Pravila_raboty_Claude_v1_1.md (остальные параграфы — продуктовые правила, утверждены заказчиком)
        ↓
2. CLAUDE.md (корень — оперативная карта, авто-загружается Claude Code)
        ↓
3. docs/Plugin_stack_rules_v1.md (PSR_v1 — координация paired-stack ядра + расширенного UI-пула + motion-системы)
        ↓
4. .claude/settings.json (хуки, permissions — исполняется средой)
        ↓
5. memory/*.md (динамическая память между сессиями Claude)
        ↓
6. Прочие плагины и встроенные skills Claude Code (поведенческие подсказки, ниже всех)

Правило применения: при любом конфликте — выбирается верхний источник. Нижестоящие игнорируются в части, которая противоречит верхним. Это правило явно зафиксировано в CLAUDE.md §1. Scope: общая файловая/слоевая иерархия. Внутрипараграфный приоритет внутри Pravila — см. Pravila §0; scope головенства stack'а — см. PSR_v1 R0.1.

Tooling Прил. Н в priority chain (v1.14+): этот файл (детальный реестр 33 инструментов) сидит уровнем 2b alongside CLAUDE.md (общая оперативная карта) — оба operational maps. При прямом конфликте между ними побеждает CLAUDE.md как корневая карта Claude Code. Раньше (до v1.14) Tooling формально не был в priority chain ни одного из 4 файлов, хотя PSR_v1 R0.1 говорил «stack ниже Файлы CLAUDE.md / Pravila / Tooling» — формальная дыра при конфликте «Tooling vs PSR_v1». Закрыто в v1.14 (audit P2-01).

Полная цепочка с Tooling: 0 (Pravila §12) → 1 (Pravila) → 2a (CLAUDE.md) + 2b (этот файл, alongside) → 3 (PSR_v1) → 4 (settings.json) → 5 (memory) → 6 (прочие плагины).


8. Source of truth — конфиги

Где какой конфиг лежит и кто его редактирует:

Конфиг Где Редактирует В git?
.markdownlint.json корень разработчик
cspell.json + cspell-words.txt корень разработчик (словарь обновляется по PR)
.lychee.toml корень разработчик
.gitleaks.toml корень security lead
.stylelintrc.json корень frontend lead (фаза 2)
pa11y.config.json корень frontend lead
.claude/settings.json (хуки, permissions) .claude/ Claude (по запросу через /update-config)
.mcp.json (MCP-серверы) корень разработчик (не Boost) — расхождение с дефолтом Boost'а
CLAUDE.md корень Claude (по запросу заказчика)
boost.json корень разработчик
pint.json корень (фаза 1) backend lead
phpstan.neon (Larastan) корень (фаза 1) backend lead
eslint.config.js корень (фаза 2) frontend lead
.prettierrc + .prettierignore корень (фаза 2) frontend lead
vitest.config.ts корень (фаза 2) frontend lead
histoire.config.ts корень (фаза 2) frontend lead
semgrep.yml .github/ (фаза 3) security lead
dependabot.yml .github/ (фаза 3) DevOps

9. Что НЕ ставим и почему (10 пунктов + motion-runtime раздел v1.12)

9.1. Изначальный список

Инструмент Причина отказа
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)
Psalm Перекрывается Larastan
Jest Перекрывается Vitest (один тест-раннер)
Storybook (для Vue) Histoire легче и нативнее для Vue 3 + Vite
Snyk (платный) Dependabot бесплатный и достаточный
markdown-link-check lychee быстрее (Rust vs Node) и надёжнее
Sequential Thinking MCP Дублирует моё базовое рассуждение, жрёт токены
Memory MCP Конфликтует с моей файловой памятью в memory/
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. Процедура перехода между фазами

10.1. Фаза 0 → Фаза 1

Триггер: composer create-project laravel/laravel app (или эквивалент).

Шаги (исходный план; отметки фактического статуса в правой колонке после прохождения 08.05.2026):

# Шаг Статус 08.05.2026
1 composer require laravel/boost --dev e04f53b (Boost v2.4.6)
2 Запустить php artisan boost:install — пройти интерактивный wizard ⚠️ обойдено: wizard сломан на этой машине (кириллица + L13 ConfiguresPrompts bug) — см. §3.1 «Что нового в v1.5» и memory feedback_environment.md п.26. Manual setup вместо wizard'а
3 Удалить PostgreSQL MCP из .mcp.json убран ещё в фазе 0 (_comment_postgres)
4 В boost.json — отключить нерелевантные guidelines избыточно: Boost через Roster auto-detect видит установленные пакеты — не установленных (Inertia/Livewire/Tailwind/Filament/Sail/PHPUnit) не серверит. boost.json минимален: 3 ключа (agents/guidelines/mcp)
5 Создать кастомный guideline для Vuetify 3 в app/.ai/guidelines/vuetify.md (был resources/boost/guidelines/vuetify.blade.php — путь скорректирован на §10.2 после source-проверки) e04f53b
6 Слить (не перезаписать) CLAUDE.md если Boost создал черновик не применимо: при manual setup Boost ничего не пишет в CLAUDE.md (ни корневой, ни app/CLAUDE.md). Корневой остаётся источником истины
7 Установить Pint, Larastan, Roave/SecurityAdvisories, IDE Helper Pint+Larastan+IDE Helper в 0345683; Roave/SA в 0eb2f72
8 Установить squawk, pgFormatter squawk v2.51.0 + pgFormatter v5.9 в коммите v1.6 (см. §0 «Что нового в v1.6»). Squawk — pre-commit хук на staged *.sql + конфиг .squawk.toml (9 правил исключены). pgFormatter — только ручной режим через npm-скрипты, авто-fix хук недопустим (стиль schema.sql ручной)
8a Установить pg_partman не применимо: Windows-native PG не имеет pg_partman; заменён ручным cron'ом — см. memory project_phase1_strategy.md
9 Установить Pest 4 30f0335 (Pest 4.7.0 + plugin-laravel 4.1.0; smoke-test 2/2 за 281 ms)
10 Обновить .claude/settings.json — добавить хуки для Pint и Larastan ⏸ pending: после установки lefthook или эквивалента
11 Прогнать full-pass всех инструментов ⏸ pending: после §8/§10
12 Обновить эту версию Прил. Н v1.0 → v1.1 (Pest 3) → v1.2 (native стек) → v1.3 (Pest 4) → v1.4 (Laravel 13) → v1.5 (Boost+SA active)

10.2. Vuetify guideline для Boost (заготовка)

Путь к файлу: app/.ai/guidelines/vuetify.md (или .blade.php, оба расширения поддерживаются GuidelineComposer). Старая формулировка «resources/boost/guidelines/vuetify.blade.php» скорректирована в v1.5 после source-проверки Laravel\Boost\Install\GuidelineComposer::userGuidelineDir = '.ai/guidelines'. Финальная версия живёт в репозитории — заготовка ниже сохранена как историческая.

## Vuetify 3

Проект использует Vuetify 3 как UI-библиотеку (CTO-11). Tailwind CSS, shadcn-vue, Element UI, jQuery, Bootstrap — НЕ использовать.

### Палитра — из brandbook.md §3 и §8.2

- primary: `#0F6E56` (Teal 600)
- secondary: `#5DCAA5` (Teal 200)
- background: `#F1EFE8` (Slate 100)
- surface: `#FFFFFF`

Vuetify-тема — `liderraLight` и `liderraDark` — определена в `brandbook.md` §8.2.

### Шрифты

- основной: Inter (через Google Fonts с subset cyrillic)
- код: JetBrains Mono

### Компоненты

Использовать Vuetify-компоненты (`v-card`, `v-btn`, `v-data-table`, `v-form`, `v-text-field`) с дефолтным material-стилем, переопределённым через `:root` CSS-переменные из `brandbook.md` §8.1.

### A11y

Все компоненты должны проходить Pa11y по WCAG 2.1 AA (брендбук §3.4). Контраст текста на белом — минимум 4.5:1.

10.3. Фаза 1 → Фаза 2

Триггер: первый Vue-компонент.

Шаги:

  1. Установить Volar (VSCode), vue-tsc, ESLint + config-prettier + plugin-vue, Prettier, Vitest, Histoire.
  2. Установить Superpowers v5.1.0 — все 14 skills (Pravila §12 v1.4+ hard rule «Superpowers first»; Pravila §11 «полное снятие запретов» с v1.8). Установка декларативно через ~/.claude/settings.json: extraKnownMarketplaces.superpowers-dev + enabledPlugins.superpowers@superpowers-dev=true. Без enabled_skills ограничителей. ⚠️ Историческая контрадикция (закрыта v1.14): до v1.14 этот шаг гласил «enabled_skills = только 3 (test-driven-development, systematic-debugging, subagent-driven-development)» — устаревшая политика v1.7 (3/13 skills с запретами). v1.8 сняла все запреты через §11 override (вариант «A. Полное снятие»); v1.9 ввела §12 hard rule (skill инвокируется первым). См. §4.1 этого же файла для полной хронологии.
  3. Прогнать первый Histoire-story для тестового компонента.
  4. Запустить Pa11y на первой Vue-странице (выявить регрессии относительно HTML-прототипов).
  5. Обновить Прил. Н: v1.1 → v1.2.

10.4. Фаза 2 → Фаза 3

Триггер: ~спринт 12, объявление о подготовке к релизу.

Шаги:

  1. Установить Semgrep + Semgrep MCP, Trivy, Dependabot.
  2. Включить расширения PostgreSQL: pg_audit, pg_anonymizer.
  3. Прогнать первый полный SAST-пасс по проекту, зафиксировать baseline.
  4. Прогнать Trivy на текущем образе, зафиксировать baseline.
  5. Сделать первый dump БД через pg_anonymizer для staging.
  6. Обновить Прил. Н: v1.2 → v1.3.

11. Конфигурация под Windows + PowerShell

Особенности для текущего окружения (Windows 10, PowerShell 5.1):

11.1. Пути и кодировки

  • Все скрипты в package.json — кросс-платформенные (использовать cross-env, не export VAR=...).
  • Файлы .md — UTF-8 БЕЗ BOM. Если PowerShell Set-Content создал файл с BOM — исправить.
  • Длинные пути — включить git config --global core.longpaths true перед клонированием в глубокие папки.

11.2. Git worktrees

  • Skill using-git-worktrees Superpowers разрешён с 09.05.2026 (см. §4.1; Pravila §11). Запрет был снят вместе с прочими.
  • Среда остаётся враждебной: на этой машине путь содержит кириллицу (c:\моя\проекты\портал crm\…) — worktree-операции будут падать с неинформативной ошибкой. Skill при использовании сам должен обработать ошибку или переключиться на альтернативу.
  • Если ручное использование worktree — избегать пробелов и кириллицы (c:\projects\liderra-feature ОК, c:\My Documents\... или c:\моя\… — НЕ).

11.3. Pre-commit hooks

  • Husky или lefthook (предпочтительно lefthook — на Go, без Node-зависимости).
  • Скрипты в hooks — bash-совместимые, запускать через cmd /c или WSL.

11.4. Глобальные CLI-утилиты

  • gitleaks, lychee, squawk, Trivy, Semgrep — скачать готовые бинарники для Windows из GitHub Releases (squawk: npm i -g squawk-cli + копия в bin/squawk.exe см. §3.3).
  • pgFormatter — Perl-скрипт. На этой машине работает через Cygwin Perl 5.42.2 из Git for Windows (без отдельной установки ActivePerl/Strawberry/WSL). Если Git for Windows не ставился — поставить ActivePerl или Strawberry Perl.
  • Pa11y, markdownlint-cli2, cspell, Histoire — npm-пакеты, работают нативно.

11.5. Yandex Cloud CLI и Terraform

Не входят в 33 формализованные позиции тулчейна (см. §12). Ставятся отдельно для DevOps-роли. На Windows — yc и terraform через скачивание .zip или winget.


12. Что вне 33 формализованных позиций (инфраструктура)

Эти 7 пунктов критичны для проекта, но используются DevOps, не Claude. Поэтому в основной реестр не входят, но фиксирую для полноты:

Инструмент Зачем
Yandex Cloud CLI (yc) Провижининг по Прил. К
Terraform + yandex-cloud/yandex provider + terraform-ls IaC
Docker + docker-compose Локальная разработка
GitHub Actions CI/CD pipeline
Sentry self-hosted Ю-7 (зафиксировано)
Grafana + Prometheus + Alertmanager Прил. И §1
Lighthouse CI Performance-регрессия в pipeline

Если позже решим вовлечь Claude в инфраструктурные задачи — добавится фаза 4 (или эти инструменты переедут в основной реестр).


13. История версий

Версия Дата Что нового
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.13 10.05.2026 Закрытие 4 структурных находок аудита нормативной документации: §7 «Source of truth» обновлён с 5-уровневой на 7-уровневую цепочку — добавлен Plugin_stack_rules_v1.md (PSR_v1) уровнем 3 (координирующий слой между paired-stack ядром и расширенным UI-пулом); явно вынесен Pravila §12 (Superpowers hard rule) уровнем 0; sync с CLAUDE.md §1. §4.7 (новый) — #33 claude-md-management plugin формализован как off-phase инфраструктурный инструмент (был фактически включён в ~/.claude/settings.json с момента CLAUDE.md §5 п.10, но без формализации); отдельная категория инфраструктурная, не UI — поэтому не попадает под Pravila §13 (расширенный UI-пул) и не проходит R6.0/R6.1/R14 pipeline. §6 «Конфликты и решения» расширен с 5 до 10 строк — добавлены 5 новых конфликтов из PSR_v1 v1.4: UPM↔FD, 21st↔Vuetify-эквивалент, 21st↔брендовый App*, framer-motion↔motion-v, UPM↔21st. §4.6 — settings.json → ~/.claude.json: уточнено, что API-ключ 21st хранится в ~/.claude.json, не в ~/.claude/settings.json. §0 — счётчик 31 → 33 (3 off-phase: UPM #31, 21st #32, claude-md-management #33). Total формализованных: 33 (29 активных по фазам + 3 off-phase + 1 заменённый PG MCP исторически). Связано: Pravila v1.8 → v1.9, PSR_v1 v1.4 → v1.5, CLAUDE.md v1.83 → v1.84.
v1.14 10.05.2026 (вечер) Закрытие 3 находок второго аудита правил использования плагинов и скилов (P0-01, P0-04, P2-01 в Tooling — из 15 общих находок). P0-01: §10.3 шаг 2 sync с §4.1 — раньше шаг гласил «Установить Superpowers с конфигом enabled_skills = только 3» (политика v1.7), но §4.1 того же файла говорит «v1.8 снятие запретов через §11 override (полное снятие); v1.9 hard rule §12 первоочерёдное использование» — внутри-документная контрадикция. v1.14: §10.3 шаг 2 переписан на 14 skills с пометкой об устаревшей версии. P0-04: §13 +v1.13 +v1.14 entries — раньше история обрывалась на v1.12, хотя шапка описывала v1.13. v1.14: таблица синхронизирована (добавлены v1.13 + v1.14 строки). P2-01: §7 priority chain +Tooling explicit slot — раньше Tooling Прил. Н формально не было в priority chain ни одного из 4 файлов, хотя PSR_v1 R0.1 говорил «stack ниже Tooling»; формальная дыра при конфликте «Tooling vs PSR_v1». v1.14: добавлен note про Tooling уровнем 2b alongside CLAUDE.md (оба operational maps; при прямом конфликте — приоритет CLAUDE.md). Total формализованных: 33 (без изменений; правки касаются формулировок и priority chain). Связано: Pravila v1.9 → v1.10, PSR_v1 v1.5 → v1.6, CLAUDE.md v1.84 → v1.85. Через /claude-md-management:claude-md-improver.
v1.15 10.05.2026 (поздний вечер) Закрытие 4 находок третьего аудита правил использования плагинов и скилов (P1-03/04/05 + §11.5/§12 «28→33» в Tooling — из 13 общих находок). P1-03/04/05: sync cross-refs шапки на актуальные версии связанных документов после bump'ов CLAUDE.md v1.85 → v1.86 и PSR_v1 v1.6 → v1.7: «Pravila v1.9+» → «v1.10+», «PSR_v1 v1.5+» → «v1.7+», «CLAUDE.md v1.84+» → «v1.86+». «+»-нотация сохранена (forward-compat). §11.5/§12 — формулировка «28 инструментов» → «33 формализованные позиции»: в DevOps-разделе текст застрял с эпохи v1.0, когда счётчик был 28; смысловое назначение фразы — «реестр Лидерры», который теперь имеет 33 формализованных позиции. История версий ниже и changelog'и в шапках v1.0/v1.10/v1.12 — это снимки эпох и не правятся. Total формализованных: 33 (без изменений; правки касаются формулировок и cross-refs). Связано: PSR_v1 v1.6 → v1.7, CLAUDE.md v1.85 → v1.86. Pravila v1.10 — без правок. Через /claude-md-management:claude-md-improver.

Прил. Н v1.15 от 10.05.2026 (поздний вечер) — закрытие 4 находок третьего аудита (P1-03/04/05 sync cross-refs, §11.5/§12 «28→33»). 33 позиций (без изменений).

Прил. Н v1.14 от 10.05.2026 (вечер) — закрытие 3 находок второго аудита (P0-01 §10.3 sync, P0-04 §13 +v1.13 +v1.14 entries, P2-01 §7 +Tooling explicit slot). 33 позиций (без изменений).

Прил. Н v1.13 от 10.05.2026 — закрытие 4 структурных находок аудита нормативной документации (§7 +PSR_v1 уровнем 3, §4.7 новый — #33 claude-md-management, §6 +5 конфликтов v1.4, §4.6 settings → .claude.json). 33 позиций (19/29 активны по фазам + 3 off-phase + 1 заменённый PG MCP).

Прил. Н 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.8+, README_АРХИВ_v8_4.md v8.4+.