Files
jellybit/docs/adr/ADR-2026-08-04-review-pipeline-to-plugin.md
av a4f5faae47 docs: ADR о переезде конвейера ревью в плагины
- Заведена запись ADR-2026-08-04: пайплайн и ревью переехали в
  av-dev-pipeline и av-dev-pm, причина — расхождение копий между
  jellybit и healthlog и переиспользуемость пайплайна.
- Упразднение прохода idiom записано отдельным последствием со ссылкой
  на «Перестали проверять сознательно» в docs/review.md.
2026-08-04 09:32:52 +03:00

8.4 KiB
Raw Permalink Blame History

Конвейер ревью и пайплайн задачи переезжают в плагины

  • Дата: 2026-08-04
  • Источник: DECISIONS.md §4 «Границы плагинов» (2026-08-03) и §7 «Раскладка скиллов» репозитория av-dev-skills (https://git.vakhrushev.me/av/dev-skills.git). Архивного design.md у этого решения нет: оно принималось в репозитории плагинов, а не change'ем jellybit — отсюда и отступление от правила «ADR это промоут поверх архивного design.md».

Не заменяет ADR-2026-07-23. Форма конвейера, принятая там (детерминированный гейт первым, двунаправленная сверка со спекой, слой generative-проходов, обязательный триаж с потолком 7, храповик «находка → правило → удаление», журнал и калибровка), остаётся в силе целиком. Пересматривается только где конвейер живёт и кому принадлежит, плюс одно частное следствие — судьба прохода про идиоматичность.

Решение

Конвейер ревью, пайплайн задачи и пайплайн партии задач перестают быть артефактами jellybit и переезжают в плагины маркетплейса av-dev-skills:

  • av-dev-pipeline — исполнение: SDD-цикл (task-pipeline, task-batch) и конвейер ревью с девятью агентами;
  • av-dev-pm — управление продуктом: канон документов (canon, docs), задачи и цели (tasks), ритуал спринта (session);
  • av-dev-git — стиль коммитов.

Из репозитория удалены 11 агентов jellybit-review-* (1159 строк) и три скилла с их справочниками (932 строки). Проектная специфика, которая раньше была вшита в промпты агентов, теперь приходит из документов канона — прежде всего из docs/review.md: типовые узлы, типовые ложноположительные, вопросы к проходам, триггеры профиля, недоступное проверке.

Почему

Причина словами владельца, из источника:

«пайплайн можно и переиспользовать в других проектах с более простым подходом к управлению»

и разбор, который её подтверждает:

Пайплайн зависит от файлов канона и от OpenSpec, а не от плагина av-dev-pm. В чужом проекте нужных файлов нет — включается поразрядная деградация, и это штатный режим, а не поломка.

Второе: копия конвейера жила не только здесь. Те же скиллы и агенты лежали в healthlog, и копии успели разойтись — правка, сделанная в одном проекте, во второй не приезжала никогда. Скилл, который правят в двух местах, работает в том из них, куда заглянули последним; это ровно та болезнь, которую канон лечит правилом единственного дома, и на процессных артефактах она проявилась раньше, чем на документах.

Третье: разделение плагинов по симметрии «раскладка и содержимое» — canon/docs для документов, tasks/session для задач — сняло конфликт владения docs/tasks/, из-за которого прежний av-dev-backlog и пайплайн претендовали на один каталог.

Рассмотренные варианты

  • Оставить копию в проекте, синхронизировать руками. Отвергнуто фактом: именно это и делалось, и копии разошлись. Ручная синхронизация двух проектов не имеет ни оракула, ни момента, когда её обязаны выполнить.
  • Один общий плагин на всё. Отвергнуто: пайплайн переиспользуем в проекте, который канон av-dev не ведёт, а канон полезен там, где нет OpenSpec. Один плагин связал бы их жёстче, чем они связаны по существу.
  • Держать в проекте только агентов, а скиллы вынести. Отвергнуто: агенты и есть содержание конвейера; вынести оболочку, оставив начинку, значит получить ту же расходящуюся копию, только менее заметную.

Последствия

  • + Правка конвейера делается один раз и приезжает во все проекты; расхождение копий структурно невозможно.
  • + Из промптов агентов ушла проектная специфика — она читается из документов канона, поэтому обновляется вместе с проектом, а не отдельной правкой девяти промптов.
  • + -2091 строка процессных артефактов в репозитории; репозиторий описывает jellybit, а не то, как над ним работают.
  • Проход idiom упразднён. Поимённая сверка с положениями Effective Go, Go Code Review Comments и стайлгайдов Uber/Google не задаётся теперь ни одним проходом; способные части переселены (эксперимент против поведения библиотеки и драйвера — в ops, «не изобретаем ли то, что уже есть в библиотеке» — в architecture). Различение «идиоматично против распространено» не спрашивает никто. Класс обратимый — портит форму кода, не данные. Записано в docs/review.md → «Перестали проверять сознательно»; пересмотр — задача quality-review-agents.
  • Версия конвейера больше не зафиксирована коммитом проекта: обновление плагина меняет ревью задним числом, и старый прогон не воспроизводится. Отчёт триажа в openspec/changes/<id>/review/ остаётся единственным артефактом того, что реально проверялось.
  • Проектная специфика теперь обязана быть в docs/review.md. Пустой или устаревший раздел там больше не компенсируется вшитой в промпт конкретикой — проход просто спросит общее вместо частного, и это будет незаметно.
  • Появилась внешняя зависимость сборки процесса: без подключённого маркетплейса av-dev-skills пайплайн и ревью недоступны. Шаг canon в task gate по той же причине краснеет внятно, когда docs.py не найден.