# `cold_run_b` — харнесс холодного прогона B Инструменты пака «ХОЛОДНЫЙ ПРОГОН B» (`docs/COLD_RUN_B_SESSION_PROMPT.md`). Пре-регистрация, таблица ожидаемых исходов и результаты — `docs/experiments/25-door-to-file-b.md`. | Файл | Что делает | Чем проверен | |---|---|---| | `door.py` | драйвер: гейт · вход · грант · интейк · опции · старт · вахта · улика · подпись · резюм · выгрузка · произвольная проба с ЗАРАНЕЕ записанным ожиданием. **Отказывает**, а не предупреждает | $0-дым прошёл им целиком: интейк → банк-стоп → подпись → резюм → обе выгрузки → файл | | `measure.py` | прибор денег и ЕДИНИЦ: знаменатель, оба числителя, обе ориентации второго, два пути к денежному числу | `--selfcheck` пере-снимает КАЖДОЕ опубликованное число прогона A на его же базе и отказывает, если хоть одно сдвинулось | ## Три вещи, ради которых это не копия харнесса прогона A 1. **Каждый запрос и каждый ответ ложатся в файл ДО того, как вернутся вызывающему.** Драйвер A печатал тела на экран и не писал их никуда — пять строк его пре-рег-таблицы остались без носителя, и целая находка состояла только из тела ответа, которого не сохранилось. 2. **Живость читается ПО ПОПЫТКАМ.** `max(last_seq)` по всем попыткам во время второй выглядит замершим на значении первой. Номер попытки не вычисляется по времени — он НАЗВАН в `trace_id`. 3. **Деньги читаются фильтром по ОДНОЙ учётке.** Сборщик A суммировал леджер по всем учёткам стенда и подал два гранта как один; дымовые деньги и боевые не должны встречаться ни в одном числе. ## Что переиспользуется из фриза прогона A без единой правки `eval/door_to_file/stub` ($0-заглушка провайдера `kind: local` на `127.0.0.1:11434`) и `eval/door_to_file/zeropipe` (рендер боевого пайплайна на $0-пару, печатает счёт достижимых ПЛАТНЫХ моделей в обоих файлах). Оба собраны из клона B и несут его VCS-штамп — девиация §12.5 отчёта A («два моих инструмента собраны не из фриза») здесь закрыта построением.