docs(generator): порядок бэклога «пульт вперёд» и граф задач в PRD
- Зачем:
- узкое место — время человека на ручную приёмку: без DAG-пульта проверять
миграцию курса пришлось бы через консоль.
- Что:
- PRD, раздел «Задачи»: номер файла объявлен идентификатором (не порядком),
порядок задан ветками и mermaid-графом; основная цепочка 07 -> 11 -> 12,
миграция курса 08 — последней.
- issue 08: добавлена мягкая зависимость от 12 (приёмка уроков через пульт).
- handoff триажа: раздел «Следующий шаг» обновлён под новый порядок.
- Проверка:
- mermaid-диаграмма проверена валидатором Mermaid; статусы задач не менялись.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -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 гео-карта"]
|
||||
```
|
||||
|
||||
## Контрольные точки
|
||||
|
||||
|
||||
+5
-2
@@ -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, раздел «Задачи».
|
||||
|
||||
Reference in New Issue
Block a user