docs(приёмка): F-DEPTRAC+F-CORPUS в реестр + 2 промта для свежих сессий
Реестр: F-DEPTRAC (Middleware→Mail блокирует php-коммиты, от G7-B), F-CORPUS (корпус приёмки R0-R5/хартия/map/live-demo untracked). Промт #1 — закрыть находки (F-DEPTRAC/F-CSV/F-REMIND/F-DELPROJ/F-CORPUS + комментарий). Промт #2 — независимый критразбор подготовки приёмки перед прод-прогоном. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -70,6 +70,22 @@
|
||||
|
||||
---
|
||||
|
||||
## 🧱 Блокеры и инфраструктура (всплыли 20–21.06)
|
||||
|
||||
### F-DEPTRAC — Нарушение слоёв блокирует ВСЕ php-коммиты
|
||||
- **Что:** `App\Http\Middleware\ImpersonationContext` зависит от `App\Mail\ImpersonationEndedMail` — слой Middleware не должен зависеть от слоя Mail (deptrac ruleset).
|
||||
- **Где:** [app/app/Http/Middleware/ImpersonationContext.php:37](../../../app/app/Http/Middleware/ImpersonationContext.php#L37).
|
||||
- **Происхождение:** предсуществующее, от деплоя G7-B (impersonation, 19.06). Подтверждено: видно на чистом HEAD (не от текущих правок).
|
||||
- **Эффект:** pre-commit хук (lefthook → deptrac) валит **любой** коммит, затрагивающий `.php`. Из-за этого не закоммитить даже правку комментария в `NotificationService.php`.
|
||||
- **Рекомендация:** либо рефакторинг (вынести отправку `ImpersonationEndedMail` из middleware в сервис/джоб — правильно архитектурно), либо обновить `app/deptrac.yaml` ruleset + ADR-005 (если зависимость осознанная). Хук **не обходить** `--no-verify` без явного слова владельца.
|
||||
- **Пункт:** инфраструктура (затрагивает №25 impersonation).
|
||||
|
||||
### F-CORPUS — Корпус приёмки не закоммичен (untracked)
|
||||
- **Что:** ключевые документы приёмки лежат в рабочей копии как **untracked**, ни разу не в git: R0–R5 ранбуки, хартия, `prod-logic-map.md`, эфир-хэндофф, `imitation-checks-table.md`, `stepbystep-plans.md`, папка `live-demo/`.
|
||||
- **Эффект:** МАСТЕР-хэндофф (закоммичен `b7e3af4c`) **ссылается на untracked файлы** — свежая сессия в новом клоне их не найдёт; ссылки битые.
|
||||
- **Рекомендация:** закоммитить корпус приёмки (docs-only — deptrac не мешает), чтобы хэндофф был самодостаточным. Решить с владельцем, что из untracked WIP включать.
|
||||
- **Пункт:** инфраструктура хэндоффа.
|
||||
|
||||
## Сводная таблица
|
||||
|
||||
| ID | Важность | Пункт | Статус | Доказательство |
|
||||
@@ -79,6 +95,8 @@
|
||||
| F-DIGEST | ❌ снята (ошибка чтения коммента) | №20 | канон-схема `email:true`, дайджест вкл | db/schema.sql:796 |
|
||||
| F-PDF | 🟡 не подтверждено | №22 | проверить на прогоне | GenerateReportJob.php:102 |
|
||||
| F-REMIND | 🧹 хвост | №21 | дочистить фронт | auth.ts:12, DealDetailBody.vue:3 |
|
||||
| F-DEPTRAC | 🧱 блокер | инфра/№25 | рефактор ИЛИ deptrac.yaml+ADR | ImpersonationContext.php:37 |
|
||||
| F-CORPUS | 🧱 инфра | хэндофф | закоммитить корпус приёмки | R0–R5/хартия/map/live-demo untracked |
|
||||
| F1–F5 | ℹ️ прежние | №3,№13 | проверить (F3 закрыта) | walk-report 17.06 |
|
||||
|
||||
**Итог:** 1 потенциальная находка безопасности (F-CSV — экспорт/формулы), 2 расхождения свода с кодом (F-DELPROJ/F-PDF), 1 хвост уборки (F-REMIND), 1 снятая (F-DIGEST — была моей ошибкой чтения устаревшего комментария, исправлено), 5 прежних прогонных (F1–F5, одна закрыта). Тесты — **только на проде**. F-CSV и F-REMIND — кандидаты на код-фикс (спросить владельца перед правкой кода).
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
# ПРОМТ #1 для свежей сессии — закрыть находки/вопросы приёмки liderra.ru
|
||||
|
||||
> **Как использовать:** вставь блок «СТАРТОВЫЙ ПРОМТ» ниже в новую сессию. Остальное — пояснения.
|
||||
|
||||
---
|
||||
|
||||
## СТАРТОВЫЙ ПРОМТ (вставить как есть)
|
||||
|
||||
> Закрываем зафиксированные находки по подготовке приёмочного теста портала Лидерра. Кодовая фраза стены: «роутер-наставник».
|
||||
>
|
||||
> **Прочитай сначала:** реестр находок `docs/superpowers/specs/2026-06-20-acceptance-findings-register.md` (там все находки с file:line) и мастер-хэндофф `docs/superpowers/specs/2026-06-20-acceptance-MASTER-execution-handoff.md`.
|
||||
>
|
||||
> **Контекст:** локалка байт-в-байт с боевым (`01a9029c`, G1–G7). Тесты функционала портала — ТОЛЬКО на проде (отдельная задача по мастер-хэндоффу). Твоя задача — **починить код/доки-находки локально** по TDD и навести порядок в git. Прод НЕ трогаешь.
|
||||
>
|
||||
> **Жёсткие правила:** правка `.php` → ОБЯЗАТЕЛЬНО прогон тестов после (pest/phpunit), иначе хук-стоп. Pre-commit deptrac валит любой php-коммит, пока жив F-DEPTRAC — начни с него. Хуки НЕ обходить `--no-verify` без явного слова владельца. Коммит — спрашивать у владельца перед каждым (или собрать в конце). Не выдумывать — открыл файл, проверил.
|
||||
>
|
||||
> **Задачи по порядку (детали и критерии — в плане ниже по файлу):**
|
||||
> 1. **F-DEPTRAC** (разблокировать php-коммиты): `ImpersonationContext` (Middleware) зависит от `ImpersonationEndedMail` (Mail). Рефакторинг (вынести отправку письма из middleware в сервис/джоб) ИЛИ обновить `app/deptrac.yaml`+ADR-005 — согласовать с владельцем какой путь. После — deptrac зелёный, php-коммиты проходят.
|
||||
> 2. **Хвост-комментарий** (уже в рабочей копии, ждёт коммита): правка устаревшего докблока `app/app/Services/NotificationService.php` (G2-B: new_lead.email true). Верифицировано (43 теста зелёные) — закоммитить после F-DEPTRAC.
|
||||
> 3. **F-CSV** (безопасность): экспорт сделок/отчётов/списаний пишет ячейки «как есть» — нет экранирования формул (`= + - @`). Подтвердить уязвимость тестом, починить экранированием в писателе(ях) по TDD, тесты.
|
||||
> 4. **F-REMIND** (хвост уборки): дочистить остатки снятой фичи «Напоминания» во фронте (`resources/js/api/auth.ts` тип `'reminder'`, устаревший коммент `DealDetailBody.vue`). Проверить, не рендерит ли мёртвый переключатель.
|
||||
> 5. **F-DELPROJ** (свод): поправить формулировку в `docs/superpowers/specs/2026-06-20-acceptance-imitation-checks-table.md` пункт №15 — «удаление проекта со сделками ЗАПРЕЩЕНО (422)», не «сделки сохраняются».
|
||||
> 6. **F-CORPUS** (хэндофф): корпус приёмки (R0–R5, хартия, prod-logic-map, эфир, live-demo, checks-table, stepbystep-plans) — UNTRACKED. Закоммитить (docs-only), чтобы мастер-ссылки работали в новом клоне. Согласовать с владельцем состав.
|
||||
> 7. **Отложенные на прод** (НЕ закрываются локально, оставить как есть): F-PDF (PDF→failed), F1/F2/F4/F5 (осмотр 17.06) — закрываются на живом прод-прогоне.
|
||||
>
|
||||
> Каждую закрытую находку отметь в реестре (статус → «закрыто», как/чем). Коммит — спрашивать.
|
||||
|
||||
---
|
||||
|
||||
## Пояснения (не для вставки — для тебя)
|
||||
|
||||
### Откуда находки
|
||||
Все выявлены при сверке свода проверок с кодом во время написания 26 пер-пунктовых планов (`docs/superpowers/plans/2026-06-20-acceptance-*`). Каждая — с доказательством file:line в реестре.
|
||||
|
||||
### Приоритет и почему именно так
|
||||
- **F-DEPTRAC первым** — это стена для любого php-коммита; пока не снят, ни F-CSV, ни комментарий, ни любой код не закоммитить (кроме docs).
|
||||
- **F-CSV — единственная находка безопасности** (formula injection в выгрузках). TDD: сначала тест, доказывающий, что `=1+1` уходит в файл как формула, потом фикс (префикс `'` на ведущие `= + - @`), потом зелёный.
|
||||
- **F-REMIND** — мелкий хвост, но владелец требует «не оставлять хвостов».
|
||||
- **F-DELPROJ** — только правка свода (формулировка), код корректен.
|
||||
- **F-CORPUS** — без коммита корпуса мастер-хэндофф неполон для новой сессии.
|
||||
|
||||
### Файлы-ориентиры
|
||||
- Реестр находок (источник истины): `docs/superpowers/specs/2026-06-20-acceptance-findings-register.md`.
|
||||
- Экспорт (F-CSV): `app/app/Http/Controllers/Api/DealExportController.php`, `app/app/Services/Reports/Providers/DealsExportProvider.php`, `app/app/Http/Controllers/Api/TenantChargesController.php`.
|
||||
- F-REMIND: `app/resources/js/api/auth.ts:12`, `app/resources/js/components/deals/DealDetailBody.vue:3`.
|
||||
- F-DEPTRAC: `app/app/Http/Middleware/ImpersonationContext.php:37`, `app/deptrac.yaml`.
|
||||
|
||||
### Чего НЕ делать
|
||||
- НЕ трогать прод. НЕ гонять функциональные тесты портала (это прод-задача по мастеру).
|
||||
- НЕ обходить хуки. НЕ коммитить без спроса. НЕ менять логику под видом «фикса комментария».
|
||||
- Прод-verify находки (F-PDF, F1/F2/F4/F5) НЕ закрывать локально — пометить «на прод-прогоне».
|
||||
@@ -0,0 +1,51 @@
|
||||
# ПРОМТ #2 для свежей сессии — критический разбор нашей работы по приёмке Лидерры
|
||||
|
||||
> **Как использовать:** вставь блок «СТАРТОВЫЙ ПРОМТ» ниже в новую сессию. Цель — независимый, придирчивый аудит того, что мы подготовили (а не исполнение теста).
|
||||
|
||||
---
|
||||
|
||||
## СТАРТОВЫЙ ПРОМТ (вставить как есть)
|
||||
|
||||
> Проведи независимый критический разбор подготовки приёмочного теста портала Лидерра (liderra.ru). Кодовая фраза стены: «роутер-наставник». Ты — свежий взгляд, твоя задача — найти, где мы НЕДОработали или ошиблись, ДО того как другая сессия начнёт гонять тест на боевом проде.
|
||||
>
|
||||
> **Что разбираешь (вся подготовка 20–21.06):**
|
||||
> - Мастер-хэндофф `docs/superpowers/specs/2026-06-20-acceptance-MASTER-execution-handoff.md` — точка входа исполнителя.
|
||||
> - 26 пер-пунктовых планов `docs/superpowers/plans/2026-06-20-acceptance-*` (PR2, PR3, №1–№26).
|
||||
> - Реестр находок `docs/superpowers/specs/2026-06-20-acceptance-findings-register.md`.
|
||||
> - Свод проверок `docs/superpowers/specs/2026-06-20-acceptance-imitation-checks-table.md`.
|
||||
> - Ранбуки R0–R5 + R3b, хартия, `prod-logic-map.md` (источники истины ЧТО/КАК).
|
||||
>
|
||||
> **Оценивай по осям (с доказательствами file:line, без «на словах»):**
|
||||
> 1. **Точность код-фактов.** Возьми выборку из планов (особенно денежные №7/№8/№9/№5/№10/№12 и изоляцию №16) и **перепроверь по реальному коду** `app/` — совпадают ли file:line, цифры, поведение. Локалка = боевой (`01a9029c`), так что код-факты должны биться. Любое расхождение — находка.
|
||||
> 2. **Полнота покрытия.** Сверь планы со сводом (26 типов) И с инвариантами `prod-logic-map.md` §18–§21 (заказ/каскад/жребий, распределение лида, заморозка, блокировка share-aware). Есть ли инвариант/пункт БЕЗ шага в планах? Дыра — находка.
|
||||
> 3. **Честность находок.** Перепроверь реестр: F-CSV (CSV-инъекция), F-DELPROJ, F-PDF, F-REMIND, F-DEPTRAC. Подтверждаются ли кодом? Не пропущена ли находка, которую мы НЕ заметили (адверсариально: деньги, изоляция, идемпотентность, RLS, append-only)?
|
||||
> 4. **Исполнимость хэндоффа.** Сможет ли свежая сессия по мастеру РЕАЛЬНО поднять прод-прогон (доступ, провижининг TEST-, инъекция, teardown до 21:00, эфир) без пробелов? Где она «провахнётся»?
|
||||
> 5. **Безопасность прода.** Достаточно ли жёстко прописаны рамки (tenant 2 lkomega не трогать, уборка до 21:00, секреты, критдефект→СТОП)? Где риск задеть боевой бизнес?
|
||||
>
|
||||
> **Метод:** читай код реально (Read/Grep), не доверяй планам на слово; для широких проверок — раздай суб-агентам (Explore/audit) по доменам (деньги / изоляция / распределение / онбординг-UI / новые фичи G6-G7). Falsify, не подтверждай.
|
||||
>
|
||||
> **На выходе** — отчёт `docs/superpowers/specs/2026-06-21-acceptance-prep-review.md`: по каждой оси PASS/GAP + список найденных дыр/ошибок (с file:line) + приоритет + вердикт «готово к прод-прогону / нужны доделки». Прод НЕ трогаешь, код НЕ правишь — только разбор. Коммит отчёта — спрашивать.
|
||||
|
||||
---
|
||||
|
||||
## Пояснения (не для вставки — для тебя)
|
||||
|
||||
### Зачем этот разбор
|
||||
Подготовку (26 планов + мастер + находки) делала одна сессия по чтению **локального** кода. Прежде чем другая сессия пойдёт на **боевой** прод, нужен независимый придирчивый аудит: точны ли код-факты, нет ли дыр в покрытии, честны ли находки, исполним ли хэндофф. Это «адверсариальная проверка перед боем».
|
||||
|
||||
### Что особенно проверить (слабые места, известные нам)
|
||||
- **Код-факты планов** прочитаны из локалки — выборочно перепроверить по реальному `app/` (должны биться, локалка=боевой; но human-error возможен).
|
||||
- **F-DIGEST** уже оказалась ложной (читали устаревший комментарий вместо схемы) — нет ли аналогичных ошибок «коммент vs канон» в других планах.
|
||||
- **Свод расходился с кодом** дважды (№15 удаление, №14 CSV-инъекция) — нет ли ещё расхождений свод↔код.
|
||||
- **Покрытие инвариантов** §18–§21 карты прода — самое вероятное место дыр (share-aware блокировка, грейс-защита, объединение дней группы, авто-привязка корня домена и пр. — многие помечены ⭐/опц. в хартии).
|
||||
- **№17 all-pairs / Фаза 4 нагрузка / Фаза 5 финал** — расписаны в R3-E/R4/R5, но проверь, что мастер реально на них выводит и они исполнимы на слабом железе (2 ГБ).
|
||||
|
||||
### Полезные агенты/скилы
|
||||
- Доменные суб-агенты для широкого чтения: `Explore`, `audit-context-building`.
|
||||
- Денежная корректность — скил `billing-audit`; изоляция/ПДн — `pdn-152fz-audit`; угрозы — `threat-model`; полный аудит — `audit-portal`.
|
||||
- Для адверсариальной проверки находок — раздать по осям параллельно (dispatching-parallel-agents).
|
||||
|
||||
### Чего НЕ делать
|
||||
- НЕ трогать прод, НЕ править код/планы (только разбор + отчёт).
|
||||
- НЕ повторять нашу ошибку: канон — схема/живой код, не комментарии.
|
||||
- Не «подтверждать, что всё хорошо» — цель найти дыры. Пустой отчёт «всё ок» = плохой разбор.
|
||||
Reference in New Issue
Block a user