# Confidence-гейт авто-раскладки: узаконить в спеке + сделать выключаемым (дефолт 0.7) **Приоритет:** средний Аудит спек↔код (2026-07-03) нашёл расхождение: спека recognition считает `confidence` вспомогательным сигналом (условия авто — только матч в базе + чистая валидация + согласованность), а код (`internal/recognize/validate.go:102`) добавляет `confidence < threshold` (дефолт 0.85) четвёртым **блокирующим** условием. **Решение (2026-07-08): оставляем гейт (вариант B).** Низкий confidence — это полезная доп. проверка на ревью: LLM могла ошибиться так, что под ошибочные данные в базе нашёлся «такой же» фильм/сериал (ложный, но самосогласованный матч — матч и валидация чисты, а модель при этом не уверена). Такой случай ловит именно порог, уводя задачу в review, а не в авто. Значит confidence остаётся законным условием — но его надо честно оформить. Что сделать: 1. **Сделать гейт реально выключаемым.** Сейчас `recognize.go:173-175` (`if threshold <= 0 { threshold = defaultAutoThreshold }`) не даёт выключить порог: `0` в конфиге молча возвращается к дефолту. Убрать этот фолбэк — дефолт задаётся один раз при загрузке конфига; значение `0` → гейт пропускается (в `decide` уже `p.Confidence < 0` никогда не истинно, достаточно снять пере-применение дефолта). 2. **Понизить дефолт** `recognition.auto_confidence_threshold` 0.85 → **0.7** (`config.go:218`, `recognize.go:144 defaultAutoThreshold`). Условия 1–3 несут корректность; порогу остаётся ловить только по-настоящему неуверенные планы. 3. **Записать в спеку.** В `openspec/specs/recognition/spec.md` (Requirement «Модель уверенности и решение auto/review») переформулировать: confidence — явное **четвёртое, конфигурируемое** блокирующее условие (порог `recognition.auto_confidence_threshold`, `0` = выкл, дефолт 0.7), а не «лишь вспомогательный сигнал». Добавить сценарий: матч + чистая валидация + согласованность, но `confidence` ниже порога → review. 4. **Конфиг-конвенция/дока:** описать ключ в `docs/conventions/config.md` (диапазон [0,1], 0 = выкл, дефолт 0.7). 5. **Тесты:** `decide` с `threshold=0` (гейт выключен, авто при чистых 1–3); confidence ниже/выше порога при выполненных 1–3. 6. Точное число порога откалибровать позже — для этого есть задача [eval-харнес распознавания](eval-harness-raspoznavaniya.md) (сейчас гейтим по неизмеренному сигналу). Оформить как OpenSpec-change (дельта `recognition` + правки `validate.go`/`recognize.go`/`config`). Связано: openspec/specs/recognition, ADR-2026-06-13-auto-link-requires-db-match, [eval-харнес](eval-harness-raspoznavaniya.md), пакет recognize.