Files
clickstream-ch-kafka-supers…/.scratch/handoffs/20260722-2222-mentee-path-issue5-midflight.md
T
ddadminandClaude Fable 5 ceb30a95c0 docs(scratch): handoff дополнен дельтой — триаж #5 в полёте, владелец задачи
- Зачем:
  - пользователь делает compaction прямо сейчас; свежие детали конвейера
    ещё нигде не были записаны.
- Что:
  - дельта: вердикт линии A, запуск триаж-раунда, владелец дерева —
    задача Codex mrwhhml9, остановленный дубль и как проверить дерево.
- Проверка:
  - чтение раздела «Дельта 23:45» свежим взглядом.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-22 22:39:21 +03:00

100 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Handoff: mentee-path, issue #5 в середине конвейера
Дата: 2026-07-22 22:22. Ветка: `feature/mentee-path` (запушена, ac7a973).
Фокус: дожать #5 «Инкрементальные счётчики manifest», затем корень #9.
## Уже сделано (не переделывать)
- **#4 закрыт** коммитом `ac7a973`: пульт → `world_init` (дефолт `import`),
беспараметрный `world_next_day` (`*/30 * * * *`, paused, catchup=False),
доки и контрактные тесты. Живая приёмка пройдена, детали — в
комментарии к issue #4.
- **#5 реализован исполнителем** (Codex, gpt-5.6-sol high), НЕ закоммичен —
лежит в рабочем дереве. Дизайн: счётчики засеваются при `import` из уже
прочитанного артефакта и при `backfill` из потока; `next-day` без
перечитки Kafka; катящаяся сумма = SHA-256 по модулю 2^256
(коммутативна, инкремент == полный пересчёт); артефакт в git не тронут.
`make test` (214+31) и `make lint` зелёные.
## Где мы сейчас: два адверсариальных ревью #5
Обменные файлы прогона скопированы в `.scratch/issue5-run/`
(оригиналы — в scratchpad сессии 0836e970 в /tmp/claude-1000):
мандат, отчёт исполнителя, отчёт линии B, фокус линии A.
- **Линия B (Opus, качество кода) — готова: CHANGES_REQUESTED.**
- CODE-1 (High): manifest хранит точные множества click_id/uid —
уже ~0,81 МБ на эталонном мире; лимит сообщения Kafka 1 МБ нигде
не переопределён → запись manifest упадёт примерно через один
next-day. Болезнь перенесена из чтения в потолок записи.
- CODE-2 (Low): в next-day state пишется раньше manifest (import —
наоборот); окно полупродвинутого стенда шире нужного.
- Математика суммы и legacy-валидация старого артефакта подтверждены.
- **Линия A (Codex, соответствие задаче) — ещё работала** на момент
handoff. Статус задач Codex смотреть в JSON:
`~/.claude/plugins/data/codex-openai-codex/state/clickstream-ch-kafka-superset-demo-*/jobs/*.json`
(поле status/phase). Отчёт линия A пишет в scratchpad сессии:
`review-issue5-task.md` (если появился — скопировать в
`.scratch/issue5-run/`).
## Дальше по конвейеру (договор ревью из скилла codex-subagent-playbook)
1. Дождаться линию A. Оба полных отчёта БЕЗ изменений → исполнителю
(Codex, тот же тред/задача) на пофиндинговый триаж + короткая шапка
координатора (совпадения/противоречия). CODE-1 почти наверняка — смена
представления множеств; НЕ проектировать решение за исполнителя.
2. Фикс-раунд → узкая перепроверка тем же ревьюером (линия B по CODE-1/2).
3. Живая приёмка на чистом стенде: `import`, 23 прогона `world_next_day`
с замером «день N ≈ день 1», `make generated-history-chain-check`.
4. Коммит (conventional, русский, Зачем/Что/Проверка), закрыть #5,
затем корень #9; слияние ветки обсудить с пользователем.
## Дельта 23:45 (после написания handoff)
- Линия A закончила: CHANGES_REQUESTED, TASK-1 (MAJOR) == CODE-1.
Вердикт сохранён в `.scratch/issue5-run/review-issue5-task.md`
(файл отчёта ревьюеру не дала записать read-only-песочница).
- Запущен триаж+фикс-раунд у исполнителя. Постановка:
`.scratch/issue5-run/`… нет — триаж-файл только в scratchpad сессии:
`triage-issue5.md` (скопировать в issue5-run при следующей правке).
- **Владелец рабочего дерева — задача Codex `task-mrwhhml9-6dhovo`**
(jobs-каталог плагина, см. выше). Случайный дубль
`task-mrwhilcm-qed4rr` остановлен kill'ом через ~2 мин работы —
после завершения владельца проверить дерево: `make test` и связность
«Triage round 1» в report-issue5.md; при мусоре — свежий исполнитель
от сохранённых отчётов, дерево не откатывать вслепую.
- Пустая задача `task-mrwhgn0z` — хвост старого курьера, игнорировать.
- Урок курьера: promt в задачу Codex иногда не доезжает — проверять
`request` в JSON задачи сразу после старта.
## Уроки приёмки этой сессии (сэкономят круги)
- REST API Airflow на стенде — только session-auth: живую приёмку водить
через `docker compose exec -T airflow-scheduler airflow dags ...`
(unpause/trigger/list-runs — эквивалент кликов UI и пустой формы).
- Webserver поднимается позже парсинга DAG'ов — проверять `/login/`
циклом с ретраями, не одним запросом.
- В `dm.v_events_enriched` колонка даты — `event_date` (не event_time).
- `make superset-init` сам поднимает Superset и создаёт дашборд
(ecommerce-analytics) — отдельный make-шаг не нужен.
- Субагент `codex:codex-rescue` — только пускатель: задачу Codex он не
ждёт; мониторить JSON статуса задачи самому (фоновый bash-цикл).
- Приёмку #4 трижды ронял сам сценарий приёмки, не реализация —
проверять команды сценария на живом стенде до полного прогона.
## Состояние стенда
После приёмки #4: мир 5 дней (эталонные 3 + два плановых прогона),
`world_next_day` возвращён на паузу. Для приёмки #5 стенд всё равно
чистить (`make clean`).
## Остальной трекер (не трогать)
- Карта #10: фронтир #18 «Модель данных» — `/wayfinder 10` свежей сессией.
- #7, #8 ждут решения #18. #1, #2 — фоновые багфиксы UI.
## Suggested skills
- `codex-subagent-playbook` — конвейер #5 (ревью/триаж — по его договору).
- `conventional-commits` — коммиты.