- имя раздачи нормализуется на границе разбора: вырожденное `-`
(metainfo.NoName) даёт пустое имя, пробельное схлопывается — сентинел больше
не доходит ни до контекста распознавания, ни до source_ref, ни до подсказки
вывода имени
- контракт «на любом пути ошибки приёма результат нулевой» объявлен в ingest и
удерживается структурно; три транспорта перестали обещать идентификатор,
которого нет, и коррелируют отказ по request_id
- scoped-логгер загрузки ставится до вызова внешнего сервиса в семи командах
воркера — записи об отказе qBittorrent и метабаз получили download_id
и infohash; граница разбора bencode записана в docs/research
- закрыты few-shot на правках человека и eval-харнес с размеченным корпусом:
направление — тюнинг автоматического распознавания без участия человека
- цель распознавания переписана: точность видна по рабочему потоку, а не по
фиксированному корпусу
- поправлены ссылки на удалённые задачи в CLAUDE.md, review.md,
research/README.md и в задаче про confidence-гейт
- каталог задач: PLAN.md → ROADMAP.md с каноническими секциями, все 44
записи получили тип, заголовки приведены к форме своего типа
- расхождения, найденные судьями канона: исключения инварианта «источник
неприкосновенен», инвариант про один активный infohash, UTC в logging.md,
поведение из architecture.md заменено ссылками на спеки
- триггеры профиля ревью переписаны под умолчание standard
- Раскладка 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.