Домашки слоя DM: менти строит витрину сам — от DDL по правилу зерна до задачи в конвейере — и получает обратную связь по каждой витрине. Резолюция #135 забрала ТЗ и даг самопроверки в этап 4.
Что
docs/labs/ — README и пять ТЗ в учебном порядке: разминка events_enriched_v (представление, зерно события), затем top_pages_daily, session_overview, dq_errors_daily, последней — utm_effectiveness (урок declared_*). Каждое ТЗ называет урок одной фразой, проектирует состав колонок, оставляет ключ шардирования решением менти и заканчивается постановкой витрины в dm_transform (кроме разминки — ей нечего пересобирать).
dags/homework_check.py — ручной даг без расписания, задача на витрину: красная, пока витрины нет или счёт не сходится; сообщение называет витрину и её ТЗ. Проверки — шесть файлов sql/dq/ с инвариантами против DDS/ODS, окно dq_errors_daily ограничено контрактным TTL источника с обеих сторон; золотых констант нет, в dq_summary даг не пишет.
Доки тем же PR: dm.md называет homework_check, секция «Остается нарезке» снята как выполненная; §7 и §10 мастер-спеки согласованы с лабами (зерно session_overview, источники dq_errors_daily, исключение этапа 4); dds/session.md указывает на ТЗ; в AGENTS.md — правило имён docs/labs/.
Проверка
make lint; make smoke 21/21, make check-clickhouse 10/10, make check-services 7/7
homework_check на свежем стенде: все пять задач красные, каждое сообщение называет отсутствующую витрину и её ТЗ
каждое ТЗ проверено черновой сборкой строго по тексту: задача зелёная, после сноса черновика — снова красная; брака ТЗ не найдено
в dq_summary строк от самопроверки нет (проверено по 12 run id прогонов)
Как делалось
Конвейер: Opus — ТЗ и доки, Codex — даг и приёмочный прогон; два слепых ревью (21 находка, все закрыты: 17 починено, 2 отклонено с доводами и подтверждением ревьюера, 2 закрыто решением владельца конвейера), узкие перепроверки авторами находок, финальная вычитка ai-text-lint + литературный русский.
Закрывает #159.
## Зачем
Домашки слоя DM: менти строит витрину сам — от DDL по правилу зерна до задачи в конвейере — и получает обратную связь по каждой витрине. Резолюция #135 забрала ТЗ и даг самопроверки в этап 4.
## Что
- `docs/labs/` — README и пять ТЗ в учебном порядке: разминка `events_enriched_v` (представление, зерно события), затем `top_pages_daily`, `session_overview`, `dq_errors_daily`, последней — `utm_effectiveness` (урок `declared_*`). Каждое ТЗ называет урок одной фразой, проектирует состав колонок, оставляет ключ шардирования решением менти и заканчивается постановкой витрины в `dm_transform` (кроме разминки — ей нечего пересобирать).
- `dags/homework_check.py` — ручной даг без расписания, задача на витрину: красная, пока витрины нет или счёт не сходится; сообщение называет витрину и её ТЗ. Проверки — шесть файлов `sql/dq/` с инвариантами против DDS/ODS, окно `dq_errors_daily` ограничено контрактным TTL источника с обеих сторон; золотых констант нет, в `dq_summary` даг не пишет.
- Доки тем же PR: `dm.md` называет `homework_check`, секция «Остается нарезке» снята как выполненная; §7 и §10 мастер-спеки согласованы с лабами (зерно `session_overview`, источники `dq_errors_daily`, исключение этапа 4); `dds/session.md` указывает на ТЗ; в AGENTS.md — правило имён `docs/labs/`.
## Проверка
- [x] `make lint`; `make smoke` 21/21, `make check-clickhouse` 10/10, `make check-services` 7/7
- [x] `homework_check` на свежем стенде: все пять задач красные, каждое сообщение называет отсутствующую витрину и её ТЗ
- [x] каждое ТЗ проверено черновой сборкой строго по тексту: задача зелёная, после сноса черновика — снова красная; брака ТЗ не найдено
- [x] в `dq_summary` строк от самопроверки нет (проверено по 12 run id прогонов)
## Как делалось
Конвейер: Opus — ТЗ и доки, Codex — даг и приёмочный прогон; два слепых ревью (21 находка, все закрыты: 17 починено, 2 отклонено с доводами и подтверждением ревьюера, 2 закрыто решением владельца конвейера), узкие перепроверки авторами находок, финальная вычитка ai-text-lint + литературный русский.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
- Зачем:
- менти строит витрины DM сам, от DDL по правилу зерна до задачи в
конвейере; стенду нужны ТЗ с образцом и обратная связь по каждой
витрине (#159, резолюция #135).
- Что:
- docs/labs/: README и пять ТЗ — events_enriched_v, top_pages_daily,
session_overview, dq_errors_daily, utm_effectiveness; каждое ТЗ
называет урок, состав колонок, форму по зерну и самопроверку.
- dags/homework_check.py: ручной даг, задача на витрину, красная без
витрины или при расхождении; проверки — шесть файлов sql/dq/ с
инвариантами против DDS и ODS, без золотых констант; в dq_summary
не пишет.
- docs: dm.md называет homework_check и снимает «Остается нарезке»,
§7 и §10 мастер-спеки согласованы с лабами, dds/session.md указывает
на ТЗ, AGENTS.md пополнен правилом имен docs/labs/.
- Проверка:
- make lint; make smoke 21/21, make check-clickhouse 10/10,
make check-services 7/7.
- на свежем стенде все пять задач homework_check красные и называют
ТЗ; черновик каждой витрины по тексту ТЗ зеленит свою задачу,
после сноса — снова красная; строк от самопроверки в dq_summary нет.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ddmitry
merged commit 33aef73d0e into main2026-08-28 09:53:47 +03:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Закрывает #159.
Зачем
Домашки слоя DM: менти строит витрину сам — от DDL по правилу зерна до задачи в конвейере — и получает обратную связь по каждой витрине. Резолюция #135 забрала ТЗ и даг самопроверки в этап 4.
Что
docs/labs/— README и пять ТЗ в учебном порядке: разминкаevents_enriched_v(представление, зерно события), затемtop_pages_daily,session_overview,dq_errors_daily, последней —utm_effectiveness(урокdeclared_*). Каждое ТЗ называет урок одной фразой, проектирует состав колонок, оставляет ключ шардирования решением менти и заканчивается постановкой витрины вdm_transform(кроме разминки — ей нечего пересобирать).dags/homework_check.py— ручной даг без расписания, задача на витрину: красная, пока витрины нет или счёт не сходится; сообщение называет витрину и её ТЗ. Проверки — шесть файловsql/dq/с инвариантами против DDS/ODS, окноdq_errors_dailyограничено контрактным TTL источника с обеих сторон; золотых констант нет, вdq_summaryдаг не пишет.dm.mdназываетhomework_check, секция «Остается нарезке» снята как выполненная; §7 и §10 мастер-спеки согласованы с лабами (зерноsession_overview, источникиdq_errors_daily, исключение этапа 4);dds/session.mdуказывает на ТЗ; в AGENTS.md — правило имёнdocs/labs/.Проверка
make lint;make smoke21/21,make check-clickhouse10/10,make check-services7/7homework_checkна свежем стенде: все пять задач красные, каждое сообщение называет отсутствующую витрину и её ТЗdq_summaryстрок от самопроверки нет (проверено по 12 run id прогонов)Как делалось
Конвейер: Opus — ТЗ и доки, Codex — даг и приёмочный прогон; два слепых ревью (21 находка, все закрыты: 17 починено, 2 отклонено с доводами и подтверждением ревьюера, 2 закрыто решением владельца конвейера), узкие перепроверки авторами находок, финальная вычитка ai-text-lint + литературный русский.
🤖 Generated with Claude Code
- Зачем: - менти строит витрины DM сам, от DDL по правилу зерна до задачи в конвейере; стенду нужны ТЗ с образцом и обратная связь по каждой витрине (#159, резолюция #135). - Что: - docs/labs/: README и пять ТЗ — events_enriched_v, top_pages_daily, session_overview, dq_errors_daily, utm_effectiveness; каждое ТЗ называет урок, состав колонок, форму по зерну и самопроверку. - dags/homework_check.py: ручной даг, задача на витрину, красная без витрины или при расхождении; проверки — шесть файлов sql/dq/ с инвариантами против DDS и ODS, без золотых констант; в dq_summary не пишет. - docs: dm.md называет homework_check и снимает «Остается нарезке», §7 и §10 мастер-спеки согласованы с лабами, dds/session.md указывает на ТЗ, AGENTS.md пополнен правилом имен docs/labs/. - Проверка: - make lint; make smoke 21/21, make check-clickhouse 10/10, make check-services 7/7. - на свежем стенде все пять задач homework_check красные и называют ТЗ; черновик каждой витрины по тексту ТЗ зеленит свою задачу, после сноса — снова красная; строк от самопроверки в dq_summary нет. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>