Влад Велирский
Ошибка допуска

От автора

Мы привыкли думать, что разрешение — это короткий и ясный ответ. Дверь либо открыта, либо закрыта. Маршрут либо безопасен, либо нет. На экране горит зелёный цвет, и человеку кажется, что неопределённость осталась по ту сторону рамки. Но за любым таким ответом скрывается множество чужих решений: кто выбрал датчик, кто назначил допустимый предел, кто решил, насколько свежими должны быть данные, кто предпочёл скорость осторожности и кто согласился считать редкое несчастье приемлемой ценой ежедневной пользы.

«Ошибка допуска» выросла из вопроса о том, где в этой цепочке начинается личная ответственность. Можно ли считать себя невиновным, если ты не нажал кнопку, а всего лишь не остановил уже запущенный процесс? Делает ли точный прогноз человека хозяином последствий? И что опаснее для общего дела: удобная вера в безошибочную систему или убеждённость отдельного специалиста, что только он понимает её настоящую цену?

В центре романа — Кир Невель, разработчик городской системы допусков. Он обнаруживает редкое расхождение свидетельств и сознательно оставляет его открытым. Кир хочет получить реальный случай, который заставит руководство признать проблему. Он рассчитывает на поломку оборудования, задержку, испуг — на достаточно заметное, но обратимое доказательство. В тоннель входит Леда Арс, и расчёт перестаёт быть теорией.

Эта история не о взбунтовавшемся искусственном разуме и не о машине, которая внезапно научилась выбирать жертв. Система «Порог» ничего не желает, никого не ненавидит и не умеет оправдываться. Она сводит свидетельства по правилам, созданным людьми. Поэтому всякий раз, когда персонажи пытаются обвинить безликий механизм, вопрос возвращается к ним: кто написал правило, кто упростил сложный результат до удобного цвета, кто видел предупреждение и кто решил, что действовать должен кто-нибудь другой.

Однако было бы слишком легко найти одного виновного и сделать его объяснением всего. Город Верхний Контур зависит от быстрых допусков. Благодаря им ремонтные бригады входят в энергетические узлы, медики получают доступ к изолированным секторам, транспорт не замирает после каждого сомнительного сигнала. Отключить систему — не значит мгновенно вернуть людям безопасность. Это значит заменить известные риски другими, иногда более тяжёлыми. Полезность инфраструктуры не отменяет гибели Леды, но и её гибель не превращает всякую автоматизацию во зло.

Мне было важно сохранить это неудобство. В реальной ответственности редко встречается чистота схемы. Один человек знает больше остальных, другой подписывает не глядя, третий следует правилу смены, четвёртый годами откладывает дорогое исправление, а пятый оказывается там, где все эти решения сходятся. Причины распределены, но это не означает, что вина растворяется. Напротив, распределённая система требует особенно точно называть вклад каждого — без желания свалить всё на исполнителя, начальника, программу или погибшего пользователя.

Леда не присутствует в книге только как повод для чужого нравственного роста. У неё есть работа, профессиональные суждения, близкие и собственный взгляд на город. После смерти за право истолковать её поступок спорят разработчики, комиссия, руководство и даже люди, которые искренне хотят справедливости. Но добрые намерения ещё не дают права превращать чужую жизнь в аргумент. Одна из главных линий романа — постепенное возвращение Леде голоса, который не обязан подтверждать ни обвинение, ни оправдание Кира.

Кир, в свою очередь, не сводится к роли холодного экспериментатора. Он действительно раньше других увидел опасность. Его предупреждения действительно терялись среди процедур. Он действительно хотел добиться изменения системы, способной снова причинить вред. Всё это правда — и всё это не даёт ему права назначить другому человеку риск без согласия. Самооправдание особенно убедительно, когда построено из верных фактов. Поэтому путь героя проходит не от лжи к внезапной честности, а от права единолично объяснять случившееся к способности стать лишь одним из свидетелей.

Сая Рем, инженер по восстановлению инцидентов, противостоит ему не потому, что верит в простое наказание. Её задача труднее: сохранить городскую инфраструктуру, вскрыть её слабость и не позволить полезности системы заслонить конкретную смерть. Она отказывается выбирать между двумя удобными крайностями — объявить Кира единственным чудовищем или признать трагедию неизбежной статистикой. Расследование для неё становится способом восстановить последовательность решений, а не подобрать историю, которая быстрее успокоит город.

Технический мир романа намеренно показан через человеческую практику, а не через магию непонятного кода. Важны не команды и схемы сами по себе, а то, как ими пользуются под давлением времени, ведомственных интересов, усталости и привычки. Любой регламент живёт не только в тексте, но и в негласных правилах: что считается достойной причиной для задержки, чьё сомнение услышат, кому позволено остановить работу и кто потом будет отвечать за простой. Зелёная рамка на экране — итог не одной формулы, а целой культуры.

В этой книге нет обещания мира без риска. Нулевой риск часто оказывается красивой вывеской, за которой прячутся неучтённые последствия. Но признать неизбежность риска — не то же самое, что отказаться от ответственности. Между самоуверенным «ничего не случится» и равнодушным «случиться могло что угодно» существует пространство точных вопросов. Что было известно заранее? Какие варианты оставались? Кто мог вмешаться? Почему не вмешался? Кто получил пользу, а кто заплатил цену?

Роман начинается в тот миг, когда на пути Леды загорается зелёная рамка. Для города это обычный допуск, один из миллионов. Для Кира — возможность доказать теорию. Для Леды — рабочий маршрут, за которым стоит чужая безопасность. Один и тот же сигнал означает для них разное, но последствия становятся общими.

Мне хотелось, чтобы читатель вошёл в Верхний Контур без готового приговора. Здесь предстоит увидеть поступок из нескольких точек, услышать несовпадающие правды и проследить, как удобный отчёт отделяется от неизменяемого факта. Ответственность в конце не станет проще. Зато она обретёт имена, границы и цену.

Глава 1. Зелёная рамка

За одиннадцать минут до допуска Кир увидел, что тоннель существует сразу в двух временах.

На левом поле панели воздух в нём был чистым. Белая строка свидетельства тянулась от газового узла к сводке среды, завершалась отметкой «годен» и просила обновления только через четыре минуты. На правом поле створка аварийной вытяжки числилась закрытой. Её датчик отвечал без задержки, но внизу серым стояло время последней механической сверки: вчера, 22:16.

По отдельности оба свидетельства были действительны. Вместе они описывали тоннель, которого уже могло не быть.

Кир увеличил шкалу и провёл пальцем между отметками. Панель послушно вытянула связи: газовый узел подтвердил состав воздуха в 07:41; контроллер створки — положение привода в 07:42; рабочий обход внешнего кольца был отменён ночью из-за перегрузки лифта. «Порог» собрал всё это в зелёный допуск. До прибытия техника оставалось десять минут сорок две секунды.

— Ты опять разговариваешь с линиями? — спросил Таян из-за соседней стойки.

— Они отвечают точнее людей.

— Тогда попроси их закрыть смену за меня.

Таян не поднял головы. Он собирал утреннюю сборку отчётов и удерживал локтем кружку у пульта. В зале допуска было холодно даже летом: стойки отдавали тепло в отдельную шахту. За прозрачной стеной Верхний Контур казался устройством без внутреннего трения.

Кир снова посмотрел на временные отметки.

Он уже видел такое расхождение. Три месяца назад — на насосной станции, где свидетельство о сухом отсеке пережило замену клапана. Две недели назад — в медицинском шлюзе, когда чистота воздуха была подтверждена до входа ремонтной бригады, а положение фильтра после. Оба раза ничего не произошло. В первом случае оператор заметил воду на внутренней камере. Во втором медик запросил ручную пробу. Замечания Кира ушли в очередь ядра: сначала под номером сорок восемь, потом под номером пятьдесят один.

Он открыл карточку известного риска. Вверху стояло его имя, ниже — краткое описание окна расхождения и ответ комиссии по изменениям: «Недостаточно данных о практической воспроизводимости. Блокирующая мера создаст избыточные остановки».

Кир знал формулировку наизусть. Она была вежливым способом сказать: принеси ущерб.

До допуска — девять минут.

Он мог нажать «сомнение свидетеля». Тогда зелёная рамка сменилась бы жёлтой, а маршрут ушёл оператору на ручное разрешение. Для этого не требовалась вторая подпись. Достаточно было выбрать причину, приложить связи и принять ответственность за задержку.

Кир коснулся поля причины. Открылся список: рассинхронизация, нарушение маршрута данных, неподтверждённое вмешательство, иное. Он выбрал рассинхронизацию. Панель показала ожидаемые последствия: остановка работ на внешнем кольце — от сорока минут; перенос проверки кабельной дуги; риск ограничения энергии в жилом секторе С-12 — низкий, возрастающий.

Снизу возникло имя техника: Леда Арс.

Кир знал её не лично, а по следам в системе. Она не принимала зелёный цвет как приказ. Дважды за последний год запрашивала дополнительные свидетельства, один раз отказалась от маршрута после допуска и получила взыскание за простой. В карточке работ рядом с её именем часто стояли короткие замечания без жалоб и оправданий: «Запах до показаний», «Крепёж не соответствует схеме», «Маршрут безопасен только при пустой нижней линии».

Если кто и заметит несходство, то она.

Он свернул список причин, не отправив сомнение.

— Таян.

— М-м?

— Вчерашнюю сборку кто подписал второй?

— Я. А что?

— Ничего. Проверяю наследование свидетельств.

Таян наконец повернулся. На переносице у него осталась красная полоса от защитных очков: перед сменой он спускался к испытательным стендам.

— Наследование опять живёт дольше нас?

— Пока только дольше обхода.

— Напиши замечание.

— Уже два написал.

— Значит, система осведомлена.

Таян улыбнулся, но Кир не ответил. Именно так и растворялась ответственность: система осведомлена, комиссия уведомлена, оператор уполномочен. У каждого глагола был исполнитель, и ни у одного — человек.

До допуска — семь минут двадцать секунд.

На схеме внешнего кольца зажглась движущаяся точка. Леда миновала грузовой подъёмник и направлялась к сервисному коридору. Камера дала широкий кадр: невысокая женщина в сером защитном костюме, контейнер с инструментами катится следом на трёх колёсах, четвёртое подпрыгивает на стыках пола. Леда остановилась у питьевого крана, проверила крепление маски на плече и что-то сказала сопровождающему оператору. Звука в общей ленте не было.

Кир открыл назначение работ. Замена блока обратной связи вытяжной створки. Значит, неисправность уже подозревали, но считали информационной: привод физически закрыт, контроллер теряет подтверждение. После ремонта показания должны были стать надёжнее.

Он почувствовал почти облегчение. При закрытой створке тоннель отделялся от старой очистной камеры, где после ночного сброса могли оставаться тяжёлые примеси. Если датчик ошибался только в обратной связи, риска не было. Если створка всё же приоткрылась, Леда увидит это до внутренней черты. На её маске стоял локальный анализатор, не связанный с «Порогом». Худший разумный исход — она развернётся, работы остановят, а Кир получит наконец случай, который нельзя закрыть ответом о недостатке данных.

Он не строил ловушку. Он позволял факту стать видимым.

Мысль прозвучала так стройно, что Кир сразу понял: он повторял её не впервые.

— Внешнее кольцо просит ускорить допуск, — сказал Таян. — У них ограничение в двенадцать ноль-ноль.

— Вижу.

— Возражения?

На общей панели мигала карточка. Таян мог открыть её сам, но утренняя зона среды была закреплена за Киром. Один ответ — и всё продолжится без вопросов.

Кир вывел подробности на свой экран, закрыв их от соседней стойки. Диапазон риска был шире обычного: от стандартного рабочего до запрета при нарушенной герметичности. Но итоговый цвет оставался зелёным, потому что вероятность второго состояния не достигала порога блокировки.

Он мог показать диапазон Таяну. Мог сказать всего четыре слова: «Метки относятся к разному времени».

Вместо этого Кир нажал «возражений нет».

В журнал ушло его имя.

Таян подтвердил ускорение, даже не спросив, почему карточка задержалась на двадцать три секунды.

До допуска — пять минут.

Кир откинулся на спинку кресла. Сухой воздух холодил ладони. Он представил будущий разбор: Леда останавливается перед створкой, ручной прибор показывает примесь, внешнее кольцо закрывают. Комиссия получает не модель, а событие. Его старую записку поднимают из очереди. Мерон перестаёт говорить об избыточных остановках. В ядро добавляют проверку согласованности времени, простую и понятную, ту самую, которую Кир подготовил ещё в июне.

Для изменения потребуются две подписи. Таян подпишет, когда увидит фактический случай.

Сам Кир станет не нарушителем, а человеком, который предупреждал.

На нижнем краю панели возникло сообщение от Леды: «Уточнить статус обхода вентиляционной камеры».

Оператор внешнего кольца ответил раньше Кира: «Обход отменён. Дистанционные свидетельства действительны».

Леда: «Причина отмены?»

Оператор: «Недоступность подъёмника для бригады. К маршруту работ не относится».

Кир перечитал последнюю фразу. Формально она была верной. Отмена обхода не меняла ни одного свидетельства. Она лишь лишала их общего настоящего.

Он начал печатать: «Обратите внимание на разницу времени механической сверки и анализа среды».

Курсор остановился после слова «времени».

Если предупредить Леду сейчас, она запросит ручную пробу. Случай снова исчезнет, превратится в осторожность одного техника, а карточка риска получит третье замечание без последствий. Мерон скажет, что действующие процедуры сработали: квалифицированный сотрудник уточнил данные. Именно так он объяснил медицинский шлюз.

Кир удалил строку.

Леда получила официальный ответ и подтвердила маршрут.

Четыре минуты.

В зале допуска сменился свет. На мосту между башнями двигались люди, каждый окружённый невидимыми разрешениями. «Порог» выдавал до двух миллионов допусков в сутки; без них город захлебнулся бы в проверках.

Кир открыл тестовую среду и загрузил копию текущих свидетельств. Добавил условие: створка открыта на восемь процентов после последней сверки. Модель показала жёлтый риск, затем пересчитала маршрут и вернула зелёный: локальный анализатор техника должен обнаружить примесь раньше критической черты.

Он добавил отказ анализатора.

Красный.

Но отказ не был подтверждён. Закладывать одновременное совпадение двух редких событий значило блокировать половину внешнего кольца при любой просроченной сверке.

Кир убрал отказ. Зелёный.

На камере Леда подошла к рамке сервисного тоннеля. По обе стороны входа стояли полосы светового стекла, пока бесцветные. За ними коридор уходил к старым уровням. Стены хранили прежнюю разметку отдельных предприятий. Теперь их свидетельства сводил «Порог».

Леда поставила контейнер на тормоз и вынула маску. Не надела — только проверила клапан и экран анализатора. Затем подняла лицо к камере.

Киру показалось, что она смотрит прямо на него.

Он знал, что это невозможно. Камера была тёмной точкой над рамкой, а зал допуска находился в трёх километрах и на сто двадцать метров выше. Леда видела лишь собственное отражение в стекле.

Две минуты.

— Ты чего замер? — спросил Таян.

— Смотрю проход.

— Первый раз техника в тоннеле?

— Первый раз сегодня.

Таян хмыкнул и вернулся к отчётам.

Кир вызвал карточку блокировки. Она открылась поверх камеры полупрозрачным слоем. Причина была сохранена с прошлого раза — рассинхронизация. Оставалось подтвердить.

Панель предупредила: «Блокировка за 120 секунд до допуска требует голосового обоснования и уведомления руководителя смены».

Это не было препятствием. Кир мог произнести одну фразу. Мерон спросит, почему он не поднял вопрос раньше, но остановку одобрят. До выяснения Леду оставят снаружи.

Кир посмотрел на её карточку. Двадцать восемь лет. Допуск к средам третьего класса. Девять лет на внешнем кольце. Ни одного нарушения защиты, кроме того самого отказа от маршрута после зелёного сигнала.

Она заметит.

Он закрыл карточку блокировки.

Одна минута.

Леда надела маску, но оставила лицевой щит поднятым. Закрепила на запястье страховочную нить контейнера. Оператор прислал ей обновлённый маршрут: шестнадцать метров до сервисной ниши, работа без вскрытия воздушного контура, расчётное время — восемь минут.

Восемь минут. Даже при слабой примеси — достаточно мало.

Кир увеличил телеметрию её локального анализатора. Прибор прошёл самопроверку. Заряд девяносто один процент. Канал связи устойчив. Порог предупреждения выставлен по регламенту.

Событие оставалось контролируемым.

Тридцать секунд.

На экране появилась последняя сводка: газовый узел — годен; створка — закрыта; маршрут — свободен; средства защиты — исправны; ответственный контур — внешнее кольцо. Под сводкой «Порог» показал диапазон мелкой серой полосой, но для Леды он превратится в один цвет.

Кир положил ладонь рядом с полем блокировки. Не касаясь.

Он подумал, что поступает честнее комиссии. Они видели его расчёты и выбрали удобное бездействие. Он хотя бы готов был смотреть на результат.

Десять секунд.

Леда опустила лицевой щит.

Пять.

Таян потянулся за кружкой.

Три.

В глубине тоннеля дрогнуло изображение камеры, словно по стенам прошла слабая тень. Кир успел решить, что это автоматическая поправка света.

Ноль.

Стойки рамки вспыхнули зелёным. Леда приложила ладонь к панели, дождалась, когда створки разойдутся, и потянула контейнер за собой.

На первых шагах она двигалась медленно, глядя на показания у запястья. Потом распрямила плечи. Анализатор молчал. У сервисной ниши Леда остановилась, перевела контейнер через стык и скрылась на секунду за опорой.

Кир выдохнул.

Вот и всё. Сейчас она увидит приоткрытую створку — если та действительно открыта. Запросит пробу или вернётся. В журнале останется зелёный допуск при физическом несоответствии. Наконец появится доказательство, достаточно ясное даже для Мерона.

Леда снова возникла в кадре и подняла большой палец оператору. Затем отсоединила страховочную нить от контейнера, закрепила её на поясе и шагнула за внутреннюю черту.

Рамка за её спиной погасла. Створки сомкнулись штатно.

В журнале появилась запись: «Допуск исполнен».

Глава 2. Девять секунд

Первые помехи Кир принял за работу сварочного контура.

По изображению прошла рябь. Леда стояла у сервисной ниши спиной к объективу, зажав контейнер между стеной и коленом. Она подняла крышку, и по каналу связи ударил сухой треск.

— Внешнее кольцо, повторите, — сказала Леда.

Голос пришёл без искажений. Потом из него выпала середина фразы:

— На створке… обратного… нет.

В правом углу панели вспыхнул серый значок нестабильного канала. Не жёлтый: потери ещё не достигли порога предупреждения. «Порог» продолжал считать маршрут исполненным в штатных условиях.

Кир придвинул телеметрию. Анализатор Леды передавал нули по трём опасным примесям и слабый фон по четвёртой — ниже порога в восемь раз. Створка значилась закрытой.

— Это у них экранировка, — сказал Таян, не отрываясь от своего экрана. — В нише старый силовой короб. Каждый раз фонит, когда открывают.

— Каждый раз?

— Достаточно часто, чтобы никто не писал отдельный отчёт.

Кир увеличил шкалу потерь. Три пакета. Пять. Один. Между ними — нормальный обмен. Серый значок погас.

Леда наклонилась к нише. Она работала без спешки, точно укладывая снятые фиксаторы на магнитную полосу, и это успокаивало Кира. По его модели примесь должна была появиться здесь не раньше чем через две минуты сорок секунд. Он рассчитывал на остановку тоннеля и потерю блока — безопасный инцидент, после которого окно расхождения стало бы доказанным.

Леда повернула голову к камере.

— Оператор, у меня дрейф по четвёртому каналу. Подтвердите внешний датчик.

Карточка запроса возникла сначала у диспетчера кольца, затем у Кира. Внешний датчик отвечал старым значением, помеченным как действительное. Кир видел мелкую временную отметку; Леде на запястье показывался только итог: «среда соответствует».

Диспетчер ответил:

— Подтверждаю соответствие. Дрейф ниже рабочего порога.

Леда не продолжила работу. Поднесла запястье к лицевому щиту и постучала пальцем по корпусу анализатора.

— Запрашиваю живую пробу с наружной стороны.

Вот он, подумал Кир. Леда заметила несходство и запросила независимое свидетельство. Сейчас тоннель закроют. Никто не пострадает, а в журнале рядом с его подтверждением останется доказательство.

Диспетчер замолчал. На внешнем кольце переносная проба требовала техника у рамки, а сопровождающий после входа Леды ушёл к грузовому подъёмнику. Его отметка двигалась по соседнему коридору.

— Ожидайте, — наконец произнёс диспетчер.

Кир посмотрел на счётчик. Девяносто четыре секунды внутри.

Леда закрыла нишу, не устанавливая новый блок, и подтянула контейнер к себе. Правильно. Она готовилась выйти.

Тогда связь исчезла.

Не захрипела, не оборвалась на полуслове — просто стала ровной пустой линией. Камера застыла на Лединой руке. Телеметрия анализатора ещё миг показывала прежние числа, затем рядом с каждым возникла тонкая рамка устаревания.

На панели Кира всплыло предупреждение: «Потеря рабочего канала. Проверить локальное исполнение».

Он увидел его первым, потому что его рабочая область была раскрыта до уровня отдельных свидетельств. У диспетчера внешнего кольца поверх маршрута висел запрос живой пробы. У Таяна — сводка утренних допусков. Для них потеря связи ещё не стала главным событием.

Кир мог перевести карточку наверх общей очереди одним движением. Регламент требовал это при потере более пяти секунд в среде третьего класса. Рамка тоннеля заблокировала бы внутренний маршрут, наружная аварийная группа получила бы вызов.

Секундомер в углу карточки сменил ноль на единицу.

Кир нажал не «эскалация», а «настроить представление».

Он сам предложил разделить критичность события и порядок показа: первая неизменно записывалась в журнал, второй зависел от контекста рабочего места.

Кир перетащил «потерю рабочего канала» ниже «ожидания живой пробы».

Две секунды.

Система спросила причину изменения порядка. Он выбрал «активная диагностическая процедура». Это было правдой: запрос Леды оставался открыт. После подтверждения карточка связи ушла под него, не исчезнув и не поменяв цвет.

Три.

На общей панели диспетчера первым осталось сообщение: «Назначить исполнителя живой пробы». Потеря канала появилась ниже, в том же сером оформлении, потому что пятисекундный порог ещё не наступил.

Четыре.

Кир ждал возвращения телеметрии. Если сейчас поднять тревогу, комиссия снова назовёт случившееся обычным дефектом связи.

Пять.

Карточка стала жёлтой. В неизменяемый журнал ушло событие: «Рабочий канал отсутствует 5,000 с». Следом — другая запись: «Порядок отображения изменён пользователем Кир Невель за 2,714 с до порога эскалации».

Слова не обвиняли. Именно поэтому казались точными.

— У тебя кольцо жёлтым мигнуло? — спросил Таян.

Шесть.

— Канал в нише пропал.

— Диспетчер видит?

Кир посмотрел на соседнюю очередь. Карточка поднялась над запросом живой пробы автоматически: после пяти секунд его настройка больше не могла удерживать критическое событие внизу.

— Теперь видит.

Семь.

Диспетчер произнёс:

— Леда Арс, подтвердите состояние.

Пустая линия.

— Леда Арс, ответьте внешнему кольцу.

Восемь.

Таян уже открывал аварийный протокол. Кир навёл курсор на принудительный отзыв допуска. Отзыв закроет внешнюю рамку для обычного доступа, но разрешит аварийное открытие. Это следовало сделать сейчас, хотя Леда могла уже идти к выходу.

Девять.

Изображение ожило рывком.

Леда стояла не у ниши. Она успела отойти к середине тоннеля и опиралась ладонью о стену. Контейнер лежал на боку. По экрану её анализатора бежали янтарные полосы. Она подняла голову, и камера поймала белое лицо за щитом.

— …не наружу, — донёсся её голос. — Створка открыта. Поток к рамке. Не открывайте…

Связь снова треснула, но не исчезла. Показания четвёртого канала прыгнули выше рабочего порога. Потом ещё выше.

Кир отозвал допуск.

Зелёный маршрут стал красным, рамка заблокировалась, автоматика начала перенастраивать вытяжку. Правильное действие по регламенту оказалось худшим по смыслу Лединых слов.

— Она сказала не открывать рамку? — Таян вскочил. — Почему?

— Поток идёт к выходу. При открытии вынесет примесь в коридор.

— Тогда шлюзование через нижний ход.

Нижний ход был закрыт ремонтом. Оставалась защитная ниша у дальней стены — двадцать семь метров против шестнадцати до рамки.

Леда оттолкнулась от стены. Она тоже знала схему. Не пошла к выходу, хотя тот был ближе, а развернулась в глубину тоннеля.

— Леда, защитная ниша за вторым ребром, — сказал диспетчер. Его голос стал медленным, будто точность произношения могла удержать связь. — Двадцать семь метров. Подтвердите.

Она подняла руку. Не большой палец — два коротких движения в сторону ниши.

Кир вывел управление вентиляцией. Автоматика предлагала три сценария, все построенные на свидетельстве «створка закрыта». При закрытой створке следовало вытягивать воздух от рамки в старую камеру. При открытой — то же действие могло усилить приток из камеры в тоннель.

— Нельзя запускать штатную вытяжку, — сказал он.

— Уже запущена после отзыва, — ответил Таян.

На схеме загорелись стрелки. Кир увидел, как четвёртый канал анализатора Леды поднялся ещё на две деления.

— Останавливай.

— Нужны наши две подписи.

Кир нажал первым. Таян прочёл формулировку целиком и поставил вторую подпись.

Вытяжка остановилась.

Леда дошла до первого ребра. Её движения стали неровными; она снова и снова проверяла уплотнение уже надетой маски.

— Почему анализатор не предупредил раньше? — спросил Таян.

Кир не ответил. На экране уже был ответ: прибор предупреждал. Сначала дрейфом, который диспетчер подтвердил как безопасный. Потом запросом живой пробы, оставшимся без исполнителя. Потом потерей связи, которую Кир на две с лишним секунды поставил ниже этого запроса.

Ни одна причина не была достаточной. Вместе они образовали маршрут, по которому Леда шла сейчас.

У дальней стены раскрылась защитная ниша с механической рукоятью и собственным баллоном чистой смеси. До неё оставалось девять метров. Леда остановилась перед решёткой, из которой поднималась белая струя: старый воздушный контур проходил не только за створкой. Прижавшись к стене, она переступила решётку. Анализатор стал красным.

— Аварийная группа у рамки, — доложил внешний оператор. — Запрашивают вход.

— Не открывать, — одновременно сказали Кир и Таян.

Чтобы подать чистую смесь, Кир вручную отметил свидетельство закрытой створки сомнительным. Жёлтая рамка появилась сразу — с опозданием на две минуты и на весь один выбор. «Порог» разрешил подачу, в журнал снова ушло имя Кира.

Леда добралась до ниши. Положила ладонь на механическую рукоять, потянула вниз. Створка сдвинулась на ладонь и остановилась.

— Что там? — Таян наклонился к экрану.

На кромке ниши горел маленький красный индикатор: разность давлений. Пока тоннель находился под избыточным потоком, дверь не могла открыться полностью.

Кир выключил слишком быстро поданную смесь. Давление падало медленно. Леда держала рукоять всем телом и не отвечала диспетчеру. Защитное стекло зала помутнело, отрезая инцидент от остановившихся на мосту людей.

Давление сравнялось. Красный индикатор погас. Створка ниши поддалась, Леда сделала шаг внутрь и рухнула на колено. Её рука скользнула с рукояти. Дверь начала закрываться на пружине, но ботинок остался на пороге.

— Уберите ногу, — сказал диспетчер. — Леда, ещё немного. Уберите ногу внутрь.

Она подняла голову. За мутным щитом нельзя было различить взгляд. Несколько секунд Леда не двигалась, затем согнула ногу. Створка закрылась.

Индикатор герметичности сменился на зелёный.

Система запустила чистую смесь внутри ниши. Биометрического канала там не было.

Таян первым нарушил молчание:

— Сколько до безопасного открытия рамки?

— Шесть минут до входа, — ответил Кир.

— Она в чистой нише.

Это прозвучало не утверждением, а просьбой согласиться.

Герметичность держалась. Кир не позволял себе строить из этого исход.

На экране появился Мерон. Он подключался с перехода, фон за его спиной двигался.

— Доклад по фактам. Без версий.

Таян начал: допуск исполнен, запрос живой пробы, потеря канала, превышение по примеси, техника в защитной нише, группа готовится к входу. Он говорил ровно, разделяя события, как учили на разборах.

— Почему отзыв через девять секунд? — спросил Мерон.

Таян посмотрел на Кира.

Кир мог сказать, что отзыв прошёл сразу после восстановления связи. Это было бы верно и скрыло бы первые секунды.

— Предупреждение конкурировало с запросом живой пробы, — сказал он. — Я изменил порядок отображения.

— На основании?

— Считал потерю повтором известных помех у силового короба.

— Считал или подтвердил?

— Считал.

Мерон задержал взгляд на нём, но не продолжил. Сейчас важнее была Леда.

Аварийная группа вошла через шесть минут двадцать секунд. Три белых костюма обошли решётку, подключили переносной шлюз и открыли нишу. Спасатель заслонил камеру. В служебном канале прозвучало: «Контакта нет». Потом: «Пульс проверяю». «Выносим».

Мерон отключил общий звук.

— Изолировать журнал допуска, — приказал он. — Рабочие места не закрывать. Ничего не исправлять, не дополнять и не комментировать внутри события. Кир, Таян — доступ только на чтение до прибытия восстановления.

У Кира погасли поля управления. Осталась временная линия: допуск, запрос Леды, потеря канала, изменение порядка, превышение, отзыв, вмешательство в вытяжку. Его действия выглядели синими засечками между машинными и чужими.

Но они были там.

Через три минуты появилась закрытая запись: «Реанимационные мероприятия начаты на месте».

Кир прочёл её несколько раз.

Он хотел приложить к событию карточку известного риска, показать, что предупреждал. Поле вложений было заблокировано. Тогда он захотел сказать Таяну, что его модель оказалась верна. Таян смотрел на застывший кадр пустого тоннеля. Слова не вышли.

Дверь зала допуска открылась без сигнала.

Вошла женщина в тёмном рабочем комбинезоне, с плоским серым кейсом у бедра. Она была ниже Мерона, появившегося следом, и шла быстрее него. У стойки Кира остановилась не затем, чтобы представиться: приложила кейс к изолированному порту и дождалась синей полосы физического соединения.

— Сая Рем, восстановление инцидентов, — сказала она, глядя на временную линию. — Кто менял представление на третьей секунде?

В журнале уже стояло имя.

Кир поднялся.

— Я.

Глава 3. Не ошибка системы

Сая не стала ждать ответа, который уже видела в журнале.

— Сядьте, — сказала она Киру. — И не помогайте мне объяснять ваши действия.

Серый кейс раскрылся на стойке тремя узкими экранами. На первом застыла временная линия, на втором проступила схема сервисного тоннеля, третий оставался пустым. Сая вынула из паза две плоские метки и передала одну Таяну.

— Подтвердите, что рабочие места не перезапускались после изоляции.

Таян приложил палец. Кир сделал то же, когда метка дошла до него. Система приняла подтверждения и нарисовала вокруг копии журнала синюю рамку. Не зелёную. Синий здесь означал не безопасность, а сохранность: с этим свидетельством ничего нельзя было сделать, кроме как смотреть.

За стеклом зала люди расходились с моста. Их выводили по одному, хотя опасная среда оставалась далеко, за двумя герметичными контурами. На носилках Леду уже увезли. Последняя закрытая запись сообщала, что реанимацию продолжили в транспортном модуле. Следом шла пустота длиной в одиннадцать минут.

Мерон вошёл с влажными от санитарного раствора рукавами и положил на стол временный протокол.

— Леда Арс умерла в транспортном шлюзе в восемь ноль семь. Заключение о причине будет позже. До него используем формулировку «смерть после воздействия среды в сервисном тоннеле».

Между входом Леды и записью о смерти помещалось двадцать шесть минут, и почти каждая была кем-то подписана.

— Кто ведёт первичный разбор? — спросил Мерон.

— Я восстанавливаю событие, — ответила Сая. — Разбор ведёте вы. Это разные вещи.

Мерон задержал на ней взгляд, потом придвинул к себе свободный экран. В верхней строке уже стояло: «Предварительная классификация: отказ периферийного свидетельства». Ниже система предлагала выбрать главную причину из списка.

— Наружный датчик положения створки передавал закрытое состояние, — сказал он. — Физически створка была открыта. Есть подтверждение аварийной группы.

— Факт, — сказала Сая.

— Локальный анализатор техника зарегистрировал дрейф после входа.

— Факт с временной отметкой.

— Техник приняла зелёный допуск и вошла.

Сая впервые подняла глаза от экранов.

— Она исполнила выданный маршрут. Слово «приняла» оставляет впечатление, будто ей предложили спорную ставку. Как выглядел её экран?

Таян вызвал копию интерфейса браслета. На ней горела ровная зелёная полоса: среда соответствует, маршрут подтверждён, рабочее окно — восемнадцать минут. Ни диапазона, ни времён отдельных свидетельств.

— Вот так, — сказал он.

— Тогда факт: Леда Арс вошла по разрешённому системой маршруту. Её решение войти существует. Решение показать ей единый зелёный итог тоже существует.

Мерон удалил из строки слово «приняла» и написал: «исполнение допуска пользователем». Кир почувствовал раздражение. Сая меняла слова, пока за ними не оставалось ничего, что можно было защитить или обвинить. Но именно поэтому каждое слово становилось тяжелее.

— В оперативном смысле всё равно начинаем с датчика, — сказал Мерон. — Пока он выдаёт ложное положение, кольцо закрыто.

— Закрытие — действие. «Датчик стал причиной смерти» — версия.

— Я этого не говорил.

— Это уже написано сверху.

Сая повернула к нему экран. Предварительная классификация выглядела невинно: системе требовалась папка, чтобы назначить исполнителей. Однако выбранная папка определяла, кому первым дадут доступ к данным, кого отстранят и какие вопросы попадут в утреннюю сводку.

Мерон сменил классификацию на «множественное расхождение свидетельств». Поле подсветилось янтарным: для такого класса требовалась комиссия, а не ремонтная бригада.

— У нас город на этой системе, — сказал он. — Если к полудню не будет рабочей границы отказа, придётся закрыть все тоннели с датчиками этой серии.

— Тогда к полудню нужна граница отказа. Не виновный предмет.

На карте города серые точки ожидали утренних допусков. Теперь каждая казалась просьбой сделать вывод быстрее, чем позволяли факты.

Сая увеличила участок перед входом Леды. Два свидетельства легли рядом. «Состав среды: соответствует», время последней проверки — 07:39:12. «Створка вытяжки: закрыта», время физического изменения — 07:31:48, время подтверждения — 07:40:03.

— Почему старое положение получило свежее подтверждение? — спросила она.

Таян подался к экрану.

— Контроллер подтвердил доступность записи. Не само положение.

— Но в сборку ушло время доступности?

— Да. Для медленных механизмов состояние считается устойчивым, пока нет команды движения.

— Команда была?

— В основном контуре — нет.

Сая открыла ветку обслуживания. В ней обнаружилась ночная отметка механика: «ручное освобождение привода перед осмотром». Отметка не являлась командой движения и потому не меняла свидетельство. Она только сообщала человеку, что створка могла сместиться.

— Это видел диспетчер? — спросила Сая.

— Если раскрывал служебные примечания, — ответил Таян.

— Леда?

— На её браслет примечания обслуживания не передаются.

— Кир?

Он знал, что вопрос адресован не системе.

— Я видел расхождение времён до выдачи допуска.

Мерон медленно повернулся к нему.

— Насколько большое?

— Достаточное, чтобы открыть карточку блокировки.

— Ты её открыл?

— Да.

— Отправил?

— Нет.

Сая поставила отметку на линии перед исполнением допуска.

— Причина неотправки?

— Я ожидал, что локальный анализатор обнаружит примесь до опасной концентрации и работа остановится.

— На чём основано ожидание?

— На моей модели расхождения.

Таян посмотрел на него так, словно не расслышал знакомое слово.

— Той самой модели? — спросил он. — Из зимнего теста?

— Её новой версии.

— Ты сказал, что окно закрыто фильтром давности.

— Я сказал, что сборка проходит проверку.

— Это не одно и то же.

Мерон поднял ладонь, прекращая разговор.

— Модель зарегистрирована?

— Рабочая копия локальная.

— Тогда пока её нет, — сказал Мерон. — Есть твоё объяснение после события.

Кир хотел доказать, что не придумал окно сейчас. Но на третьем экране уже появлялись связи: старое свидетельство положения, свежее подтверждение доступности, отменённый обход, зелёный итог, запрос Леды, задержанное предупреждение.

— Повторим без главной причины, — сказала она. — Датчик положения не отразил фактическое состояние створки. Правило давности позволило использовать его запись. Отметка обслуживания не участвовала в машинной сборке. Интерфейс техника скрыл возраст отдельных свидетельств. Кир Невель увидел расхождение и не отправил блокировку. После потери канала он изменил порядок предупреждений. Леда Арс вошла по зелёному допуску, обнаружила дрейф, запросила живую пробу и пошла к защитной нише, когда узнала направление потока.

— И умерла, — сказал Кир.

— Да.

— Её решение тоже останется в разборе, — продолжила она. — Но не в виде удобной фразы «сама вошла». Она проверила снаряжение, запросила причину отмены обхода, потребовала независимую пробу и выбрала дальнюю нишу, чтобы аварийное открытие не вынесло примесь к людям. Это решения специалиста в пределах информации, которую ей дали.

Мерон открыл запись с камеры и остановил кадр на руке Леды у анализатора.

— А если она нарушила предел локального прибора? В инструкции есть выход при первом дрейфе.

Таян нашёл нужный пункт. Под ним стояло исключение: при активной внешней диагностике исполнитель ожидает подтверждения оператора, если показание остаётся ниже рабочего порога. Именно такое подтверждение Леда получила.

Мерон закрыл инструкцию.

— Значит, это убираем.

— Не убираем, — сказала Сая. — Записываем, что проверили и не подтвердили. Иначе через неделю кто-нибудь найдёт этот пункт и объявит, что комиссия его скрыла.

В зал принесли опломбированный контейнер с браслетом Леды. Сая подключила его к кейсу; чтение подтвердили Мерон и дежурный хранитель архива.

Браслет отдал последние локальные события. Их оказалось больше, чем получил «Порог». Перед входом Леда трижды раскрывала сведения о маске, проверила остаток фильтра и сохранила номер ночной заявки. В тоннеле она создала голосовую пометку, не успевшую уйти из-за потери связи.

Сая включила её без усиления.

— Четвёртый канал плывёт. Створка, похоже, не села после ручного освобождения. Если подтвердится, ставить механическую метку на самой рамке, не в журнале…

Запись оборвалась шорохом движения.

Леда назвала то, для чего Киру понадобилась модель, меньше чем через две минуты после входа. Его замысел требовал, чтобы пользователь заметил опасность. Пользователь заметил. Система и люди не успели признать это знанием.

— Пометка принадлежит расследованию, — сказал Мерон. — До уведомления семьи наружу не отдавать.

— Конечно.

Сая внесла слова Леды отдельным фактом и не стала воспроизводить их снова.

Мерон назначил физическую проверку створок и ограничил допуски этой серии маршрутами с независимой пробой. Кольцо замедлилось, но не остановилось.

— Теперь можно дать оперативную формулировку, — сказал он. — Несовместимость периферийных свидетельств при неотражённом обслуживании. Человеческие действия — в приложении комиссии.

— Почему в приложении? — спросила Сая.

— Потому что ремонтникам нужна воспроизводимая неисправность, а не психология разработчика.

— Ремонтникам — да. Комиссии нужна полная последовательность. Если разделить документы, первый начнут цитировать как причину, а приложение никто не откроет.

— Ты предлагаешь сообщить сменам, что разработчик видел риск и пропустил человека?

Кир ждал, что Сая ответит за него. Она повернула пустой экран к нему.

— Я предлагаю сначала установить, что именно он видел. Ожидание инцидента ещё не доказывает ожидание смерти. Незнание точного исхода не отменяет сознательного невмешательства. Нам не нужна ни удобная невиновность, ни удобное признание.

Кир сжал пальцы под столом. Он представлял этот момент иначе. Когда система ошибётся, он предъявит предупреждения, и окружающим придётся признать: он знал. Теперь знание оказалось не наградой, а вопросом с несколькими степенями точности.

— Я могу показать расчёт, — сказал он. — Там задан ожидаемый диапазон ущерба.

— Позже, через процедуру изъятия, — ответила Сая. — Сейчас проверяем, было ли окно известно организации до события.

Она запросила архив карточек риска по сочетанию признаков: разный возраст свидетельств, подтверждение доступности вместо подтверждения состояния, ручное обслуживание вне командного контура. Поиск занял почти минуту. Сначала появились десятки мелких жалоб на интерфейс, затем два отчёта испытателей. Ни один не соединял все три признака.

Последней возникла закрытая карточка восьмимесячной давности. Заголовок: «Ложная согласованность при независимой актуализации свидетельств». Статус — отклонена. Причина — «не предоставлен воспроизводимый случай с влиянием на допуск». Через три месяца карточку подавали повторно, приложив модель. Второй отказ ссылался на недостаток практических данных и риск роста ложных блокировок.

Таян отодвинулся от стола.

— Я этого не видел.

— Карточка была в архитектурной очереди, — сказал Кир. — Тебе приходила только принятая сборка.

Мерон прочёл историю решений до конца.

— Кто отклонял?

— Совет устойчивости, первая подача. Вторую закрыл секретарь после сверки критериев.

— Значит, окно было известно, — сказала Сая.

— Возможность была заявлена, — возразил Мерон. — Это ещё не подтверждённое окно.

— Верно. Так и запишем. Но версия о внезапном отказе датчика больше не выдерживает собственную формулировку. Восемь месяцев назад кто-то описал именно такой способ получить ложную согласованность. Сегодня автор карточки находился за пультом и открыл блокировку до входа Леды.

Кир увидел, как меняется комната. Не лица — расстояния. Таян сидел теперь чуть дальше. Мерон больше не заслонял городской экран плечом, словно оставлял между собой и Киром свободную линию. Сая не приблизилась и не отступила. Она вывела карточку на третий экран, рядом с записью о неотправленной блокировке.

Внизу стоял внутренний идентификатор автора, скрытый служебной маской старого архива.

Сая сняла маску запросом комиссии. Поле запросило отдельное подтверждение владельца записи.

Она посмотрела на Кира.

— Эта карточка риска ваша?

Глава 4. Автор предупреждения

— Моя, — сказал Кир.

На третьем экране стояли даты двух отказов. За восемь месяцев Кир привык произносить название карточки без надежды, что его дослушают.

Сая не попросила его приложить ладонь.

— Назовите идентификатор из памяти.

— АР-одиннадцать-сорок два. Вторая редакция — АР-одиннадцать-сорок два-б.

Мерон сверил строку. Совпадение появилось зелёным.

— Цель первой подачи? — спросила Сая.

— Запретить сведение свидетельств, если время подтверждения доступности подменяет время подтверждения состояния.

— Цель второй?

— Та же. Я добавил модель и предложил раздельную давность для физического состояния и доступности записи.

— Почему карточку отклонили?

Кир посмотрел на причины отказа, хотя знал их дословно.

— Потому что изменение увеличивало число ручных проверок. Совет потребовал воспроизводимый случай с влиянием на допуск. В модели они увидели искусственное сочетание условий.

— Вы считали отказ ошибочным?

— Считал и считаю.

Сая подтвердила раскрытие владельца. Под маской появилось имя Кира, его должность на момент подачи и перечень вложений. Первую карточку он подписал один. Во второй рядом стояла отметка автоматической проверки модели, но человеческих подписей больше не было.

— Вложение сохранилось? — спросила она.

— Архив хранит описание, не рабочую среду. Рабочая копия у меня.

— Где?

— На локальном узле разработки.

Мерон резко поднял голову.

— Ты принёс незарегистрированную модель в действующий контур?

— Она не подключена к контуру. Модель читает копии свидетельств и считает расхождение. Она ничего не исполняет.

— После твоего «ничего не исполняет» у нас погиб человек.

— Погиб не из-за модели.

Сая закрыла карточку поверх журнала смерти.

— Нам нужна рабочая копия. Изъятие проведём с фиксацией среды и контрольной суммой. До этого вы к узлу не подходите.

— Я могу показать её здесь. У меня есть удалённый просмотр.

— Нет.

— Вы потеряете время на перенос.

— Потеряем меньше, чем на спор, существовала ли показанная модель до события.

Мерон отправил двух хранителей к локальному узлу, отдельно запретив запуск модели и изменение среды. Кир продиктовал путь к хранилищу и ключевой контейнер.

Пока хранители снимали образ, комиссия перешла в соседний зал с пятью рабочими местами перед городской картой. На карте росла янтарная полоса ограниченных тоннелей.

Мерон назначил первичный состав: он как руководитель службы, Сая как ведущая восстановления, специалист по среде, представитель эксплуатации и хранитель журнала. Когда поле дошло до технических консультантов, он пропустил имя Кира.

— Добавьте Невеля, — сказала Сая.

Мерон повернулся к ней.

— Он участник события.

— Поэтому его показания нужны комиссии.

— Показания — да. Место в составе даст доступ к версиям и право влиять на выводы.

— Не членом с голосом. Носителем знания с протоколируемыми ответами. Отдельный уровень доступа, запрет на редактирование и обязательная фиксация каждого запроса.

Кир не сразу понял, почему предложение задело сильнее отстранения. «Автор предупреждения» было ролью. «Носитель знания» превращало его в один из источников рядом с браслетом Леды, журналом обслуживания и неисправной створкой.

— Если моя модель описывает окно, я не просто источник, — сказал он. — Я автор гипотезы, которую организация проигнорировала.

— Авторство будет указано, — ответила Сая.

— И последствия отказа тоже?

— Если связь подтвердится.

— Она уже подтвердилась.

Сая вывела рядом три строки. В первой была формулировка старой карточки: независимая актуализация способна создать ложную согласованность. Во второй — установленное сегодня сочетание времён. В третьей — неотправленная блокировка Кира.

— Первая строка подтверждает, что вы описали класс риска. Вторая — что событие принадлежит этому классу. Третья пока подтверждает, что до входа Леды вы увидели признаки и не остановили допуск. Какая из них делает вас оправданным?

— Я не сказал «оправданным».

— Тогда не будем добавлять это слово.

Мерон создал роль «технический свидетель» и внёс ограничения Саи. На браслете Кира появился серый разомкнутый круг комиссии: он открывал материалы и оставлял след возле каждого просмотра.

— Вы не удаляете, не связываете и не классифицируете записи, — сказала Сая. — Отвечаете на вопросы, указываете, где искать подтверждение, и сообщаете о противоречии, если его видите. Любое предположение называете предположением.

Хранители вернулись с изолированным накопителем и опломбированным контейнером. Контрольная сумма совпала с хешем старого ядра модели; поздние сценарии имели собственные отметки времени.

— Последнее изменение сегодня в шесть пятьдесят две, — прочёл Мерон.

— До смены, — сказал Кир.

— Что изменено?

— Добавлен импорт отменённых обходов. Раньше их приходилось отмечать вручную.

Сая попросила хранителя открыть журнал изменений, не запуская расчёт. В шесть пятьдесят две Кир подключил ветку обслуживания. В семь четырнадцать загрузил список текущих маршрутов внешнего кольца. В семь двадцать восемь модель выделила четыре допуска. Три система отложила сама из-за других ограничений. Четвёртый принадлежал Леде.

В семь тридцать он сохранил набор данных как «сценарий-четыре». Рядом не было пометки «демонстрация», имени Леды или расчёта смерти. Только маршрут, времена свидетельств и ожидаемое расхождение.

— Почему сохранили этот сценарий? — спросила Сая.

— Он лучше остальных показывал проблему.

— «Лучше» — это как?

— Все свидетельства проходили формальную проверку, а физические условия уже расходились. Чистый случай без постороннего отказа.

— Вы знали, кому назначен маршрут и что Леда войдёт при зелёном допуске?

— Я знал расписание работ.

Он отвечал правдой, выбирая для неё самый узкий проход. Сая не спросила, почему из четырёх случаев он наблюдал именно четвёртый. Кир удержал молчание там, где мог бы сообщить недостающий вопрос.

Таян подошёл ближе к экрану.

Хранитель подтвердил: сценарий можно исполнить внутри изолированной копии, но потребуется разрешение комиссии, потому что результат станет новым производным материалом. Мерон хотел дать разрешение сразу. Сая потребовала сначала составить вопросы, на которые должен ответить прогон.

Они записали четыре пункта: распознавала ли модель ложную согласованность; когда риск становился видимым; какие последствия она считала вероятными; какие действия могли разорвать последовательность. Кир предложил пятый — сколько ложных блокировок вызвало бы правило при применении ко всему городу.

— Это относится к оценке исправления, — сказал Мерон.

— И к причине отказа от карточки, — возразил Кир. — Если вы покажете только этот случай, получится, что совет отверг очевидное спасение. Он отверг изменение с ценой.

Сая добавила пункт.

Изолированная модель показала ряды свидетельств со своими временными шкалами: белый коридор допустимых сочетаний и медную область, где формальная действительность сохранялась после утраты физической согласованности.

Сценарий Леды пересёк медную границу в семь тридцать одну сорок восемь, когда механик освободил привод. Но модель узнала об этом только после подключения отметки обслуживания утром. Без неё первое видимое расхождение возникало в семь тридцать девять двенадцать: живая проверка среды стала новее записи створки.

Без ночной ветки старая модель увидела бы окно позже, по разнице времён, но всё ещё за две минуты до допуска — достаточно для блокировки.

Модель отметила ожидаемые последствия: остановка работы — высокая вероятность; повреждение локального анализатора — средняя; воздействие на исполнителя — низкая при соблюдении выхода после первого дрейфа. Тяжёлое воздействие находилось в хвосте диапазона и зависело от направления потока, которого в исходных свидетельствах не было.

Мерон увеличил последнюю строку.

— Смерть?

— Отдельно не рассчитана. Для этого нет данных о составе и дозе.

— Но воздействие на человека рассчитано.

— Как низкая вероятность.

— Не нулевая, — сказал Таян.

Кир повернулся к нему.

— Здесь почти нигде нет нуля. Поэтому существует диапазон, а не обещание безопасности.

— Леда видела этот диапазон?

Ответ был очевиден всем. На её браслете горела ровная зелёная полоса.

— Нет, — сказал Кир. — Рабочий интерфейс его сворачивает.

— А ты видел.

— Да.

Впервые за утро это короткое слово не давало Киру преимущества. Оно лишь соединяло его с экраном.

Прогон показал четыре возможных разрыва последовательности. Автоматическая блокировка остановила бы допуск, но за сутки задержала ещё четыреста двенадцать маршрутов. Ручная блокировка Кира остановила бы один. Независимая проба обнаружила бы поток. Физическая метка после освобождения привода исключила бы старое свидетельство.

— Последнее предложила сама Леда, — напомнил специалист по среде.

Сая внесла ссылку на её голосовую запись. Имя Леды появилось рядом с моделью Кира не как название погибшей в сценарии, а как автор решения, до которого она дошла внутри тоннеля.

После прогона Мерон подготовил предварительный вывод: риск ложной согласованности был известен организации за восемь месяцев до события; предложенное исправление отклонили из-за непроверенной воспроизводимости и цены ложных блокировок; автор предупреждения располагал локальной моделью и наблюдал соответствующий случай до выдачи допуска.

— Добавьте, что я открыл карточку блокировки, — сказал Кир.

— Это уже в последовательности действий, — ответил Мерон.

— В выводе это важно. Я не просто наблюдал.

Сая посмотрела на него через дугу рабочих мест.

— Вы хотите, чтобы неотправленное предупреждение считалось предупреждением?

— Оно показывает намерение остановить допуск.

— Показывает подготовку действия. Затем вы его не совершили.

— Потому что модель предсказывала остановку работ, а не смерть. Я ожидал, что локальный прибор поймает дрейф.

— Это ваша версия мотива. Мы её запишем.

— У вас есть модель.

— Модель подтверждает прогноз диапазона. Она не подтверждает, почему вы выбрали не вмешиваться.

— Если бы совет принял карточку, Леда была бы жива.

Никто не ответил сразу. На городской карте очередной маршрут стал янтарным.

— Возможно, — сказала Сая. — Если бы механик поставил физическую метку, если бы отменённый обход вошёл в сборку, если бы интерфейс показывал возраст свидетельств, если бы вы отправили блокировку, последовательность тоже могла разорваться. Комиссия проверит каждый путь. Но ни один чужой пропущенный путь не превращает ваш пропущенный путь в исполненный.

— Значит, предупреждать бессмысленно?

— Предупреждение имеет значение. Поэтому ваше имя останется на карточке. Невмешательство тоже: ваше имя останется возле допуска Леды. Одно не стирает другое.

Сая подписала предварительный состав комиссии. Серый круг на браслете Кира замкнулся тонкой чертой протокола.

— С этого момента вы участвуете во всех технических заседаниях по окну расхождения, — сказала она. — Не как человек, которого наконец признали правым. Как человек, обладающий знанием, которое необходимо проверить. До отдельного решения вы не входите в ядро, не связываетесь с семьёй Леды и не публикуете карточку.

— Вы боитесь, что я расскажу правду?

— Я боюсь, что любой из нас расскажет только ту правду, в которой ему удобно жить.

Мерон передал Киру первый запрос комиссии: описать границы, при которых модель ошибочно блокирует безопасные допуски, и отделить их от условий сегодняшнего события. Срок стоял до полудня. Рядом система показала предупреждение о конфликте интересов.

Кир принял запрос. Ему вернули право говорить именно тогда, когда он понял: говорить придётся не речь, которую он готовил восемь месяцев, а ответы на чужие вопросы.

На выходе из зала Таян задержался у двери.

— Ты правда ожидал только разбитый анализатор?

— Модель это показывает.

— Я спросил не модель.

Кир посмотрел через стекло на изолированный накопитель. В журнале уже сохранилось, что в семь двадцать восемь из четырёх подсвеченных маршрутов он открыл именно маршрут Леды. Пока это называлось наблюдением. Чтобы назвать это выбором, комиссии требовался ещё один вопрос.

— Я ожидал, что она остановит работу, — сказал он.

Таян кивнул, но не ушёл.

— А почему ты был уверен, что именно она заметит?

Глава 5. Цена отключения

Таян не дождался ответа. Его браслет завибрировал одновременно со стеной: на городской карте янтарная полоса разом стала красной, и в зале комиссии погасли все открытые карточки. Поверх них возникло сообщение: «Контрольная остановка сборки. Новые допуски удерживаются».

Мерон выругался одними губами и вызвал дежурного.

— Кто разрешил общий тест?

— Совет устойчивости, — ответил голос. — По предварительному выводу комиссии. Они требуют доказать, что действующие свидетельства не создают второе окно.

— Мы ещё не передали вывод.

— Из зала ушла автоматическая отметка класса риска. Совет увидел её в общем журнале.

Мерон вывел состояние очереди. За сорок две секунды «Порог» удержал восемьсот девятнадцать запросов. Большинство были обычными: входы в насосные, тяговые шкафы, распределительные камеры. Один узел мигал белым внутри красного поля.

— Больничное кольцо, — сказал представитель эксплуатации. — Переводят резервный контур охлаждения томографического блока. Без допуска бригада не войдёт в нижний теплообменник.

— Сколько у них времени?

— Основной контур держит температуру ещё четырнадцать минут. Потом автоматика отключит оборудование. Внутри две процедуры.

Сая уже открывала карточку узла.

— Процедуры можно прервать?

— Одну — да. Вторая идёт с контрастом. Врач просит не двигать пациента семь минут.

Мерон связался с больничным диспетчером и приказал перейти на ручной допуск. Комплект оказался заперт в чистой зоне, ключ был у старшей смены на эвакуации, а единственного инженера нельзя было увести от теплообменника. Ручная процедура существовала, но людей для неё в нужном месте не было.

На карте рядом с больницей рос счётчик удержанных допусков. Кир машинально раскрыл состав её запроса: две живые пробы среды, положение двери, наряд бригады, состояние оборудования, полномочия смены. Свидетельства обновлялись почти одновременно. Окна, похожего на тоннель Леды, не было.

— Этот узел можно отпустить, — сказал он.

Мерон не повернулся.

— На каком основании?

— Здесь нет независимой актуализации старой физической записи. Дверь опрашивается напрямую, обе пробы сделаны после последнего сервисного действия.

— Общий тест удерживает все новые допуски.

— Значит, тест проверяет не мою гипотезу. Он проверяет, сколько город проживёт без «Порога».

— Сейчас это один и тот же вопрос для людей, которые увидели смерть после зелёной рамки.

Совет разрешил исключение для больничного кольца только после ручной сверки свидетельств и двух подписей комиссии.

— Они защищают себя, — сказал Кир. — Никто не хочет первым вернуть зелёный цвет.

— А кто должен? — спросил Мерон. — Человек, который час назад объяснял, почему зелёный цвет убил техника?

Он придвинул Киру карточку больницы.

— Вы теперь технический свидетель. Не говорите «можно отпустить». Назовите проверяемое условие, при котором этот допуск не принадлежит исследуемому классу.

Серый круг требовал пометить ответ как факт, расчёт или предположение.

— Факт: все физические свидетельства собраны после последнего изменения состояния, — произнёс Кир. — Факт: ни одно свидетельство не получило продление действительности через контроллер доступности. Расчёт: при текущих временах их допустимые интервалы имеют общую область. Предположение: неучтённого ручного вмешательства после живой пробы не было.

— Последнее проверяем у бригады, — сказала Сая.

Инженер у рамки показал целую пломбу и механический индикатор в рабочем секторе. Хранитель сохранил кадры и время связи.

Две подписи комиссии легли под исключением. Рамка больничного узла стала зелёной на семь минут, только для одной бригады и одного помещения.

Люди в плащах исчезли за дверью. Счётчик температуры остановился в трёх делениях от аварийной черты.

Мерон не закрыл карточку.

— Ручная процедура заняла четыре минуты сорок одну секунду, — сказал он. — Пять специалистов здесь, инженер у рамки, диспетчер и хранитель. За это время в городе прибавилось три тысячи запросов. Хотите обработать их тем же способом?

— Я не предлагал отключать всё.

— Восемь месяцев назад ваша карточка предлагала обязательную блокировку при временном расхождении.

— До уточнения класса.

— Уточнение было в приложении, которого не существовало.

Кир открыл рот и остановился. Так прежде отвечали ему: риск интересный, но границ нет; приходите с воспроизводимостью. Теперь за отсутствие границ платила не комиссия, а люди у больничной рамки.

— Поэтому мне нужен был случай, — сказал он.

Таян резко отодвинулся от стола. Ответ на его вопрос прозвучал, хотя Кир пытался направить его в другую сторону.

— Случай уже был, — сказала Сая. — Вы имеете в виду доказательство.

— Без события карточка оставалась бы архивом.

— А сейчас событие стало разрешением на общий тест, который вы считаете неправильным. Значит ли это, что любая цена доказательства приемлема, пока решение принимаете вы?

— Нет. Я говорю, что совет выбрал тупой способ проверки.

— Тогда помогите выбрать не тупой. Не используйте больницу как подтверждение того, что вас опять не поняли.

Мерон разделил карту по типам узлов. Простое ограничение по возрасту удерживало слишком многое: недельное свидетельство полномочий могло быть действительным, а положение створки — устареть за секунду.

Кир предложил три условия: физическое состояние менялось, прямое свидетельство после этого не обновилось, а посторонний источник продлил доступность старой записи. Там, где изменение не попало в сборку, его заменял непогашенный ручной наряд. Эксплуатация возразила: связи объектов неполны, один привод может называться в реестрах по-разному.

Раньше Кир назвал бы плохие данные доказательством своей правоты. Теперь на карте мигали реальные двери. Он ограничил поиск критическими объектами среды, давления, высокой энергии и медицинских контуров. Эксплуатация давала классы, а контролируемая копия его модели только отмечала кандидатов, не управляла допусками.

Сая внесла формулировку в протокол: модель Кира создаёт перечень кандидатов; решение принимает временная группа; каждый пропуск и каждая блокировка сохраняются как результат теста. Мерон добавил предел: если очередь критического узла ждёт больше девяноста секунд, запрос получает приоритетную ручную сверку.

Совет согласовал схему на двадцать минут. Общую остановку сняли, заменив её направленным удержанием. Красное поле на карте сжалось до ста восьмидесяти шести рамок.

Первые кандидаты оказались ложными. Кир правил запросы вслух, и после пятого исключения добавил направление зависимости: старую запись должен продлевать источник, не способный проверить само физическое состояние. В его карточке этого правила не было. Сая пометила его как новое, выведенное после события; Кир не стал выдавать скрытую особенность модели за прежнее сформулированное знание.

Седьмой кандидат пришёл с кислородной станции больничного кольца. Ночной наряд касался запорного клапана, прямое свидетельство оставалось старым, а контроллер связи продлил доступность блока. Все три условия совпали. Без оператора станция перешла бы на резерв через шесть минут, но индикатор клапана находился за рамкой: безопасный вход требовал проверки, для которой сначала требовалось войти.

Кир нашёл косвенный признак — ровное давление после голосового закрытия наряда, — но не выдал его за прямое свидетельство. Он предложил отдельный ограниченный вход к индикатору: без работы с оборудованием, с открытой рамкой и немедленным выходом при несоответствии. Оператор вошёл на три шага и показал закрытый клапан. После живой отметки «Порог» выпустил рабочий допуск; кассету разгрузили до перехода на резерв.

Мерон занёс в таблицу девять человеко-минут комиссии, задержку оператора и расход ресурса станции.

— Это цена ручной процедуры, когда она сработала. Мне нужно правило, которое завтра выдержит два миллиона решений.

За двадцать минут направленного теста модель выделила двести тридцать один запрос. После нового правила зависимости осталось сорок семь. В тридцати девяти случаях прямое свидетельство подтвердили удалённо; шесть перевели на ограниченные маршруты; два допуска удержали до физической проверки. Одним из них был вход в шахту регулятора теплосети, где ночная бригада действительно оставила заслонку в промежуточном положении.

Никто не погиб. Ничего не взорвалось. Но жилой сектор получил тепло на меньшей мощности, а ремонтная смена потеряла сорок минут. Это было первое повторение механизма без трагедии и первое доказательство его цены.

Совет потребовал оставить направленное удержание на сутки. Мерон отказался подписывать бессрочный режим без сменных групп и предела очереди. Они согласовали шесть часов, четыре критических класса и обязательную живую проверку всех связанных ручных нарядов.

— «Порог» остаётся в работе, — сказал Мерон комиссии. — Не потому, что событие единично. Потому что отключение переносит риск на людей, которые будут открывать двери вслепую, носить ключи и сверять несовместимые журналы. До доказательства безопасной замены мы ограничиваем конкретный механизм, а не отменяем инфраструктуру.

Кир услышал в этих словах пересказ собственного довода перед допуском Леды: нельзя останавливать полезную систему из-за хвоста вероятности. Разница была не в расчёте. Мерон назвал риск, ввёл предел, оставил журнал и распределил право остановки. Кир тогда оставил решение у себя и никому не сообщил цену.

— Запишите, что общий тест был ошибкой, — сказал он.

— Запишем его последствия, — ответила Сая. — Оценку даст комиссия.

— Если бы больничный узел сорвался, ответственность была бы на совете.

— В том числе. Это не сделало бы ваш выбор меньше.

— Я не говорил о своём выборе.

— Поэтому я напомнила.

Таян стоял у дальней консоли, проверяя запросы водяного сектора. После вопроса у двери он больше не обращался к Киру напрямую. Теперь он переслал комиссии найденное соответствие: старая модель Кира давала маршрутам разные веса в зависимости от поведения исполнителя при прошлых сбоях. У Леды был самый высокий показатель самостоятельного обнаружения несоответствий.

Сая открыла правило модели. Оно не называло людей надёжными или ненадёжными. Оно оценивало вероятность, что исполнитель запросит дополнительную пробу до автоматической остановки.

В списке четырёх утренних сценариев Леда стояла первой.

— Это помогало вам ограничивать ложные блокировки? — спросила Сая.

— Да. Опытный исполнитель снижает вероятность тяжёлого исхода.

— Поэтому вы выбрали её маршрут для наблюдения?

Таян не торжествовал. Он приложил ссылку, которую Кир обязан был указать сам. На карте больничное кольцо снова было белым. Это позволяло собрать удобную защиту из правдивых частей: остановка опасна, ручной порядок дорог, ограниченный риск необходим.

Серый круг требовал выбрать тип ответа.

— Это предположение о моём мотиве, — сказал он. — Факт: модель ставила Леду первой по вероятности заметить расхождение. Факт: я открыл её маршрут и сохранил как сценарий. Я отвечу о причине после просмотра журнала собственных запросов.

— Вы помните причину, — сказал Таян.

— Помню. Но комиссия требует отделять память от подтверждения.

Сая приняла ответ и назначила изъятие истории запросов. Она не позволила Таяну назвать уклонение признанием и не позволила Киру выдать процедуру за невиновность.

Мерон передал Киру следующий рабочий запрос: описать новое правило зависимости, все сорок семь случаев направленного теста и пределы, при которых ограниченный вход допустим. Срок оставался прежним — до полудня.

— Систему сохранили, — сказал Кир. — Значит, моя карточка всё-таки была непрактичной.

— Нет, — ответил Мерон. — Она была незаконченной. Сегодня другие люди дописали к вашей мысли процедуру, за которую готовы отвечать. Не путайте отказ уничтожить «Порог» с отказом видеть его дефект.

Кир принял запрос. Доказанный механизм уже не принадлежал ему целиком: другие люди дали предел времени, ограниченный вход, критические классы и цену применения. Их возражения сделали точным то, что его модель прятала внутри расчёта.

На его браслете появился новый файл из архива запросов. Заголовок содержал время — семь двадцать девять — и имя Леды.

До открытия оставалось одно действие. Кир задержал палец над строкой, уже зная, что там не будет ни слова о спасении города.

Глава 6. Чужой маршрут

Файл с отметкой 07:29 Сая не позволила открыть на браслете Кира.

Она вызвала хранителя, дождалась контрольной копии и только потом вывела запись на общий экран. В сером круге комиссии появился короткий запрос: четыре маршрута, выделенные моделью, и набор полей, которые Кир просматривал перед выбором сценария. Имени Леды в строке не было. Вместо него стоял служебный номер допуска, но рядом система сохранила сортировку: вероятность самостоятельной проверки — по убыванию.

Маршрут Леды находился первым.

— Что именно вы запросили? — спросила Сая.

— Историю действий исполнителей при расхождении свидетельств.

— Зачем?

Кир посмотрел на категорию ответа. Факт, расчёт, предположение. Для памяти подходящего поля не существовало.

— Чтобы оценить, какой из четырёх случаев не закончится воздействием на человека.

— Это ваша память. Чем она подтверждается?

— Порядком полей. Я вывел самостоятельную проверку перед ценой оборудования.

Таян поднял голову от водяного сектора.

— А цену человека модель ставила после оборудования?

— Она считала ожидаемый ущерб, а не ценность человека.

— Удобное различие.

— Запрос показывает, кого вы считали способным заметить расхождение, — сказал он. — Он пока не показывает, зачем вы открыли маршрут. Не заставляйте журнал говорить больше, чем в нём записано.

Сая уменьшила окно.

— И меньше тоже не будем. В 07:29 Кир ранжировал четыре допуска. В 07:30 сохранил первый как сценарий. Теперь восстановим, что делала сама Леда между отменой обхода и входом.

Кир приготовился увидеть знакомую схему: запрос, рамку, зелёную полосу. Но Сая открыла не журнал «Порога», а рабочий наряд внешнего кольца. У него была собственная последовательность, собранная из диспетчерской, склада и браслета Леды. В ней допуск в тоннель занимал не начало и не конец, а середину чужой работы.

В 06:52 Леда приняла заявку жилого сектора «Северная гряда». В двух домах падала тяга возвратного воздуховода. Автоматика удерживала состав воздуха в норме, повышая мощность соседней линии, но резерв нагревался быстрее расчётного.

— Аварии не было, — сказал Кир.

Сая выделила следующую строку.

В 07:03 Леда запросила тренд за шесть часов и увидела ступенчатое падение после ночной перенастройки. В 07:08 она отказалась от предложенного диспетчером переноса на дневную бригаду. Причина: если заклинившая заслонка останется в промежуточном положении, резервная линия достигнет предела в час возвращения жителей. Тогда пришлось бы отключить вентиляцию сразу в двух домах, чтобы не перегреть общий привод.

— Это её оценка? — спросил Кир.

— Подтверждённая расчётом диспетчера в 07:12, — ответила Сая. — Он дал ей окно до восьми десяти. Позже тоннель занимала бригада теплоизоляции, а после полудня начиналась нагрузка.

На схеме возникли два жёлтых корпуса с достаточным запасом. Леда увидела цепь, которая могла привести к эвакуации вечером, и решила разорвать её утром, пока цена оставалась малой.

Запас составлял девять процентов к часу пик. Но Леда оставила расчёт, сообщила диспетчеру и приняла ограниченный наряд. Она не назначила цену молча.

— Что требовалось сделать в тоннеле? — спросил Таян.

Сая раскрыла карточку операции. Леда должна была дойти до сервисной ниши, проверить привод на месте, снять напряжение с линии и установить механический фиксатор. Если створка не садилась полностью, она обязана была выйти и вызвать двоих специалистов. Работа в одиночку разрешалась только для осмотра и фиксации при безопасном составе воздуха.

— Поэтому она несла фиксатор, — сказал Таян.

В журнале склада стояла выдача лёгкой медной скобы. После гибели её нашли в сумке у защитной ниши.

Кир помнил сумку как светлое пятно на записи и ни разу не спросил, что в ней было. В его сценарии не было домов, вечерней нагрузки и скобы.

— Ночной обход должен был проверить створку, — сказал он. — Если его отменили, её наряд опирался на неверное исходное состояние.

— Именно это она и заметила, — ответила Сая.

В 07:16 Леда запросила причину отмены обхода. Диспетчерская карточка отвечала: недостаточный состав смены, низкий приоритет при штатных дистанционных показаниях. Леда переслала вопрос оператору тоннеля: «Кто подтвердил положение после освобождения привода?»

Ответ пришёл через четыре минуты: «Телеметрия зелёная. Ручного подтверждения нет».

Леда не закрыла наряд. Она добавила локальную проверку маски, взяла переносной анализатор и попросила живую пробу у рамки. В 07:24 диспетчер предложил заменить заявку наблюдением до дневного обхода. Её ответ состоял из двух предложений: «Наблюдение покажет рост нагрузки после того, как исчезнет безопасное окно ремонта. Проверю среду и положение на месте; при несовпадении выйду без работы».

Леда видела риск отсрочки, добавила проверки и поставила предел собственным действиям.

— Она знала, что свидетельство положения старое, — сказал Кир.

— Она знала, что нет ручного подтверждения, — поправила Сая. — Возраст машинной записи браслет скрыл. Разницу временных меток видели вы.

— Она всё равно решила войти.

— После живой пробы среды и зелёного допуска. И написала, что выйдет при несовпадении. Вы удалили сообщение, которое позволило бы ей увидеть несовпадение до рамки.

Сая говорила без нажима. От этого каждое различие оставалось на месте: Леда выбрала ремонт, Леда приняла остаточный риск, Леда не выбирала неизвестное ей окно между свидетельствами.

Мерон запросил исходный наряд, и хранитель наложил на него события «Порога». В 07:29, пока Леда ждала живую пробу, Кир открыл историю четырёх исполнителей. В том же минутном окне Леда отправила оператору ещё один запрос: можно ли оставить физическую метку на рамке, если положение створки подтвердится только на месте.

— Метку она предложила до входа, — сказал Таян.

— До допуска, — уточнила Сая. — Запись после аварии была не новой идеей. В защитной нише она повторила уже принятое решение и указала место.

Леда приложила эскиз поворотного знака на кожухе рамки. После ручного освобождения его переводили в жёлтый сектор и не возвращали без физической проверки.

— Это не решает проблему, — сказал Кир. — Метку забудут повернуть. Её заклинит. Кто-то увидит старое положение.

— Она не называла её решением всей системы, — ответила Сая. — Она предложила дополнительное свидетельство для конкретного тоннеля.

— И оно зависело бы от человека.

— Как ночной обход. Как подпись сборки. Как ваше решение не отправлять блокировку.

Таян отвёл взгляд. Сая не стала смягчать последнюю фразу, но и не задержалась на нём.

Оператор отправил эскиз в очередь улучшений со сроком рассмотрения три дня. Для текущего допуска Леда оставила инструкцию: если найдёт створку открытой, закрепит медную скобу на рамке как знак следующей смене, отказавшись от ремонта.

— Она заранее решила пожертвовать завершением работы ради предупреждения, — сказал Мерон.

Сая кивнула.

Кир увеличил эскиз. Красная линия проходила там, где после аварии нашли царапину на кожухе. Раньше комиссия считала её следом удара сумки при эвакуации. Теперь хранитель сопоставил ширину с медной скобой.

— Она пыталась поставить метку, — сказал Таян.

— Это версия, — возразил Кир. — На записи из ниши она говорит только, что створка не села и метка нужна.

— Верно, — сказала Сая. — Проверим, а не присвоим ей действие из красивой догадки.

Они запросили снимки кожуха до очистки. На первом скоба лежала у внутреннего порога, отдельно от сумки. На её короткой стороне осталась тёмная полоса покрытия рамки. След был свежим, но снимок не позволял понять, закрепляла Леда скобу или только коснулась кожуха.

Сая записала: «Физическая метка подготовлена; попытка установки вероятна, завершение не подтверждено». Если бы Леда увидела предупреждение Кира, она могла отменить ремонт, потребовать проверку или войти с другим пределом. Комиссия не выбирала за неё задним числом.

— Вы всё равно строите удобную историю, — сказал Кир. — Теперь она идеальный техник, а я человек, который лишил её идеального решения.

— В 07:11 она неверно указала номер линии и исправила его через минуту. Она согласилась на одиночный осмотр, хотя могла добиваться сопровождения. Это не идеальность. Это её работа и решения. Не заменяйте человека ролью, удобной для защиты.

— Моя защита в том, что она понимала риск отсрочки.

— Да. Риск отсрочки был реальным. Поэтому ваш выбор страшнее, а не проще: вы использовали её ответственное решение как часть страховки собственного эксперимента.

Серый круг мигнул, предлагая Киру категорию ответа. Он выбрал «предположение».

— Вы предполагаете мой мотив.

— Предполагаю. Факты пока такие: в 07:29 вы запросили способность исполнителей находить расхождения. Леда была первой. В ту же минуту она объяснила, почему не переносит ремонт, и предложила метку. В 07:30 вы сохранили её маршрут. В 07:41 не отправили блокировку.

— Её рабочий наряд не входил в мой запрос.

Сая остановилась.

— Откуда вы тогда знали, что она действует ради жилого сектора?

— Я не сказал, что знал.

— Вы сказали: «её ответственное решение как часть страховки». Я говорила о решении проверить расхождение, не о домах.

Кир почувствовал, как Таян повернулся к нему. В журнале 07:29 на общем экране были только поля модели. Но у разработчика ядра оставался рабочий просмотр связанных нарядов — законный для диагностики, не включённый в сохранённый запрос.

— Маршрут допуска содержит назначение узла, — сказал Кир.

— «Сервис вентиляции», — ответила Сая. — Без сектора и причины срочности.

Он мог назвать фразу неточной: комиссия не доказала бы обратное по одной оговорке. Таян молчал.

— Проверьте журнал связанных просмотров, — сказал Кир.

Хранитель потребовал отдельное разрешение: рабочие наряды содержали данные смен, не относящиеся к инциденту. Сая ограничила выборку номером допуска и промежутком с 07:20 до 07:41. Кир подтвердил доступ своей подписью технического свидетеля.

В 07:27 Кир открыл сводку «предотвращение перегрузки резерва, Северная гряда», в 07:28 — расчёт диспетчера. Затем ранжировал исполнителей.

— Я оценивал цену остановки, — сказал он.

— Какую? — спросил Мерон.

— Перенос ремонта мог привести к эвакуации двух домов.

— А допуск — к воздействию на одного техника.

— Низкая вероятность воздействия. Высокая вероятность, что она обнаружит окно и выйдет.

Сая не дала ему продолжить.

— Вот граница факта. Вы знали цель ремонта. Знали, что Леда обычно замечает расхождения. Знали о несовместимых свидетельствах и не сообщили ей. Почему вы соединили эти знания именно так, установим после полного журнала модели.

— Я уже ответил.

— Вы назвали расчёт. Не выдавайте его за разрешение.

На карте жилого сектора два жёлтых дома стали зелёными: дневная бригада, задержанная общим тестом, добралась до другого входа и перераспределила поток. Ремонт занял больше людей и почти весь безопасный запас, но аварии не произошло.

Ни один исход не был известен Леде заранее. Но она оставила другим расчёт и предел, а Кир сохранил главное решение внутри себя.

Сая завершила восстановление не моментом смерти, а незаконченной заявкой на метку. Автором указала Леду Арс. Рядом поставила статус: «требует испытания на ограниченном объекте». Не памятник и не посмертную правоту — рабочее предложение, которое могло не пройти проверку.

— Передайте его группе направленного удержания, — сказал Мерон. — Для тоннелей с ручным освобождением привода. Отдельным экспериментом, без подмены живой проверки.

Идею Леды можно было отвергнуть, изменить, ограничить. Для этого ей не требовалось становиться доказательством чужой теории.

Хранитель закрыл рабочий наряд и оставил на экране две строки журнала: просмотр расчёта в 07:28 и ранжирование в 07:29. Между ними не было команды «выбрать Леду». Только последовательность, слишком точная для случайного интереса и всё ещё недостаточная для полного признания.

Сая назначила следующий этап: воспроизвести окно расхождения на модели и сопоставить четыре сценария с ожидаемым ущербом, который Кир видел до допуска.

— Теперь вы знаете чужой маршрут целиком, — сказала она. — В следующем разборе покажете, где именно решили, что имеете право сделать его частью своего доказательства.

Кир не исправил слово «решили» на «рассчитали».

Глава 7. Окно расхождения

Для воспроизведения Кир потребовал копию «Порога», которая не знала о смерти Леды.

Очищенная модель получила состояние города на 07:20: старую запись о положении створки, свежую пробу воздуха, отменённый обход и четыре допуска, выделенные восемь дней назад. Всё, что появилось после входа в тоннель, хранитель отсёк. Даже правило зависимости, выведенное утром у больничного кольца, осталось за границей.

— Иначе мы докажем, что умеем угадывать прошлое после события, — сказал Кир.

Сая внесла условие в протокол. На этот раз она не спорила: граница знания защищала не его, а результат.

Модель развернули в зале с четырьмя рамками и пустыми отсеками, где имитировались створка, давление и состав воздуха. При ошибке лампа гасла, отмечая условное воздействие.

Таян занял консоль сборки. Мерон привёл двух операторов, которые не участвовали в утреннем разборе. Сая распределила роли так, чтобы Кир не мог одновременно задавать условия и толковать результат.

— Сформулируйте уязвимость до запуска, — сказала она.

Кир вывел три временные линии.

— «Порог» проверяет действительность каждого свидетельства отдельно. Проба воздуха действительна сорок секунд. Положение створки — дольше, если контроллер доступности подтверждает связь с приводом. Когда привод освобождают вручную, физическое состояние может измениться, но контроллер продолжает освежать старую запись. Свидетельства принадлежат разным состояниям объекта, хотя каждое считается пригодным.

— Где ошибка? — спросил один из операторов.

— В сборке нет события, которое обязано погасить старое положение после ручного вмешательства.

— Значит, добавляем событие.

— После того как узнаем, какие вмешательства с ним связаны. В реестрах один и тот же привод имеет разные имена. Общее правило заблокирует исправные узлы.

Первым запустили маршрут насосной станции. В исходном городе его отменили из-за отсутствия бригады, поэтому исхода не существовало. Испытатель получил зелёную рамку, вошёл в отсек и увидел створку в расчётном положении. Модель не отметила расхождения.

— Ложный кандидат, — сказал Таян.

— Нет, — ответил Кир. — Условия для окна есть, но физическое изменение не произошло. Кандидат настоящий, опасный исход отсутствует.

Сая записала различие.

Во втором отсеке положение обновилось прямым датчиком. В третьем старую запись заменили после дополнительного запроса исполнителя.

— Три случая остановились бы без вмешательства разработчика, — сказал Мерон.

— Поэтому я сохранил четвёртый.

Слова прозвучали раньше, чем Кир успел выбрать категорию ответа.

Сая повернулась к нему.

— Сохранили, потому что первые три не давали наблюдаемого отказа?

— Потому что только четвёртый сохранял окно до входа.

— Это факт о модели. Я спросила о вашем выборе.

— Выбор следовал из факта.

— Не автоматически.

Кир указал на последнюю рамку.

— Запустите её.

Таян загрузил состояние тоннеля. Старая запись показывала закрытую створку; свежая проба у рамки — безопасный воздух. Контроллер освежил доступность положения, не измеряя его. Зелёная полоса прошла по кожуху.

Испытатель не вошёл. По сценарию Леды он запросил ещё одну пробу, дождался ответа и только потом переступил порог. На шестнадцатом метре имитатор показал дрейф. Он остановился, поднял анализатор и вернулся к рамке за двадцать две секунды.

Над отсеком загорелась надпись: «Воздействия нет».

— Вот ожидаемый исход, — сказал Кир. — Несмертельный. Исполнитель обнаруживает расхождение, оборудование выводят из работы, случай становится воспроизводимым.

Сая попросила повторить запуск.

На этот раз оператор закрыл рамку после входа, как произошло утром. Испытатель развернулся у дрейфа, но путь назад оказался перекрыт. Он дошёл до защитной ниши. Система погасила лампу через минуту сорок восемь секунд.

— Условное воздействие, — объявил хранитель.

Кир раскрыл настройки.

— Закрытие рамки не входило в маршрутную модель. Оно зависит от режима следующей бригады.

— Но этот режим был известен в 07:20? — спросила Сая.

Таян нашёл сменное расписание. Теплоизоляционная бригада должна была занять тоннель после восьми, и оператор включил одностороннее исполнение: рамка закрывалась, чтобы два наряда не пересеклись. Запись появилась в диспетчерской накануне вечером.

— Модель Кира не читала расписание занятости, — сказал он.

— А Кир мог? — спросила Сая.

Хранитель проверил журнал просмотров. До допуска Кир расписание не открывал.

— Не мог знать о закрытии, — сказал Мерон. — Мог знать, что неизвестный режим рамки влияет на выход?

Кир выбрал «факт».

— В карточке маршрута есть признак одностороннего исполнения, но моя модель его не использовала.

— Почему?

— Я исследовал согласованность свидетельств, а не эвакуацию.

— Для доказательства механизма этого хватало, — сказала Сая. — Для назначения риска человеку — нет.

Они вернули двусторонний режим и меняли скорость роста примеси. При медленном и среднем дрейфе испытатель вышел, при быстром сигнал пришёл после условной дозы. Решение «Порога» не менялось, исход зависел от условий вне модели Кира.

— Вы рассчитывали вероятность среды? — спросил Мерон.

— По архиву тоннеля. Быстрый рост происходил в двух случаях из ста восьмидесяти семи.

— А закрытие рамки?

— Нет.

— Потерю связи?

— Общую частоту по внешнему кольцу.

— Совпадение факторов?

Кир промолчал.

Сая сама выбрала категорию: «не подтверждено».

Испытание продолжили без него. Операторы перебирали допустимые состояния, меняя по одному условию: скорость дрейфа, задержку живой пробы, положение рамки, доступность связи. Из тридцати двух запусков двадцать закончились обнаружением без воздействия, семь — ложным зелёным допуском без ухудшения среды, пять — условным воздействием. В двух из пяти испытатель не мог выйти.

Повторяемость окна была доказана. Безопасность выбранного инцидента — нет.

Часть сочетаний могла не встретиться в городе, а работа следующей бригады меняла тягу. По возражению Кира Таян добавил ограничение к результату.

— Но нулём они не становятся, — произнёс Таян.

— Я и не считал ноль.

— Какое число считали?

— Ожидаемый ущерб оборудованию.

— Это опять не ответ.

Сая запросила сохранённую конфигурацию модели. Хеш совпал с изъятой копией, но слой оценки исходов оказался отделён от механизма расхождения. Для сегодняшнего запуска он не требовался. Хранитель показал дату последнего изменения: за три дня до гибели Леды.

— Откроем слой, — сказала Сая.

— В следующем заседании, — возразил Кир. — Там используются производственные коэффициенты, которые без пояснения будут прочитаны как вероятность смерти.

— А чем они являются?

— Вероятностью классов ущерба: задержка, потеря оборудования, воздействие на исполнителя. Класс не равен исходу.

— Сегодня вы назвали ожидаемый исход несмертельным. На чём это основано, если слой закрыт?

— На его расчёте.

— Значит, он относится к воспроизведению.

Мерон поддержал Саю, но хранитель остановил открытие: в слое были данные других исполнителей, собранные для оценки поведения при сбоях. Комиссия должна была сначала обезличить их. Кир получил отсрочку не потому, что имел право толковать числа, а потому, что права непричастных людей ограничивали расследование.

— До следующего заседания вы не называете инцидент безопасным, — постановила Сая. — Допустимая формулировка: вы ожидали преимущественно несмертельный исход, полнота расчёта не проверена.

— Преимущественно — не то слово.

— Предложите точнее.

— Модель давала наибольший вес обнаружению без воздействия и потере оборудования.

— Принимается.

Операторы тем временем наложили четыре утренних маршрута друг на друга. У первых трёх окно гасло до исполнения: отмена бригады, прямое обновление, дополнительный запрос. В маршруте Леды оно сохранялось не только из-за системы. Она сама поддерживала движение задачи: отказалась ждать дневную смену, запросила пробу, подготовила ограниченный вход. Её профессиональная осторожность одновременно уменьшала риск для неё и повышала вероятность, что допуск будет исполнен.

— Ваша сортировка учитывала настойчивость исполнителя? — спросила Сая.

— Историю завершения нарядов после предупреждений.

— То есть не только способность заметить расхождение.

— Способность довести проверку до наблюдаемого результата.

— Скажите без языка модели.

Кир посмотрел на четыре линии. Три обрывались до рамки. Линия Леды доходила до тоннеля.

— Вероятность, что человек не отменит работу при первом сомнении.

— Вы искали осторожного человека, который всё-таки войдёт, — сказал он.

— Я искал случай, который не исчезнет из-за перестраховки.

— Это одно предложение с разных сторон.

Сая потребовала показать формулу сортировки. Кир открыл признаки: запрос дополнительных проб, доля самостоятельно закрытых предупреждений, завершение наряда после жёлтого статуса, отсутствие прошлых нарушений. Последний признак снижал ожидаемое воздействие. Первые три повышали вероятность наблюдаемого случая.

Леда была первой не потому, что чаще рисковала. Она чаще других проверяла сомнение и после проверки принимала собственное решение. Кир превратил это в защитный коэффициент своего замысла.

— Три других исполнителя знали о модели? — спросил Мерон.

— Нет.

— Их маршруты вы остановили?

— Один отменился. Второй получил прямое обновление. Третий запросил новое положение.

— Вы вмешивались?

— Нет.

— Значит, вы наблюдали четыре допуска и ждали, какой сохранит нужное окно.

Кир почувствовал, что ответ уже находится в комнате и молчание только отдаст его другим.