From ee4c9f585799287d939f2ea095eb35db134c7fac Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Sat, 4 Jul 2026 17:12:13 +0300 Subject: [PATCH] =?UTF-8?q?docs(generator):=20=D0=BF=D0=BE=D1=80=D1=8F?= =?UTF-8?q?=D0=B4=D0=BE=D0=BA=20=D0=B1=D1=8D=D0=BA=D0=BB=D0=BE=D0=B3=D0=B0?= =?UTF-8?q?=20=C2=AB=D0=BF=D1=83=D0=BB=D1=8C=D1=82=20=D0=B2=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D1=91=D0=B4=C2=BB=20=D0=B8=20=D0=B3=D1=80=D0=B0=D1=84=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=20=D0=B2=20PRD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Зачем: - узкое место — время человека на ручную приёмку: без DAG-пульта проверять миграцию курса пришлось бы через консоль. - Что: - PRD, раздел «Задачи»: номер файла объявлен идентификатором (не порядком), порядок задан ветками и mermaid-графом; основная цепочка 07 -> 11 -> 12, миграция курса 08 — последней. - issue 08: добавлена мягкая зависимость от 12 (приёмка уроков через пульт). - handoff триажа: раздел «Следующий шаг» обновлён под новый порядок. - Проверка: - mermaid-диаграмма проверена валидатором Mermaid; статусы задач не менялись. Co-Authored-By: Claude Fable 5 --- .../PRD.md | 73 +++++++++++-------- .../08-migrate-course-from-archive-seed.md | 7 +- .../2026-07-04-generator-backlog-triage.md | 10 ++- 3 files changed, 55 insertions(+), 35 deletions(-) diff --git a/.scratch/generator-model-time-startup-history/PRD.md b/.scratch/generator-model-time-startup-history/PRD.md index 593de01..d7bbda5 100644 --- a/.scratch/generator-model-time-startup-history/PRD.md +++ b/.scratch/generator-model-time-startup-history/PRD.md @@ -61,38 +61,51 @@ Status: Draft ## Задачи -1. `issues/01-time-and-startup-history-contract.md` — контракт модельного - времени и стартовой истории. -2. `issues/02-model-time-to-clickhouse.md` — минимальный поток по модельному - времени до ClickHouse. -3. `issues/03-model-speed-and-day-factor.md` — ×K и дневной коэффициент по - модельному времени. -4. `issues/04-state-v2-model-resume.md` — восстановление state v2 от модельной - точки возобновления. -5. `issues/05-startup-history-backfill-to-clickhouse.md` — промотка прошлого, - стартовая история и живое продолжение до ClickHouse. -6. `issues/06-generated-history-as-analytics-source.md` — штатный путь стенда - переводится на стартовую историю как источник аналитики. +Номер в имени файла — просто идентификатор задачи, порядок выполнения он не +задаёт. Порядок и зависимости живут здесь и в секциях «Blocked by» самих задач; +при изменении порядка файлы не переименовываются. -Дополнено по итогам независимого ревью (2026-06-14) и триажа (2026-07-04) — -номера отражают рекомендуемый порядок внутри веток зависимостей: +Сделано (ядро фичи, закрыто на триаже 2026-07-04): -7. `issues/07-startup-history-portable-artifact-and-usage-docs.md` — - портативный артефакт (импорт через Kafka, не напрямую в ClickHouse), - громкий отказ при несовместимом state, runbook. -8. `issues/08-migrate-course-from-archive-seed.md` — миграция учебных - материалов на генерацию; после задачи 7 (уроки ссылаются на runbook). -9. `issues/09-seam-browser-fixture-not-preserved.md` — дефект: браузерная - фактура не переживает восстановление визита на стыке. Независим, можно - параллельно. -10. `issues/10-dashboard-geo-map-readability.md` — читаемость гео-карты - дашборда. Независим, можно параллельно. -11. `issues/11-generator-launch-verbs-and-profiles.md` — глаголы, длительность - и профили запуска; после задачи 7, до задачи 12. -12. `issues/12-generator-control-dag.md` — Airflow-DAG как пульт генератора; - после задачи 11 (оборачивает глаголы). -13. `issues/13-backfill-top-up-from-snapshot.md` — доливка истории от слепка; - без приоритета, после задачи 9 (доливка тиражирует стыки восстановления). +- `issues/01-time-and-startup-history-contract.md` — контракт модельного + времени и стартовой истории. +- `issues/02-model-time-to-clickhouse.md` — минимальный поток по модельному + времени до ClickHouse. +- `issues/03-model-speed-and-day-factor.md` — ×K и дневной коэффициент по + модельному времени. +- `issues/04-state-v2-model-resume.md` — восстановление state v2 от модельной + точки возобновления. +- `issues/05-startup-history-backfill-to-clickhouse.md` — промотка прошлого, + стартовая история и живое продолжение до ClickHouse. +- `issues/06-generated-history-as-analytics-source.md` — штатный путь стенда + переводится на стартовую историю как источник аналитики. + +Остаток — порядок выполнения (решение 2026-07-04: пульт вперёд, потому что +узкое место — время человека на ручную приёмку; тяжелее всего проверять руками +миграцию курса, поэтому она идёт последней, когда пульт уже есть): + +- Основная ветка: `issues/07-...` (портативный артефакт + runbook) -> + `issues/11-...` (глаголы, длительность и профили запуска) -> + `issues/12-...` (Airflow-DAG как пульт; после 11 вернуть на дооформление — + сейчас `needs-triage`, критерии писать не к чему, глаголов ещё нет). +- Параллельно, независимы: `issues/09-...` (фикс браузерной фактуры на стыке) + и `issues/10-...` (читаемость гео-карты). +- После фикса 09: `issues/13-...` (доливка истории от слепка; без приоритета, + `needs-triage` — доливка тиражирует стыки восстановления, дооформлять после + фикса). +- Последней: `issues/08-...` (миграция курса на генерацию) — жёстко после 07 + (уроки ссылаются на runbook), мягко после 12 (приёмку уроков человек ведёт + уже через пульт). + +```mermaid +flowchart LR + i07["07 артефакт + runbook"] --> i11["11 глаголы запуска"] + i11 --> i12["12 DAG-пульт"] + i07 --> i08["08 миграция курса"] + i12 -. "приёмка через пульт" .-> i08 + i09["09 фикс стыка"] --> i13["13 доливка"] + i10["10 гео-карта"] +``` ## Контрольные точки diff --git a/.scratch/generator-model-time-startup-history/issues/08-migrate-course-from-archive-seed.md b/.scratch/generator-model-time-startup-history/issues/08-migrate-course-from-archive-seed.md index 03501cc..79889c3 100644 --- a/.scratch/generator-model-time-startup-history/issues/08-migrate-course-from-archive-seed.md +++ b/.scratch/generator-model-time-startup-history/issues/08-migrate-course-from-archive-seed.md @@ -74,5 +74,8 @@ startup-history/backfill -> Kafka -> STG -> ODS -> DDS -> DM -> Superset - Мягкая зависимость от `07-startup-history-portable-artifact-and-usage-docs.md`: runbook из issue 07 изменит команды запуска и восстановления стенда, а уроки будут на него - ссылаться. Делать эту задачу после него, иначе уроки придётся править дважды - (номера уже отражают порядок: 07 -> 08, переставлены 2026-07-04). + ссылаться. Делать эту задачу после него, иначе уроки придётся править дважды. +- Мягкая зависимость от `12-generator-control-dag.md` (решение 2026-07-04): + человеческая приёмка миграции — это проход по урокам 00–05, и вести её удобнее + через DAG-пульт, а не через консоль. Поэтому эта задача идёт последней в + очереди — после 12. Порядок всей очереди — в PRD, раздел «Задачи». diff --git a/.scratch/handoffs/2026-07-04-generator-backlog-triage.md b/.scratch/handoffs/2026-07-04-generator-backlog-triage.md index 61145a7..658fc68 100644 --- a/.scratch/handoffs/2026-07-04-generator-backlog-triage.md +++ b/.scratch/handoffs/2026-07-04-generator-backlog-triage.md @@ -43,9 +43,13 @@ ## Следующий шаг -Весь бэклог готов к передаче Codex: `/goal` на отдельные задачи (09 и 10 -независимы, можно параллельно) или `/coordinator-loop` на цепочки 07 -> 08 и -07 -> 11 -> 12. Задача 13 — после фикса 09. +Весь бэклог готов к передаче Codex. Порядок пересмотрен (решение 2026-07-04, +«пульт вперёд»): узкое место — время человека на ручную приёмку, поэтому +основная цепочка теперь 07 -> 11 -> 12 (пульт появляется раньше), а миграция +курса 08 идёт последней — её приёмку (проход по урокам) человек ведёт уже через +пульт. 09 и 10 независимы, можно параллельно; 13 — после фикса 09. Граф и +подробности — в PRD фичи, раздел «Задачи»; там же зафиксировано, что номер +файла — идентификатор, а не порядок. ## Дооформление 09 и 10 — что изменилось против прежнего понимания