docs: проект переведён на канон документов версии 4
- каталог задач: PLAN.md → ROADMAP.md с каноническими секциями, все 44 записи получили тип, заголовки приведены к форме своего типа - расхождения, найденные судьями канона: исключения инварианта «источник неприкосновенен», инвариант про один активный infohash, UTC в logging.md, поведение из architecture.md заменено ссылками на спеки - триггеры профиля ревью переписаны под умолчание standard
This commit is contained in:
+23
-15
@@ -70,10 +70,12 @@ Go-сервиса и что здесь уже проскакивало. Устр
|
||||
снаружи LAN.
|
||||
- **«Ошибка на htmx-пути возвращает 200».** Так и задумано —
|
||||
[conventions/web-ui.md](conventions/web-ui.md).
|
||||
- **«Решение auto/review должно опираться на `confidence` модели».** Наоборот:
|
||||
авто только при подтверждённом матче в базе —
|
||||
- **«Решение auto/review должно опираться на `confidence` модели».** Неверно в
|
||||
форме «вместо матча»: авто только при подтверждённом матче в базе —
|
||||
[ADR-2026-06-13-auto-link-requires-db-match](adr/ADR-2026-06-13-auto-link-requires-db-match.md).
|
||||
Самооценка LLM плохо откалибрована и поддаётся инъекции.
|
||||
Самооценка LLM плохо откалибрована и поддаётся инъекции. Порог `confidence`
|
||||
при этом существует **дополнительным** блокирующим условием поверх матча —
|
||||
его наличие дефектом не является.
|
||||
- **«Копировать надёжнее, чем хардлинк» / «взять симлинк».** Хардлинк —
|
||||
осознанный выбор ради неприкосновенности источника и недублирования диска,
|
||||
[ADR-2026-06-13-hardlinks](adr/ADR-2026-06-13-hardlinks.md); copy — только
|
||||
@@ -129,19 +131,25 @@ Go-сервиса и что здесь уже проскакивало. Устр
|
||||
|
||||
### Триггеры профиля
|
||||
|
||||
Уточняет умолчания конвейера, не отменяет их.
|
||||
Уточняет умолчания конвейера, не отменяет их. Рабочее умолчание — `standard`;
|
||||
миграция схемы и публичный контракт ступень **не** поднимают: их проверяют
|
||||
проходы, которые в `standard` и так есть.
|
||||
|
||||
**Новым понятием или структурной единицей здесь считается** (→ `wide`): новый
|
||||
пакет `internal/*`; новая capability в `openspec/specs/`; новый транспорт приёма
|
||||
или уведомлений рядом с REST, веб-UI, ботом и CLI; новый провайдер метабазы за
|
||||
существующим интерфейсом; новое состояние в графе переходов загрузки; перенос
|
||||
ответственности между `worker`, `recognition`, `layout` и `store`.
|
||||
|
||||
**Правила идентичности, слияния и разбора живут здесь** (→ `deep`): владение
|
||||
раздачей по инфохэшу и сверка с qBittorrent (`ident`, `internal/store`,
|
||||
`state-reconciliation`); построение целевых путей и санитизация имён
|
||||
(`internal/layout`, `naming`); разбор недоверенного входа — bencode, magnet,
|
||||
текст контекста, ответ LLM (`internal/torrent`, `internal/magnet`,
|
||||
`internal/tgbot/parse.go`, разбор ответа модели); выбор кандидата метабазы и
|
||||
слияние его полей с догадкой LLM (`internal/metadata`, `metadata-match`);
|
||||
merge-раскладка при повторном добавлении раздачи.
|
||||
|
||||
- **`deep`** — есть миграция в `internal/store/migrations/`; появляется новый
|
||||
пакет `internal/*`; меняется сигнатура публичной команды воркера; трогается
|
||||
раскладка файлов, построение целевых путей или удаление ссылок; трогается
|
||||
разбор недоверенного входа.
|
||||
- **`standard`** — меняется поведение, видимое снаружи: REST-эндпоинт,
|
||||
htmx-путь, набор или семантика состояний загрузки, формат сообщения бота,
|
||||
поле конфига.
|
||||
- **`quick`** — всё остальное: локальный багфикс, документация, тесты.
|
||||
- **Независимая реализация (`reimpl`)** запускается, когда узел одновременно
|
||||
новый и имеет внешний оракул в виде спеки: новый парсер, новый провайдер за
|
||||
существующим интерфейсом, новая стадия конвейера распознавания.
|
||||
- «Поведение, видимое снаружи» здесь включает **тексты и карточки Telegram** —
|
||||
для единственного пользователя это и есть интерфейс.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user