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: собрать следующий модельный день
|
||||
|
||||
@@ -28,22 +28,21 @@ Status: ready-for-human
|
||||
где ручки генератора; pause-check `etl_pipeline` и guard чистого стенда
|
||||
переиспользуются. Ручной триггер — для урока, расписание — для «жизни».
|
||||
|
||||
## Развилка реализации (решить до реализации)
|
||||
## Развилка реализации — решена (пользователь, 2026-07-07)
|
||||
|
||||
Интерфейс `next-day` одинаков для двух начинок, начинку можно менять, не
|
||||
трогая то, чему учим:
|
||||
**Выбран вариант 2: генерация следующего дня от слепка `T_end`.**
|
||||
|
||||
1. **Резать готовый артефакт на дневные порции.** История сгенерирована одним
|
||||
прогоном (задача 07), швов нет вообще — границы дней внутри одного мира
|
||||
естественные. Дёшево, если механизм импорта умеет подавать историю частями
|
||||
(см. «Открытые вопросы»). Ограничение: горизонт равен длине артефакта.
|
||||
2. **Доливка от слепка `T_end`.** Настоящая генерация продолжения. Нужна,
|
||||
когда жизнь стенда должна быть неограниченной. Каждый батч добавляет шов;
|
||||
restore-механизм общий с рестартом и закалён задачей 09, но открыт хвост
|
||||
про запасную ветку рождения визита (см. критерии).
|
||||
Обоснование. Диагноз задачи 20 показал, что генератор на стыке ничего не
|
||||
ломает — красный гейт был гонкой в самой проверке. Страх «швов» был страхом
|
||||
перед артефактом верификатора. При этом оба варианта одинаково требуют
|
||||
цепочку манифестов и расширение проверок, а вариант 1 сверх того требует
|
||||
новый режим среза в импорте («всё или ничего» сейчас). То есть вариант 2 не
|
||||
дороже, честнее (жизнь стенда не ограничена длиной артефакта) и переиспользует
|
||||
уже закалённый restore-механизм (задача 09: донор в state, громкие ошибки,
|
||||
детерминированная запасная ветка).
|
||||
|
||||
Разумный путь: вариант 1 как MVP, вариант 2 — когда упрёмся в конец артефакта
|
||||
(возможно, отдельной задачей).
|
||||
Отклонено: вариант 1 (резать готовый артефакт на дневные порции) — не даёт
|
||||
неограниченной жизни и требует своей новой механики импорта.
|
||||
|
||||
## Открытые вопросы (блокируют ready-for-agent)
|
||||
|
||||
@@ -82,7 +81,8 @@ Status: ready-for-human
|
||||
|
||||
## Blocked by
|
||||
|
||||
- Открытые вопросы выше (статус needs-info до их закрытия).
|
||||
- `20-flaky-runtime-seam-check.md` — доверенный стабильный гейт стыка нужен
|
||||
до навешивания на него цепочки границ; фикс 20 идёт первым.
|
||||
- Исторические блокеры закрыты: `15-world-boundary-after-cross-review.md`
|
||||
(граница миров) и `17-trusted-checks-startup-history-superset.md`
|
||||
(доверенные проверки) — 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