fbf982e12c
Accessibility (Pa11y live) / a11y (push) Has been cancelled
ПИЛОТ.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>
289 lines
34 KiB
Markdown
289 lines
34 KiB
Markdown
## ⛔ ГЛАВНОЕ — прочитать первым делом
|
||
|
||
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), #87–89 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 фаз 0–3; #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`.
|