## Why Сверка распознавания с базой метаданных промахивается на иностранных фильмах с русским релиз-именем: реальный кейс — «Тёмный рыцарь» (The Dark Knight), поиск не нашёл ничего, раскладку пришлось делать вручную. Базы (TMDB/TVDB) индексированы прежде всего по оригинальным названиям, а поиск сейчас идёт по одной строке `provider_hint || title` и игнорирует `original_title`. Из-за этого сильное звено сверки — оригинальное название — не используется ни в запросе, ни (когда модель оставила его пустым) в гейте сравнения. ## What Changes - **Поиск по нескольким названиям** в сверке с базой: стратегия «оригинал → fallback» — сначала запрос по `original_title`, при единичном сильном матче стоп; иначе запрос по локализованному `title`; третьим фолбеком — `provider_hint`. Кандидатов для review копим из всех заходов (дедуп по `provider:id`). Избыточный запрос-дубль (когда нормализованные названия совпадают) пропускаем. - **Контракт LLM на оба названия:** промпт требует всегда заполнять и `title`, и `original_title`. Нет отдельного оригинала / российское происхождение → продублировать `title`. Не уверен в оригинале → дублировать, а **не выдумывать** (защита от ложного авто-матча по галлюцинации). Схема разбора остаётся мягкой: пустой `original_title` не отбраковываем, а graceful-фолбэк на `title`. - **Локаль TMDB:** TMDB-поиск всегда передаёт `language` (по умолчанию `ru-RU`), параметризуемый конфигом. Локализованный `Title` приходит по-русски — сходится русская сторона гейта и аккуратнее карточки кандидатов в review. `original_title` у TMDB остаётся на языке оригинала, английская сторона гейта не страдает. - **Нормализация названий:** в сравнении сводим `ё`→`е`, чтобы «Тёмный» и «Темный» считались одним названием. Гейты авто-раскладки не ослабляются: авто по-прежнему только при подтверждённом единичном матче в базе + структурной валидации + согласованности сигналов. Изменение лишь повышает попадаемость сверки. ## Capabilities ### New Capabilities - `recognition`: распознавание контента раздачи (фильм/сериал, название, год, сезон/серия), сверка с базами метаданных и решение «авто или review». Первый перенос capability из `docs/specs/recognition.md` в OpenSpec; в этот change фиксируем требования к сверке с базой и контракту названий, затронутые изменением (остальное мигрируется отдельно). ### Modified Capabilities ## Impact - `internal/recognize/metadata.go` — `matchMetadata` (многозапросный поиск), `normalize` (`ё`→`е`). - `internal/recognize/prompt.go` — правила промпта по `title`/`original_title`. - `internal/metadata/tmdb.go` — параметр `language` в запросе поиска. - Конфигурация — новое поле `[metadata.tmdb].language` (дефолт `ru-RU`), валидация на старте. - `docs/specs/recognition.md` — синхронизируем с дельтой (источник истины до полного переноса). - Внешнее API/схема ответа LLM: `provider_hint` сохраняется; новые требования к заполнению `original_title`. Обратная совместимость хранимых данных не затрагивается.