Doc hygiene после установки Boost (e04f53b) и Roave/SA (0eb2f72). Прогноз → факт: что планировалось vs что реально сделано. CLAUDE.md v1.7 → v1.8: - §0: реестр инструментов → Tooling v1.5 - §6 «Текущая фаза»: 0 → 1 (15/28 активных, перечислены 6 backend-tool'ов фазы 1, добавлен smoke-test factual status, отмечены остающиеся #15/#16, отметка про #17 → ручной cron) - §7 «Laravel Boost»: переписан с прогноза на факт. Wizard сломан на кириллице → manual setup. «Отключение guidelines» помечено как избыточное (Roster auto-detect делает это сам). Путь Vuetify guideline скорректирован: app/.ai/guidelines/vuetify.md (был resources/boost/guidelines/vuetify.blade.php) Tooling v1.4 → v1.5: - Шапка + блок «Что нового в v1.5» (Boost+SA active, manual setup) - §10.1: 12 шагов перехода 0→1 → таблица «план/статус» с галочками на фактических коммитах (e04f53b,0eb2f72,30f0335,0345683) - §10.2: добавлено уточнение пути userGuidelineDir = '.ai/guidelines' после source-проверки GuidelineComposer Открытые_вопросы — без изменений (это техническая doc-hygiene, не продуктовое решение). Memory обновляется отдельно (project_state + feedback_environment п.26). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
22 KiB
CLAUDE.md — техконтекст Лидерры
Версия: 1.8 от 08.05.2026 (поздний вечер) Назначение: оперативная карта для Claude Code. Не первоисточник — первоисточники указаны в §0.
Ребрендинг 08.05.2026: «Лидпоток» → «Лидерра.» (с точкой). Палитра, лого и шрифты — из handoff Платона (v8 Forest). Применяется только к дизайну/имени/логотипу; функционал, состав страниц и правила — без изменений (источник — ТЗ v8.5/schema v8.5).
0. Источник истины
| Тема | Документ |
|---|---|
| Продуктовые правила работы Claude | docs/Pravila_raboty_Claude_v1_1.md (v1.2+) |
| Полный реестр 28 инструментов и фазы | docs/Tooling_v8_3.md (Прил. Н v1.5 от 08.05.2026 поздний вечер — Boost v2.4.6 + Roave/SA активны, wizard обойдён manual setup'ом) |
| Главное ТЗ | docs/CRM_bp-gr_Инструкция_v8_5.md (v8.5 от 07.05.2026 — реализация 27 решений аудита C) |
| Схема БД | db/schema.sql (v8.5 от 07.05.2026 — реализация 27 решений аудита C, narrative v8.5 готовится) |
| Открытые вопросы | docs/Открытые_вопросы_v8_3.md (v1.18 от 08.05.2026 поздний вечер — закрыт техдолг v1.17: narrative синхронизирован под Laravel 13) |
| Брендбук | 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 (v8 Forest от 07.05.2026) — только дизайн/токены/компоненты; функционал и состав экранов — по ТЗ v8.5 |
| Анализ оригинала | docs/Analiz_originala_v8_3.md (Прил. М v1.1) |
| ТЗ рекламного лендинга | лендинг/TZ_landing_v1_0.md (v1.0 от 08.05.2026, ⏸ Б-1 для продакшена) |
| Состав архива | docs/README_АРХИВ_v8_5.md (v8.5 от 07.05.2026) |
Этот файл — оперативная карта. При противоречии — приоритет у источников выше.
1. Приоритет правил при конфликте
1. docs/Pravila_raboty_Claude_v1_1.md (продуктовые правила, утверждены заказчиком)
↓
2. CLAUDE.md (этот файл — оперативная карта)
↓
3. .claude/settings.json (хуки, permissions — исполняется средой)
↓
4. memory/*.md (динамическая память между сессиями)
↓
5. Superpowers skills и другие плагины (поведенческие подсказки)
При любом противоречии — выбирается верхний уровень.
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 (54 таблицы + 12 партиций, 91 индекс, 34 RLS-политики, 4 роли БД, 12 триггеров, 4 функции — после v8.5 от 07.05.2026) |
| Кэш / очереди | Redis 7 |
| Pooler | PgBouncer (transaction pooling) |
| Облако | Yandex Cloud, регион ru-central1 (Москва) |
| SSO админов | Yandex 360 |
| 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 — палитра используется, но мапить на 14 slug'ов из db/schema.sql:2076 (источник истины для статусов воронки — schema/ТЗ §6.4, не handoff). A11y: WCAG 2.1 AA.
3. Карта 28 инструментов — «когда что использовать»
Полный реестр с командами установки и конфликтами — docs/Tooling_v8_3.md. Здесь — оперативная карта для частых задач.
3.1. Фаза 0 — сейчас (9 активных)
| # | Задача | Инструмент | Команда |
|---|---|---|---|
| 1 | SQL-запрос к dev-БД | PostgreSQL MCP | через MCP (заменится Boost'ом в фазе 1) |
| 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 (+6, итого 23)
| # | Задача | Инструмент | Команда |
|---|---|---|---|
| 19 | Поведение Claude (TDD/debug/review) | Superpowers (3 skills) | автоматически |
| 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 |
3.4. Фаза 3 — pre-production (+5, итого 28)
| # | Задача | Инструмент | Команда |
|---|---|---|---|
| 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 | расширение БД |
(Нумерация 25–29 — глобальный индекс в порядке введения; активных в финале 28 — из 29 номеров минус #1 PostgreSQL MCP, заменённый Boost'ом.)
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 Прил. Н §8 — source of truth для всех конфигов проекта.
$schema: канонический URL —https://json.schemastore.org/claude-code-settings.json(только этот валиден для Claude Code; кастомные_comments/commentв файле — нельзя, схема их отвергает).
4. Команды быстрого доступа
# Документация (фаза 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. Что НЕ делать
- Не подключать Boost к production DB.
.env.productionне должен попадать в локальный Boost-конфиг. - Не использовать Inertia / Livewire / Tailwind / Filament / Flux UI / Nova / Folio / Volt / Wayfinder guidelines Boost'а — у нас Vue + Vuetify.
- Не запускать a11y через Lighthouse — единственный источник истины Pa11y.
- Не использовать Superpowers
brainstorming/writing-plans/executing-plans/dispatching-parallel-agents/using-git-worktrees— конфликт с правилами проекта (§4.5, §8.4, §2.2) или нестабильно на Windows. - Не помещать ПДн / токены / API-ключи в коммиты. Правило §5.2 правил Claude. Защита — gitleaks в pre-commit.
- Не использовать Frontend Design plugin — не знает Vuetify; нет a11y. (Замечание про anti-pattern «Inter» снято: в Forest Inter — наш основной UI-шрифт, см. BRANDBOOK_v2 §4.1.)
- Не ставить два инструмента на одну задачу — список 10+ запрещённых дублей в docs/Tooling_v8_3.md §9.
- Не редактировать этот
CLAUDE.mdбез обновления docs/Pravila_raboty_Claude_v1_1.md и docs/Tooling_v8_3.md — иначе три источника разойдутся. - Не править
db/schema.sqlбез записи в db/CHANGELOG_schema.md — правило §4.2 правил Claude. - Не закрывать открытые вопросы (
Биз-*,CTO-*,Ю-*,Диз-*,DO-*,OPEN-*) без явного «закрываем» от заказчика — §2.2 правил Claude.
6. Текущая фаза проекта
Фаза 1 — backend scaffolding + tooling (в работе с 08.05.2026 поздний вечер).
- Активно: 15 инструментов из 28 — 9 из фазы 0 (см. §3.1) + 6 из фазы 1: #10 Boost v2.4.6, #11 Pint v1.29, #12 Larastan v3.9.6, #13 Roave/SecurityAdvisories, #14 IDE Helper v3.7.0, #18 Pest v4.7.0.
- Готово в фазе 1: Laravel 13.7 в
app/, predis 3.4.2, default-миграции 3/3 на пустую БДliderra, smoke-test'ы (Pest 2/2 за 281 ms, Pint --test passed, PHPStan analyse passed с baseline, ide-helper:generate OK), MCP-серверboost:mcpчерез Roster auto-detect (9 tools, JSON-RPC 2024-11-05). Boost-конфиг написан вручную (wizard сломан на кириллице — см. §7 + memoryfeedback_environment.mdп.26). - Артефакты фазы 0 без изменений: 17 файлов архива (narrative v8.5 финал 07.05.2026), 13 концептов v8 Forest в 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. - Остаются в фазе 1: #15 squawk (Windows-binary, лит миграций), #16 pgFormatter (Perl, форматтер SQL), хуки в
.claude/settings.jsonдля Pint/Larastan через lefthook. #17 pg_partman заменён ручным cron'ом — на native Windows-PG расширение недоступно (см. project_phase1_strategy). - Триггер фазы 2: первый коммит в
resources/js/или Vue-папку. - Триггер фазы 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'а):
composer require laravel/boost --dev— установлен Boost v2.4.6 + транзитивы (laravel/mcp v0.7.0, laravel/roster v0.5.1, symfony/yaml v7.4).- Этот
CLAUDE.mdне тронут — Boost при manual setup ничего не пишет вapp/CLAUDE.md(и тем более в корневой). Корневой остаётся источником истины. .mcp.json(корень) — добавлен блокlaravel-boost(command=php, args=[app/artisan,boost:mcp]) рядом сplaywright/github. PostgreSQL MCP убран ещё в фазе 0 (_comment_postgres).- «Отключение guidelines» — избыточно. Boost через
laravel/rosterauto-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). - Кастомный Vuetify 3 guideline —
app/.ai/guidelines/vuetify.md(путь поLaravel\Boost\Install\GuidelineComposer::userGuidelineDir = '.ai/guidelines'; в Tooling §10.2 был указан устаревшийresources/boost/guidelines/...— скорректирован в Tooling v1.5). .mcp.jsonиapp/boost.json— оба в репозитории.- Pest 4 активен — Roster видит его, серверит Pest guidelines. PHPUnit убран из direct deps в коммите
30f0335— Roster не серверит PHPUnit guideline. - Production DB — не подключать к Boost.
app/.env.productionне должен попадать в локальный конфиг.
8. Self-review триггеры
После массивных правок (≥3 групп патчей) — обязательно (§4.6 правил Claude):
| Файл | Что проверять |
|---|---|
db/schema.sql |
0 orphan-FK, целостность RLS, метрики (54 таблицы + 12 партиций, 91 индекс, 34 RLS, 35 ENABLE RLS, 4 роли, 12 триггеров, 4 функции — v8.5), 0 дубликатов CREATE TABLE |
narrative .md |
Версии в шапке/колонтитуле, 0 «готовится»/«TBD», кросс-ссылки на актуальные имена файлов |
| Прил. А–Н | Версия совпадает с narrative; все упомянутые подразделы существуют |
| Прил. Н (этот реестр инструментов) | Ровно 28 в активном наборе; 0 дублей; синхронность с этим CLAUDE.md |
Результат — кратким блоком в конце ответа.
CLAUDE.md v1.8 от 08.05.2026 (поздний вечер). Изменения v1.8: фаза 1 в работе — обновлены §6 «Текущая фаза» (15/28 активных, 6 фазы 1: #10 Boost+#11 Pint+#12 Larastan+#13 Roave/SA+#14 IDE Helper+#18 Pest 4) и §7 «Laravel Boost» (переписан под фактическую установку 08.05: wizard сломан на кириллице → manual setup, boost.json минимален, Roster auto-detect делает «отключение guidelines» избыточным, путь Vuetify guideline скорректирован на app/.ai/guidelines/vuetify.md). Tooling v1.4→v1.5.
CLAUDE.md v1.7 от 08.05.2026 (поздний вечер). Изменения v1.7: закрыт техдолг v1.6 — narrative синхронизирован под Laravel 13. Точечные правки в трёх файлах (без изменения версии каждого документа): CRM_bp-gr_Инструкция_v8_5.md:6219, Vybor_oblaka_v8_3.md:3, Админка_SaaS_v8_2.md:103 — Laravel 11 → Laravel 13. Не трогалось намеренно (исторические записи): Объединённый_конспект.md:149 (Часть I — фиксация решений v8.0 на 03.05.2026), Открытые_вопросы_v8_3.md:354 (фиксация результата аудита). Открытые_вопросы v1.17→v1.18.
CLAUDE.md v1.6 от 08.05.2026 (поздний вечер). Изменения v1.6: переоткрыт стек §2 — Laravel 11 → Laravel 13 после обнаружения, что composer create-project без ^11 подтянул 13.7. Live-проверка показала совместимость 5 ключевых плагинов (Boost, Larastan, Pest, IDE Helper, Pint). Заказчик принял Laravel 13 как latest stable. Техдолг: синхронизация narrative ТЗ + Vybor_oblaka + Админка_SaaS под Laravel 13 — отдельная задача для следующих сессий. Открытые_вопросы v1.16→v1.17 (новый блок), Tooling v1.3→v1.4 (Laravel 13 в §0).
v1.5 от 08.05.2026 (поздний вечер). Изменения v1.5: переоткрыт+закрыт CTO-12 — Pest 3 → Pest 4 (§3.2 строка 18, §7 п.5) после live-проверки на стеке (smoke-test 2/2 на default-тестах Laravel 11, 281 ms). Бонус Pest 4: browser testing без Dusk, stress, mutation v2. Tooling v1.2→v1.3, Открытые_вопросы v1.15→v1.16.
v1.4 от 08.05.2026 (вечер). Изменения v1.4: native-стек фазы 1 (§6, §7 п.3) — Docker/Sail/WSL2 невозможны на OpenStack-VPS без nested virtualization. PostgreSQL 16 + Memurai (Redis 7-совм.) + native PHP. Tooling v1.1→v1.2.
v1.3 от 08.05.2026: закрыт Диз-1 — HTML-прототипы покрыты handoff'ом Платона (§0, §6). Открытые_вопросы v1.14→v1.15. Открытых ⏸ продуктовых: 4 (Б-1 P0 + Диз-3/DO-2/DO-4 P1, все ждут Б-1).
v1.2 от 08.05.2026: закрыт CTO-12 — выбран Pest 3 (§3.2 строка 18, §7 п.5). Tooling v1.0→v1.1, Открытые_вопросы v1.13→v1.14.
v1.1 от 08.05.2026: ребрендинг Лидпоток→Лидерра; brandbook v1.1 удалён, источник — BRANDBOOK_v2.md из handoff Платона; добавлен handoff в §0; §2 палитра Forest; §6 — 13 концептов в web/v8/.