9d8d3de782
Разбор «перемежающегося degraded судьи» по systematic-debugging: действующего бага нет (ключ SET, 28/28 вердиктов чистые, degraded-строки несверяемы — at:null, без парного WARN). Гипотеза «retry/таймаут» не подтверждена → таймаут не трогали. Вместо этого закрыта слепота диагностики (TDD, под maintenance): - callJudgeModel различает no_key vs transport_error+errorType (classifyLLMError); - причина протекает в вердикт → warnJudgeUnavailable (+cause/error_type/at) и seal-запись; - main() передаёт nowMs: Date.now() → seal/verdict/warn больше не at:null (логи сверяемы). Файлы: tools/seal-log.mjs, tools/enforce-judge-gate.mjs. +9 тестов; 2 exact-match приведены к новому контракту. Регрессия tools-only 3829 GREEN (база 3820), 0 регрессий. cspell-words.txt +8 терминов. Роадмап: секция «Печать M7» + degraded-наблюдаемость. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>