Files
portal/CLAUDE.md
T

289 lines
34 KiB
Markdown
Raw Normal View History

## ⛔ ГЛАВНОЕ — прочитать первым делом
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`.