- DECISIONS.md (4040 строк, 65 тем) → decisions/, файл на тему плюс указатель; - буквенные метки решений заменены сквозными Р1–Р234, следствия получили префикс С при прежних номерах: схема букв выродилась до пятибуквенных и сломалась — `АЕАКЛ` была занята и темой 53, и темой 65; - 42 перекрёстные ссылки переписаны под новые номера и стали живыми; где номер означал тему, а слово стояло «решение», формулировка исправлена.
7.2 KiB
55. task-pipeline стал resolve: два плановых стопа вместо полной автономии (2026-08-09)
Р203. Автоматическое решение задач агентом признано утопией — «работает, но
работает плохо», — и хуже того, автор перестал ориентироваться в собственном
процессе. Отсюда разворот: задачи решаются по одной, а в цикл возвращается
человек. task-batch удалён целиком; task-pipeline переписан в resolve.
Прежняя доктрина звучала «умолчание — делать, а не спрашивать», и она не
отменена, а ограничена. Полностью автономный прогон плох не тем, что ошибается,
а тем, что ошибку видно на готовом коде: развилка, стоившая бы абзаца до
propose, стоит переписывания после apply. Постоянное же согласование
возвращает ту цену, ради ухода от которой пайплайн и писался. Разрез поэтому по
месту, а не по важности решения: развилка, найденная до ближайшего чекпоинта,
копится в него; найденная после последнего — по-прежнему уходит вопросом в запись,
и задача доводится в объявленных границах.
Чекпоинтов два, и второй обязателен всегда.
- «варианты» — у исследовательской задачи, до первого требования. Признак
ветки не объём работы, а отсутствие одного очевидного способа решения:
обсуждать варианты после
proposeпоздно, предложение уже воплотило один из них, и разговор пойдёт не о выборе, а о переделке. Форма ограничена сверху — 2–4 варианта: больше четырёх человек не сравнивает, а признаёт неспособность сравнить и просит рекомендацию. - «объяснение» — у всякой задачи, после ревью дизайна. Порядок обоснован:
человек читает то, что уже просеяла машина, и не тратит внимание на выловимое
review-specs. Внимание здесь самый дорогой ресурс процесса.
Объяснение не стало новым артефактом, и это главная правка первоначального
замысла. Задумывалось отдельным разделом в design.md; при разборе оказалось,
что оно там было бы третьим домом одного и того же: в proposal.md уже есть
## Why («в чём проблема»), в design.md — рассмотренные варианты. Поэтому
объяснение собирается из двух существующих артефактов, а требование к их
форме уехало в openspec/config.yaml — rules.proposal и rules.design. Это
единственное место, применяющееся в момент написания, а не после.
Побочная выгода: design.md с названными причинами отказа — половина будущего
ADR, а промоут ADR читает именно архивный design.md.
Закрыт вопрос, висевший в плане открытым: что делает автоматический участок, когда ревью кода спорит с одобренным дизайном. Признак проверяемый — меняются ли дельта-спеки. Не меняются: находка внутри дизайна, дожимается сама. Меняются: решение стало другим, а одобрено было прежнее — разметка пересчитывается (правило уже было) и чекпоинт повторяется. Чекпоинт, который можно обойти находкой ревью, не значит ничего, и хуже того — человек уверен, что одобрил именно то, что уехало в коммит.
Удаление task-batch обошлось дороже своего каталога. На нём держались:
третий режим review-specs (стык после слияния) вместе с исключением «живого
change нет — берём источником актуальные спеки»; единственное исключение из
правила review-triage «плана нет — не запускаюсь»; и обоснование имени основной
ветки в каноне — «в неё вливает батч». Первые два — послабления, существовавшие
только ради батча, и с ним они исчезли, сделав оба правила строже.
Что из этого следует
С184. Автономность ограничивается местом, а не важностью решения. «Спрашивать о важном» неисполнимо: важность оценивает тот же, кто хочет закончить. «Копить до ближайшего планового стопа» проверяемо и не требует суждения.
С185. Чекпоинт ставится после машинной проверки, а не до неё. Внимание человека тратится только на то, чего машина не ловит; порядок наоборот сжигает его на выловимом и обесценивает саму остановку.
С186. Объяснение для человека не заводит своего артефакта. Если оно собирается из уже существующих, оно не может с ними разойтись; отдельный текст «то же, но понятнее» — третий дом, и расходится он молча.
С187. Послабление, введённое ради одного потребителя, уходит вместе с ним. Исключение переживает своего заказчика и выглядит общим правилом; удаляя потребителя, ищи его исключения — они и есть настоящий хвост.