# Конвейер ревью и пайплайн задачи переезжают в плагины - **Дата:** 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](ADR-2026-07-23-review-pipeline-generative.md).** Форма конвейера, принятая там (детерминированный гейт первым, двунаправленная сверка со спекой, слой 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](../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](../review.md) → «Перестали проверять сознательно»; пересмотр — задача `quality-review-agents`. - `−` Версия конвейера больше не зафиксирована коммитом проекта: обновление плагина меняет ревью задним числом, и старый прогон не воспроизводится. Отчёт триажа в `openspec/changes//review/` остаётся единственным артефактом того, что реально проверялось. - `−` Проектная специфика теперь **обязана** быть в `docs/review.md`. Пустой или устаревший раздел там больше не компенсируется вшитой в промпт конкретикой — проход просто спросит общее вместо частного, и это будет незаметно. - `−` Появилась внешняя зависимость сборки процесса: без подключённого маркетплейса `av-dev-skills` пайплайн и ревью недоступны. Шаг `canon` в `task gate` по той же причине краснеет внятно, когда `docs.py` не найден.