32 lines
2.2 KiB
Markdown
32 lines
2.2 KiB
Markdown
# Дорожная карта
|
|
|
|
Черновик плана реализации. Ориентир, не обязательство; по ходу
|
|
уточняется. Что реализовано и как устроено — в `docs/specs`.
|
|
|
|
## Фазы
|
|
|
|
- **Ф0 — каркас.** go.mod, раскладка пакетов, загрузка TOML-конфига,
|
|
SQLite + миграции, slog-логи, Dockerfile (static → distroless),
|
|
golangci-lint, lefthook. Документация (этот этап — частично готов).
|
|
- **Ф1 — ingest + tracking (без LLM).** `Ingest()` + добавление в
|
|
qBittorrent (категория `jellybit`) + `worker`-поллинг завершения +
|
|
машина состояний. Наружу: HTTP API, список в веб-UI, `jellybit add`.
|
|
- **Ф2 — распознавание.** `go-ptn` + LLM (structured output) → план +
|
|
оценка уверенности. Без записи на диск.
|
|
- **Ф3 — раскладка + минимальный review.** Хардлинки по конвенциям
|
|
Jellyfin, субтитры, идемпотентность. Авто при высокой уверенности;
|
|
низкая → экран подтверждения (htmx).
|
|
- **Ф4 — метаданные.** TMDB/TVDB опционально, provider-id в именах,
|
|
валидация распознавания против числа серий.
|
|
- **Ф5 — Telegram + UX.** Бот-адаптер + парсер сообщений торрент-бота,
|
|
подтверждение в боте, триггер скана Jellyfin, нотификации.
|
|
- **Ф6 — деплой.** Static-образ/бинарь + обвязка в umbar
|
|
(`playbook-jellybit.yml`).
|
|
|
|
## Заметки по порядку
|
|
|
|
- Минимальный review-экран нужен уже в Ф3 (как только появляется режим
|
|
«спросить при сомнении»), полноценный UX — в Ф5.
|
|
- Jellyfin в umbar ещё не развёрнут — раскладку файлов это не блокирует,
|
|
тестируется без него; триггер скана подключаем, когда Jellyfin поднят.
|