Files
clickstream-ch-kafka-supers…/.scratch/handoffs/20260723-1248-course-labs-redesign.md
T
ddadminandClaude Opus 4.8 cbf8b2d770 fix(course): правки по итогам слепого ревью лаб 07/08 (#22)
Зачем: два слепых ревью (Codex CODE-1..9, Claude TASK-1..2) и
перепроверки нашли дефекты в лабах и метадоках; финал лабы 08
переделан по решению пользователя.

Что:
- канонический сброс в README курса теперь снимает DAG'и с паузы
  (все создаются на паузе);
- имя дашборда исправлено на «E-commerce Analytics Dashboard»;
- финал лабы 08: вместо мифа «users == sessions на статике» —
  вернувшийся пользователь через границу заморозки и измеренное
  обещание свежести; §2 велит записать границы и время (§6 их требует);
- CONTEXT.md: эталонный мир — замороженный живой,
  4 056 пользователей / 26 083 визита, возвраты уже есть;
- уроки 5–6 ведут в обязательный маршрут, живое упражнение
  урока 5 требует канонический сброс;
- контрактные тесты: убран якорь на удалённую команду; добавленные
  на триаже тесты-цитаты срезаны до устойчивых инвариантов
  (прозаический легаси-жанр — issue #24);
- handoff обновлён до текущего состояния.

Проверка: make test (219 generator + 31 contract) и make lint зелёные;
SQL вернувшегося пользователя проверен на эфемерном ClickHouse 25.1
(на полном наборе — в #23).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 14:48:02 +03:00

4.9 KiB

Handoff: редизайн лаб курса (issue #7)

Обновлено: 2026-07-23, после ревью-цикла. Ветка feature/course-labs-redesign. Одноразовый документ для продолжения в новой сессии (ADR-0003).

Состояние

Конвейер /claude-subagent-playbook; спека принята: docs/specs/2026-07-23-course-labs-redesign.md. Разбиение — дочерние тикеты #21 → #22 → #23 (один PR закроет всё, родитель #7).

  • #21 (каркас + уроки 0–6) — сделан, коммит cc1cffe, тикет закрыт.
  • #22 (лабы 07/08 + метадоки) — сделан, коммит 1dd79a3, тикет закрыт.
  • Слепые ревью полного диффа: Codex (CODE, 9 находок) + Claude (TASK, 2). Триаж: всё починено; CODE-4 закрыт решением пользователя — финал лабы 08 переделан («вернувшийся пользователь через границу заморозки» в правке + измеренная свежесть и обещание потребителю в финале), CONTEXT.md поправлен (эталонный мир уже содержит возвраты: 4 056 users / 26 083 visits).
  • Семь хрупких тестов-цитат, добавленных Codex на триаже, срезаны Опусом до устойчивых инвариантов (1 оставлен / 2 ослаблены / 4 удалены). Урок зафиксирован в lessons.md скилла и памяти проекта (claude-reviews-code-meaningfulness); чистка легаси-жанра — issue #24.
  • Перепроверки: Codex — все 9 закрыты, но 2 новые MINOR: CODE-10 (прибитый якорь make clean в старом тесте — решение: увести в #24, в ветке не трогать) и CODE-11 (финал лабы 08 требует замеров, которые §2 не велел записывать — чинить Codex-исполнителю). Claude-перепроверка (TASK + taste-линза) — RECHECK_OK, новых дефектов нет. CODE-10 увезён комментарием в #24; починка CODE-11 отправлена Codex-исполнителю (resume треда триажа) — если отчёта $D/code11-result.md нет, проверить логи $D/code11-*.jsonl.
  • Правки после ревью НЕ закоммичены (7 файлов в дереве).

Обменный каталог прогона ($D)

/tmp/claude-1000/-home-dementev-sources-clickstream-ch-kafka-superset-demo/28f16040-6abd-4d92-a5b1-71ffd4ebcb99/scratchpad/review-branch/ — вердикты, отчёты, промпты. Треды Codex: исполнитель #22 и триаж — 019f8e80-53c9-7b51-bb0b-29c375e1c646; ревьюер CODE — 019f8e8d-78a8-71e1-8f89-697799bec7e8.

Следующие шаги

  1. Дождаться вердикта Claude-перепроверки; CODE-11 → исполнителю (resume треда триажа), CODE-10 → комментарием в #24.
  2. Коммит правок ревью (docs + CONTEXT.md + тесты) по /conventional-commits; обновить handoff.
  3. #23 — сверка цифр на живом стенде: поднять стенд (докер пользователя!), import + двойной world_next_day (детерминизм), переходящий визит, вернувшийся пользователь, сценарий лабы 08, замена всех маркеров <!-- сверить-на-стенде -->, /ai-text-lint по лабам, ссылки, make test/make lint.
  4. Финал: чекбоксы в #7 (fast-worker'ом), один PR, уборка обменного каталога.

Решения пользователя этого прогона

  • Урок 6 обязателен; обе лабы обязательны (уже в спеке).
  • Финал лабы 08: синтез «вернувшийся пользователь» (в правке) + «обещание свежести» (в финале); users==sessions на статике — миф для эталонного мира.
  • Taste-линза: Claude-ревьюер судит осмысленность кода Codex; срезание бессмысленного кода — Опусом (в памяти проекта).

Подсказки для агента

  • Скиллы: /claude-subagent-playbook, /conventional-commits, /ai-text-lint. Модель/effort субагентам — явно; фоновым запускам — ScheduleWakeup-подстраховка; о запусках сообщать пользователю.