Нарезать тикеты этапа 4 по резолюциям карты #136

Closed
opened 2026-08-22 10:26:51 +03:00 by ddmitry · 2 comments
Owner

Part of #127.

Вопрос

Нарезать этап 4 на тикеты исполнения по резолюциям развилок этой карты:
самодостаточные постановки по правилам AGENTS.md (цель, критерии
приёмки чекбоксами, границы, «сначала прочитать», команды проверки),
цепочка блокировок нативными зависимостями Gitea и чек-лист - [ ] #NN
в корневом issue этапа #6. Здесь же — наблюдаемые критерии приёмки
самого этапа (правило спеки §9).

Part of #127. ## Вопрос Нарезать этап 4 на тикеты исполнения по резолюциям развилок этой карты: самодостаточные постановки по правилам AGENTS.md (цель, критерии приёмки чекбоксами, границы, «сначала прочитать», команды проверки), цепочка блокировок нативными зависимостями Gitea и чек-лист `- [ ] #NN` в корневом issue этапа #6. Здесь же — наблюдаемые критерии приёмки самого этапа (правило спеки §9).
ddmitry added the wayfinder:task label 2026-08-22 10:26:54 +03:00
ddmitry added a new dependency 2026-08-22 10:27:13 +03:00
ddmitry added a new dependency 2026-08-22 10:27:14 +03:00
ddmitry self-assigned this 2026-08-25 14:33:58 +03:00
Author
Owner

Этап 4 нарезан по резолюциям карты #127: десять тикетов исполнения чек-листом в #6, порядок — цепочка нативных блокировок. С порога открыты #150 (контракт dds.event_v), #151 (модель заказа) и #157 (опись); за ними #152 (сессии) и #153 (карта идентичностей), затем #154 (витрины и dm_transform) → #155 (сверка A+C) и #156 (конвейер etl_pipeline); замыкают #158 (звено DQ и dq_summary) и #159 (ТЗ витрин и даг самопроверки).

Решения нарезки (25 августа 2026):

• даги рождаются тикетами своей первой задачи: dds_transform — заказом (#151), dm_transform — витринами (#154), etl_pipeline с ожиданием хвоста hits — конвейером (#156);
• граница доступа storage.md становится проверяемой первым _v: #150 сужает грант bi_reader с dds.* до явных представлений, #154 — с dm.*, дальше каждый тикет добавляет свои;
• имена дагов и задач закреплены: dq_check с задачами по имени проверки (sessions_vs_reference, classes_vs_inventory, marts_vs_dds), homework_check, задачи слойных дагов — по имени сущности и витрины;
• счётчики описи для классов A и C — отдельный генераторный тикет #157: обещание нарезки этапа 3 (#89) — «счётчики заводит этап, приносящий читателя»; расхождение спеки §8 со словарём описи закрывается там же;
• окно K приходит на сторону стенда в #151 — сейчас константа живёт только в генераторе;
• ТЗ домашек и даг самопроверки — тикет этапа #159 (dm.md отдал их нарезке); дом ТЗ — docs/labs/, имена-слаги, правило — в AGENTS.md тем же PR;
• наблюдаемые критерии приёмки этапа добавлены в #6 (правило спеки §9).

Нарезка прошла холодное ревью свежей сессией (Opus, 28 находок, все оттриажированы). Блокеры закрыты правками: грант dm.* не имел хозяина — ушёл в #154; первичное наполнение DDS за пределами окна K было бездомным — объём #151 расширен до «дни окна плюс отсутствующие»; критерии идемпотентности спотыкались о служебные колонки — всюду «деловое содержимое»; соединения звали колонку именем ODS (purchaseID) вместо имени контракта (purchase_id); classes_vs_inventory ограничена днями, которые опись покрывает. Срезано по проходу на вычитание: пересказы док-спек и конвенций storage.md в тикетах, EXPLAIN-сторож (снят исследованием #128), «байт-в-байт» описи (это утверждает make test генератора); однотипный блок целей make заменён адресным.

Этап 4 нарезан по резолюциям карты #127: десять тикетов исполнения чек-листом в #6, порядок — цепочка нативных блокировок. С порога открыты #150 (контракт dds.event_v), #151 (модель заказа) и #157 (опись); за ними #152 (сессии) и #153 (карта идентичностей), затем #154 (витрины и dm_transform) → #155 (сверка A+C) и #156 (конвейер etl_pipeline); замыкают #158 (звено DQ и dq_summary) и #159 (ТЗ витрин и даг самопроверки). Решения нарезки (25 августа 2026): • даги рождаются тикетами своей первой задачи: dds_transform — заказом (#151), dm_transform — витринами (#154), etl_pipeline с ожиданием хвоста hits — конвейером (#156); • граница доступа storage.md становится проверяемой первым `_v`: #150 сужает грант bi_reader с dds.* до явных представлений, #154 — с dm.*, дальше каждый тикет добавляет свои; • имена дагов и задач закреплены: dq_check с задачами по имени проверки (sessions_vs_reference, classes_vs_inventory, marts_vs_dds), homework_check, задачи слойных дагов — по имени сущности и витрины; • счётчики описи для классов A и C — отдельный генераторный тикет #157: обещание нарезки этапа 3 (#89) — «счётчики заводит этап, приносящий читателя»; расхождение спеки §8 со словарём описи закрывается там же; • окно K приходит на сторону стенда в #151 — сейчас константа живёт только в генераторе; • ТЗ домашек и даг самопроверки — тикет этапа #159 (dm.md отдал их нарезке); дом ТЗ — docs/labs/, имена-слаги, правило — в AGENTS.md тем же PR; • наблюдаемые критерии приёмки этапа добавлены в #6 (правило спеки §9). Нарезка прошла холодное ревью свежей сессией (Opus, 28 находок, все оттриажированы). Блокеры закрыты правками: грант dm.* не имел хозяина — ушёл в #154; первичное наполнение DDS за пределами окна K было бездомным — объём #151 расширен до «дни окна плюс отсутствующие»; критерии идемпотентности спотыкались о служебные колонки — всюду «деловое содержимое»; соединения звали колонку именем ODS (purchaseID) вместо имени контракта (purchase_id); classes_vs_inventory ограничена днями, которые опись покрывает. Срезано по проходу на вычитание: пересказы док-спек и конвенций storage.md в тикетах, EXPLAIN-сторож (снят исследованием #128), «байт-в-байт» описи (это утверждает make test генератора); однотипный блок целей make заменён адресным.
Author
Owner

Вторая линия ревью нарезки — Codex (gpt-5.6-sol, xhigh, свежий тред): 13 находок (1 блокер, 9 major, 3 minor), все перепроверены владельцем задачи по докам и коду, все подтвердились и закрыты правками тикетов:

• testing.md требует make check-services для правок дагов и make typecheck для генератора — добавлены в проверки #151–#156, #158, #159 и в критерии этапа в #6 (SPEC-1, SPEC-8);
• критерий границы доступа в #151 не мог позеленеть раньше сужения гранта в #150 — добавлена блокировка 151 ← 150, фронтир теперь #150 и #157 (SPEC-2);
• объём пересборки заказов «K дней от позиции» промахивался из-за суточного лага слепков — семантика заменена на «дни, которые принёс последний слепок» (SPEC-3);
• обыгрываемые критерии закрыты инвариантами: разбор позиций против items_total (#151), все меры витрин против прямых агрегатов DDS (#154), красная демонстрация каждой из трёх DQ-проверок (#158), черновая сборка каждой домашки (#159) (SPEC-4, 5, 9, 13);
• ожидание хвоста hits — по обеим нодам, system.kafka_consumers локальна (#156, SPEC-6); отказ конвейера на инициализации явно чинится тем же перезапуском (#156, SPEC-7);
• блокер SPEC-11: спека §7 не даёт состава колонок четырёх витрин менти — #159 переписан: состав проектирует само ТЗ, образец — стенд-предшественник; представление-разминка в конвейер не встаёт, слово «каждого» в dm.md — поправить (SPEC-12); противоречие резолюции #135 с границей §10 «лабы — отдельная работа» #159 снимает правкой §10 тем же PR (SPEC-10).

Вторая линия ревью нарезки — Codex (gpt-5.6-sol, xhigh, свежий тред): 13 находок (1 блокер, 9 major, 3 minor), все перепроверены владельцем задачи по докам и коду, все подтвердились и закрыты правками тикетов: • testing.md требует `make check-services` для правок дагов и `make typecheck` для генератора — добавлены в проверки #151–#156, #158, #159 и в критерии этапа в #6 (SPEC-1, SPEC-8); • критерий границы доступа в #151 не мог позеленеть раньше сужения гранта в #150 — добавлена блокировка 151 ← 150, фронтир теперь #150 и #157 (SPEC-2); • объём пересборки заказов «K дней от позиции» промахивался из-за суточного лага слепков — семантика заменена на «дни, которые принёс последний слепок» (SPEC-3); • обыгрываемые критерии закрыты инвариантами: разбор позиций против items_total (#151), все меры витрин против прямых агрегатов DDS (#154), красная демонстрация каждой из трёх DQ-проверок (#158), черновая сборка каждой домашки (#159) (SPEC-4, 5, 9, 13); • ожидание хвоста hits — по обеим нодам, system.kafka_consumers локальна (#156, SPEC-6); отказ конвейера на инициализации явно чинится тем же перезапуском (#156, SPEC-7); • блокер SPEC-11: спека §7 не даёт состава колонок четырёх витрин менти — #159 переписан: состав проектирует само ТЗ, образец — стенд-предшественник; представление-разминка в конвейер не встаёт, слово «каждого» в dm.md — поправить (SPEC-12); противоречие резолюции #135 с границей §10 «лабы — отдельная работа» #159 снимает правкой §10 тем же PR (SPEC-10).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: ddmitry/clickstream-data-platform#136