Этап 7: эталонный мир — пересборка и чек-скрипты #9

Closed
opened 2026-07-30 16:41:42 +03:00 by ddmitry · 3 comments
Owner

Part of #1

Цель этапа: пересобрать эталонный мир как артефакт и закрыть его чек-скриптами.

Спека: docs/specs/2026-07-30-stand-v2-realism.md, раздел 8.

Этап начинается с проектирования: первый тикет — спека манифеста (brainstorm → спека → приёмка → нарезка), создаётся при входе в этап.

Дочерние тикеты

Дочерние тикеты будут нарезаны при входе в этап (по мастер-спеке).

Part of #1 Цель этапа: пересобрать эталонный мир как артефакт и закрыть его чек-скриптами. Спека: docs/specs/2026-07-30-stand-v2-realism.md, раздел 8. Этап начинается с проектирования: первый тикет — спека манифеста (brainstorm → спека → приёмка → нарезка), создаётся при входе в этап. ## Дочерние тикеты Дочерние тикеты будут нарезаны при входе в этап (по мастер-спеке).
ddmitry added a new dependency 2026-07-30 16:51:39 +03:00
Author
Owner

Инвентаризация остатка (2026-08-30). Большая часть этапа сделана по ходу
этапов 4–6, тикет писался раньше этих работ:

  • опись data/world-inventory.json живет в git: паспорт мира, хеши дней,
    хеши слепков, счетчики классов расхождений по закрытым дням; собирает
    make inventory, свежесть сторожит test_inventory.py;
  • проверка «пустой git diff» фактически живет тестом
    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 — сравни
хеш с описью», перенос резолюции в спеки, замер размера снимка и времени
пересборки.

Хвосты уровня владельца — этап ими не закрыт:

  1. CI-генерация на amd64 и arm64 (спека генератора, раздел 5; список
    этапа 7 в мастер-спеке). CI-инфраструктуры в репозитории нет вовсе —
    отдельная развилка: заводить ли CI ради одной проверки.
  2. Обещания калибровки черновых долей «при пересборке эталонного мира
    (этап 7)» — шесть мест: generator/src/clickstream_generator/world.py,
    docs/architecture/orders/README.md, docs/architecture/orders/fate.md.
    Пересборки не будет, обещаниям нужен новый владелец или снятие.
Инвентаризация остатка (2026-08-30). Большая часть этапа сделана по ходу этапов 4–6, тикет писался раньше этих работ: - опись `data/world-inventory.json` живет в git: паспорт мира, хеши дней, хеши слепков, счетчики классов расхождений по закрытым дням; собирает `make inventory`, свежесть сторожит `test_inventory.py`; - проверка «пустой git diff» фактически живет тестом `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 — сравни хеш с описью», перенос резолюции в спеки, замер размера снимка и времени пересборки. Хвосты уровня владельца — этап ими не закрыт: 1. **CI-генерация на amd64 и arm64** (спека генератора, раздел 5; список этапа 7 в мастер-спеке). CI-инфраструктуры в репозитории нет вовсе — отдельная развилка: заводить ли CI ради одной проверки. 2. **Обещания калибровки черновых долей** «при пересборке эталонного мира (этап 7)» — шесть мест: `generator/src/clickstream_generator/world.py`, `docs/architecture/orders/README.md`, `docs/architecture/orders/fate.md`. Пересборки не будет, обещаниям нужен новый владелец или снятие.
Author
Owner

Резолюции по хвостам (2026-08-30, обсуждение с владельцем):

  1. CI-генерация на amd64 и arm64 снята. Обещание страховало не сборку
    образов, а байтовую сходимость генерации на чужой архитектуре
    (ноутбуки менти на ARM). Этот риск уже снят устройством — дисциплиной
    целочисленной случайности (спека генератора, раздел 2), — и CI
    дублировал бы сторожем гарантию конструкции. Резолюция вписана в
    спеки в PR #193.

  2. Калибровка черновых долей — тикет #194. Замер наблюдаемых долей
    на каноническом мире окном в 28 дней и фиксация чисел в комментариях
    и доках; веса не крутятся (правка весов рушит хеши описи),
    отклонение от ориентира возвращается владельцу.

Этап закрывается слиянием #193 и закрытием #194.

Резолюции по хвостам (2026-08-30, обсуждение с владельцем): 1. **CI-генерация на amd64 и arm64 снята.** Обещание страховало не сборку образов, а байтовую сходимость генерации на чужой архитектуре (ноутбуки менти на ARM). Этот риск уже снят устройством — дисциплиной целочисленной случайности (спека генератора, раздел 2), — и CI дублировал бы сторожем гарантию конструкции. Резолюция вписана в спеки в PR #193. 2. **Калибровка черновых долей — тикет #194.** Замер наблюдаемых долей на каноническом мире окном в 28 дней и фиксация чисел в комментариях и доках; веса не крутятся (правка весов рушит хеши описи), отклонение от ориентира возвращается владельцу. Этап закрывается слиянием #193 и закрытием #194.
Author
Owner

Этап закрыт. Резолюция: эталонный мир совпадает со стартовым (8 дней), опись растет при появлении названного читателя; проверка «пересгенерируй день — сравни хеш» живет тестом генератора; CI amd64/arm64 снят (риск закрыт целочисленной дисциплиной случайности); черновые доли заказной стороны откалиброваны замером, потеря purchase 1,78% при броске 3% принята штатной. Реализация — #192 (PR #193) и #194 (PR #195), обе влиты в main.

Этап закрыт. Резолюция: эталонный мир совпадает со стартовым (8 дней), опись растет при появлении названного читателя; проверка «пересгенерируй день — сравни хеш» живет тестом генератора; CI amd64/arm64 снят (риск закрыт целочисленной дисциплиной случайности); черновые доли заказной стороны откалиброваны замером, потеря purchase 1,78% при броске 3% принята штатной. Реализация — #192 (PR #193) и #194 (PR #195), обе влиты в main.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: ddmitry/clickstream-data-platform#9