## 1. worker — расширить гейт скана - [x] 1.1 В `internal/worker/worker.go` (`transitionErr`) заменить условие `state == store.StateDone` на проверку принадлежности `state` множеству `{done, reverted, deleted}` (небольшой предикат-хелпер для читаемости). Остальную механику скана (фоновый ctx, `capFileLayout`-scoped-логгер, неблокирующая горутина, `w.scanner != nil`) переиспользовать как есть. - [x] 1.2 Обновить поясняющий комментарий: скан не только «раскладка завершена», а «наши библиотечные хардлинки изменились» (разложены при `done`, сняты при `reverted`/`deleted`). ## 2. Тесты - [x] 2.1 `internal/worker/review_test.go`: тест, что скан стреляет на входе в `reverted` (после `Undo`). - [x] 2.2 Тест, что скан стреляет на входе в `deleted` (после `Delete`). - [x] 2.3 (Опц.) Негативный точечный тест: на входе, не меняющем наши ссылки, скан не дёргается. ## 3. Доки - [x] 3.1 `docs/specs/architecture.md` («Пересканирование Jellyfin» и строка «Решённые вопросы»): формулировку «при входе в `done`» заменить на «после раскладки (`done`) и после снятия наших ссылок (`reverted`/`deleted`)». - [x] 3.2 `docs/specs/workflow.md`: в описании `done` и снятия ссылок отразить, что скан дёргается и после Undo/Delete. ## 4. Ревью и сверка - [x] 4.1 `task test` и `task lint` зелёные. - [x] 4.2 Ревью кода (второй чекпоинт) перед archive. - [x] 4.3 `openspec validate 2026-07-17-jellyfin-scan-on-revert-delete --strict` зелёный. - [x] 4.4 Синк дельты в `openspec/specs/file-layout`, архив change; удалить `docs/backlog/jellyfin-skan-posle-udaleniya.md` и строку из индекса беклога.