# 75. Хвост задачи — один агент: архивация и синк вместе (2026-08-23) ## Что было Хвост сценария решения шёл четырьмя вызовами подряд: `opsx:archive`, `av-dev:doc-sync`, `av-dev-git:commit`, `av-dev:task-track`. Первые два — письменная работа, и оба уже уходили агентам ([тема 72](72-writing-delegated-to-agents.md)), но **разными запусками**: два задания, два возврата и пауза оркестратора между ними. Замер по прогонам в проекте transcriber 22–23 августа: архивация 5 минут, синк документации 14 минут, паузы оркестратора между шагами хвоста — около 3 минут на прогон. В соседней сессии те же два шага, отданные одному агенту, заняли один запуск на 29 минут вместо двух. ## Решено **Р287. Архивация и синк уходят одному агенту, одним запуском.** Второй шаг читает ровно то, что оставил первый: `opsx:archive` вливает дельты в актуальные спеки, `av-dev:doc-sync` сверяет с ними документы канона. Разнесённые по двум заданиям, они дважды платят за сбор одного и того же контекста. **Р288. Порядок внутри задания назван, а не выведен.** Сначала `opsx:archive` с `openspec validate --strict` перед ним, затем `av-dev:doc-sync`. Синк по неархивированному change сверял бы документы с дельтами, которых в актуальных спеках ещё нет. **Р289. Гейт после правок документов доводит до зелёного тот же агент.** Многие проекты проверяют документы гейтом, и красный гейт остановил бы коммит следующим шагом — то есть отказ обнаружился бы у оркестратора, которому чинить его нечем без второго задания. **Р290. Коммит и закрытие задачи агенту не отдаются ни в одном сценарии.** Закрытие удаляет запись задачи и правит индексы, коммит уезжает в историю — оба необратимы для учёта. Оркестратор делает их сам, уже сверив план прогона с исходом; правило необратимого ([тема 72](72-writing-delegated-to-agents.md), Р268) остаётся в силе целиком. **Р291. Чек-лист синка — единственное исключение из «возврат не длиннее экрана»** ([тема 72](72-writing-delegated-to-agents.md), Р269). Он приходит целиком и целиком уезжает в доклад: тронутые документы поимённо, нетронутые — одной строкой с общей причиной. Сжатый своими словами, он теряет принуждённое отрицание, ради которого шаг и существует. **Р292. В обслуживании синк тоже уходит агенту.** Там он главный шаг сценария и идёт без архивации — change у обслуживания нет по построению. ## Следствия **С261. Требование принуждённого отрицания переехало в задание.** Раньше оно адресовалось оркестратору, который звал `doc-sync` сам; теперь его обязан нести текст задания — иначе возврат придёт перечнем тронутого, а тронутое без нетронутого неотличимо от невыполненного шага. **С262. Вычитку языка отдельным запуском больше не зовут.** `av-dev:doc-sync` зовёт `doc-wording` сам, по пачке правленых документов; в задании она не называется, потому что правило живёт в том скилле. **С263. Шагов в сценарии решения стало девять.** Архивация и синк слились в седьмой; коммит стал восьмым, закрытие задачи — девятым.