ed9bade863
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>
267 lines
51 KiB
Plaintext
267 lines
51 KiB
Plaintext
# CLAUDE.md — техконтекст Лидерры
|
||
|
||
**Версия:** 1.86 от 10.05.2026 (поздний вечер) — закрытие 13 находок третьего аудита правил использования плагинов и скилов (4 P0 + 5 P1 + 2 P2 + 2 sync-правки в README/README_АРХИВ). Через `/claude-md-management:claude-md-improver`. Ключевые правки: **P0-01 §3 header «Карта 28 инструментов» → «33 инструментов»** (header застрял с pre-FD эпохи, в то время как контент включает #1–#33); **P0-02 §3.4 header «(+5, итого 28)» → «итого 29»** (после добавления #30 в фазу 2 фаза 3 cumulative должна быть 29, не 28); **P0-03 §3.3 footer «из 30 номеров минус #1 = 29 active» → «из 33 номеров (29 phase-slot + 3 off-phase + 1 historic)»** (формулировка предшествовала формализации #31/#32/#33); **P0-04 §6 «Активно: 19 инструментов из 29» + «(19/29 активны по фазам)» → «24 / (24/29)»** (внутренний арифметический конфликт: тут же раскладка 9+8+7=24, но числовая метка застряла на 19 с эпохи когда фаза 2 имела ~4 активных); **P1-06 §5 п.5 «PSR_v1 v1.5+» → «v1.7+»** (sync после bump'а PSR_v1); **P2-02 §3.3 #33 «вне Pravila §13» → «вне UI-пула §13»** (Pravila §13.2 v1.10 включает claude-md-management как infrastructure subsection — текущая формулировка вводила в заблуждение). Связанные обновления: **PSR_v1 v1.6 → v1.7** (sync cross-refs шапки на v1.86/v1.10/v1.15; description-fix описки «slot уровня 2.5» → «2b» внутри changelog'а v1.6, фактическое R0.1 всегда содержало «2b»). **Tooling v1.14 → v1.15** (sync cross-refs шапки на v1.86/v1.10/v1.7; §11.5/§12 «28 инструментов» → «33 формализованные позиции»). Pravila v1.10 — без изменений. Предыдущая v1.85 — закрытие 15 находок второго аудита (детали в [docs/CHANGELOG_claude_md.md](docs/CHANGELOG_claude_md.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.
|
||
|
||
> **Ребрендинг 08.05.2026:** «Лидпоток» → **«Лидерра.»** (с точкой). Палитра, лого и шрифты — из handoff Платона (v8 Forest). Применяется только к дизайну/имени/логотипу; функционал, состав страниц и правила — без изменений (источник — ТЗ v8.5/schema v8.5).
|
||
|
||
---
|
||
|
||
## 0. Источник истины
|
||
|
||
| Тема | Документ |
|
||
|---|---|
|
||
| Продуктовые правила работы Claude | [docs/Pravila_raboty_Claude_v1_1.md](docs/Pravila_raboty_Claude_v1_1.md) (**v1.10 от 10.05.2026 вечер** — §0 +note про §11 локальное override-исключение над §2.2/§4.5/§8.4; §11.5 «10 правил» → «v1.6, 16»; §13.2 «v1.4 (15 правил)» → «v1.6 (16)»; §13.9/§13.10 PSR_v1 v1.4 → v1.6; v1.9 наследие — §12.3 SoT, §13.2 +claude-md-management off-pool, §13.6 hard-rule tier-структура) |
|
||
| **Правила совместного использования плагинов Claude** | [docs/Plugin_stack_rules_v1.md](docs/Plugin_stack_rules_v1.md) (**v1.7 от 10.05.2026 поздний вечер** — sync cross-refs шапки на актуальные версии связанных документов после bump'ов CLAUDE.md v1.85 → v1.86 и Tooling v1.14 → v1.15; description-fix описки «slot уровня 2.5» → «slot уровня 2b» внутри changelog'а v1.6 (фактическое R0.1 line 33 всегда содержало «2b»); v1.6 наследие — R0.4.A свёрнут до cross-ref на Pravila §12.3 SoT, R0.6 пронумерован 1–11; v1.5 наследие — R10.1 разбит на 3 блока (enabledPlugins/built-in/MCP), R10.4/R14.7 tier-метки, R8 +тай-брейкер FD↔21st) |
|
||
| Полный реестр 33 формализованных позиций тулчейна (29 active + 3 off-phase + 1 historic) | [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md) (**Прил. Н v1.15 от 10.05.2026 поздний вечер** — 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+»); §11.5/§12 «28 инструментов» → «33 формализованные позиции» (DevOps-раздел застрял с эпохи v1.0 — фразы «не входят в 28», «вне 28»); v1.14 наследие — §10.3 шаг 2 «3 skills» → «14», §13 +v1.13 +v1.14 entries, §7 +Tooling explicit slot 2b alongside CLAUDE.md; v1.13 наследие — §7 +PSR_v1 уровнем 3, §4.7 +#33 claude-md-management, §6 +5 конфликтов v1.4, §4.6 settings → .claude.json, §0 счётчик 33) |
|
||
| Главное ТЗ | [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) |
|
||
| **Брендбук** | [liderra_v8_handoff/docs/BRANDBOOK_v2.md](liderra_v8_handoff/docs/BRANDBOOK_v2.md) **(v2 Forest от 07.05.2026)** — старый `docs/brandbook.md` v1.1 удалён 08.05.2026 |
|
||
| **Дизайн-handoff (токены, компоненты, 25 экранов)** | [liderra_v8_handoff/docs/DEVELOPER_HANDOFF.md](liderra_v8_handoff/docs/DEVELOPER_HANDOFF.md) (v8 Forest от 07.05.2026) — **только дизайн/токены/компоненты**; функционал и состав экранов — по ТЗ v8.5 |
|
||
| Анализ оригинала | [docs/Analiz_originala_v8_3.md](docs/Analiz_originala_v8_3.md) (Прил. М v1.1) |
|
||
| ТЗ рекламного лендинга | [лендинг/TZ_landing_v1_0.md](лендинг/TZ_landing_v1_0.md) (v1.0 от 08.05.2026, ⏸ Б-1 для продакшена) |
|
||
| Состав архива | [docs/README_АРХИВ_v8_5.md](docs/README_АРХИВ_v8_5.md) (v8.5 от 07.05.2026) |
|
||
|
||
Этот файл — **оперативная карта**. При противоречии — приоритет у источников выше.
|
||
|
||
---
|
||
|
||
## 1. Приоритет правил при конфликте
|
||
|
||
```
|
||
0. Pravila §12 — Superpowers hard rule (инвокация skills первой) ← неотменяемо §9
|
||
↓
|
||
1. docs/Pravila_raboty_Claude_v1_1.md (продуктовые правила, утверждены заказчиком)
|
||
↓
|
||
2a. CLAUDE.md (общая оперативная карта)
|
||
2b. docs/Tooling_v8_3.md Прил. Н (детальный реестр 33 инструментов)
|
||
↑ оба operational maps уровня 2; при конфликте между ними — приоритет CLAUDE.md
|
||
↓
|
||
3. docs/Plugin_stack_rules_v1.md (координация Superpowers + Frontend Design — gate, фазы, разделения)
|
||
↓
|
||
4. .claude/settings.json (хуки, permissions — исполняется средой)
|
||
↓
|
||
5. memory/*.md (динамическая память между сессиями)
|
||
↓
|
||
6. Прочие плагины (claude-md-management, ui-ux-pro-max и т.п.) — поведенческие подсказки
|
||
```
|
||
|
||
При любом противоречии — выбирается верхний уровень. **§12 правил Claude — единственное explicit hard-правило в Pravila; §9 «Отступления» к нему не применяется** (см. Pravila §12.4). Дополнительно §13.9 и §13.10 Pravila — **transitive hard-rule** через hard-link на нарушения PSR_v1 R10/R14 (см. Pravila §13.6 tier-таблицу). Plugin_stack_rules_v1 (уровень 3) — координирующий слой между двумя плагинами Claude; ниже Pravila/CLAUDE.md/Tooling, выше settings.json. **Tooling Прил. Н** (уровень 2b, добавлен в v1.85) — детальный реестр инструментов; alongside CLAUDE.md (оба operational maps), но при прямом конфликте между ними побеждает CLAUDE.md как корневая карта Claude Code.
|
||
|
||
**Scope этой цепочки (v1.85+):** общая 7-уровневая **файловая/слоевая** иерархия (уровень 2 разделён на 2a CLAUDE.md + 2b Tooling — оба operational maps). Не дублирует:
|
||
|
||
- **Pravila §0** — внутрипараграфный приоритет внутри Pravila (§1–§13).
|
||
- **PSR_v1 R0.1** — scope головенства stack'а внутри уровней 4–6 этой цепочки.
|
||
- **Tooling §7** — синхронная копия этой цепочки для Tooling-читателей.
|
||
|
||
---
|
||
|
||
## 2. Стек проекта
|
||
|
||
| Слой | Что |
|
||
|---|---|
|
||
| Backend | PHP 8.3 + **Laravel 13** (мажор переоткрыт 08.05.2026 поздний вечер: при `composer create-project laravel/laravel` без `^11` Composer подтянул свежайшую 13.7; live-проверка совместимости — Boost v2.4.6, Larastan v3.9.6, Pest v4.7.0, IDE Helper v3.7.0, Pint v1.29 работают; принято заказчиком) |
|
||
| Frontend | Vue 3 + **Vuetify 3** (НЕ Tailwind, НЕ Inertia, НЕ Livewire, НЕ Filament) |
|
||
| БД | PostgreSQL 16 (**56 базовых таблиц + 12 партиций, 97 индексов, 38 RLS-политик, 4 роли БД, 13 триггеров, 5 функций** — schema v8.11 от 09.05.2026; backend multi-tenant фундамент развернут на dev `liderra` через `php artisan migrate:fresh`) |
|
||
| Кэш / очереди | Redis 7 |
|
||
| Pooler | PgBouncer (transaction pooling) |
|
||
| Облако | Yandex Cloud, регион `ru-central1` (Москва) |
|
||
| SSO админов | Yandex 360 |
|
||
| Email | Unisender Go (SMTP-relay) |
|
||
| 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. **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.
|
||
|
||
---
|
||
|
||
## 3. Карта 33 инструментов — «когда что использовать»
|
||
|
||
Полный реестр с командами установки и конфликтами — [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md). Здесь — оперативная карта для частых задач.
|
||
|
||
### 3.1. Фаза 0 — документация (9 активных)
|
||
|
||
| # | Задача | Инструмент | Команда |
|
||
|---|---|---|---|
|
||
| 1 | ~~SQL-запрос к dev-БД~~ | ~~PostgreSQL MCP~~ | заменён #10 Boost (см. §3.2) |
|
||
| 2 | Открыть/проверить `web/*.html` | Playwright MCP | через MCP |
|
||
| 3 | Issues / PR | GitHub MCP | через MCP |
|
||
| 4 | Линт `.md` | markdownlint-cli2 | `npm run lint:md` |
|
||
| 5 | Орфография `.md` | cspell | `npm run spell` |
|
||
| 6 | Проверка ссылок в `.md` | lychee | `npm run links` |
|
||
| 7 | Линт CSS в прототипах | Stylelint | `npm run lint:css` |
|
||
| 8 | Поиск секретов в diff | gitleaks | pre-commit hook |
|
||
| 9 | A11y проверка прототипов | Pa11y | `npm run a11y` |
|
||
|
||
### 3.2. Фаза 1 — старт Laravel (+8 нетто, итого 17)
|
||
|
||
| # | Задача | Инструмент | Команда |
|
||
|---|---|---|---|
|
||
| 10 | SQL / Eloquent / docs Laravel | **Laravel Boost** (заменяет PG MCP) | через MCP-tools Boost'а |
|
||
| 11 | Code style PHP | Laravel Pint | `composer pint` |
|
||
| 12 | Статанализ PHP | Larastan | `composer stan` (CI) |
|
||
| 13 | CVE на install | Roave/SecurityAdvisories | автоматически на `composer install` |
|
||
| 14 | IDE-stubs PHP | Laravel IDE Helper | `php artisan ide-helper:generate` |
|
||
| 15 | Линт миграций PostgreSQL | squawk | в pre-commit для `database/migrations/*.php` |
|
||
| 16 | Форматирование SQL | pgFormatter | хук на правке `db/schema.sql` |
|
||
| 17 | Партиционирование PG | pg_partman | расширение БД |
|
||
| 18 | Тесты PHP | **Pest 4** (CTO-12 переоткрыт+закрыт 08.05.2026 поздний вечер; backward-compat с 3, бонус: browser/stress/mutation v2) | `composer test` |
|
||
|
||
### 3.3. Фаза 2 — старт frontend (+7, итого 24)
|
||
|
||
| # | Задача | Инструмент | Команда |
|
||
|---|---|---|---|
|
||
| 19 | Поведение Claude (TDD/debug/review/plans/parallel) | Superpowers v5.1.0 — все 14 skills | автоматически (override §2.2/§4.5/§8.4 разрешён, см. Pravila §11) + **§12 hard rule: skill инвокируется ПЕРВЫМ** для подходящих задач (карта §12.2 правил Claude); координация с #30 Frontend Design — см. [docs/Plugin_stack_rules_v1.md](docs/Plugin_stack_rules_v1.md) |
|
||
| 20 | Vue language server | Volar | VSCode-расширение |
|
||
| 21 | Type-check Vue | vue-tsc | `npm run type-check` (CI only) |
|
||
| 22 | Линт + форматтер JS/Vue (связка) | ESLint + Prettier + config-prettier + plugin-vue | `npm run lint:vue`, `npm run format` |
|
||
| 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.6 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.6 R14.4 pipeline (pre-check R0.6 пунктов 9–10: брендовый App*? Vuetify-эквивалент? существующий компонент? — все «нет» обязательно) → R6.0 фильтр (JSX→Vue, Tailwind→utility, shadcn→Vuetify) → R6.1 hard-override → FD адаптация; Pa11y обязателен на deployable |
|
||
| 33 | Инфраструктурный плагин для CLAUDE.md edits — *off-phase tool, инфраструктурная категория* | **claude-md-management** (skills `claude-md-improver` + `revise-claude-md`, marketplace `anthropics/claude-plugins-official`) | автоматически через `~/.claude/settings.json`; **обязательный канал** правок CLAUDE.md (§5 п.10). Категория **инфраструктурная** (не UI), **вне UI-пула §13** Pravila (но в §13.2 как infrastructure subsection v1.9+) — поэтому не проходит R6.0/R6.1 фильтр и R14 pipeline. Регулируется PSR_v1 R10.1 блок 1 |
|
||
|
||
### 3.4. Фаза 3 — pre-production (+5, итого 29)
|
||
|
||
| # | Задача | Инструмент | Команда |
|
||
|---|---|---|---|
|
||
| 25 | SAST | Semgrep + Semgrep MCP | `npm run sast` (CI) |
|
||
| 26 | Скан Docker-образов | Trivy | в CI перед push в Yandex Container Registry |
|
||
| 27 | CVE-PR авто | GitHub Dependabot | `.github/dependabot.yml` |
|
||
| 28 | Audit-логи PostgreSQL | pg_audit | расширение БД |
|
||
| 29 | Маскирование ПДн в дампах | pg_anonymizer | расширение БД |
|
||
|
||
(Нумерация: #1–#29 — phase-slot (фазы 0–3) в порядке введения; #30 Frontend Design plugin добавлен post-MVP в фазу 2 после закрытия фазы 3 в реестре; #31 UPM, #32 21st Magic MCP, #33 claude-md-management — off-phase tools (формализованы post-факт, см. §6). **Phase-slot активных: 29** — из 30 phase-номеров минус #1 PostgreSQL MCP (заменён #10 Boost). Off-phase tools — отдельная категория, не входят в фазовую раскладку. **Total формализованных позиций: 33** = 29 phase-active + 3 off-phase + 1 historic (#1).)
|
||
|
||
### 3.5. Заметки к `.claude/settings.json`
|
||
|
||
- **Permissions**: список allow/deny — для фазы 0 (документация + HTML-прототипы). При переходе в фазу 1 добавить `Bash(composer:*)`, `Bash(php artisan:*)`.
|
||
- **Hooks**: один хук на авто-fix Markdown через `markdownlint-cli2` (исключая корневой `CLAUDE.md`, чтобы не зацикливаться). Pre-commit (gitleaks, link-check) — **не здесь**, отдельно через git hooks (lefthook).
|
||
- **Источник истины**: см. [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md) Прил. Н §8 — source of truth для всех конфигов проекта.
|
||
- **`$schema`**: канонический URL — `https://json.schemastore.org/claude-code-settings.json` (только этот валиден для Claude Code; кастомные `_comments` / `comment` в файле — нельзя, схема их отвергает).
|
||
|
||
---
|
||
|
||
## 4. Команды быстрого доступа
|
||
|
||
```bash
|
||
# Документация (фаза 0, активно сейчас)
|
||
npm run lint:md # markdownlint
|
||
npm run spell # cspell
|
||
npm run links # lychee
|
||
npm run a11y # Pa11y
|
||
npm run check:docs # все 4 выше параллельно
|
||
|
||
# Безопасность (Windows: бинарь в bin/, не в PATH; Linux/Mac CI ставят gitleaks через brew/apt)
|
||
./bin/gitleaks.exe detect # ручной запуск
|
||
./bin/gitleaks.exe protect --staged # в pre-commit (через lefthook)
|
||
|
||
# Backend (фаза 1+)
|
||
composer pint # форматтер
|
||
composer stan # Larastan
|
||
composer test # Pest или PHPUnit
|
||
php artisan boost:mcp # запуск MCP-сервера Boost вручную
|
||
|
||
# Frontend (фаза 2+)
|
||
npm run lint:vue
|
||
npm run type-check
|
||
npm run test:vue
|
||
npm run story # Histoire
|
||
|
||
# Pre-prod (фаза 3+)
|
||
npm run sast # Semgrep
|
||
trivy image liderra:latest
|
||
```
|
||
|
||
---
|
||
|
||
## 5. Что НЕ делать
|
||
|
||
1. **Не подключать Boost к production DB.** `.env.production` не должен попадать в локальный Boost-конфиг.
|
||
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. **Расширенный пул UI-инструментов — координируется через [PSR_v1](docs/Plugin_stack_rules_v1.md) v1.7+.** Кратко: paired-stack ядро (**Superpowers** = процесс / **Frontend Design** = решатель UI), плюс два инструмента **в роли материала, не решателя**: UPM (резерв-библиотека, R10.1/R11.5/R14.3) и 21st Magic MCP (генератор шаблонов, R10.1/R14.4). Все четыре проходят **R6.0 фильтр стека** (срезать React/Tailwind/shadcn/JSX → Vue 3 + Vuetify 3) и **R6.1 hard-override Forest** (палитра/шрифты/иконки/aesthetic — Brandbook, не плагины). UPM и 21st **не параллельно** с FD и друг с другом (R14.5). **A11y технический** — за Pa11y (п.3); плагины покрывают только a11y-принципы. **Детали — PSR_v1 R6/R10/R11/R14** (не копировать сюда — оперативная карта остаётся компактной).
|
||
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.
|
||
9. **Не закрывать открытые вопросы** (`Биз-*`, `CTO-*`, `Ю-*`, `Диз-*`, `DO-*`, `OPEN-*`) без явного «закрываем» от заказчика — §2.2 правил Claude.
|
||
10. **Не править этот `CLAUDE.md` напрямую** — только через плагин **`claude-md-management`** (`anthropics/claude-plugins-official` marketplace). Два входа:
|
||
- `/claude-md-management:claude-md-improver` — audit + targeted updates (структурные изменения, добавление/удаление секций, правки версии в шапке, правки правил §5).
|
||
- `/claude-md-management:revise-claude-md` — захват learnings из текущей сессии (новые quirks, команды, паттерны → CLAUDE.md).
|
||
|
||
Плагин — **единственный** интерфейс ведения файла; он отвечает за содержание и качество (по `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 ПДн. **Список exclusions — Pravila §12.3 (Single Source of Truth, v1.9+)**: при расширении правок здесь — править только Pravila §12.3, не дублировать список текстом сюда. Запрос заказчика «не используй 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.6 R15 + Tooling Прил. Н v1.14 §9.2.
|
||
|
||
---
|
||
|
||
## 6. Текущая фаза проекта
|
||
|
||
**Post-MVP (10.05.2026).** Фазы 0/1/2 по тулчейну закрыты (24/29 активны по фазам после установки Frontend Design plugin v1.78). **+3 off-phase tools формализованы 10.05.2026:** #31 UI UX Pro Max (skill, резерв-библиотека UI, формализован v1.83), #32 21st.dev Magic MCP (генератор шаблонов UI, формализован v1.83), **#33 claude-md-management** (skills, инфраструктура CLAUDE.md edits — формализован в v1.84 после audit находки «5-й включённый плагин без номера в реестре»). UPM + 21st активируются только через PSR_v1 v1.6 R14 pipeline; claude-md-management — обязательный канал правок CLAUDE.md (§5 п.10), регулируется PSR_v1 R10.1 блок 1. Итого формализованных позиций тулчейна: **33** (19/29 активных по фазам + 3 off-phase + 1 заменённый PG MCP исторически — слот #1, заменён #10 Boost в фазе 1, формально остаётся в реестре). Без «+1 historic» арифметика «33» не сходится — это правка v1.85. 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.**
|
||
|
||
- Активно: **24 инструмента из 29 phase-slot** — 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 + #20–24 + **#30 Frontend Design plugin** (paired stack). 9+8+7=24. Off-phase tools (#31 UPM + #32 21st + #33 claude-md-management) — также активны в `~/.claude/settings.json`/`~/.claude.json`, но регулируются отдельной механикой R10/R14 PSR_v1 / §5 п.10 (не входят в фазовую раскладку).
|
||
- Готово в фазе 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`.
|
||
- Артефакты фазы 0 без изменений: 17 файлов архива (narrative v8.5 финал 07.05.2026), **13 концептов v8 Forest в [web/v8/](web/v8/)**.
|
||
- **Стек dev**: native Windows. PostgreSQL 16 (Chocolatey, Windows-сервис) + Memurai Developer (Redis 7-совместимый, Windows-сервис) + native PHP 8.3 + Composer. **Без Docker, без WSL2** — машина OpenStack-VPS не пробрасывает nested virtualization. Подробности — `memory/project_phase1_strategy.md`.
|
||
- **Не применимо**: **#17 pg_partman** заменён ручным cron'ом — на native Windows-PG расширение недоступно (см. project_phase1_strategy). Pre-commit хуки для Pint/Larastan/squawk — в `lefthook.yml` (jobs 5/6/7).
|
||
- Активно фаза 2 (**6/6 инструментов — фаза 2 по тулчейну закрыта**): **#20 Volar** (VSCode-only), **#21 vue-tsc 3.2**, **#22 ESLint+Prettier+Vue** (eslint 10 flat-config + plugin-vue 10 + @vue/eslint-config-typescript 14 + config-prettier), **#23 Vitest 4.1** + @vue/test-utils + jsdom (**139/139 тестов**, +10 за auth-store + router-guard, за 10.11 сек), **#24 Histoire 1.0-beta.1** (21 story / **28 variants** за 31.73 сек). **Runtime-deps:** vuedraggable@4 + axios@1.16 + pinia@3.0. Frontend-стек: Vue 3.5 + Vuetify 3.12 + @vitejs/plugin-vue 6 + vite-plugin-vuetify (auto-import) + **vue-router 4.6** (createWebHistory + lazy-imports). Палитра Forest в `resources/js/plugins/vuetify.ts` (Teal `#0F6E56` primary, ivory `#F6F3EC` bg, теало-нуар `#012019` secondary). Pre-commit lefthook-job #8 ESLint на staged `resources/js/**/*.{ts,vue}`. Tailwind удалён. **Histoire vs Vite 8 несовместимость:** Histoire 1.0-beta.1 заявляет peerDep `vite ^7`, установлен через `--legacy-peer-deps`; smoke-test (build) пройден, Vuetify-плагин регистрируется через `setupFile`. При выходе совместимой с Vite 8 версии — обновить.
|
||
- Frontend-структура: `resources/js/router/index.ts` (6 маршрутов + meta.layout 'auth'/'app'), `layouts/AuthLayout.vue` (двухпанельный для auth-экранов), `layouts/AppLayout.vue` (sidebar nav-tree + topbar + RouterView для авторизованных), `views/auth/{Login,Register,TwoFactor,ForgotPassword,RecoveryCodes}View.vue` (5 auth-view'ов), `views/DashboardView.vue` (KPI-row + balance), `components/AppShell.vue` (layout-mapper по `route.meta.layout`: 'app' default → AppLayout, 'auth' → AuthLayout). Backend SPA-маршруты: `routes/web.php` явные `Route::view('/...', 'welcome')` для /, /login, /register, /forgot, /2fa, /recovery, /dashboard (явные, не catch-all — иначе перехватывал бы `_test/*` runtime-routes из Pest beforeEach).
|
||
- Триггер фазы 3: ~спринт 12.
|
||
|
||
**P0-блокер** один: **Б-1** (реквизиты юр. лица, ждут регистрации ООО). От него зависят также Диз-3, DO-2, DO-4. Диз-1 закрыт 08.05.2026 (handoff Платона покрыл 13/8).
|
||
|
||
---
|
||
|
||
## 7. Laravel Boost — фактическая установка 08.05.2026 (✅ применено)
|
||
|
||
**Wizard `php artisan boost:install` сломан в обоих режимах на этой машине** — кириллица в пути крашит интерактив `laravel/prompts`, `--no-interaction` падает в баге L13 `ConfiguresPrompts::multiselectFallback`. Установка выполнена **вручную** (коммит `e04f53b`). Подробности — memory `feedback_environment.md` п.26. На Linux/macOS-машинах с ASCII-путями wizard работает нормально.
|
||
|
||
**Что сделано вручную (вместо wizard'а):**
|
||
|
||
1. **`composer require laravel/boost --dev`** — установлен Boost v2.4.6 + транзитивы (laravel/mcp v0.7.0, laravel/roster v0.5.1, symfony/yaml v7.4).
|
||
2. **Этот `CLAUDE.md` не тронут** — Boost при manual setup ничего не пишет в `app/CLAUDE.md` (и тем более в корневой). Корневой остаётся источником истины.
|
||
3. **`.mcp.json` (корень)** — добавлен блок `laravel-boost` (command=`php`, args=[`app/artisan`, `boost:mcp`]) рядом с `playwright`/`github`. PostgreSQL MCP убран ещё в фазе 0 (`_comment_postgres`).
|
||
4. **«Отключение guidelines»** — **избыточно**. Boost через `laravel/roster` auto-detect видит установленные пакеты в composer.lock и серверит только релевантные. Inertia, Livewire, Tailwind, Filament, Flux UI, Nova, Folio, Volt, Wayfinder, Sail, PHPUnit — у нас не установлены, Roster их не серверит. `boost.json` минимален: 3 ключа (`agents=[claude_code]`, `guidelines=true`, `mcp=true`).
|
||
5. **Кастомный Vuetify 3 guideline** — `app/.ai/guidelines/vuetify.md` (путь по `Laravel\Boost\Install\GuidelineComposer::userGuidelineDir = '.ai/guidelines'`; в Tooling §10.2 был указан устаревший `resources/boost/guidelines/...` — скорректирован в Tooling v1.5).
|
||
6. **`.mcp.json` и `app/boost.json`** — оба в репозитории.
|
||
7. **Pest 4** активен — Roster видит его, серверит Pest guidelines. PHPUnit убран из direct deps в коммите `30f0335` — Roster не серверит PHPUnit guideline.
|
||
8. **Production DB** — не подключать к Boost. `app/.env.production` не должен попадать в локальный конфиг.
|
||
|
||
---
|
||
|
||
## 8. Self-review триггеры
|
||
|
||
После массивных правок (≥3 групп патчей) — обязательно (§4.6 правил Claude):
|
||
|
||
| Файл | Что проверять |
|
||
|---|---|
|
||
| `db/schema.sql` | 0 orphan-FK, целостность RLS, метрики сверять с текущей версией (v8.11 = 56 базовых таблиц + 12 партиций + 97 индексов + 38 RLS-политик + 5 функций + 13 триггеров), 0 дубликатов `CREATE TABLE` |
|
||
| narrative `.md` | Версии в шапке/колонтитуле, 0 «готовится»/«TBD», кросс-ссылки на актуальные имена файлов |
|
||
| Прил. А–Н | Версия совпадает с narrative; все упомянутые подразделы существуют |
|
||
| Прил. Н (этот реестр инструментов) | Ровно 29 в активном наборе; 0 дублей; синхронность с этим CLAUDE.md |
|
||
|
||
Результат — кратким блоком в конце ответа.
|
||
|
||
---
|
||
|
||
## 9. История версий
|
||
|
||
Полная история — [docs/CHANGELOG_claude_md.md](docs/CHANGELOG_claude_md.md) (вынесена 09.05.2026 при правке v1.73→v1.74 ради лаконичности шапки). Здесь — последние правки:
|
||
|
||
- **v1.86 от 10.05.2026 (поздний вечер)** — закрытие 13 находок третьего аудита правил использования плагинов и скилов (4 P0 + 5 P1 + 2 P2 + 2 sync-правки в README/README_АРХИВ). Заказчик: «проведи аудит правил использования плагинов и скилов на предмет конфликта и запутаностей» → Claude через `/claude-md-management:claude-md-improver` нашёл 12 формальных находок + 4 sync-побочки, представил quality report, получил «исправь все, только при выполнении руководствуйся правилом, прежде чем вносить изменения тебе надо проанализировать как оно влияет на другие правила, что исправляю одно не делать других ошибок», применил с cross-impact-анализом перед каждой группой. **P0 (4 — реальные арифметические конфликты в CLAUDE.md, прошли мимо второго аудита):** §3 header «Карта 28 инструментов» → «33» (header застрял с pre-FD эпохи); §3.4 header «(+5, итого 28)» → «итого 29» (после добавления #30 в фазу 2 cumulative должна быть 29); §3.3 footer «из 30 номеров минус #1 = 29 active» → расширенная формулировка «33 номеров: 29 phase-active + 3 off-phase + 1 historic»; §6 «Активно: 19 инструментов из 29» + «(19/29 активны)» → «24» в обоих местах (внутренний арифметический конфликт: тут же раскладка 9+8+7=24, но числовая метка застряла на 19 с эпохи когда фаза 2 имела ~4 активных). **P1 (5 — обновление stale `+`-refs на актуальные версии):** PSR_v1 шапка cross-refs «CLAUDE.md v1.84+/Pravila v1.9+» → «v1.86+/v1.10+»; Tooling шапка cross-refs «Pravila v1.9+/PSR_v1 v1.5+/CLAUDE.md v1.84+» → «v1.10+/v1.7+/v1.86+»; CLAUDE.md §5 п.5 «PSR_v1 v1.5+» → «v1.7+». **P2 (2 — внутренние несогласованности формулировок):** PSR_v1 line 4 «slot уровня 2.5» → «уровня 2b» (описка внутри changelog'а v1.6, фактическое R0.1 line 33 всегда содержало «2b»); CLAUDE.md §3.3 #33 «вне Pravila §13» → «вне UI-пула §13» (Pravila §13.2 v1.10 включает claude-md-management как infrastructure subsection; «вне §13» вводило в заблуждение). **Побочки sync:** README.md и README_АРХИВ_v8_5.md «карта 28 инструментов» → «33 инструмента»; Tooling §11.5/§12 «не входят в 28» → «33 формализованные позиции». Связано: **PSR_v1 v1.6→v1.7**, **Tooling v1.14→v1.15**. Pravila v1.10 — без изменений. Через `/claude-md-management:claude-md-improver`.
|
||
|
||
- **v1.85 от 10.05.2026 (вечер)** — закрытие 15 находок аудита правил использования плагинов и скилов (4 P0 + 7 P1 + 4 P2). Заказчик: «проведи аудит правил использования плагинов и скилов на предмет конфликта и запутанностей» → Claude через `/claude-md-management:claude-md-improver` нашёл 16 находок, представил quality report, получил «все 15» (P0+P1+P2), применил батчем. **P0:** §6 арифметика «33» исправлена (+1 historic PG MCP); Tooling §10.3 шаг 2 sync с §4.1 (3→14 skills); Pravila §13.2 «(15 правил)»→«(16)»; Tooling §13 +v1.13 +v1.14 entries. **P1:** массовый stale-refs дрейф v1.4→v1.6 + v1.12→v1.14 в 7 местах (CLAUDE.md #31/#32/§5п.12, Pravila §11.5/§13.2/§13.9/§13.10). **P2:** Tooling Прил. Н добавлен explicit-слотом уровня 2b (раньше PSR_v1 R0.1 говорил «stack ниже Tooling», но Tooling не было в priority chain ни одного из 4 файлов); PSR_v1 R0.4.A свёрнут до cross-ref на Pravila §12.3 SoT (раньше параллелил список разной формулировкой — риск дрейфа); Pravila §0 +note про §11 override-приоритет (раньше §11 формально стоял ниже §9 в цепочке вопреки фактическому override §2.2/§4.5/§8.4); PSR_v1 R0.6 пронумерован 1–11 для надёжности cross-refs. Связано: **Pravila v1.9→v1.10**, **PSR_v1 v1.5→v1.6**, **Tooling v1.13→v1.14**. Через `/claude-md-management:claude-md-improver`.
|
||
|
||
- **v1.84 от 10.05.2026** — закрытие 14 находок аудита нормативной документации (конфликты и запутанности между CLAUDE.md / Pravila / PSR_v1 / Tooling). **#33 claude-md-management** формализован в реестре Tooling §3.3 как 5-й включённый плагин (инфраструктурная категория, off-phase). §5 п.5 свёрнут до 2 строк (была копия PSR_v1 R14 целиком). §5 п.11 — cross-ref на Pravila §12.3 SoT. §1 — scope-метка «общая 7-уровневая файловая иерархия». §6 — счётчик 31→33. Связано: Pravila v1.8→v1.9, PSR_v1 v1.4→v1.5, Tooling v1.12→v1.13.
|
||
|
||
- **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 на детали F–K патчей 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-стоп, 3–6 = мягкий fallback. **J**: R10.4 смягчение формулировки + hard-link через Pravila §13.9 (нарушение R10 = нарушение §13). **K**: R0.1 точный scope «головенства» через таблицу priority chain — Stack головной над уровнями 4–6 (settings.json, memory, прочие плагины), не над 0–2 (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`.
|