# 🧹 Судить ответ в тестах по готовому ответу - **Тип:** chore - **Категория:** Очередь — Тест, читающий живую карту заголовков, зелен при неработающем коде: класс всплывал трижды и трижды стоил ложной приёмки. - **Зачем:** Проверка, читающая изменяемую карту заголовков обработчика, зелена при неработающем коде: класс всплыл трижды, последний раз на уборке куки входа. Найдено ревью задачи `oidc-login` 2026-08-12, отчёт триажа — [review/report.md](../../openspec/changes/archive/2026-08-12-oidc-login/review/report.md), раздел «Promote candidates», первый пункт. Инструмент проверки устроен зеркально настоящему серверу: у сервера заголовки фиксируются в момент, когда ответ начинают писать, а у него живая карта остаётся доступной и после. Проверка, читающая живую карту, видит то, чего клиент не получит, и остаётся зелёной при любой регрессии в этом месте. Класс повторяется третий раз — записи журнала дефектов от 2026-08-10, 2026-08-11 и 2026-08-12, — и все три раза стоил зелёного гейта при неработающем поведении. Отсюда продвижение: правило в конвенции плюс механизация, а после механизации проза из конвенции убирается. ## Затрагивает - `docs/conventions/` — новая запись либо раздел существующей: чем судят ответ; - `docs/conventions/README.md`, перечень механизированного; - набор шагов `task gate` — место, где живёт проверка правила; - существующие тесты обработчиков: те, что читают живую карту заголовков. ## Критерии приёмки - Правило записано в конвенциях одной формулировкой, и названо место механизации. Оракул — чтение `docs/conventions/README.md`: строка есть, ссылка ведёт в существующее место. - Проверка, читающая живую карту заголовков, роняет гейт. Оракул — завести такую строку в любом тесте и прогнать гейт: ненулевой код возврата. - Проза из конвенции убрана после механизации, а не осталась дублем. Оракул — чтение записи: правило названо один раз, дальше ссылка на механизацию.