Перейти к содержанию

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. Инварианты#

  1. Принятый документ неизменяем. Он подписан и имеет юридическую силу; исправление — новая подача, а не правка старой.
  2. Квитанция — юридический факт. Если мы сказали «принято», обязанное лицо вправе считать обязанность исполненной.
  3. Вердикт не может опережать данные, которых нет. Пока утилизатор не сдал акты, встречную сверку провести нечем.
  4. Опубликованный интерфейс необратим. Отозвать спецификацию нельзя; изменить — только в такт квартальным релизам 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 начинается заново.