## Why На странице просмотра загрузки `/download/{id}` в блоке «Распознано как» поле «Режиссёр» всегда показано прочерком — оно захардкожено (`web/templates/partials/download_main.html:40`), в отличие от экрана ревью, где режиссёр уже выводится. Данные есть: `Plan.Director` персистится в `recognition.plan`, а страница получает эффективный план через `Reviewer.ReviewData`. Возникает видимая нестыковка: в заголовке страницы (`display_name`) режиссёр из контекста уже присутствует, а в поле блока — прочерк. Причина глубже одного шаблона: полное **слоистое разрешение** полей ярлыка (override → распознавание+матч → **контекст**) заперто в неэкспортируемом `worker.effectiveDisplayName`, который отдаёт готовую строку, а не поля. Поэтому билдеры вью на странице загрузки и на экране ревью видят только слой «распознавание+матч» (`rd.Plan.Director`) без нижнего слоя контекста — та же дыра в `internal/httpapi/review.go`. ## What Changes - **Слоистое разрешение полей ярлыка выносится в экспортируемую функцию** `naming.EffectiveFields(parsedContext, plan)`, возвращающую эффективные поля (в т.ч. `Director`), а не готовую строку. Логика — та же, что была в `effectiveDisplayName`: первый непустой слой `override`→`recognition`(+матч), уже свёрнутый в план, с фолбэком на извлечённый из контекста слой (`parsed_context`). - **`worker.effectiveDisplayName` переиспользует новую функцию** (тонкая обёртка `naming.EffectiveFields(...).Label()`) — поведение `display_name` не меняется, существующие тесты остаются зелёными. - **Страница загрузки** выводит режиссёра из слоистого разрешения — согласованно с режиссёром в заголовке (`display_name`); при отсутствии во всех слоях — прочерк. - **Экран ревью** берёт режиссёра из той же функции — закрывается та же дыра (ранее только `rd.Plan.Director`, без слоя контекста). Всё перечисленное — косметика отображения: не влияет на пути файлов, распознавание или раскладку. ## Capabilities ### New Capabilities (нет — правка отображения в существующих capability) ### Modified Capabilities - `web-ui`: блок «Распознано как» на `/download/{id}` показывает режиссёра эффективного источника (слоистое разрешение), согласованно с заголовком. - `review`: инфо-часть выбранного источника показывает режиссёра из слоистого разрешения (с фолбэком на сохранённый контекст), а не только из плана. ## Impact - Код: `internal/naming` (экспорт `EffectiveFields` + тип полей с методом `Label`), `internal/worker` (`effectiveDisplayName` делегирует в naming), `internal/httpapi` (`download.go`, `review.go` — режиссёр из слоистого разрешения), `web/templates/partials/download_main.html` (поле «Режиссёр» вместо прочерка). - БД: изменений схемы нет. - Внешние вызовы: нет. - Беклог: закрывается `docs/backlog/rezhisser-v-kartochke-zagruzki.md`.