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

2.5 KiB
Raw Blame History

1. Экспортируемое слоистое разрешение (naming)

  • 1.1 internal/naming: тип LabelFields (Title/Director/Year/Season string) с методом Label(), зовущим существующий Label(...)
  • 1.2 internal/naming: функция EffectiveFields(parsedContext string, plan recognize.Plan) LabelFields — перенести логику слоёв из worker.effectiveDisplayName (план → контекст; сводка сезонов плана → контекстный SeasonLabel); выбор слоя по сырым значениям, выбранные скаляры на возврате прогнать через sanitize (идемпотентно — Label() даёт прежний результат); битый parsed_context → пустой слой
  • 1.3 Юнит-тесты naming.EffectiveFields: режиссёр/год/сезон из плана; фолбэк на контекст; матч бьёт контекст; битый parsed_context; пустые значения; режиссёр из управляющих символов/лишних пробелов → .Director очищен и .Label() совпадает с прежним display_name

2. Переиспользование (worker)

  • 2.1 worker.effectiveDisplayName → тонкая обёртка naming.EffectiveFields(d.ParsedContext, plan).Label(); поведение и тесты displayname_test.go не меняются

3. Вывод режиссёра в вью (httpapi)

  • 3.1 download.go: поле downloadDetailView.Director; в buildDownloadView заполнить из naming.EffectiveFields(d.ParsedContext, rd.Plan).Director
  • 3.2 review.go: view.Director из naming.EffectiveFields(rd.Download. ParsedContext, rd.Plan).Director вместо rd.Plan.Director
  • 3.3 web/templates/partials/download_main.html: поле «Режиссёр» — {{if .Director}}…{{else}}<span class="faint">—</span>{{end}} вместо прочерка

4. Проверки и закрытие

  • 4.1 (опц.) httpapi-тест: режиссёр присутствует во вью страницы загрузки, если инфраструктура тестов позволяет
  • 4.2 task test и task lint зелёные; openspec validate --strict
  • 4.3 Удалить docs/tasks/items/rezhisser-v-kartochke-zagruzki.md и строку в индексе беклога docs/tasks/BACKLOG.md