docs(handoff): задача по консистентности код-сниппетов урока 6

- Зачем:
  - дашборд за сессию менялся трижды; остался зазор — в §3 урока 6 сниппет
    Page Funnel показывает урезанный params без многоточия. Правку выносим в
    отдельную сессию, чтобы не раздувать контекст текущей.
- Что:
  - добавлен handoff с задачей (сниппет Page Funnel + сквозная сверка сниппетов
    §3), контекстом запушенных коммитов и git-гигиеной.
- Проверка:
  - следующая сессия сверяет сниппеты урока с superset/create_dashboard.py.
This commit is contained in:
2026-06-06 18:06:16 +03:00
parent bf940cc249
commit 2bd4087e4a
@@ -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` стр. ~304309, `init_superset.py` datasets стр. ~250258,
`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` — только если понадобится переснять дашборд для сверки.