Files
jellybit/docs/specs
avandClaude Opus 4.8 1639ebfdd7 Пересканирование Jellyfin: расширить триггер на reverted и deleted
Скан Jellyfin (POST /Library/Refresh) слался только при входе в done.
После Undo (reverted) и Delete (deleted) наши хардлинки сняты, а Jellyfin
держал битые записи до скана по расписанию.

Гейт скана в едином чекпоинте transitionErr переведён с state == done на
предикат triggersScan(state) по множеству {done, reverted, deleted}: гейт по
состоянию-цели естественно ловит пользовательские Undo/Delete и
reconcile-производный deleted, идемпотентно. target_missing/orphaned —
промежуточный рассинхрон (ждём relink/лечения) — исключены.

OpenSpec: заведена и влита дельта file-layout (требование
«Пересканирование Jellyfin после изменения библиотечных ссылок»); change
архивирован. Синк рукописных доков architecture.md/workflow.md. Тесты:
скан стреляет на reverted и deleted, молчит на входе вне множества.
Закрыта задача беклога jellyfin-skan-posle-udaleniya.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-17 21:14:18 +03:00
..

Спецификации

Живые документы о том, как устроена система — целевое и актуальное состояние. В отличие от ADR, спецификации изменяемы: их правят по мере развития проекта и держат в соответствии с кодом. В отличие от черновиков, описывают принятое и реализуемое, а не идеи.

Соглашения

  • Имя файла — kebab-topic.md, без дат (дата живёт в git-истории).
  • Одна спецификация — одна тема.
  • Если решение требует объяснения «почему именно так» с долгим следом — заведи ADR и сошлись на него из спецификации.

Записи

  • architecture.md — общее устройство: компоненты, транспорты, хранилище, раскладка, деплой.
  • workflow.md — жизненный цикл загрузки: машина состояний, переходы, сопоставление состояний qBittorrent.
  • recognition.md — распознавание контента и модель уверенности.
  • review-ux.md — ревью раскладки человеком: UI/UX-сценарии на случай, когда система не уверена.
  • jellyfin-layout.md — конвенции именования файлов Jellyfin, в которые раскладываем.