Зачем: собранная спека заказов стала базовой документацией сервиса, а жанр спеки-события ей мал: дата в имени врёт, целиком в контекст агента она не влезает, а трекер с резолюциями долговечным хранилищем не считается. Решение владельца — держать детальное устройство компонента связным набором живых документов (ADR 0011) и совместить переезд с проходом на вычитание (#84). Что: docs/architecture/orders/ — индекс README и файлы по частям устройства: проекция, слепок и доставка, судьба, классы расхождений, опись, мост к склейке, стартовый мир, правила кода; спека приёма переехала в ingestion.md без содержательных правок. Резы вычитания по итогам двух слепых линий: тела разделов о проводе и приёме сведены к указателям на мастер-спеку, исследование формата и ADR (порядок строк слепка — единственное правило, оставшееся на месте); замеры канонического зерна и повторы-пояснения срезаны; списки отклонённых вариантов сохранены как долговечная запись. Датированные файлы удалены, ссылки из мастер-спеки, спеки генератора, ADR 0008/0010, исследования формата и storage.md перенацелены; раздел «Структура» AGENTS.md дополнен правилом подпапки. Проверка: grep по репозиторию не находит ссылок на удалённые файлы; все относительные ссылки внутри набора разрешаются в существующие файлы; впереди холодная сверка «ни одно решение не потеряно» и приёмка #88. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
18 lines
1.4 KiB
Markdown
18 lines
1.4 KiB
Markdown
# Правила кода этапа 3
|
|
|
|
Хвосты резолюций, обязательные для реализации:
|
|
|
|
- **Броски заказной стороны — на полную длину дня**, а не на отобранных
|
|
заказах (правило формы, [судьба заказа](fate.md)); моментов всегда два.
|
|
- **Целочисленная случайность** наследуется правилом кода этапа 2: таблицы
|
|
целых весов, никаких плавающих распределений; деньги — в целых копейках.
|
|
- **Подпотоки — по позиции в дереве**: стороны судьбы ветвятся по дню рождения
|
|
заказа; в `COMMERCE` новых бросков нет; `person_id` — последний бросок
|
|
когорты.
|
|
- **Окно K = 7 — константа мира** в конфигурации мира, рядом с D0 и поясом
|
|
([исследование
|
|
формата](../../research/2026-08-16-order-snapshot-wire-format.md)).
|
|
- **Один сериализатор**: запись слепка собирает явная функция `serialize.py`,
|
|
прямых `json.dumps` по коду нет.
|
|
- **Значения идентификаторов — ниже 2^53** (`user_id` наравне с прочими).
|