Files
portal/CLAUDE.md
T
Дмитрий 9ee31b71cb phase1(docs): Tooling v1.5 + CLAUDE.md v1.8 — фиксация фактической установки Boost
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>
2026-05-08 11:14:24 +03:00

22 KiB
Raw Blame History

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
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палитра используется, но мапить на 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. Что НЕ делать

  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. Не использовать Superpowers brainstorming / writing-plans / executing-plans / dispatching-parallel-agents / using-git-worktrees — конфликт с правилами проекта (§4.5, §8.4, §2.2) или нестабильно на Windows.
  5. Не помещать ПДн / токены / API-ключи в коммиты. Правило §5.2 правил Claude. Защита — gitleaks в pre-commit.
  6. Не использовать Frontend Design plugin — не знает Vuetify; нет a11y. (Замечание про anti-pattern «Inter» снято: в Forest Inter — наш основной UI-шрифт, см. BRANDBOOK_v2 §4.1.)
  7. Не ставить два инструмента на одну задачу — список 10+ запрещённых дублей в docs/Tooling_v8_3.md §9.
  8. Не редактировать этот CLAUDE.md без обновления docs/Pravila_raboty_Claude_v1_1.md и docs/Tooling_v8_3.md — иначе три источника разойдутся.
  9. Не править db/schema.sql без записи в db/CHANGELOG_schema.md — правило §4.2 правил Claude.
  10. Не закрывать открытые вопросы (Биз-*, 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 + memory feedback_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'а):

  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 guidelineapp/.ai/guidelines/vuetify.md (путь по Laravel\Boost\Install\GuidelineComposer::userGuidelineDir = '.ai/guidelines'; в Tooling §10.2 был указан устаревший resources/boost/guidelines/... — скорректирован в Tooling v1.5).
  6. .mcp.json и app/boost.json — оба в репозитории.
  7. Pest 4 активен — Roster видит его, серверит Pest guidelines. PHPUnit убран из direct deps в коммите 30f0335 — Roster не серверит PHPUnit guideline.
  8. Production DB — не подключать к Boost. app/.env.production не должен попадать в локальный конфиг.

8. Self-review триггеры

После массивных правок (≥3 групп патчей) — обязательно (§4.6 правил Claude):

Файл Что проверять
db/schema.sql 0 orphan-FK, целостность RLS, метрики (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:103Laravel 11Laravel 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/.