tasks: очередь расставлена от базы к деталям

- порядок беклога и роадмапа назначен слоями: проверки, которым можно
  верить → долги входа → владелец записи и контракт API → конвейер под
  тестами → приложение и возможности поверх; у каждого движения записана
  причина;
- заведены восемь задач под пункты «Завершения», которых не закрывала ни
  одна запись, — цель any-audio-source была без задач вовсе;
- у четырёх задач сняты критерии, требовавшие того, что делает задача ниже
  по очереди; исправлены ссылки на несуществующий repo/sqlite и на
  отменённую разведку об очереди.
This commit is contained in:
av
2026-08-12 20:48:53 +03:00
parent ddc34b3182
commit 8739b18a9f
73 changed files with 490 additions and 139 deletions
+42
View File
@@ -0,0 +1,42 @@
# ✨ Принимать видео и брать из него звуковую дорожку
- **Тип:** feature
- **Категория:** Очередь — Приём видео и отказ неизвестному формату ставятся на замеренный перечень.
- **Зачем:** Запись семейного архива приходит видеофайлом, а приём смотрит на аудио: человеку приходится доставать дорожку самому.
- **Теги:** goal:any-audio-source
Двигает пункты 2 и 3 «Завершения» цели: видеофайл принимается и из него берётся
звуковая дорожка, а формат, который принять нельзя, отклоняется на приёме
понятным текстом, а не отказом на конвертации через минуту.
Берётся после `audio-format-coverage-measure`: чем отклонять неизвестное, пока
неизвестно, что конвейер берёт.
## Затрагивает
- приём обоими входами: перечень допустимых типов содержимого и расширений;
- адаптер метаданных — распознавание дорожек в контейнере;
- команда конвертера: выбор звуковой дорожки из видео;
- метка формата в метрике — перечень известных форматов расширяется
([ADR](../../docs/adr/ADR-2026-08-11-known-format-label.md));
- `docs/passport.md` — граница «что принимаем» сдвигается на видео;
- `openspec/specs/intake/` — требование о принимаемых форматах.
## Критерии приёмки
- Видеофайл с одной звуковой дорожкой доходит до текста. Оракул — тест приёма и
конвертации на своём коротком видео из временного каталога.
- Видео без звуковой дорожки отклоняется на приёме понятным текстом и задачи не
заводит. Оракул — тест: файл без звука, ответ с причиной, в очереди пусто.
- Формат вне замеренного перечня отклоняется на приёме, а не висит в конвейере.
Оракул — тест на файле неизвестного типа: отказ приходит сразу.
- Расширение в журнале и метка в метрике остаются в перечне известных форматов.
Оракул — тест: на видео с новым контейнером в журнал уходит расширение из
перечня, а не сырое расширение файла, и метка метрики берётся из того же
перечня.
## Рамки
Видео с несколькими звуковыми дорожками берём первую, выбор дорожки человеком за
задачей не стоит. Потолок длины остаётся тем, что назначит цель
`long-recordings`.