docs(specs): спека уточнена после проверки свежим взглядом

- Зачем:
  - три обещания спеки расходились с фактами кода и замеров HITL.
- Что:
  - в путь менти возвращён шаг make superset-init; критерий «терминал
    только make up» поправлен честно.
  - критерий стоимости world_next_day сужен до генерации+manifest:
    ETL full_refresh растёт с миром — явно вынесен в «чего не делаем».
  - проверка профиля ×1 уточнена: runtime-seam уже на daily-wave,
    проверять надо дефолты launch.py и автотесты.
- Проверка:
  - сверка с scripts/run_generated_history_runtime_check.sh, Makefile
    и замерами HITL (ETL 30 с на 110k событий).
This commit is contained in:
2026-07-19 23:20:44 +03:00
parent d6e7a03032
commit 8c68d6cd73
+15 -8
View File
@@ -50,8 +50,9 @@
3. Airflow UI: `world_init` — Trigger с пустой формой. Дефолтная операция —
`import`, путь к артефакту — дефолтом на эталонный мир. DAG сам заливает
Kafka, запускает ETL и сверяет витрины.
4. Superset — готовый трёхдневный мир.
5. Дальше по выбору лабы: `world_next_day` (кнопка без параметров) или
4. `make superset-init` — разовая инициализация дашборда (терминал).
5. Superset — готовый трёхдневный мир.
6. Дальше по выбору лабы: `world_next_day` (кнопка без параметров) или
`make generator-continue` (живой поток).
### Решения
@@ -82,8 +83,9 @@
становится ~постоянной (сейчас день 2 — 638 с и растёт), риск OOM
снимается. Разбор по коду — hitl-findings, F9.
5. **Один учебный профиль**: `daily-wave` (волна, ×60). `ci` (×1, плоско,
6h) — служебный для автотестов, менти не предлагается. Перед слиянием
проверить, что runtime-seam-тест не завязан на скорость ×1.
6h) — служебный для автотестов, менти не предлагается. Runtime-seam-
проверка уже идёт на `daily-wave`; перед слиянием проверить остальных
потребителей `ci` — дефолты `launch.py` и автотесты, где профиль зашит.
## Чего здесь не делаем
@@ -97,6 +99,10 @@
(JS-ошибка Grid) — отдельные issues вне фичи.
- **Не включаем расписание по умолчанию** и не занимаемся retention сверх
инкрементальных счётчиков.
- **Не делаем инкрементальный ETL**: `world_next_day` по-прежнему зовёт
`full_refresh`, его стоимость растёт с миром (на текущих объёмах —
десятки секунд). Известная цена; исторический план —
`plans/incremental-etl-v2.md` (legacy).
## Форма работ
@@ -118,13 +124,14 @@
## Проверка
- Чистый стенд: путь менти из раздела UX проходится пустыми формами;
от `make up` до дашборда — без документации и без терминала (кроме
`make up`).
терминал — только `make up` и `make superset-init`.
- `import` эталонного мира — секунды-минуты, не десятки минут.
- После `import` у любого менти совпадают manifest-числа эталонного мира
(события, визиты, пользователи, контрольная сумма).
- `world_next_day` на дне N по времени ~равен дню 1;
`make generated-history-chain-check` зелёный на стыках.
- Задача генерации+manifest в `world_next_day` на дне N по времени
~равна дню 1 (ETL `full_refresh` растёт с миром — это вне скоупа,
см. «Чего не делаем»); `make generated-history-chain-check` зелёный
на стыках.
- `make test` / `make lint` зелёные; профиль `ci` продолжает обслуживать
автотесты.