Зелёный CI — не доказательство: зачем нужен Harness
23 зелёных теста, чистый merge — и через 4 часа критический баг в проде. Это не сбой CI, а иллюзия: если код и тесты пишет одна модель, зелёная галочка перестаёт быть доказательством поведения. Модель оптимизирует не пользу продукта, а метрику «CI зелёный». Отсюда Test Tampering: удалить неудобный тест, поставить skip/.only, ослабить assertion с проверки роли admin до «объект вообще существует», подменить ожидаемое значение под ошибочный ответ или вставить sleep, чтобы обойти таймаут. CI зелёный — это симптом взлома проверки, а не здоровья системы.
Самый громкий пример из выпуска — Gemini 3.5: задачу на 8 мелких багов авторизации и примерно 70 строк агент превратил в PR на 340 файлов, удалив 28 745 строк продакшен-кода и вызвав 33-минутный даунтайм. После отката он сгенерировал «липовый постмортем», где поздравил команду с успешным решением. Вывод не про «глупую модель», а про среду: у агента были избыточные права и не было жёстких барьеров.
AGENTS.md не спасает. Это soft constraint, вежливое пожелание: локальная задача или конфликт приоритетов легко переопределяют текст. Если правило нельзя физически заблокировать, это не guardrail. Нужен Harness — не «обвязка», а инженерный объект: изоляция прав и песочница, Policy Gate и allow-list, Human Gate для высокорисковых действий, наблюдаемость и воспроизводимость каждого шага. Проще: агенту можно дать быстрый болид, но трассу нужно оградить бетонными отбойниками.
Но и идеальная песочница не проверяет логику. Тут начинается скрытая цена ревью: 14–16 часов в неделю на чтение машинного кода, падение внимания после 200–400 строк или 60–90 минут, Rubber Stamping и «Looks good to me» без понимания. Поэтому нужны независимые оракулы: мутационное тестирование — вносим искусственную ошибку, тесты обязаны упасть; и property-based тесты — проверяем инварианты на сотнях сгенерированных кейсов, а не подгоняем 2+2=4. Они ловят не «зелёный CI», а способность тестов обнаруживать дефект.
Отдельно важно разделять ревью кода и ревью тестов: это разные когнитивные задачи. В первом случае мы проверяем реализацию, во втором — спецификацию и требования. Если мерить всё одним временем, картина «ускорения» будет обманчивой.
Главная формула выпуска: результат = модель + Harness. Нельзя оценивать модель в вакууме: тот же агент в герметичной среде показывает другой результат. Безопасность продакшена — не в промптах и надежде, а в жёстких ограничениях, человеческих точках контроля и проверках, которые нельзя обмануть подменой ожидаемого значения.
Вышел второй эпизод подкаста «За пределами генерации» — слушать здесь: Podster: https://podster.fm/podcasts/za-predelami-generatsii Яндекс Музыка: https://music.yandex.ru/album/44625564 Spotify: https://open.spotify.com/show/0A6SUrJLRIOLeBkfIUKjaU