# ✨ Оповещать владельца об отказе, не дожидаясь жалобы - **Тип:** feature - **Категория:** Очередь — Правило оповещения ставится на метрику, которой до этого нет. - **Зачем:** Об отказе владелец узнаёт от пользователя: правил оповещения нет ни на одной метрике, а метрики читают глазами. Владелец узнаёт об отказе сам. Берётся после `external-service-metrics` и `stalled-pipeline-metric`: правило оповещения ставится на метрику, а метрик, на которых его ставить, сегодня нет. Доставку берём ту же, что и пользовательскую, — apprise с ntfy: второй канал ради того же сообщения не заводим. ## Затрагивает - правила оповещения: где они живут — в сервисе или в выкладке `pet-project-server`, выбор входит в задачу; - секция конфигурации канала оповещения владельца; - `docs/architecture.md`, раздел эксплуатации — кто и о чём оповещает; - `CLAUDE.md` — запрет на выкладку остаётся: правила выкладывает человек. ## Критерии приёмки - Задача, ушедшая в `failed`, доходит до владельца сообщением. Оракул — тест с подставным каналом: после перевода задачи в `failed` канал получил сообщение с идентификатором задачи. - Сообщение не несёт ни текста расшифровки, ни имени файла пользователя. Оракул — тест: в отправленном теле только идентификаторы, длина и причина. - Недоступность канала оповещения не роняет конвейер. Оракул — тест: канал отвечает отказом, задача остаётся в прежнем состоянии, в журнале одна строка. ## Рамки Выкладку правил запускает человек — `inv pl -- transcriber` из `pet-project-server`. Пользовательские уведомления о готовности здесь не трогаем: их доставку заводят `ntfy-delivery` и `email-notification`.