docs: проект переведён на канон документов версии 4
- каталог задач: PLAN.md → ROADMAP.md с каноническими секциями, все 44 записи получили тип, заголовки приведены к форме своего типа - расхождения, найденные судьями канона: исключения инварианта «источник неприкосновенен», инвариант про один активный infohash, UTC в logging.md, поведение из architecture.md заменено ссылками на спеки - триггеры профиля ревью переписаны под умолчание standard
This commit is contained in:
@@ -6,9 +6,6 @@
|
||||
Краткая выжимка и инварианты — в [CLAUDE.md](../../CLAUDE.md), раздел
|
||||
«Конвенции кода».
|
||||
|
||||
> Каркас. Загрузчик `internal/config/config.go` уже грузит TOML; валидация
|
||||
> на старте — в работе (`TODO`), обкатывается на следующем шаге.
|
||||
|
||||
## Принципы
|
||||
|
||||
- **Конфигурация — только TOML.** Env-переменные для конфига **не
|
||||
@@ -41,7 +38,7 @@
|
||||
```toml
|
||||
[worker]
|
||||
poll_interval = "5s" # как часто опрашивать qBittorrent; Go-duration (s/m/h)
|
||||
magnet_timeout = "30m" # ждать метаданные magnet не дольше; Go-duration
|
||||
magnet_timeout = "24h" # ждать метаданные magnet не дольше; Go-duration
|
||||
source_missing_threshold = 3 # тиков сверки без раздачи, чтобы счесть источник удалённым
|
||||
|
||||
[recognition]
|
||||
@@ -51,6 +48,11 @@ auto_confidence_threshold = 0.85 # порог авто-раскладки бе
|
||||
max_retries = 3 # попыток получить валидный ответ LLM; целое ≥ 0
|
||||
```
|
||||
|
||||
Значения в примере — иллюстрация формы комментария. Действующие умолчания и их
|
||||
смысл живут одним домом — таблица «Настройки с числовым значением» в
|
||||
[../database.md](../database.md); `config.example.toml` — источник истины по
|
||||
составу полей.
|
||||
|
||||
Секретные поля оставляем пустыми — значение приходит из деплоя (см.
|
||||
«Секреты»).
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Как мы устраиваем таблицы и ключи в SQLite. Актуальная схема —
|
||||
[../database.md](../database.md); обоснование выбора ULID —
|
||||
`openspec/changes/ulid-identity/design.md` (после архивации — в истории git).
|
||||
[архивный design.md change'а `ulid-identity`](../../openspec/changes/archive/2026-07-02-ulid-identity/design.md).
|
||||
|
||||
**Механизировано:** `AUTOINCREMENT` и `DEFAULT (datetime('now'))` в новых
|
||||
миграциях (`internal/archrules`), время мимо `store.Now()` (`forbidigo`).
|
||||
|
||||
@@ -97,7 +97,7 @@ jellybit — **приложение, а не библиотека**: внешн
|
||||
в review/failed: коллизия, рассинхрон, сбой ФС) и `reasons` распознавания,
|
||||
сохранённые в БД и показываемые на экране ревью и в Telegram-карточке. Это
|
||||
**операторская поверхность владельца**: сервис однопользовательский в
|
||||
доверенной LAN (см. [architecture.md](../architecture.md)), эти поля —
|
||||
доверенном контуре (см. [security.md](../security.md) → «Периметр»), эти поля —
|
||||
диагностический контекст для того, кто разбирает задачу. Здесь сырой текст
|
||||
ошибки (пути, фрагмент ответа LLM/qBittorrent) **допустим и полезен** — но:
|
||||
- **секреты запрещены** абсолютно (токены/ключи/пароли/`Authorization`) — так
|
||||
|
||||
@@ -74,9 +74,10 @@ OpenSpec-спеках (`### Requirement` с `SHALL`).
|
||||
- Поле — `time` (ключ по умолчанию `slog`).
|
||||
- UTC, RFC 3339 с долями секунды, суффикс `Z`:
|
||||
`2026-06-28T11:23:45.123456Z`.
|
||||
- Логи — **в UTC** (это явный TZ, не нарушает инвариант проекта): даёт
|
||||
однозначный порядок событий и лексикографическую сортировку. Бизнес-логика
|
||||
по-прежнему работает в `Europe/Moscow` — UTC только в логах.
|
||||
- Логи — **в UTC**, как и хранение в БД: это даёт однозначный порядок событий и
|
||||
лексикографическую сортировку. Часовой пояс есть только у **отображения** в
|
||||
веб-UI (`[general].timezone`, дефолт `UTC`) — см.
|
||||
[database.md](../database.md); бизнес-логика в локальной зоне не работает.
|
||||
|
||||
## Поля: словарь имён
|
||||
|
||||
|
||||
Reference in New Issue
Block a user