From 21f62be01a77bfbd6edc664b811ce2e693cfb158 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Tue, 10 Mar 2026 23:13:48 +0300 Subject: [PATCH] =?UTF-8?q?docs(todo):=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=20=D0=BF=D0=BE=D1=80=D1=8F=D0=B4=D0=BE?= =?UTF-8?q?=D0=BA=20=D1=8D=D1=82=D0=B0=D0=BF=D0=BE=D0=B2=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=B4=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=BA=D0=B8=20=D0=BA=D1=83?= =?UTF-8?q?=D1=80=D1=81=D0=BE=D0=B2=D0=BE=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Зачем: - Этап «подготовка main» не должен идти раньше ТЗ и валидационного DAG — нельзя удалять рабочий пайплайн до того, как всё создано и протестировано. - Что: - Этапы 2-5 переупорядочены: сначала ТЗ от аналитика, затем валидационный DAG, в конце — подготовка main и создание ветки solution. - Этапы 2 и 5 (подготовка main + solution) объединены в один финальный этап. - Добавлены пояснения «Делаем пока полный пайплайн работает» к каждому этапу. - Проверка: - Читаемость TODO.md. --- TODO.md | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/TODO.md b/TODO.md index 45f49b1..0dbfc15 100644 --- a/TODO.md +++ b/TODO.md @@ -37,46 +37,47 @@ (проверено 2026-03-09: `cp .env.example .env` → `make up` → `make bookings-init` → `make ddl-gp` → STG → ODS → DDS → DM — всё success) -### Этап 2. Подготовка main - -**Инструмент:** Sonnet — удаление файлов и добавление заглушек -по списку из [assignment_design.md](docs/design/assignment_design.md). - -- [ ] Оставить только эталонный срез (sales_report + цепочка) -- [ ] Убрать реализации таблиц-заданий (airplanes, seats, routes в STG/ODS; - dim_airplanes, dim_passengers, dim_routes в DDS; 4 витрины DM) -- [ ] Добавить TODO-маркеры / заглушки в DAG'ах для студенческих тасков -- [ ] Обновить `ddl_gp.sql` (убрать `\i` для таблиц-заданий) - -### Этап 3. ТЗ от аналитика +### Этап 2. ТЗ от аналитика **Инструмент:** Opus — нужно глубокое понимание предметной области, маппингов между слоями, SCD-паттернов и педагогического контекста. +> Делаем пока полный пайплайн работает — можно сверяться с реальными данными. + - [ ] Создать `docs/assignment/analyst_spec.md` - [ ] Для каждой таблицы-задания: имя, описание, поля, маппинг, бизнес-правила, тип SCD, гранулярность, distribution key - [ ] Для dim_routes (SCD2): пошаговый алгоритм текстом, формула hashdiff - [ ] Рекомендуемый порядок выполнения -### Этап 4. Валидационный DAG +### Этап 3. Валидационный DAG **Инструмент:** Sonnet (шаблонная работа, структура в assignment_design.md) + Opus для финальной вычитки. +> Делаем и тестируем на полных данных, пока ничего не удалено. + - [ ] Создать `airflow/dags/bookings_validate.py` - [ ] Создать SQL-скрипты в `sql/validate/` - [ ] Таски по слоям: STG, ODS, DDS, DM - [ ] Дружелюбные сообщения об ошибках с подсказками +- [ ] Протестировать на работающем стенде -### Этап 5. Ветка solution +### Этап 4. Подготовка main и ветка solution -**Инструмент:** Вручную / Sonnet — реализация уже есть в ветке -`chore/bookings-etl`, нужно собрать в ветку `solution`. +**Инструмент:** Sonnet — удаление файлов и добавление заглушек +по списку из [assignment_design.md](docs/design/assignment_design.md). -- [ ] Создать ветку `solution` от main (после подготовки) +> Финальный этап: всё готово и протестировано, теперь раскладываем по веткам. + +- [ ] Оставить только эталонный срез (sales_report + цепочка) +- [ ] Убрать реализации таблиц-заданий (airplanes, seats, routes в STG/ODS; + dim_airplanes, dim_passengers, dim_routes в DDS; 4 витрины DM) +- [ ] Добавить TODO-маркеры / заглушки в DAG'ах для студенческих тасков +- [ ] Обновить `ddl_gp.sql` (убрать `\i` для таблиц-заданий) +- [ ] Создать ветку `solution` от main - [ ] Добавить полные реализации всех таблиц-заданий -- [ ] Проверить, что всё работает end-to-end +- [ ] Проверить, что всё работает end-to-end на обеих ветках ---