Этап 7: эталонный мир — пересборка и чек-скрипты #9
Notifications
Due Date
No due date set.
Blocks
Depends on
#10 Этап 8: Superset-дашборд v2
ddmitry/clickstream-data-platform
#8 Этап 6: расхождения B+D, опоздания, счётчики манифеста
ddmitry/clickstream-data-platform
Reference: ddmitry/clickstream-data-platform#9
Reference in new issue
Block a user
Part of #1
Цель этапа: пересобрать эталонный мир как артефакт и закрыть его чек-скриптами.
Спека: docs/specs/2026-07-30-stand-v2-realism.md, раздел 8.
Этап начинается с проектирования: первый тикет — спека манифеста (brainstorm → спека → приёмка → нарезка), создаётся при входе в этап.
Дочерние тикеты
Дочерние тикеты будут нарезаны при входе в этап (по мастер-спеке).
ddmitry referenced this issue2026-07-30 16:41:43 +03:00
Инвентаризация остатка (2026-08-30). Большая часть этапа сделана по ходу
этапов 4–6, тикет писался раньше этих работ:
data/world-inventory.jsonживет в git: паспорт мира, хеши дней,хеши слепков, счетчики классов расхождений по закрытым дням; собирает
make inventory, свежесть сторожитtest_inventory.py;test_inventory_is_up_to_date, хеш слепка сверяется тестом пересъемки;classes_vs_inventoryреализована и стоит в DQ-даге;check-clickhouseна живом стенде.Резолюция владельца 2026-08-30: опись до 14 дней не расширяется —
у дней 8–13 нет читателя (лабы проигрывают мир дальше без описи, транспорт
байты с описью не сверяет, проверке хеша любой день описи годится), а
расширение сломало бы рамки трех потребителей описи на свежем
make up.Эталонный мир совпадает со стартовым: 8 дней. Опись вырастет, когда
появится названный читатель — например, если растяжке
classes_vs_inventoryпонадобится сверять больше одного закрытого дня.
Исполнимый остаток нарезан в #192: проверка «пересгенерируй день N — сравни
хеш с описью», перенос резолюции в спеки, замер размера снимка и времени
пересборки.
Хвосты уровня владельца — этап ими не закрыт:
этапа 7 в мастер-спеке). CI-инфраструктуры в репозитории нет вовсе —
отдельная развилка: заводить ли CI ради одной проверки.
(этап 7)» — шесть мест:
generator/src/clickstream_generator/world.py,docs/architecture/orders/README.md,docs/architecture/orders/fate.md.Пересборки не будет, обещаниям нужен новый владелец или снятие.
Резолюции по хвостам (2026-08-30, обсуждение с владельцем):
CI-генерация на amd64 и arm64 снята. Обещание страховало не сборку
образов, а байтовую сходимость генерации на чужой архитектуре
(ноутбуки менти на ARM). Этот риск уже снят устройством — дисциплиной
целочисленной случайности (спека генератора, раздел 2), — и CI
дублировал бы сторожем гарантию конструкции. Резолюция вписана в
спеки в PR #193.
Калибровка черновых долей — тикет #194. Замер наблюдаемых долей
на каноническом мире окном в 28 дней и фиксация чисел в комментариях
и доках; веса не крутятся (правка весов рушит хеши описи),
отклонение от ориентира возвращается владельцу.
Этап закрывается слиянием #193 и закрытием #194.
Этап закрыт. Резолюция: эталонный мир совпадает со стартовым (8 дней), опись растет при появлении названного читателя; проверка «пересгенерируй день — сравни хеш» живет тестом генератора; CI amd64/arm64 снят (риск закрыт целочисленной дисциплиной случайности); черновые доли заказной стороны откалиброваны замером, потеря purchase 1,78% при броске 3% принята штатной. Реализация — #192 (PR #193) и #194 (PR #195), обе влиты в main.