From 8c68d6cd735a1e7d08627e1606a3a088b5c3b789 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Sun, 19 Jul 2026 23:20:44 +0300 Subject: [PATCH] =?UTF-8?q?docs(specs):=20=D1=81=D0=BF=D0=B5=D0=BA=D0=B0?= =?UTF-8?q?=20=D1=83=D1=82=D0=BE=D1=87=D0=BD=D0=B5=D0=BD=D0=B0=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=81=D0=BB=D0=B5=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B8=20=D1=81=D0=B2=D0=B5=D0=B6=D0=B8=D0=BC=20=D0=B2?= =?UTF-8?q?=D0=B7=D0=B3=D0=BB=D1=8F=D0=B4=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Зачем: - три обещания спеки расходились с фактами кода и замеров 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 событий). --- docs/specs/2026-07-19-mentee-path-redesign.md | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/docs/specs/2026-07-19-mentee-path-redesign.md b/docs/specs/2026-07-19-mentee-path-redesign.md index 41e6b53..895e5ea 100644 --- a/docs/specs/2026-07-19-mentee-path-redesign.md +++ b/docs/specs/2026-07-19-mentee-path-redesign.md @@ -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` продолжает обслуживать автотесты.