docs(generator): решена развилка задачи 13, handoff сессии
- Зачем:
- диагноз задачи 20 снял страх швов (генератор на стыке не ломает),
и пользователь выбрал вариант реализации next-day;
- сессия завершается - нужен handoff для продолжения.
- Что:
- задача 13: выбран вариант 2 (генерация следующего дня от слепка),
вариант нарезки артефакта отклонён с обоснованием; статус
ready-for-agent, blocked by задача 20;
- handoff сессии в .scratch/handoffs/ - итоги проверки пути менти,
состояние трекера, план (фикс 20 -> задача 13 -> HITL).
- Проверка:
- чтение задачи 13 и handoff; git status чистый после коммита.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+15
-15
@@ -1,4 +1,4 @@
|
|||||||
Status: ready-for-human
|
Status: ready-for-agent
|
||||||
|
|
||||||
# Глагол next-day: собрать следующий модельный день
|
# Глагол next-day: собрать следующий модельный день
|
||||||
|
|
||||||
@@ -28,22 +28,21 @@ Status: ready-for-human
|
|||||||
где ручки генератора; pause-check `etl_pipeline` и guard чистого стенда
|
где ручки генератора; pause-check `etl_pipeline` и guard чистого стенда
|
||||||
переиспользуются. Ручной триггер — для урока, расписание — для «жизни».
|
переиспользуются. Ручной триггер — для урока, расписание — для «жизни».
|
||||||
|
|
||||||
## Развилка реализации (решить до реализации)
|
## Развилка реализации — решена (пользователь, 2026-07-07)
|
||||||
|
|
||||||
Интерфейс `next-day` одинаков для двух начинок, начинку можно менять, не
|
**Выбран вариант 2: генерация следующего дня от слепка `T_end`.**
|
||||||
трогая то, чему учим:
|
|
||||||
|
|
||||||
1. **Резать готовый артефакт на дневные порции.** История сгенерирована одним
|
Обоснование. Диагноз задачи 20 показал, что генератор на стыке ничего не
|
||||||
прогоном (задача 07), швов нет вообще — границы дней внутри одного мира
|
ломает — красный гейт был гонкой в самой проверке. Страх «швов» был страхом
|
||||||
естественные. Дёшево, если механизм импорта умеет подавать историю частями
|
перед артефактом верификатора. При этом оба варианта одинаково требуют
|
||||||
(см. «Открытые вопросы»). Ограничение: горизонт равен длине артефакта.
|
цепочку манифестов и расширение проверок, а вариант 1 сверх того требует
|
||||||
2. **Доливка от слепка `T_end`.** Настоящая генерация продолжения. Нужна,
|
новый режим среза в импорте («всё или ничего» сейчас). То есть вариант 2 не
|
||||||
когда жизнь стенда должна быть неограниченной. Каждый батч добавляет шов;
|
дороже, честнее (жизнь стенда не ограничена длиной артефакта) и переиспользует
|
||||||
restore-механизм общий с рестартом и закалён задачей 09, но открыт хвост
|
уже закалённый restore-механизм (задача 09: донор в state, громкие ошибки,
|
||||||
про запасную ветку рождения визита (см. критерии).
|
детерминированная запасная ветка).
|
||||||
|
|
||||||
Разумный путь: вариант 1 как MVP, вариант 2 — когда упрёмся в конец артефакта
|
Отклонено: вариант 1 (резать готовый артефакт на дневные порции) — не даёт
|
||||||
(возможно, отдельной задачей).
|
неограниченной жизни и требует своей новой механики импорта.
|
||||||
|
|
||||||
## Открытые вопросы (блокируют ready-for-agent)
|
## Открытые вопросы (блокируют ready-for-agent)
|
||||||
|
|
||||||
@@ -82,7 +81,8 @@ Status: ready-for-human
|
|||||||
|
|
||||||
## Blocked by
|
## Blocked by
|
||||||
|
|
||||||
- Открытые вопросы выше (статус needs-info до их закрытия).
|
- `20-flaky-runtime-seam-check.md` — доверенный стабильный гейт стыка нужен
|
||||||
|
до навешивания на него цепочки границ; фикс 20 идёт первым.
|
||||||
- Исторические блокеры закрыты: `15-world-boundary-after-cross-review.md`
|
- Исторические блокеры закрыты: `15-world-boundary-after-cross-review.md`
|
||||||
(граница миров) и `17-trusted-checks-startup-history-superset.md`
|
(граница миров) и `17-trusted-checks-startup-history-superset.md`
|
||||||
(доверенные проверки) — done.
|
(доверенные проверки) — done.
|
||||||
|
|||||||
@@ -0,0 +1,70 @@
|
|||||||
|
# Handoff: проверка пути менти, диагноз флаки-гейта, задача next-day
|
||||||
|
|
||||||
|
Дата: 2026-07-07 22:34.
|
||||||
|
Жанр: handoff по ADR-0003 после сессии «проверка пути менти + триаж 13/20».
|
||||||
|
|
||||||
|
## Что закрыто
|
||||||
|
|
||||||
|
- Проверка пути менти двумя субагентами (читатель документации на Opus,
|
||||||
|
прогонщик стенда на Sonnet):
|
||||||
|
- Документация: workable-with-friction, четыре мелких находки — все
|
||||||
|
исправлены. Коммит `900e949`.
|
||||||
|
- Стенд с нуля: clean -> generated-history-analytics -> up -> проверки ->
|
||||||
|
Superset (чарты с данными) -> Kafka (4 data-топика + служебные) ->
|
||||||
|
ClickHouse (ODS/DM непустые) — всё прошло, дубликатов ноль.
|
||||||
|
- Единственное падение: `make generated-history-runtime-check` красный
|
||||||
|
через раз — заведена задача 20.
|
||||||
|
- Диагноз задачи 20 (Codex, ключевой факт перепроверен по коду): генератор
|
||||||
|
фактуру на стыке НЕ ломает; корень — гонка остановки live-генератора в
|
||||||
|
самой проверке + seam-SQL, маскирующий непарные строки под «смену фактуры».
|
||||||
|
Детали и направление фикса — в задаче. Коммит `98be722`.
|
||||||
|
- Задача 13 переписана под глагол `next-day` в `generator_control`;
|
||||||
|
оба открытых вопроса закрыты; развилка реализации решена пользователем:
|
||||||
|
**вариант 2 — генерация следующего дня от слепка** (обоснование в задаче).
|
||||||
|
Коммиты `a3ac4b4`, `98be722`; решение развилки — в коммите с этим handoff.
|
||||||
|
- Созданы репо-локальные субагенты `.claude/agents/deep-reasoner.md` (Opus)
|
||||||
|
и `fast-worker.md` (Sonnet); `.gitignore` скрывает локальное в `.claude/`.
|
||||||
|
Коммит `984d6fc`.
|
||||||
|
|
||||||
|
## Состояние трекера
|
||||||
|
|
||||||
|
- `20-flaky-runtime-seam-check.md` — **ready-for-agent**: диагноз есть,
|
||||||
|
направление фикса выбрано (управляемая остановка live после полного flush
|
||||||
|
всех топиков + precheck непарных строк в seam-check). Идти первым.
|
||||||
|
- `13-backfill-top-up-from-snapshot.md` — **ready-for-agent**, blocked by 20.
|
||||||
|
Вариант реализации решён, критерии в задаче.
|
||||||
|
|
||||||
|
## Что дальше
|
||||||
|
|
||||||
|
1. Фикс задачи 20 по конвейеру `/claude-subagent-playbook`: постановка в
|
||||||
|
задаче самодостаточна, свежий адверсарный взгляд на неё до реализации,
|
||||||
|
реализация Кодексом (прямой `codex exec`, не плагин — см. handoff в
|
||||||
|
скилле), два слепых ревью.
|
||||||
|
2. После зелёного стабильного гейта (3+ прогона) — задача 13.
|
||||||
|
3. Ручная HITL-проверка пути менти пользователем всё ещё не сделана
|
||||||
|
(Airflow UI, Superset глазами, Kafka UI) — стенд остался в рабочем
|
||||||
|
состоянии после зелёного runtime-check.
|
||||||
|
|
||||||
|
## Проверки этой сессии
|
||||||
|
|
||||||
|
- `make generated-history-runtime-check`: красный (8/19), затем зелёный —
|
||||||
|
эмпирика флаки в задаче 20; полные логи в session-scratchpad (одноразовые,
|
||||||
|
сводка перенесена в задачу).
|
||||||
|
- Утверждение диагноза про запасную ветку перепроверено по
|
||||||
|
`generation.py:194-209`.
|
||||||
|
- Дерево чистое после каждого коммита; `.claude/settings.local.json`
|
||||||
|
в git не попал.
|
||||||
|
|
||||||
|
## Отклонения процесса
|
||||||
|
|
||||||
|
- Прогонщик стенда дважды засыпал без отслеживаемого фонового процесса и
|
||||||
|
в финале умер, не собрав отчёт, — вердикт собран координатором из логов.
|
||||||
|
- Диагност через плагин codex-rescue: форвардер отчитался «finished» при
|
||||||
|
живом фоновом вызове; результат забран напрямую из output-файла задания.
|
||||||
|
Уроки процесса — в handoff рядом со скиллом claude-subagent-playbook.
|
||||||
|
|
||||||
|
## Suggested skills
|
||||||
|
|
||||||
|
- `claude-subagent-playbook` — для фикса задачи 20 (одна нетривиальная
|
||||||
|
задача: постановка готова, нужен конвейер).
|
||||||
|
- `conventional-commits` — коммиты.
|
||||||
Reference in New Issue
Block a user