diff --git a/CLAUDE.md b/CLAUDE.md index c3064345..ecd9c3e4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -12,10 +12,10 @@ | Тема | Документ | |---|---| | Продуктовые правила работы Claude | [docs/Pravila_raboty_Claude_v1_1.md](docs/Pravila_raboty_Claude_v1_1.md) (v1.2+) | -| Полный реестр 28 инструментов и фазы | [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md) (Прил. Н v1.0+) | +| Полный реестр 28 инструментов и фазы | [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md) (Прил. Н v1.1+ от 08.05.2026 — CTO-12 закрыт, Pest 3) | | Главное ТЗ | [docs/CRM_bp-gr_Инструкция_v8_5.md](docs/CRM_bp-gr_Инструкция_v8_5.md) (v8.5 от 07.05.2026 — реализация 27 решений аудита C) | | Схема БД | [db/schema.sql](db/schema.sql) (v8.5 от 07.05.2026 — реализация 27 решений аудита C, narrative v8.5 готовится) | -| Открытые вопросы | [docs/Открытые_вопросы_v8_3.md](docs/Открытые_вопросы_v8_3.md) (v1.12+) | +| Открытые вопросы | [docs/Открытые_вопросы_v8_3.md](docs/Открытые_вопросы_v8_3.md) (v1.14+) | | **Брендбук** | [liderra_v8_handoff/docs/BRANDBOOK_v2.md](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](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) | @@ -93,7 +93,7 @@ | 15 | Линт миграций PostgreSQL | squawk | в pre-commit для `database/migrations/*.php` | | 16 | Форматирование SQL | pgFormatter | хук на правке `db/schema.sql` | | 17 | Партиционирование PG | pg_partman | расширение БД | -| 18 | Тесты PHP | **Pest или PHPUnit** (выбор до Boost) | `composer test` | +| 18 | Тесты PHP | **Pest 3** (CTO-12 закрыт 08.05.2026) | `composer test` | ### 3.3. Фаза 2 — старт frontend (+6, итого 23) @@ -197,7 +197,7 @@ trivy image liderra:latest 2. **`.mcp.json`** — Boost захочет добавить свой MCP-сервер. PostgreSQL MCP из фазы 0 — **удалить** (заменён Database Query/Schema от Boost'а). 3. **Из 25+ встроенных guidelines Boost'а оставить только:** Laravel Framework, Pint, Sail, Pennant, MCP. Отключить остальные (см. §5 п. 2). 4. **Создать кастомный guideline** для Vuetify 3 в `resources/boost/guidelines/vuetify.blade.php` — заготовка в [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md) §10.2. -5. **Pest или PHPUnit** — решить заранее, оставить guideline только выбранного. +5. **Pest 3** — выбран (CTO-12 закрыт 08.05.2026). На `boost:install` — отключить guideline PHPUnit, оставить только Pest. 6. **`.mcp.json` и `boost.json`** — держать в репозитории (расхождение со стандартной рекомендацией Boost'а), чтобы у команды одинаковая конфигурация. --- @@ -217,4 +217,6 @@ trivy image liderra:latest --- -*CLAUDE.md v1.1 от 08.05.2026. Изменения v1.1: ребрендинг Лидпоток→Лидерра; brandbook v1.1 удалён, источник — BRANDBOOK_v2.md из handoff Платона; добавлен handoff в §0; §2 палитра Forest; §6 — 13 концептов в web/v8/.* +*CLAUDE.md v1.2 от 08.05.2026. Изменения v1.2: закрыт 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/.* diff --git a/docs/Tooling_v8_3.md b/docs/Tooling_v8_3.md index 5231ff28..26fa7203 100644 --- a/docs/Tooling_v8_3.md +++ b/docs/Tooling_v8_3.md @@ -1,7 +1,7 @@ # Приложение Н — Tooling, скиллы и плагины Claude (v8.3) -**Дата:** 06.05.2026 -**Версия:** 1.0 (первая версия) +**Дата:** 08.05.2026 +**Версия:** 1.1 (CTO-12 закрыт — Pest 3) **Адресат:** Claude + разработчики проекта Лидерра **Назначение:** единый источник истины по 28 инструментам разработки, скиллам Claude Code, MCP-серверам и плагинам, используемым в проекте. Зафиксирован выбор, объяснено, что заменяет что, и в какой фазе вводится каждый инструмент. @@ -11,7 +11,9 @@ > - `CLAUDE.md` (корень репозитория) — оперативная карта инструментов с приоритетом правил > - `README_АРХИВ_v8_4.md` v8.4+ — состав архива -**Что нового в v1.0:** первая версия. Зафиксированы 28 активных инструментов в 4 фазах, перечень того, что НЕ ставим (10 пунктов), источники истины для конфигураций, процедура перехода между фазами, особенности Windows + PowerShell. +**Что нового в v1.1 (08.05.2026):** закрыт CTO-12 — выбран **Pest 3** (не PHPUnit). Обновлены §3.1 п.4 (boost:install), §3.4 (тестирование), §6 п.2 (конфликт Pest↔PHPUnit), §10.1 п.9 (процедура перехода). Обоснование выбора — в [Открытые_вопросы_v8_3.md §3](Открытые_вопросы_v8_3.md#3-cto--архитектору) (Pest dataset'ы для 14 статусов / 34 RLS, architecture testing для закрепления правил Claude, родной для Boost). + +**Что было в v1.0:** первая версия 06.05.2026. Зафиксированы 28 активных инструментов в 4 фазах, перечень того, что НЕ ставим (10 пунктов), источники истины для конфигураций, процедура перехода между фазами, особенности Windows + PowerShell. --- @@ -87,7 +89,7 @@ 1. `CLAUDE.md` — НЕ перезаписывать. Сохранить уже существующий (см. §7). Слить вручную, если Boost создаст черновик: добавить boost-секции в конец, оставив §1–§7 нашего CLAUDE.md выше. 2. Из 25+ встроенных guidelines оставить только: **Laravel Framework**, **Pint**, **Sail**, **Pennant**, **MCP**. 3. Отключить: **Inertia**, **Livewire**, **Tailwind**, **Filament**, **Flux UI**, **Nova**, **Folio**, **Volt**, **Wayfinder** — у нас их нет. -4. Решить **Pest или PHPUnit** до установки. Оставить guideline только выбранного. +4. **Pest 3** — выбран (CTO-12 закрыт 08.05.2026, см. [Открытые_вопросы_v8_3.md §3](Открытые_вопросы_v8_3.md#3-cto--архитектору)). Отключить guideline PHPUnit, оставить только Pest. 5. Создать кастомный guideline для **Vuetify 3**: `resources/boost/guidelines/vuetify.blade.php` (см. §10.2). 6. **Запретить production DB connection** — `.env.production` не должен попадать в локальный Boost-конфиг. 7. `.mcp.json` — **в репозиторий** (не в gitignore), чтобы у команды одинаковая конфигурация (расхождение со стандартной рекомендацией Boost'а). @@ -113,7 +115,7 @@ | # | Инструмент | Установка | Роль | |---|---|---|---| -| 18 | **Pest** ИЛИ **PHPUnit** (один) | `composer require pestphp/pest --dev` или встроенный PHPUnit | Тесты PHP. Выбор делается до установки Boost. Решение фиксируется в `Открытые_вопросы` (новый ID `CTO-12`, если ещё не закрыт) | +| 18 | **Pest 3** | `composer require pestphp/pest --dev` + `vendor/bin/pest --init` | Тесты PHP. Выбор зафиксирован 08.05.2026 (CTO-12, см. [Открытые_вопросы_v8_3.md §3](Открытые_вопросы_v8_3.md#3-cto--архитектору)). Использовать datasets для параметризации 14 статусов воронки и 34 RLS-политик; architecture testing — для закрепления правил Claude (например, запрет mocks на integration-тестах) | --- @@ -178,7 +180,7 @@ | # | Конфликт | Решение | |---|---|---| | 1 | **PostgreSQL MCP ↔ Laravel Boost (Database Query)** в момент перехода фазы 0→1 | В момент `boost:install` сразу убрать PG MCP из `.mcp.json`. Не оставлять оба активными | -| 2 | **Pest ↔ PHPUnit** | Решение фиксируется до установки Boost (новый вопрос `CTO-12`, если не закрыт). Boost оставляет guideline только выбранного | +| 2 | **Pest ↔ PHPUnit** | **Pest 3** (CTO-12 закрыт 08.05.2026). На `boost:install` отключить guideline PHPUnit | | 3 | **vue-tsc ↔ Volar inline check** | Volar — для редактора (быстрый). vue-tsc — только в CI (полный pass) | | 4 | **ESLint stylistic ↔ Prettier** | `eslint-config-prettier` обязателен. Без него — конфликт правил | | 5 | **Pa11y ↔ Lighthouse a11y** | Lighthouse не входит в 28 (он инфраструктурный, см. §12). Если будет добавлен — отключить категорию `accessibility` через `--only-categories=performance,best-practices` | @@ -268,7 +270,7 @@ Superpowers skills и другие плагины (поведенческие п 6. Слить (не перезаписать) `CLAUDE.md` если Boost создал черновик. 7. Установить Pint, Larastan, Roave/SecurityAdvisories, IDE Helper. 8. Установить squawk, pgFormatter, pg_partman. -9. Зафиксировать выбор Pest или PHPUnit. +9. Установить **Pest 3**: `composer require pestphp/pest --dev --with-all-dependencies` + `vendor/bin/pest --init` (CTO-12 закрыт 08.05.2026). 10. Обновить `.claude/settings.json` — добавить хуки для Pint и Larastan. 11. Прогнать full-pass всех инструментов. 12. Обновить эту версию Прил. Н: v1.0 → v1.1, отметить переход. diff --git a/docs/Открытые_вопросы_v8_3.md b/docs/Открытые_вопросы_v8_3.md index 7899f133..f63e7995 100644 --- a/docs/Открытые_вопросы_v8_3.md +++ b/docs/Открытые_вопросы_v8_3.md @@ -2,7 +2,13 @@ **Назначение:** единый рабочий список вопросов, требующих решения заказчика для разблокировки разработки. Разбит по адресатам, внутри — по приоритету. -**Версия:** 1.13 от 08.05.2026 — зафиксирован ребрендинг «Лидпоток» → **«Лидерра.»** + интеграция дизайн-handoff Платона (v8 Forest). Подробности в блоке «Что изменилось в v1.13». +**Версия:** 1.14 от 08.05.2026 — закрыт CTO-12 (выбор Pest 3). Подробности в блоке «Что изменилось в v1.14». + +**Что изменилось в v1.14 относительно v1.13:** + +- **Закрыт CTO-12** — выбор тест-фреймворка PHP. Решение заказчика 08.05.2026: **Pest 3** (не PHPUnit). Обоснование: datasets для 14 статусов воронки / 34 RLS / 4 ролей БД; architecture testing закрепляет правила Claude на код-уровне; родной для Laravel и Boost (один guideline вместо разрыва); на PHPUnit под капотом → откат дёшев. На `boost:install` (триггер фазы 1) — отключить guideline PHPUnit, оставить Pest. +- **Сводка §0:** CTO 15→16 закрыто, итого продуктовых 77→78 / 67→68 ✅. Открытых вопросов осталось **5 ⏸** (Б-1 P0 + 4 P1: Диз-1, Диз-3, DO-2, DO-4) — без изменений. +- **Импакт на код:** нет (фаза 0). При триггере фазы 1: `composer require pestphp/pest --dev` вместо встроенного PHPUnit; в [Tooling_v8_3.md §3.4](Tooling_v8_3.md) и [CLAUDE.md §3.2](../CLAUDE.md) — фиксированный выбор. **Что изменилось в v1.13 относительно v1.12:** @@ -105,7 +111,7 @@ |---------|-------|------------|---------------|---------|----|----|-----| | Юрист | 9 | 4 (Ю-1, Ю-6, Ю-7, Ю-9 v1.12) | 5 (Ю-2-доп, Ю-3-юр, Ю-4, Ю-5, Ю-8) | 0 | 0 | 0 | 0 | | Бухгалтер / финансы | 6 | 5 (Б-2..6) | 0 | 1 (Б-1) | **1** | 0 | 0 | -| CTO / архитектор | 15 | 15 (CTO-1..16, кроме CTO-12 — выбор Pest/PHPUnit ждёт Boost) | 0 | 0 | 0 | 0 | 0 | +| CTO / архитектор | 16 | 16 (CTO-1..16, CTO-12 закрыт 08.05 — Pest 3) | 0 | 0 | 0 | 0 | 0 | | Бизнес / продакт | 17 | 17 (6 + Биз-3/4/8 авто + Биз-10..16 v1.10 + Биз-17..24 v1.12) | 0 | 0 | 0 | 0 | 0 | | Дизайнер / маркетинг | 4 | 2 (Диз-2, Диз-4) | 0 | 2 (Диз-1 у Claude, Диз-3 ждёт Б-1) | 0 | 2 | 0 | | DevOps / эксплуатация | 5 | 3 (DO-1, DO-3, DO-5) | 0 | 2 (DO-2, DO-4 ждут Б-1) | 0 | 2 | 0 | @@ -113,7 +119,7 @@ | **Аудит партий 1–11** | **4** | **4** (Биз-10..13 закрыты v1.10) | 0 | 0 | 0 | 0 | 0 | | **Аудит партий 12–15** | **3** | **3** (Биз-14..16 закрыты v1.10) | 0 | 0 | 0 | 0 | 0 | | **Аудит C — арх+sec (v1.12)** | **14** | **14** (OPEN-И-13..26 закрыты v1.12) | 0 | 0 | 0 | 0 | 0 | -| **Итого продуктовых** | **77** | **67 ✅** | **5 🟦** | **5 ⏸** | **1** | **4** | **0** | +| **Итого продуктовых** | **78** | **68 ✅** | **5 🟦** | **5 ⏸** | **1** | **4** | **0** | Плюс 65 OPEN-вопросов в приложениях Д/Ж/З/И — большинство ждут юридической редактуры (см. раздел 8). *В v1.10 закрыт OPEN-И-12 (контакты эскалации) → 66 → 65.* @@ -161,7 +167,7 @@ ## 3. CTO / архитектору -Все 11 вопросов закрыты (5 в сессии 03.05, 6 в сессии 04.05). +Все 12 вопросов закрыты (5 в сессии 03.05, 6 в сессии 04.05, CTO-12 в сессии 08.05). | ID | Решение | Где | |----|---------|-----| @@ -176,6 +182,7 @@ | ✅ **CTO-9** | **PgBouncer на MVP сразу** (transaction pooling) | Закрыто 04.05 | | ✅ **CTO-10** | **`report_jobs.file_deleted` не вводим**, статус `done` остаётся, наличие файла по `expires_at` | Закрыто 04.05 | | ✅ **CTO-11** | **Кнопка «Отменить» pending-платежа в UI клиента — нет**, cron самовосстанавливается через 30 мин | Закрыто 04.05 | +| ✅ **CTO-12** | **Pest 3** (не PHPUnit). Обоснование: datasets лаконично покрывают 14 статусов воронки и 34 RLS-политики; architecture testing закрепляет правила («integration тесты не должны мокировать БД» — линт вместо памяти); родной для Laravel/Boost (один guideline вместо разрыва); Pest на PHPUnit под капотом — откат дёшев | Закрыто 08.05. Импакт: [Tooling_v8_3.md §3.4](Tooling_v8_3.md), [CLAUDE.md §3.2](../CLAUDE.md). На `boost:install` отключить guideline PHPUnit, оставить Pest | ---