docs(todo): исправлен порядок этапов подготовки курсовой

- Зачем:
  - Этап «подготовка main» не должен идти раньше ТЗ и валидационного DAG —
    нельзя удалять рабочий пайплайн до того, как всё создано и протестировано.
- Что:
  - Этапы 2-5 переупорядочены: сначала ТЗ от аналитика, затем валидационный DAG,
    в конце — подготовка main и создание ветки solution.
  - Этапы 2 и 5 (подготовка main + solution) объединены в один финальный этап.
  - Добавлены пояснения «Делаем пока полный пайплайн работает» к каждому этапу.
- Проверка:
  - Читаемость TODO.md.
This commit is contained in:
2026-03-10 23:13:48 +03:00
parent 6655326caa
commit 21f62be01a
+19 -18
View File
@@ -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 на обеих ветках
---