U-02 · Окно отчётности — вход#
Этап прогона: прогон закончен 2026-09-22 · вход зафиксирован 2026-09-21
Кейс: Г-1 из предложенных со стороны; карточки под него нет
Шаги: W0 · Рамки и требования и W1 · Оценки на салфетке
Предсказания: шесть безусловных, записаны до этой строки
Зачем этот прогон.
D-05иD-11— два последних документа набора, не встречавших кейса. ШагШ2.Почему индекс
U, если прогон задуман сквозным. Имя закреплено в предсказаниях до того, как стало известно, окажется ли он сквозным: это проверяетГ6. Переименование — не пересмотр, но имя оставим: оно фиксирует, чем прогон задумывался, а не чем оказался.Тему выбирал не автор предсказаний. Шесть кандидатов предложили два независимых агента. Ограда при этом протекла — шаг
W2пересказывает обе координатыD-11, и агенты этим знанием пользовались. Подробности и цена — в отчёте о кандидатах.Система вымышлена, но внутренне непротиворечива. Числа выбраны так, чтобы арифметика сходилась, и не взяты у реальной организации.
Чем U-02 отличается от предшественников#
| Ось | E-01 · Бронирование | E-03 · Учёт товара | U-02 · Окно отчётности |
|---|---|---|---|
| Стадия | Гринфилд | Работает 11 лет | Гринфилд — второй раз в наборе |
| Внешние потребители | Нет: система внутренняя | Нет | 4 200 организаций и 25 вендоров, все известны поимённо — до первой строки кода |
| Кто назначает сроки | Мы | Мы | Приказ. Дата публикации интерфейса и окно отчётности назначены не нами и не обсуждаются |
| Обратимость обещания | Обещания нет | Нет | Одностороннее и необратимое: опубликованный интерфейс нельзя отозвать, а менять его можно только в такт чужим релизам |
| Источник истины | В базе | Вне системы — физическая полка | Расщеплён: форма и арифметика документа проверяются у нас, а заявленные объёмы — по актам, которые сдаёт другая организация и, возможно, позже |
| Дефицитный ресурс | Место в самолёте | Обращение к арбитру | Время внутри окна. Не мощность, а календарь: после 23:59 двадцатого числа исправить нельзя |
| Нагрузка | Пик ×1000 полчаса в неделю | 9 операций в секунду | 0,17 запроса в секунду. Пик — 600 подач в час в последние сутки |
| Объём | 130 ГБ за пять лет | ≈ 0,55 ТБ | ≈ 1 ТБ за пять лет хранения. Скучен |
| Команда | Четверо, платформенной нет | Трое сопровождения, авторов нет | Одиннадцать в ИТ, кабинет у подрядчика, платформенной нет, дежурство по очереди |
| Наблюдаемость | Нет — не запущена | Асимметричная | Нет и не будет до апреля: трафика не существует, песочница нерепрезентативна |
| Что решает исход | Конкуренция за строку | Величина расхождения с полкой | Удастся ли расщепить вердикт на ту часть, что мы обязаны выдать немедленно и сами, и ту, что зависит от чужих документов |
Главное отличие от E-01. Обе системы — гринфилд, но E-01 не был никому ничего должен: он проектировался внутрь. Здесь обещание внешним потребителям даётся раньше, чем написана первая строка кода, и цена ошибки в нём платится не нами.
1. Что имеем#
АНО «Центр учёта оборота упаковки» (ЦУУ) — оператор, созданный поправками к закону об отходах. Поправки вступают в силу 1 января 2027.
Две даты назначены приказом ведомства и не обсуждаются:
| Дата | Что | [приказ] |
|---|---|---|
| 1 октября 2026 | Опубликовать спецификацию машинного интерфейса | до неё десять дней |
| 1–20 апреля 2027 | Окно первой обязательной отчётности за I квартал | двадцать дней, второй попытки нет |
Кто обязан отчитываться. 4 200 производителей и импортёров упаковки плюс 310 утилизаторов [приказ]. Из обязанных примерно 640 будут сдавать машинно — своей ERP или модулем от одного из 25 вендоров учётных систем; остальные грузят файл через личный кабинет [допущение].
Цена нашей ошибки лежит на них. Не сдал вовремя — штраф от 250 тыс ₽ плюс пересчёт сбора [приказ]. Годовой сбор среднего обязанного лица — 1,8–9 млн ₽ [расчёт].
Команда. Одиннадцать человек в ИТ: шесть бэкенд, фронтенд, два аналитика, тестировщик, инфраструктура. Личный кабинет отдан подрядчику. Платформенной команды нет, дежурство по очереди. Бюджет первого года 214 млн ₽, из них 26 млн — инфраструктура и наблюдаемость на три года.
Что такое документ отчётности. В среднем 1 400 строк, у крупных импортёров до 40 тыс. [допущение]. Проверка одной строки требует трёх обращений к справочникам ведомства и одного — к реестру актов утилизации.
И здесь главная особенность кейса. Заявленные объёмы утилизации обязаны сойтись с актами, которые сдаёт другая организация — утилизатор, — и он имеет право сдать их позже. То есть часть вердикта по нашему документу не может быть вынесена в момент подачи и зависит от того, кто нам не подчиняется.
Чего ещё нет. Подзаконный акт с методикой расчёта сбора ожидается в декабре [допущение] — то есть через два месяца после того, как спецификация интерфейса должна быть опубликована. Обещать приходится раньше, чем определён смысл того, что обещаем.
2. Оценки на салфетке#
Подач за окно. 4 200 обязанных × 2,8 попытки (отказ → правка → повтор) ≈ 11 760 подач [расчёт] на допущении о числе попыток.
Распределение. 62 % подач приходится на последние 48 часов [допущение]; пик часа ≈ 600 подач = 0,17 запроса в секунду [расчёт].
Проверка одного документа. 1 400 строк × 4 обращения = 5 600 обращений к справочникам [расчёт]. При кэшированных справочниках — доли секунды; при обращении к реестру актов по сети — величина, зависящая от чужой системы.
Объём. Документ с вложениями ≈ 4 МБ; 11 760 подач × 4 квартала ≈ 200 ГБ в год, при пятилетнем сроке хранения ≈ 1 ТБ [расчёт].
Вычислительной задачи в кейсе нет. 0,17 запроса в секунду и терабайт за пять лет не создают ни одной развилки по мощности. Предмет проектирования — время до вердикта в последние сутки окна и его предсказуемость: потребителю нужен не только ответ, но и время исправить документ до 23:59 двадцатого числа.
3. Инварианты#
- Принятый документ неизменяем. Он подписан и имеет юридическую силу; исправление — новая подача, а не правка старой.
- Квитанция — юридический факт. Если мы сказали «принято», обязанное лицо вправе считать обязанность исполненной.
- Вердикт не может опережать данные, которых нет. Пока утилизатор не сдал акты, встречную сверку провести нечем.
- Опубликованный интерфейс необратим. Отозвать спецификацию нельзя; изменить — только в такт квартальным релизам 25 вендоров.
4. Пометки источника в этом прогоне#
[приказ] — назначено нормативным актом; не обсуждается и не пересчитывается.
[расчёт] — выведено арифметикой из других чисел этого файла.
[допущение] — принято нами, ничем не подтверждено, подлежит проверке после первого окна.
Уже на входе видно натяжение. Релизный цикл вендоров учётных систем — квартальный: это не наше допущение и не наш расчёт, это измеренное свойство чужой системы, доступное нам до старта своей. Ни одна из трёх пометок его честно не описывает:
[допущение]занижает достоверность,[расчёт]неверен,[приказ]не о том. Пока помечаю такие факты как[допущение]и записываю натяжение сюда, не решая его: это предмет предсказанияГ4, и решать его должен прогон, а не вход.
План прогона#
| Этап | Что делаем | Документ | Статус |
|---|---|---|---|
| 1 | Вход: рамки, числа, инварианты | W0, W1 | ✅ этот файл |
| 2 | Обещание совместимости интерфейса | D-11 v1.0 → ADR-0001 | ✅ ячейка КЧ×T, срок 12 месяцев, охват тремя пунктами; три замечания к документу |
| 3 | Декомпозиция данных и реестр копий | D-07 v1.0 → ADR-0002 | ✅ три владельца в одной базе; сработали два дисквалификатора; замечание 4 |
| 4 | Хранилище неизменяемых оригиналов | D-01 v2.1 → ADR-0003 | ✅ одна реляционная база, вложения в ней же; проверка границы из v2.1 сработала; замечание 5 |
| 5 | Границы на старте | D-05 v3.0 → ADR-0004 | ✅ модульный монолит, четыре модуля; пять дисквалификаторов из семи, два — против прежних ADR; замечания 6 и 7 |
| 6 | Связь в процессе поперёк организаций | D-04 v3.0 → ADR-0005 | ✅ ячейка aeo; из пяти участков в пространство попал один; замечание 8 |
| 7 | Последние 48 часов, когда проверка недоступна | D-06 v2.0 → ADR-0006 | ✅ приём с отложенной проверкой подписи; четыре дисквалификатора добавили работу; замечания 9 и 10 |
| 8 | Выкат внутри окна | D-09 v3.0 → ADR-0007 | ✅ канарейка без квитанций; четыре дисквалификатора из пяти; замечания 11 и 12 |
| 9 | Цель по времени до вердикта и её измеритель | D-10 v1.1 → ADR-0008 | ✅ ни одна цель не обещана, построены три измерителя; замечания 13 и 14 |
| 10 | Ревизия: что подтвердилось, что сломалось | 99-findings.md | ✅ 21 находка · два кандидата в MAJOR · пять предсказаний из шести |
Порядок взят из рабочего процесса, а не из удобства: обещание интерфейса — это W2, данные — W3, границы — W4. Отсюда и главная трудность кейса: обещание придётся дать до того, как проведены границы.
Список неприменимых — зафиксирован до первого ADR#
| Не планируем применять | Почему |
|---|---|
| D-02 | Гринфилд: истории изменений нет, измерять связность нечем. Исключено собственной врезкой документа |
| D-03 | Кэш справочников очевидно нужен и очевидно не узкое место при 0,17 запроса в секунду. Применится и честно кончится умолчанием — заводить под это ADR не будем |
| D-08 | Переезда данных нет. Первичная загрузка реестра обязанных лиц от регулятора — ввод, а не переезд, и конструировать миграцию ради документа нельзя |
Если какой-то из трёх всё же понадобится — это находка, а не корректировка плана.
Нумерация ADR начинается заново.