chore(scratch): handoff закрыт — прогон #7 завершён, PR #25

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-23 18:18:19 +03:00
co-authored by Claude Opus 4.8
parent 8f03d8b347
commit b2ca38a1d2
@@ -1,68 +1,15 @@
# Handoff: редизайн лаб курса (issue #7)
# Handoff: редизайн лаб курса (issue #7) — ЗАВЕРШЁН
Обновлено: 2026-07-23, после ревью-цикла. Ветка `feature/course-labs-redesign`.
Одноразовый документ для продолжения в новой сессии (ADR-0003).
Обновлено: 2026-07-23, конец прогона. Работа выполнена целиком.
## Состояние
Конвейер `/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-подстраховка; о запусках сообщать пользователю.
- PR: https://github.com/dementev-dev/clickstream-ch-kafka-superset-demo/pull/25
(closes #7; ветка `feature/course-labs-redesign`, 5 коммитов от спеки до
сверки на стенде). Дочерние тикеты #21/#22/#23 закрыты, чекбоксы в #7
проставлены. Чистка легаси-тестов — отдельный issue #24.
- Осталось человеку: ревью и merge PR; после merge ветку можно удалить.
- Стенд после сверки НЕ канонический: мир дорос до дня 5 и жил в continue;
генератор остановлен, `world_next_day` на паузе. Перед занятиями менти —
канонический сброс по README курса.
- Урок прогона: пауза DAG во время работающего прогона замораживает его
задачи; `unpause` сразу после `make up` может быть перекрыт
`is_paused_upon_creation` (гонка с первым парсингом).