Files
jellybit/openspec/changes/archive/2026-07-17-download-card-director/tasks.md
T
av 42d5b73a04 docs: перевод документации на канон av-dev
- Раскладка docs/ приведена к канону 2: заведены passport/architecture/
  database/security/review и research; docs/specs, drafts, backlog, review/
  и BRIEF.md разобраны и удалены, беклог переехал в docs/tasks (34 задачи,
  6 целей, слаги на английский).
- Нарративы specs удалены как дубли openspec-спек после поимённой сверки;
  остаток заведён задачами (редактор маппинга ревью, крайние случаи
  именования), отказ от сущности title промоутнут в ADR.
- Проектные копии агентов и скиллов ревью/пайплайна удалены в пользу
  плагинов av-dev-pm и av-dev-pipeline; в task gate добавлен шаг canon
  вместо er-schema.
2026-08-04 09:27:26 +03:00

38 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 1. Экспортируемое слоистое разрешение (naming)
- [x] 1.1 `internal/naming`: тип `LabelFields` (Title/Director/Year/Season string)
с методом `Label()`, зовущим существующий `Label(...)`
- [x] 1.2 `internal/naming`: функция `EffectiveFields(parsedContext string, plan
recognize.Plan) LabelFields` — перенести логику слоёв из
`worker.effectiveDisplayName` (план → контекст; сводка сезонов плана →
контекстный `SeasonLabel`); выбор слоя по сырым значениям, выбранные скаляры
на возврате прогнать через `sanitize` (идемпотентно — `Label()` даёт прежний
результат); битый `parsed_context` → пустой слой
- [x] 1.3 Юнит-тесты `naming.EffectiveFields`: режиссёр/год/сезон из плана;
фолбэк на контекст; матч бьёт контекст; битый `parsed_context`; пустые
значения; режиссёр из управляющих символов/лишних пробелов → `.Director`
очищен и `.Label()` совпадает с прежним `display_name`
## 2. Переиспользование (worker)
- [x] 2.1 `worker.effectiveDisplayName` → тонкая обёртка
`naming.EffectiveFields(d.ParsedContext, plan).Label()`; поведение и тесты
`displayname_test.go` не меняются
## 3. Вывод режиссёра в вью (httpapi)
- [x] 3.1 `download.go`: поле `downloadDetailView.Director`; в `buildDownloadView`
заполнить из `naming.EffectiveFields(d.ParsedContext, rd.Plan).Director`
- [x] 3.2 `review.go`: `view.Director` из `naming.EffectiveFields(rd.Download.
ParsedContext, rd.Plan).Director` вместо `rd.Plan.Director`
- [x] 3.3 `web/templates/partials/download_main.html`: поле «Режиссёр» —
`{{if .Director}}…{{else}}<span class="faint">—</span>{{end}}` вместо прочерка
## 4. Проверки и закрытие
- [x] 4.1 (опц.) httpapi-тест: режиссёр присутствует во вью страницы загрузки,
если инфраструктура тестов позволяет
- [x] 4.2 `task test` и `task lint` зелёные; `openspec validate --strict`
- [x] 4.3 Удалить `docs/tasks/items/rezhisser-v-kartochke-zagruzki.md` и строку в
индексе беклога `docs/tasks/BACKLOG.md`