# 🧹 Свести Purpose спеки pipeline с её же требованиями - **Тип:** chore - **Категория:** Очередь — Правка одного раздела спеки, но откладывать её значит держать нормативный документ противоречащим себе. - **Зачем:** Преамбула спеки объявляет сознательно неописанными пять требований, которые в ней же и стоят с 2026-08-12: читатель узнаёт границу нормы из раздела, который ей противоречит. Нашла сверка документов 2026-08-13. `Purpose` спеки `pipeline` перечисляет как сознательно неописанные захват задачи и срок его протухания, число попыток, состояние «мертва» и паузу перед повтором. Ниже в той же спеке эти требования стоят: их дописало изменение `pocketbase-storage` 2026-08-12, а преамбулу не поправило. Не переехала в спеку одна вещь — цепочка переходов `created` → `converted` → `transcribe` → `done` либо `failed`. Маркер долга в [architecture.md](../../docs/architecture.md) уже уточнён под это и называет неперехавшей именно цепочку, так что после правки `Purpose` два документа сойдутся. Материал для замены — формулировка из отчёта сверки: > Описаны: пустой прогон воркера, неделимость захвата и срок его протухания, > число попыток и состояние «мертва», условность записи результата по признаку > захвата, нарастающая пауза перед повтором. Сознательно не описаны: цепочка > переходов `created` → `converted` → `transcribe` → `done` либо `failed`, > отмена контекста посреди шага, освобождение ресурсов внешних клиентов. Это не > значит, что такого поведения нет: оно живёт в коде, а требования на него не > написаны, потому что требование без проверки — предположение, а не норма. > Первая задача, которая трогает любое из перечисленного, дописывает его сюда. ## Затрагивает - раздел `Purpose` в `openspec/specs/pipeline/spec.md` — требований спеки правка не касается, они уже написаны; - маркер долга о поведении в `docs/architecture.md` — как парная сторона утверждения о том, что ещё не переехало. ## Критерии приёмки - `Purpose` не называет неописанным ни одно требование, которое в спеке стоит. Оракул — построчная сверка перечня из `Purpose` с заголовками `Requirement` той же спеки: пересечения нет. - Спека остаётся годной для инструмента. Оракул — `openspec validate --strict` отрабатывает без отказа. - Маркер долга в `docs/architecture.md` и `Purpose` называют неперехавшим одно и то же. Оракул — чтение обоих мест подряд: перечни совпадают. ## Рамки Правится преамбула, а не требования: поведение сервиса задача не меняет и кода не трогает. Спека правится изменением openspec своим порядком, а не прямой правкой файла. Соседняя задача [context-cancel-in-pipeline](context-cancel-in-pipeline.md) уберёт из перечня неописанного отмену контекста, когда доедет, — здесь эта строка остаётся на месте.