docs(handoff): добавлен независимый ревью-проход в handoff цепочки
- Зачем:
- следующий шаг handoff — независимый ревью диапазона c672ed0..HEAD;
результат нужно зафиксировать для продолжения в новой сессии.
- Что:
- добавлен раздел «Независимый ревью-проход» (свежий взгляд, без субагентов):
вердикт, прогнанные тесты 172+5, находки по задачам, косметические мелочи.
- обновлены «Открытые риски» и «Следующий шаг»: остаётся HITL-приёмка и
решение по задаче 13.
- Проверка:
- git show --stat HEAD; ревью-раздел читается в handoff.
This commit is contained in:
@@ -119,7 +119,67 @@
|
||||
- Финальные `rg`-проверки по PRD, чекбоксам, Superset-маркерам и
|
||||
startup-history-дрифту — PASS перед `f8b419d`.
|
||||
|
||||
## Независимый ревью-проход (2026-07-04, свежий взгляд)
|
||||
|
||||
Кто и как: Claude, свежим взглядом по диапазону `c672ed0..HEAD`, без субагентов
|
||||
(правило проекта: «свежим взглядом» = без субагентов). Читались реальные диффы
|
||||
всех пяти задач и сверялись с текстами issue; тесты прогонялись заново, а не со
|
||||
слов handoff.
|
||||
|
||||
Вердикт: цепочка выполнена на уровне кода и тестов; правок для приёмки не нужно.
|
||||
|
||||
Доказательства (прогонял сам):
|
||||
|
||||
- `generator/tests` — 172 passed (в том числе контрактный тест DAG и тесты пульта).
|
||||
- `tests/test_superset_dashboard_config.py` — 5 passed.
|
||||
- Грепы: старых маркеров `world_map`/`Geography Map` в коде и доках нет (остались
|
||||
только законный историч. след в спеке, `previous_slice_names` и тест
|
||||
переименования); во всех done-issue 0 пустых чекбоксов; `state v2` в отгруженном
|
||||
коде не осталось.
|
||||
- `etl_pipeline` действительно принимает `conf` `full_refresh` (`Param(True,
|
||||
type="boolean")`) — имя параметра из `TriggerDagRunOperator` пульта совпадает.
|
||||
|
||||
По задачам:
|
||||
|
||||
- Issue 09 (гейт): донор `base_click_id` хранится в state; восстановление громко
|
||||
падает на неизвестном доноре (тихие `.get`-fallback'и убраны); запасная ветка
|
||||
рождения сделана восстановимой и провалидирована. Отдельная реальная находка —
|
||||
µs-фикс `_timestamp_to_state_offset` (целочисленная арифметика вместо
|
||||
`total_seconds()*1e6`). Тесты бьют прямо в критерии приёмки.
|
||||
- Issue 12 (пульт): `retries=0`, `is_paused_upon_creation`, join после ветвления
|
||||
через `NONE_FAILED_MIN_ONE_SUCCESS`, `wait_for_completion=True`, env до
|
||||
`Config()`, предпроверка пустоты Kafka и STG. Compose-профиль `live-generator`
|
||||
оставляет `make up` чистым; явные пути включают профиль по имени сервиса.
|
||||
- Issue 14: `daily-wave` speed 1→60, tick 60→1; `ci` не тронут; пер-тиковые INFO
|
||||
приглушены до DEBUG.
|
||||
- Issue 10: `echarts_timeseries_bar` с tooltip, легендой и единицами; дедуп дублей
|
||||
при переименовании; экспорт-JSON защищён тестами и от рассинхрона с конфигом, и
|
||||
от дрейфа раскладки.
|
||||
- Issue 08: доки, старый путь `make data`/`kafka_load` убран как основной, грепы
|
||||
чисты.
|
||||
|
||||
Мелочи (косметика, не блокеры):
|
||||
|
||||
- `test_default_version` (`test_state.py`): docstring говорит «версии 2», а ассерт
|
||||
уже `"3.0"`.
|
||||
- `build_control_env` для `import` тоже зовёт `build_launch_env("backfill", …)` —
|
||||
безвредно (важен только «мир»-env), но может смутить читателя.
|
||||
- `tooltipTimeFormat: "smart_date"` на категориальной оси — рудиментарный
|
||||
параметр, безвреден.
|
||||
|
||||
## Открытые риски (обновление 2026-07-04)
|
||||
|
||||
- Кросс-линейный проход *другой родословной* (иная модель/агент) не выполнялся:
|
||||
этот ревью сделан Claude свежим взглядом без субагентов. Для кода и тестов
|
||||
этого достаточно; если нужна ещё одна родословная — отдельный шаг.
|
||||
- Ручная приёмка (HITL) остаётся, код к ней честен (пропуски печатаются):
|
||||
- Airflow UI: `generator_control` backfill/import/check на чистом стенде.
|
||||
- Superset: кадр `Top Countries by Events` целиком и кадр с tooltip.
|
||||
- Курс 00-06: проход по новому startup-history-пути.
|
||||
- Задача 13 (`backfill-top-up-from-snapshot`) — `needs-triage`; предпосылка
|
||||
(исправный restore из issue 09) выполнена, можно дооформлять.
|
||||
|
||||
## Следующий шаг
|
||||
|
||||
Запустить независимый кросс-линейный ревью-проход по диапазону `c672ed0..HEAD` и
|
||||
handoff-коммиту, затем отдельно решить, дооформлять ли issue 13.
|
||||
Независимый ревью кода и тестов пройден. Осталось: ручная HITL-приёмка (Airflow
|
||||
UI, Superset-кадры, проход курса) и отдельное решение по задаче 13.
|
||||
|
||||
Reference in New Issue
Block a user