Files
transcriber/tasks/items/pipeline-spec-purpose-drift.md
T
av b76f2d7c7e docs: раскладка переехала в .av-dev.toml, а расхождения документов сведены
- Перевод на канон 1 доделан: адреса служебного файла и имена скиллов
  переставлены в девяти местах прозы и кода, гейт зовёт три скрипта по новым
  путям, прежние docs/.docs.json и tasks/.tasks.json удалены.
- Сверка двумя агентами нашла четырнадцать расхождений, тринадцать сведены
  строками: число прогонов ревью и преамбула журнала дефектов, счёт capability,
  маршруты README, дубли инварианта захвата и кодов прогона, протухшие указатели
  записок разведки, маркер долга на переехавшем абзаце. Срок жизни сессии
  нормирует спека access, database.md на неё ссылается.
- Purpose спеки pipeline объявляет неописанным то, что в ней же и стоит; правка
  идёт изменением openspec, поэтому заведена задача pipeline-spec-purpose-drift.
2026-08-13 12:36:36 +03:00

55 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🧹 Свести 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) уберёт из перечня
неописанного отмену контекста, когда доедет, — здесь эта строка остаётся на
месте.