Files
portal/CLAUDE.md
T
Дмитрий fbf982e12c
Accessibility (Pa11y live) / a11y (push) Has been cancelled
docs: обновление состояния — фича на проде, флаг ВКЛ, тумблер; ПИЛОТ снимок 26.06; CLAUDE §6
ПИЛОТ.md — снимки выката source-edit + включения флага и тумблера. findings tails-doc — статус ВЫКАЧЕНО НА БОЕВОЙ. CLAUDE.md §6 последняя продуктовая фича обновлена, снята устаревшая ремарка про синк квинтета (закрыто в PSR/Tooling), плюс досессионная правка Б-1 ИП/ЮKassa. Нормативный квинтет Pravila/PSR/Tooling без изменений (агент normative-sync подтвердил).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 04:38:22 +03:00

289 lines
34 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## ⛔ ГЛАВНОЕ — прочитать первым делом
1. **Не уверен — спроси, не гадай.** Один вопрос лучше, чем час работы не туда.
2. **Не выдумывай.** Не помнишь — открой файл и проверь, а не «вспоминай по памяти».
3. **«Готово» — только если правда проверил.** Что-то упало — скажи честно, не делай вид, что всё хорошо.
4. **Ничего необратимого без разрешения хозяина:** не коммить, не выкатывай на боевой сайт, не удаляй и не переписывай чужое.
5. **Говори с хозяином простым русским, без программистских слов** — он не программист.
6. **Не закрывай открытые вопросы и не меняй правила** без явного «закрываем» / «меняем».
7. **Упёрся в стену или блокировку — остановись и спроси, не ищи обход.**
8. **делай максимально автономно, с наставником и судьей решай вопросы пока не упрешься, коммит делай сам попросив эскейп**
---
# CLAUDE.md — техконтекст Лидерры
**Версия:** 2.47 от 15.06.2026 — структурная компактизация: история версий и журнал фаз вынесены в [docs/CHANGELOG_claude_md.md](docs/CHANGELOG_claude_md.md); разделы про «мозг» (router / наставник / observer / enforcement / разработка реестра инструментов) убраны — управляющий слой выделен в отдельный репозиторий **claude-brain** (ADR-020). Правила, нормативка и состав продукта **не изменены** — только структура файла. Полная история — в CHANGELOG. (Прежняя ремарка про рассинхрон cross-ref квинтета на 2.47 снята — закрыто в PSR v3.24 / Tooling v2.25 от 14.06.2026.)
**Назначение:** оперативная карта для 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.44 от 14.06.2026) |
| Правила совместного использования плагинов Claude | [docs/Plugin_stack_rules_v1.md](docs/Plugin_stack_rules_v1.md) (v3.24 от 14.06.2026) |
| Полный реестр позиций тулчейна (счётчики — канон в Прил. Н §0) | [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md) (Прил. Н v2.25 от 14.06.2026) |
| Главное ТЗ | [docs/CRM_bp-gr_Инструкция_v8_5.md](docs/CRM_bp-gr_Инструкция_v8_5.md) (v8.5 от 07.05.2026) |
| Схема БД | [db/schema.sql](db/schema.sql) — метрики и версия схемы **канон в header файла** + [db/CHANGELOG_schema.md](db/CHANGELOG_schema.md); CLAUDE.md числа не дублирует |
| Открытые вопросы | [docs/Открытые_вопросы_v8_3.md](docs/Открытые_вопросы_v8_3.md) (v1.83 от 13.05.2026) |
| Брендбук | [liderra_v8_handoff/docs/BRANDBOOK_v2.md](liderra_v8_handoff/docs/BRANDBOOK_v2.md) (v2 Forest от 07.05.2026) |
| Дизайн-handoff (токены, компоненты, экраны) | [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) |
Полная история версий этих документов — внутри самих документов; история правок CLAUDE.md — в [docs/CHANGELOG_claude_md.md](docs/CHANGELOG_claude_md.md).
Этот файл — **оперативная карта**. При противоречии — приоритет у источников выше.
---
## 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 Прил. Н (детальный реестр инструментов)
↑ оба 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 и §14 правил Claude — два explicit hard-правила в Pravila; §9 «Отступления» к ним не применяется** (см. Pravila §12.4 и §14.5). Дополнительно §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) — детальный реестр инструментов; alongside CLAUDE.md (оба operational maps), но при прямом конфликте между ними побеждает CLAUDE.md как корневая карта Claude Code.
**Hard-rules вне §9 «Отступления»** (Pravila): §12 (Superpowers — инвокация skill ПЕРВОЙ), §14 (Ruflo Queen routing — триггер queen/королева), **§15** (параллельные сессии — 15.1 субагенты+git Sonnet/Opus only, 15.2 нормативка+pre-flight sync с 8-позиционным списком, 15.3 cross-refs). Эти три параграфа Pravila — explicit override-floor под §9; transitive hard-rule через §13 — координация Plugin_stack_rules_v1.
**Scope этой цепочки:** общая 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. Метрики схемы (таблицы / партиции / индексы / RLS-политики / функции / триггеры) — канон в header [db/schema.sql](db/schema.sql) + [db/CHANGELOG_schema.md](db/CHANGELOG_schema.md); CLAUDE.md числа не дублирует. 5 ролей БД на prod через `db/00_create_roles.sql` (`crm_supplier_worker` BYPASSRLS — Plan 3 sharing-flow + Plan 4 джобы); на dev — `postgres` superuser. |
| Кэш / очереди | 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 (рекомендация, не hard-rule):** 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-runtime библиотеки (`motion-v`, `gsap`, `anime.js`, `lottie-web`, `popmotion`, `@motionone/dom`) — разрешены к установке без обоснования. `framer-motion`**technical block** (React-only peerDep на `react+react-dom`, runtime crash в Vue физически), не regulatory rule — см. [Tooling §9.2](docs/Tooling_v8_3.md) technical guidance.
---
## 3. Карта инструментов — «когда что использовать»
Полный реестр с командами установки и конфликтами — [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** | `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) |
**Off-phase инструменты (#31–#89, 20 подкатегорий)** — полный реестр, команды, конфликты и счётчики — канон в [Tooling Прил. Н §0](docs/Tooling_v8_3.md). Routing-аид «триггер задачи → off-phase узел» + канонические связки — [docs/routing-off-phase.md](docs/routing-off-phase.md). Ключевые: #33 `claude-md-management` (обязательный канал правок CLAUDE.md, §5 п.10), #34 Sentry MCP / #35 Redis MCP (READ-ONLY отладка прод-runtime), #60 context7 (актуальная документация библиотек), #86 graphifyy (граф проекта, §5 п.14), #8789 perplexity/exa/firecrawl (веб-разведка, READ-ONLY).
### 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 | ✅ **на проде liderra.ru** (22.05.2026); `pgaudit.log='ddl, role, write'`, `log_parameter=off` — [setup](docs/security/pgaudit-anonymizer-setup.md) |
| 29 | Маскирование ПДн в дампах | pg_anonymizer | ✅ **на проде liderra.ru** (22.05.2026); anon 3.0.13/Rust, загрузка по требованию `LOAD 'anon'` — [setup](docs/security/pgaudit-anonymizer-setup.md) |
Нумерация: #1#29 — phase-slot фаз 03; #30 Frontend Design — phase-2 (paired stack); #31#89 — off-phase инструменты (полный реестр и счётчики — канон в [Tooling Прил. Н §0](docs/Tooling_v8_3.md)).
### 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` в файле — нельзя, схема их отвергает).
### 3.6. Project-local AI-агенты
В `.claude/agents/` лежат 4 узко-специализированных агента, которым контроллер ОБЯЗАН делегировать соответствующие классы задач (контракт — [Pravila §2.4](docs/Pravila_raboty_Claude_v1_1.md)). Полный perimeter триггеров — в `description`-frontmatter каждого файла.
| Агент | Когда зовём |
|---|---|
| `normative-sync` | После закрытия крупной интеграции / принятого ADR — синк нормативных файлов |
| `prod-deploy-validator` | Перед любым выкатом на боевой liderra.ru — pre-flight проверки, GO/NO-GO вердикт |
| `pest-parallel-debugger` | Диагностика Pest 4 `--parallel` failures |
| `rls-reviewer` | RLS-compliance review при правке `db/schema.sql` или `db/migrations/` |
---
## 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) v2.0+.** Кратко: 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).
Плагин — **единственный** интерфейс ведения файла. Прямые `Edit`/`Write` по `CLAUDE.md` без вызова skill'а — нарушение. Внутри 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'а» — нарушение того же уровня, что игнорирование §5 ПДн. **Список exclusions — Pravila §12.3 (Single Source of Truth).** Запрос заказчика «не используй superpowers сейчас» — единственная отмена, и **только** на текущее действие. См. Pravila §12.4.
12. **Резерв.** Был «не устанавливать motion runtime библиотеки без прохождения R15.2 PSR_v1». Снят 12.05.2026. Motion-runtime библиотеки разрешены без обоснования; `framer-motion` остаётся technical block (React-only peerDep).
13. **Не запрашивать override `ремонт инфраструктуры` для docs-only коммитов/пушей.** Хук `enforce-verify-before-push` сам пропускает изменения, где **все** staged/unpushed файлы — `.md`. Для смешанных/кодовых коммитов override остаётся. NB: «docs-only» считается **строго по `.md`-суффиксу** — добавление любого конфиг-файла (`cspell-words.txt`, `package.json` и т.п.) рядом со spec.md делает diff смешанным.
14. **Перед открытым codebase-вопросом — сначала `/graphify query`, потом Read/Grep/Glob.** Граф проекта (graphify #86, ADR-017) покрывает docs/ + .claude/ + app/. Применяется к структурным/cross-layer вопросам («где скил X используется», «куда тянется зависимость от Y»). **Не применяется** к известному пути файла (→ Read), узкому regex-поиску (→ Grep), операциям записи или сильно устаревшему графу.
15. **Memory writes требуют `coverage: direct:memory-sync` в свежем turn'е.** Хук `enforce-memory-coverage` не принимает chain-каналы (считает stale). Альтернатива — override-фраза `memory dump` в промпте.
---
## 6. Текущее состояние продукта
**Фаза:** post-MVP, продукт работает на боевом **liderra.ru**. Фазы тулчейна 0/1/2 закрыты, идёт фаза 3 (pre-production).
**Управляющий слой («мозг»)** — router / наставник / observer / enforcement / разработка реестра инструментов — выделен в отдельный репозиторий **claude-brain** (ADR-020). В этом репозитории остаётся продукт Лидерры + **замороженная рабочая копия** рантайм-хуков: стена «роутер-наставник» и enforcement-хуки **продолжают действовать здесь**. Как с ними работать — память сессии + [docs/superpowers/router-mentor-wall-GUIDE.md](docs/superpowers/router-mentor-wall-GUIDE.md).
**Живые снимки состояния** (читать в начале сессии; волатильное перепроверять реальной командой):
- `ЭТАЛОН.md` (корень репо) — локальная dev-версия (git/окружение/временное/демо).
- `ПИЛОТ.md` (корень репо) — боевая интернет-версия liderra.ru (доступ/HTTPS/сервер/БД/безопасность/YC Lockbox).
**Последняя продуктовая фича:** разблокировка смены источника проекта без потери лидов — матч поставщиковых лидов по слепку `project_routing_snapshots` (флаг `routing_match_by_snapshot`), Эпик 4 онлайн-заморозка 18:00→00:00 + `FlushDeferredOnlineSyncJob` (00:05 МСК), экран «Вечерняя заливка» (`supplier_sync_runs`) и дружелюбный тумблер управления флагом в админке «Интеграция с поставщиком». На проде liderra.ru (26.06.2026), флаг **ВКЛЮЧЁН**, идёт суточное наблюдение. Откат — тумблер в ВЫКЛ.
**Полный журнал фаз и работ** (что и когда делалось, включая историю «мозга») — в [docs/CHANGELOG_claude_md.md](docs/CHANGELOG_claude_md.md).
**Б-1 (юр. лицо) — закрыт:** ИП **зарегистрирован** (НЕ ООО), договор с **ЮKassa** готов — осталось только подписать; после подписи включается онлайн-оплата (флаг `billing_yookassa_enabled`). Зависевшие Диз-3, DO-2, DO-4 — разблокированы. Источник истины — память `project-legal-entity-ip-yookassa-2026-06-25` (25.06.2026).
---
## 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'`).
6. **`.mcp.json` и `app/boost.json`** — оба в репозитории.
7. **Pest 4** активен — Roster видит его, серверит Pest guidelines. PHPUnit убран из direct deps в коммите `30f0335`.
8. **Production DB** — не подключать к Boost. `app/.env.production` не должен попадать в локальный конфиг.
---
## 8. Self-review триггеры
После массивных правок (≥3 групп патчей) — обязательно (§4.6 правил Claude):
| Файл | Что проверять |
|---|---|
| `db/schema.sql` | 0 orphan-FK, целостность RLS, 0 дубликатов `CREATE TABLE`; метрики (таблицы / индексы / RLS / функции / триггеры) сверять с header [db/schema.sql](db/schema.sql) + [db/CHANGELOG_schema.md](db/CHANGELOG_schema.md) — канон, не с числом в CLAUDE.md |
| narrative `.md` | Версии в шапке/колонтитуле, 0 «готовится»/«TBD», кросс-ссылки на актуальные имена файлов |
| Прил. А–Н | Версия совпадает с narrative; все упомянутые подразделы существуют |
| Прил. Н (Tooling — реестр инструментов) | Счётчики — канон Tooling Прил. Н §0; 0 дублей; синхронность Tooling ↔ CLAUDE.md по §0 cross-refs |
Результат — кратким блоком в конце ответа.
---
## 9. История версий
Полная история — [docs/CHANGELOG_claude_md.md](docs/CHANGELOG_claude_md.md) (туда же 15.06.2026 дописан полный снимок прежнего CLAUDE.md перед компактизацией — без потерь). Здесь — последняя запись:
- **v2.47 от 15.06.2026 — структурная компактизация** — история версий (v1.80…v2.46), цепочки «наследие» (строка версии + ячейки §0) и журнал фаз (§6) вынесены в CHANGELOG; вырезаны разделы про «мозг» (router / наставник / observer / enforcement / разработка реестра инструментов) — управляющий слой выделен в отдельный репозиторий **claude-brain** (ADR-020). Правила (§1, §5), нормативка (§0 квинтет, версии не тронуты) и состав продукта (§2, §7) **не изменены** — только структура. Файл сокращён с 347 КБ (точный новый размер — командой `wc -c` после применения). Cross-ref версии CLAUDE.md в Pravila/PSR/Tooling указывают 2.46 — синхронизация квинтета на 2.47 — отдельный follow-up. Через `claude-md-management`.