- Зачем:
- редизайн реализован и принят; старый handoff «иди реализуй» вводил в заблуждение.
- Что:
- в .scratch/handoffs/2026-06-06-superset-dashboard-redesign.md добавлен баннер
СТАТУС: ВЫПОЛНЕНО со ссылкой на -implemented.md.
- Проверка:
- файл открывается баннером, ниже историческая постановка.
5.9 KiB
Handoff: реализация редизайна Superset-дашборда
Дата: 2026-06-06 · Язык сессии: русский · Понять-режим был включён (можно не продолжать)
СТАТУС: ВЫПОЛНЕНО (2026-06-06). Редизайн реализован (коммит
04995af/amend1bec6bb) и визуально принят. Этот файл — исходная постановка «иди реализуй», оставлен как след. Актуальная сводка сделанного и возможных следующих шагов →2026-06-06-superset-dashboard-redesign-implemented.md. Ниже — историческая постановка, НЕ список текущих дел.
Источник истины
Сначала прочитать спеку: docs/specs/2026-06-06-superset-dashboard-redesign.md
— там весь дизайн (проблема, числа данных, триаж чартов, состав KPI, решения, риски,
критерии проверки). Этот handoff — только «как возобновить», не дублирует дизайн.
Доменные термины — CONTEXT.md.
Решение одной строкой
KPI-полоса = Total Events · Unique Users · Avg Events/Visit · Conversion to /confirmation
(дубль «Unique Sessions» убрать); Top Pages → Funnel-чарт по страницам; различие
user/session — текстом, не двумя одинаковыми цифрами; мёртвые колонки purchases — выкинуть.
Сделать ПЕРВЫМ делом
- Снять open questions из спеки (без них реализация буксует):
- точная формула Conversion (доля визитов с ≥1 pageview
/confirmation?); - поддерживает ли Superset 4.1.2
viz_typeворонки (иначе — упорядоченный bar); - судьба
Events by Hour(проверить, не пустой ли на полных данных).
- точная формула Conversion (доля визитов с ≥1 pageview
- Перегрузить стенд на ПОЛНЫЕ данные — сейчас в ClickHouse отладочный срез
(50 событий). Нужно:
make data(безLIMIT) +make transform. На полных данных: 1000 событий, 99 визитов, 99 пользователей.
Где править и как прогонять
- Единственный файл реализации:
superset/create_dashboard.py(CHARTS_CONFIG/DASHBOARD_ROWS/ROW_HEIGHTS). - Прогон:
make superset-dashboard— идемпотентно (чарты поslice_name, дашборд поslug, обновляются на месте). При переименовании чартов следить, чтобы не плодились дубли.
Проверка
GET /api/v1/dashboard/<id>/datasets→ 200; DQ Summary безColumns missing in datasource.- Визуально:
playwright-cli— логин формойadmin/adminнаhttp://localhost:8088/login/, затемgoto .../superset/dashboard/ecommerce-analytics/,screenshot --filename=/tmp/x.png(читать через Read). Скриншоты — в/tmp..playwright-cli/НЕ коммитить. - Сверка чисел с ClickHouse: креды в
configs/default_user.xml(default /123456),docker exec clickstream-ch-kafka-superset-demo-clickhouse-1 clickhouse-client --password 123456 -q "...". (Черезdocker exec printenvкреды НЕ дёргать — классификатор блокирует.)
Если задачу берёт Codex (разрез по приёмке)
Codex силён в реализации/рассуждении, слаб в визуальной оценке — а приёмка дашборда визуальна (обе прошлые сессии были про поломки раскладки: ROW-оверлапы, «прыгающие» KPI). Поэтому:
- Codex делает реализацию + невизуальные само-проверки: API
/datasets → 200, числа сходятся с прямым запросом в ClickHouse, скриншоты складывает в/tmp. - Codex НЕ объявляет done по визуалу. Самый рискованный пункт (отрисовалась ли воронка вообще, нет ли наездов плиток) — чисто визуальный. Остановиться и передать скриншоты на визуальный sign-off человеку или vision-агенту.
Синхронизировать доки ПРИ реализации
docs/SUPERSET_DASHBOARD.md— раздел «Структура дашборда» (новый состав чартов/KPI).docs/course/lessons/06_superset_bi.md— убратьLIMIT=50 make data, синхронизировать состав/скриншоты.
Git-гигиена
- Ветка
docs/advanced-clickstream-course, на ней параллельно пишет Codex — git строго аддитивно, не amend/rebase/reset чужих коммитов.git addтолько своих файлов. - Артефакты этой сессии (если ещё не закоммичены):
CONTEXT.md,docs/adr/0001(правка),docs/adr/0002,docs/adr/0003,docs/specs/2026-06-06-...,AGENTS.md(правка), этот handoff.
Suggested skills
conventional-commits (любой коммит) · playwright-cli (визуальная проверка) ·
diagnose (если чарт/датасет отвалится).