diff --git a/.scratch/handoffs/2026-06-06-lesson6-consistency.md b/.scratch/handoffs/2026-06-06-lesson6-consistency.md new file mode 100644 index 0000000..ac089b7 --- /dev/null +++ b/.scratch/handoffs/2026-06-06-lesson6-consistency.md @@ -0,0 +1,76 @@ +# Handoff: консистентность урока 6 (Superset BI) + +Дата: 2026-06-06 · Язык сессии: русский + +## Задача следующей сессии + +Урок 6 — **наш** (не Codex), и он должен быть консистентен с реальным кодом +стенда. Дашборд за эту сессию менялся трижды, текст урока подтянули, но остался +**один известный зазор** + стоит сделать сквозную проверку код-сниппетов. + +**Главное (известный зазор):** в §3 урока +[`docs/course/lessons/06_superset_bi.md`](../../docs/course/lessons/06_superset_bi.md) +код-сниппет чарта `🪜 Page Funnel` (примерно строки 274–291) показывает +**урезанный** набор `params` **без многоточия** — выглядит как полный конфиг, но +реальный в [`superset/create_dashboard.py`](../../superset/create_dashboard.py) +богаче (`color_scheme`, `show_legend`, `legendOrientation`, `tooltip_label_type`, +`number_format`, `show_labels` и др.). Привести к честному виду: либо добавить +`...`/комментарий «здесь только ключевые поля», либо показать поля, которые +реально объясняются в тексте. Для задания §4 (менять `row_limit`) сниппет не +мешает, но как учебный эталон он вводит в заблуждение «это весь конфиг». + +**Заодно (сквозная проверка):** пройтись по остальным код-сниппетам урока 6 +(§3 `DASHBOARD_CONFIG` стр. ~304–309, `init_superset.py` datasets стр. ~250–258, +`v_events_enriched` JOIN стр. ~210–213) и сверить, что они не разошлись с +актуальным кодом. Метод тот же: открыть реальный файл и сравнить. + +## Контекст: что уже сделано и запушено (НЕ переделывать) + +Состав/числа дашборда уже выверены и синхронизированы с уроком. Ветка +`docs/advanced-clickstream-course`, всё запушено. Коммиты этой сессии: + +- `281d9d2` feat — честный row-lineage по слоям вместо ложной DQ-воронки + (`create_dashboard.py` + `sql/dm/40_dds_to_dm.sql`). +- `2563c79` docs — синхронизация доков и термин «зерно». +- `c9300e7` fix — 5-мин бакеты в `Events over Time` (был `Events by Hour`). +- `bf940cc` docs — пункт интро §1 урока 6 выровнен под row-lineage. + +Актуальный состав дашборда (10 чартов): KPI `Total Events / Unique Users / +Avg Events/Visit / Conversion to /confirmation`; `Events over Time` (PT5M); +`Traffic by Device`; `Geography Map`; `UTM Effectiveness Table`; `Page Funnel`; +`🧱 Rows by Layer (event)`. Имена и эти числа в уроке уже верны — менять не нужно. + +## Источники истины + +- Реализация чартов: [`superset/create_dashboard.py`](../../superset/create_dashboard.py) + (`CHARTS_CONFIG` / `DASHBOARD_CONFIG` / `DASHBOARD_ROWS`). +- Урок: [`docs/course/lessons/06_superset_bi.md`](../../docs/course/lessons/06_superset_bi.md). +- Доменные термины: [`CONTEXT.md`](../../CONTEXT.md) (визит/сессия = `click_id` — в UI + предпочитаем «визит», не «клик»). +- Стандарт уроков: `docs/course/LESSON_STANDARD.md` (регистр/голос/шапка/грабли) — + читать перед правкой текста. +- Прошлые handoff'ы по дашборду: `2026-06-06-superset-dashboard-redesign*.md` + (исторические, задача там закрыта). + +## Проверка + +- Текст не требует прогона стенда; правка чисто в `.md`. Достаточно открыть + реальный код и сверить сниппеты глазами. +- Если захочется перепроверить дашборд: стенд поднят (`docker ps`), логин + Superset формой `admin`/`admin` на `http://localhost:8088/login/` (заполнять + поля через refs снапшота, не по name-селекторам — последние давали Access + Denied), дашборд `…/superset/dashboard/ecommerce-analytics/?standalone=1`. + +## Git-гигиена + +- Ветка `docs/advanced-clickstream-course`, на ней **параллельно пишет Codex**. + Git строго **аддитивно**: не amend/rebase/reset чужих коммитов, `git add` + только своих файлов. Перед push — `git fetch` и проверить, что не разошлись. +- Коммиты — через скилл `conventional-commits` (русский, тело Зачем/Что/Проверка). + +## Suggested skills + +- `conventional-commits` — для коммита правки. +- `ai-text-lint` — прогнать изменённый фрагмент урока на AI-маркеры перед коммитом + (урок учебный, голос важен). +- `playwright-cli` — только если понадобится переснять дашборд для сверки.