Files
clickstream-ch-kafka-supers…/.scratch/handoffs/20260722-2222-mentee-path-issue5-midflight.md
T
ddadminandClaude Fable 5 1252f4a2c0 docs(scratch): handoff — #5 в середине конвейера, известные находки ревью
- Зачем:
  - подстраховать продолжение работы в новой сессии: #5 реализован,
    но не закоммичен, два ревью в полёте.
- Что:
  - новый handoff с состоянием конвейера #5 (CODE-1 High про лимит
    Kafka, порядок триажа) и уроками приёмки этой сессии;
  - отработанный handoff от 20:29 удалён по ADR-0003;
  - обменные файлы прогона #5 скопированы в .scratch/issue5-run/
    (без коммита — локальная копия на случай потери /tmp).
- Проверка:
  - git show --stat HEAD; чтение handoff свежим взглядом.

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

5.9 KiB
Raw Blame History

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; слияние ветки обсудить с пользователем.

Уроки приёмки этой сессии (сэкономят круги)

  • 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 — коммиты.