# Дорожная карта Черновик плана реализации. Ориентир, не обязательство; по ходу уточняется. Что реализовано и как устроено — в `docs/specs`. ## Фазы - **Ф0 — каркас.** go.mod, раскладка пакетов, загрузка TOML-конфига, SQLite + миграции, slog-логи, `Dockerfile` (минимальный рантайм-образ, копирует готовый бинарь), golangci-lint, lefthook. Документация (этот этап — частично готов). - **Ф1 — ingest + tracking (без LLM).** `Ingest()` + добавление в qBittorrent (источник отдаём ему, категория `jellybit`, ключ идемпотентности по infohash) + `worker`-поллинг завершения (трансляция `path_map`) + машина состояний. Наружу: HTTP API, список в веб-UI, `jellybit add`. - **Ф2 — распознавание.** `go-ptn` + LLM (structured output) → план + оценка уверенности. Без записи на диск. - **Ф3 — раскладка + минимальный review.** Хардлинки по конвенциям Jellyfin (санитизация пути, never-overwrite), субтитры, идемпотентность, **undo**. Авто только при матче в базе и чистой валидации; иначе → review (htmx): подсказка + перераспознавание, из ручного — тип, выбор кандидата базы, пометка «игнор». Полный редактор маппинга — Ф5. См. [review-ux.md](../specs/review-ux.md). - **Ф4 — метаданные.** TMDB/TVDB опционально, provider-id в именах, валидация распознавания против числа серий. - **Ф5 — Telegram + UX.** Бот-адаптер + парсер сообщений торрент-бота, подтверждение в боте (карточка + кнопки + reply-подсказка, эскалация в веб), полный редактор маппинга «файл → серия», триггер скана Jellyfin, нотификации. - **Ф6 — деплой.** Сборка статического бинаря здесь; доставка бинаря + `Dockerfile` на сервер, `docker build` и запуск на месте; оркестрация — `playbook-jellybit.yml` в umbar: `network_mode: host`, `user 1000:1000`, mount `/srv` + data-том `/srv/applications/jellybit/data`, healthcheck. ## Заметки по порядку - Минимальный review-экран нужен уже в Ф3 (как только появляется режим «спросить при сомнении»), полноценный UX — в Ф5. - Jellyfin в umbar ещё не развёрнут — раскладку файлов это не блокирует, тестируется без него; триггер скана подключаем, когда Jellyfin поднят.