Commit Graph

9 Commits

Author SHA1 Message Date
Дмитрий 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
Дмитрий 63c7364e6e reopen(stack): Laravel 11 → Laravel 13 — фиксация переоткрытия
Произошло так: 08.05.2026 при `composer create-project laravel/laravel
app` я не зафиксировал `^11` — Composer подтянул свежайшую
`laravel/framework: ^13.7` (Laravel 13.7, релиз ~Feb 2026), вместо
ожидаемого Laravel 11 LTS.

Smoke-test'ы подтвердили работоспособность Laravel 13:
- php artisan migrate: 3/3 default-миграций OK
- pestphp/pest 4.7.0: 2/2 за 281 ms
- laravel/pint 1.29: pint --test passed
- larastan/larastan 3.9.6 + phpstan 2.1.54: analyse passed (с baseline)
- barryvdh/laravel-ide-helper 3.7.0: ide-helper:generate OK

Live-проверка совместимости 5 ключевых плагинов:
- laravel/boost v2.4.6: composer dry-run резолвит lock без conflict
- остальные 4 — установлены и запущены без issue

Заказчик 08.05 (поздний вечер) принял Laravel 13 как latest stable.
Откат дороговат — rm -rf app/ + повторение всей сессии (~10-15 мин).

По правилу «явная фиксация переоткрытий» обновлены 3 источника:

- CLAUDE.md v1.5→v1.6: §2 backend (Laravel 11 → Laravel 13 + объяснение
  обстоятельств), §0 источники (Tooling v1.4, Реестр v1.17), футер
- docs/Tooling_v8_3.md v1.3→v1.4: блок «Что нового в v1.4» (live-
  проверка совместимости 5 плагинов + установка Pint/Larastan/IDE Helper)
- docs/Открытые_вопросы_v8_3.md v1.16→v1.17: блок «Что изменилось в
  v1.17» с обстоятельствами, импактом и техдолгом

Техдолг (для следующих сессий): синхронизация narrative ТЗ + 2 других
архивных документов под Laravel 13:
- docs/CRM_bp-gr_Инструкция_v8_5.md (строка 6219, главное ТЗ)
- docs/Vybor_oblaka_v8_3.md (строка 3, аналитическая записка по облаку)
- docs/Админка_SaaS_v8_2.md (строка 103, описание стека админки)

Не блокер для разработки, но нарушает связность архива. Включить в
hygiene-проход при следующем апдейте narrative до v8.6.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 10:20:55 +03:00
Дмитрий 30f0335f5f phase1(test): Pest 4 swap + reopen(CTO-12) — Pest 3 → Pest 4
Произошло так: при `composer require pestphp/pest pestphp/pest-plugin-laravel
--dev --with-all-dependencies` я не зафиксировал `^3` — composer подтянул
свежайшую Pest v4.7.0 + pest-plugin-laravel v4.1.0. Smoke-test
(`./vendor/bin/pest`) на default-тестах Laravel 11 прошёл 2/2 за 281 ms —
backward-compat с Pest 3 syntax подтверждён. Заказчик 08.05 (поздний вечер)
принял Pest 4 после live-проверки на стеке.

Бонус Pest 4: browser testing (без Dusk), stress testing, mutation
testing v2. Откат дёшев — `composer require pestphp/pest:^3`.

Что сделано:
- composer remove phpunit/phpunit (был direct dev-dep) — phpunit остался
  как транзитивная зависимость Pest
- composer require pestphp/pest:^4.7 pestphp/pest-plugin-laravel:^4.1 --dev
- Pest.php создан через `vendor/bin/pest --init` (`tests/Pest.php`)
- `vendor/bin/pest` smoke-test: 2 passed (Unit/Feature ExampleTest), 281 ms
- `vendor/bin/pest --init` упал на интерактивном промпте «Wanna show Pest
  some love?» в non-interactive PowerShell — Pest.php к этому моменту уже
  создан, нефатально

Reopen(CTO-12): по правилу «явная фиксация переоткрытий» обновлены
3 источника:
- docs/Открытые_вопросы_v8_3.md v1.15→v1.16: блок «Что изменилось в v1.16»,
  таблица §0 (CTO-12 переоткрыт+закрыт), запись §3 (Pest 4 + обоснование),
  финальный список §X (Pest 4)
- docs/Tooling_v8_3.md v1.2→v1.3: блок «Что нового в v1.3», §3.1 п.4
  (Pest 4 в boost:install), §3.4 строка 18 (Pest 4 + бонусы), §6 п.2
  (конфликт Pest↔PHPUnit), §10.1 п.9 (процедура установки + warning про
  --init на Windows non-interactive)
- CLAUDE.md v1.4→v1.5: §0 источники (Tooling v1.3, Реестр v1.16),
  §3.2 строка 18 (Pest 4), §7 п.5 (Pest 4 в boost:install), футер с
  историей версий

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 09:56:20 +03:00
Дмитрий 477e866726 phase1(stack): native Windows вместо Sail — Tooling v1.2, CLAUDE.md v1.4
Обнаружено 08.05.2026 (вечер): машина — VPS на OpenStack
(Manufacturer = OpenStack Foundation, HypervisorPresent = True).
Provider не пробрасывает nested virtualization в guest VM
(VirtualizationFirmwareEnabled = True на CPU, но KVM на хосте
блокирует VT-x для гостя). Docker Desktop показывает «Virtualization
support not detected, Engine stopped».

Следствие: ранее обсуждённые варианты A (полный WSL2) и B
(Sail на Windows FS) — физически невозможны на этой машине.
Переход на вариант D — native Chocolatey-стек.

Изменения:
- Tooling v1.1 → v1.2: §3.1 п.2/п.3 — Sail удалён из allow-list
  Boost. Шапка обновлена под native-стек. Блок «Что нового в v1.2»
  с обоснованием.
- CLAUDE.md v1.3 → v1.4: §0 (версия Tooling v1.2), §6 (стек dev =
  native PG 16 + Memurai + PHP 8.3), §7 п.3 (Sail отключён в
  boost:install). Футер.

Установлено 08.05 вечер:
-  Docker Desktop — удалён (choco uninstall docker-desktop)
-  PostgreSQL 16.13 — устанавливается (choco install postgresql16)
-  Memurai Developer 4.1.8 — устанавливается (Redis 7-совместимый,
  free до 1GB RAM)

pg_partman/pg_audit/pg_anonymizer на native Windows — ручная
замена. На MVP: партиции через php artisan cron-команду
(Биз-партиции уже в schema v8.5), audit-trigger'ы уже встроены.

Подробное обоснование и триггеры пересмотра — в personal memory
project_phase1_strategy.md (не коммитим).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 09:03:51 +03:00
Дмитрий 62a85f2a08 close(CTO-12): Pest 3 — реестр v1.14, Tooling v1.1, CLAUDE.md v1.2
Выбран Pest 3 (не PHPUnit). Обоснование:
- datasets лаконично покрывают 14 статусов воронки и 34 RLS-политики
- architecture testing закрепляет правила Claude на код-уровне
  (например, integration тесты не моки́руют БД — линт вместо памяти)
- родной для Laravel/Boost (Nuno Maduro в core team) — один guideline
  вместо разрыва на boost:install
- Pest на PHPUnit под капотом — откат дёшев

Изменения:
- Открытые_вопросы_v8_3.md v1.13 → v1.14: запись о закрытии в §3,
  сводка §0 (CTO 15→16 закрыто, итого 77→78 / 67→68 )
- Tooling_v8_3.md v1.0 → v1.1: §3.1 п.4, §3.4, §6 п.2, §10.1 п.9
- CLAUDE.md v1.1 → v1.2: §0 (версии источников), §3.2 строка 18,
  §7 п.5, футер

Импакт: при composer create-project (триггер фазы 1) — вместо
шага «решить Pest или PHPUnit» теперь composer require pestphp/pest
--dev --with-all-dependencies + vendor/bin/pest --init. Guideline
PHPUnit на boost:install отключить.

P0-блокер фазы 1 остаётся один — Б-1 (юр. лицо).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 07:44:11 +03:00
Дмитрий 887abf444e rebrand(v8.5→Лидерра): дизайн-handoff Платона v8 Forest + Лидпоток→Лидерра
Получен handoff-пакет liderra_v8_handoff/ от дизайнера Платона
(kpd9363@gmail.com) от 07.05.2026 — v8 Forest. Заказчик 08.05 решил
применить только в части дизайна, имени, логотипа. Функционал, состав
страниц и правила (CTO-11, click-wrap, SSO break-glass, 14 статусов
воронки) — без изменений (источник — ТЗ v8.5/schema v8.5).

Что сделано:

- Массовая замена Лидпоток→Лидерра (с учётом падежей: Лидерры/Лидерре)
  в 33 файлах (449 вхождений) — все .md/.sql/.json/.toml/.yml/.txt/.html,
  кроме исторических упоминаний внутри liderra_v8_handoff/
- Удалён docs/brandbook.md v1.1 — заменён на BRANDBOOK_v2.md из handoff
- Скопированы 13 концептов liderra_v8_handoff/concepts/v8_*.html в
  web/v8/. Удалены старые web/01-login.html, 02-dashboard.html,
  03-deals.html, index.html (палитра v1.1 deprecated)
- CLAUDE.md v1.0→v1.1: §0 (BRANDBOOK_v2 + DEVELOPER_HANDOFF в источниках),
  §2 (палитра Forest, Inter+JBM, Lucide), §5 п.6 (anti-pattern Inter
  снят — в Forest Inter наш основной шрифт), §6 (13 концептов в web/v8/)
- Реестр Открытые_вопросы_v8_3.md v1.12→v1.13: добавлена запись о
  ребрендинге + 4 точечных расхождений handoff vs ТЗ (статусы воронки,
  click-wrap чекбоксы, SSO fallback, axe violations)
- package.json/package-lock.json: name lidpotok→liderra

4 расхождения handoff vs ТЗ (НЕ применены, источник истины — ТЗ/schema):

1. 14 «обобщённых» статусов в BRANDBOOK_v2 §3.6 ≠ 14 slug'ов в
   schema.sql:2076 (совпадает 2 из 14: «Переговоры», «Оплачено»).
   Источник — schema/ТЗ §6.4 (реселлерская модель из аудита crm.bp-gr.ru,
   6 системных + 8 настраиваемых статусов).
2. 3-й click-wrap в v8_login.html («маркетинг-опционально») ≠ ТЗ §1.5/§4.1
   («согласие на ПДн», обязательное, OPEN-Ж-3).
3. SSO в v8_admin.html («локальный 2FA fallback») ≠ ТЗ OPEN-И-13
   (break-glass super_admin, локальный 2FA выключен).
4. Заявление «axe-core 4.10.2 — 0 violations» в README handoff — локально
   Pa11y 9.1.1 + axe нашёл 81 violation на 10/13 HTML (преимущественно
   color-contrast на декоративных separator'ах с --ink-disabled).
   Чисто: settings/errors/palette_options.

Что НЕ включено в коммит:
- лендинг/TZ_landing_v1_0.md — untracked, не моя работа в этой сессии
- .tmp/ — gitignored

Что осталось (для следующих сессий):
- Возможное переименование GitHub-репо CoralMinister/lidpotok → liderra
  (отдельное решение заказчика)
- Опционально: обратная связь Платону по 4 расхождениям handoff vs ТЗ

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 07:11:58 +03:00
Дмитрий bfe6c9b685 fix(docs): B-2 — арифметика и опечатки в Открытые_вопросы и Tooling
- Открытые_вопросы §0 v1.10 (стр. 17): « 30 → 40, ⏸ 13 → 5, P2 10 → 0»
  → « 33 → 40, ⏸ 12 → 5, P2 7 → 0». Исходные значения соответствуют
  таблице §0 v1.9 (стр. 24: «33 / 5 / 12»). OPEN-К-1/К-7 учитываются
  в счётчике приложения К, не в счётчике «продуктовых».
- Открытые_вопросы CTO-12 (стр. 25): убрана несуществующая ссылка
  «Дефолт по Прил. Н §3.4: PHPUnit». В §3.4 такого дефолта нет —
  только требование «выбрать ОДИН до установки Boost» (§3.4 + §6 п. 2).
- Tooling §6 (стр. 184): ссылка `см. §11` для Lighthouse → `см. §12`
  («Что вне 28 инструментов»). §11 — про Windows/PowerShell.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 23:38:06 +07:00
Дмитрий 4321251bc1 docs(archive): README v8.3.3 → v8.4 (синхронизация с narrative v8.4)
- Переименование: docs/README_АРХИВ_v8_3.md → _v8_4.md.
- Шапка: версия v8.3.3 → v8.4, состав 18 → 17 файлов в docs/
  (минус удалённый Plan_narrative_v8_4.md).
- Эволюция версий: добавлена запись v8.4 (06.05.2026 поздний вечер,
  финал narrative + переименование + schema v8.4 + регистр v1.10).
- Главный narrative: имя файла _v8_3 → _v8_4, размер ~310→~340 КБ,
  описание расширено под все 13 разделов плана v8.4.
- Прил. А (schema.sql): v8.3 → v8.4, метрики 51/81/31 → 53/86/33,
  +outbound_webhook_subscriptions/deliveries (закрытие тех-долга §19.10).
- Прил. Е (Открытые_вопросы): v1.6 → v1.10 (40/5🟦/5⏸, 0 P2).
- «Что осталось мне (Claude)»: v8.4 narrative  выполнено;
  Прил. Л — 3/8 готово, осталось 04..08.
- История версий: добавлена строка v8.4.
- Обновлены кросс-ссылки в CLAUDE.md (§0), README.md, db/CHANGELOG_schema.md,
  docs/Tooling_v8_3.md, docs/CRM_bp-gr_Инструкция_v8_4.md.
- Исторические упоминания старого имени в Объединённый_конспект.md,
  Analiz_originala_v8_3.md, Pravila_raboty_Claude_v1_1.md и в записях
  прошлых версий — оставлены намеренно (правило §4.4 правил работы
  Claude — прослеживаемость решений).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 19:35:40 +07:00
Дмитрий 04f38b1e57 docs(archive): add Прил. Н + CLAUDE.md, sync archive to v8.3.3
Новые файлы:
- CLAUDE.md (корень) — оперативная карта для Claude Code: приоритет правил
  (5 уровней), стек проекта, карта 28 инструментов «когда что использовать»,
  10 запретов, текущая фаза.
- docs/Tooling_v8_3.md (Прил. Н v1.0) — единый реестр 28 инструментов
  разработки, скиллов Claude Code, MCP-серверов и плагинов в 4 фазах
  (фаза 0 — текущая, +1 Laravel, +2 Vue/Vuetify, +3 pre-prod). §6 конфликты
  и решения, §7 приоритет правил, §9 что НЕ ставим (10+ запретов), §10
  процедура перехода между фазами, §11 Windows + PowerShell.

Обновления версий:
- docs/Pravila_raboty_Claude_v1_1.md → v1.2: §4.8 «Шифры приложений» —
  Н занят (12 шифров: А, Б, В, Г, Д, Е, Ж, З, И, К, М, Н).
- docs/README_АРХИВ_v8_3.md → v8.3.3: добавлена строка истории, обновлены
  таблицы состава (18 файлов в docs/+db/ + CLAUDE.md), добавлена ветка
  чтения «Claude / разработчик».
- docs/Открытые_вопросы_v8_3.md → v1.9 (через шапку, упоминание Прил. Н).

Точечные правки в архиве:
- 6 фиксов MD028 (пустые строки внутри blockquote → заменены на `>`):
  docs/Админка_SaaS_v8_2.md (1), docs/Приложение_Б_В_БД_диаграммы_v8_3.md (3),
  docs/Oferta_i_Politika_v8_2.md (2).
- 1 фикс MD056 (недостающая колонка в таблице) в
  docs/Аудит_partii_12_15_originala_v8_3.md:1085.
- 2 опечатки (русские буквы в латинских словах):
    docs/README_АРХИВ_v8_3.md: `соft-deleted` → `soft-deleted`
    docs/CRM_bp-gr_Инструкция_v8_3.md: `raтe limit` → `rate limit`
- Авто-форматирование trailing whitespace и blanks-around-lists
  через markdownlint --fix (хук .claude/settings.json).

Baseline после коммита:
- markdownlint: 0 errors
- cspell: 0 unknown words
- lychee: 24 OK / 0 errors
- stylelint: 0 errors
- gitleaks: no leaks

Архитектурных изменений: 0. Состав архива: 18 файлов в docs/+db/ + CLAUDE.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 04:45:22 +07:00