Разведка была прологом к коду: три шага, чекпоинт вариантов — и вливание в
общую ветку. Своего исхода у неё не было, поэтому и писать в документы проекта
ей было незачем: ответ оседал в design.md будущего change.
- у разведки появился исход: ответ уезжает в документы канона, задачи заводятся
и уточняются, написанное коммитится, запись закрывается. Кода сценарий не
пишет вовсе, OpenSpec ему не нужен
- точка входа осталась одна, и сценарий выбирает скилл, прочитав постановку:
«есть ли очевидный способ решения» видно после чтения записи, и требовать
этого суждения от вызывающего значит требовать его раньше, чем оно возможно
- оба сценария лежат справочниками и одинаково — solve.md и research.md, — а в
SKILL.md остались вход, развилка и правила, не зависящие от сценария.
Асимметрия читалась бы как старшинство: сценарий в теле скилла выглядит
основным, а в справочнике — оговоркой
- переход между сценариями — событие с названным исходом: решение, упёршееся в
незнание способа, останавливается; разведка, выбравшая способ, доводится до
конца, а код идёт следующим прогоном, который запускает человек
- канон 14: у ADR два законных источника. У решения, принятого разведкой,
design.md нет по построению, и такое решение либо не попадало в adr/ вовсе,
либо попадало сочинённым заново
Правки по своему же ревью, до коммита:
- версия 14 была неполной — разрез проверки, вход и устав doc-consistency,
скелеты adr/README.md и template.md по-прежнему требовали ссылку на
design.md. Агент краснел бы на законной записи; скелеты уезжают в проекты,
поэтому запись журнала называет их поимённо
- canon.md объявлял себя двенадцатым, пережив версию 13. Литерал был третьим
домом числа при двух исправных — убран, а не поправлен
- сценарий разведки был недостижим там, где обещал работать: ready требует у
research оба раздела, включая «Куда ляжет ответ», а сценарий брался назначить
адрес сам. Адрес назначает автор записи; сценарий — только когда записи нет
- разведка коммитила без гейта, хотя правит документы канона и индексы задач
- при переносе выпало предупреждение про закрытие разведки без записанного
ответа — возвращено
- «готовность» значила и «запись можно брать», и «что считается сделанным»;
второй смысл стал «определением сделанного» — своё же правило про занятое
слово запрещало это прямо
- «пайплайн» жил в 24 местах вне журналов при том, что DECISIONS фиксирует
его уход «целиком»; рабочее имя — конвейер
- «чекпоинт» в review значил стадию и проход, в resolve — остановку человеку;
слово оставлено за остановкой
- у описания плагина было два дома, и три из четырёх уже разошлись. Сведены,
и класс закрыт машиной: frontmatter.py сверяет plugin.json с marketplace,
гейт разбужен на *.json
- README врал про односторонние зависимости и терял healthcheck на диаграмме
- перечень агентов в REMAINING отстал на два поколения
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Имя описывало устройство, а не предмет: «пайплайн» говорит, что внутри
конвейер, — а плагин занят кодом по задачам, и с появлением чекпоинтов
он уже не конвейер в чистом виде. Набор имён стал параллельным:
docs / tasks / code / git, каждое называет материал.
Заодно review-pipeline стал review — слово ушло из плагина целиком, а
не наполовину; скиллы выровнялись: resolve / review / openspec.
Журнал версий канона переписан вместе со всеми, DECISIONS.md — нет.
Разрез по типу высказывания, а не файла: наблюдение и причина
неприкосновенны, предписание и адрес обязаны оставаться исполнимыми.
Запись версии 10 велит «проверить, что плагин av-dev-pipeline
установлен» — проект, дошедший до неё, выполнил бы невыполнимое.