Дополнение AI Diff Reviewer
Каждый Deep Work Plan завершается одинаково: обязательным Final Review, который прочитывает весь накопленный планом набор изменений, прежде чем работу можно будет считать сделанной. Проверка безопасности внутри него — последняя точка, где ещё можно что-то заметить. Без посторонней помощи единственный читатель в этот момент — тот же агент, который написал код.
Это дополнение сажает за тот же диф второго читателя. Оно подключает AI Diff Reviewer — в маркетплейсе он значится как “AI Diff Reviewer”, текущий релиз v3.3.14 — к проверке безопасности, где тот возвращает не прозу, а структуру: вердикт, таблицу находок и уровень серьёзности для каждой. Начиная с v3 находка critical означает, что верификатор дополнения подтвердил её вторым, опирающимся на код вызовом модели; блокировать завершение до исправления или явного принятия могут только подтверждённые критические находки. Этот обзор — шлюз, а не комментарий.
Начиная со стандарта 2.3.0 такой локальный обзор — часть базового уровня, а не дополнение. Онбординг его устанавливает, каждый Final Review его запускает. Опциональной остаётся CI-поверхность: Flow B, где тот же обзор контролирует pull request’ы через GitHub Action.
Граница, которая делает всё это безопасным для внедрения, проведена намеренно узко. Обозреватель — это skill под лицензией MIT, закреплённый за тегом и исполняемый тем самым кодовым агентом, который у вас уже работает, так что ни один поток Deep Work Plan не зависит от коммерческого сервиса, CI-провайдера или секрета. Flow A (только локально) получает каждый прошедший онбординг репозиторий; Flow B предлагается явно и никогда не устанавливается без запроса. Разработчик вправе и вовсе отказаться от обозревателя — отказ фиксируется как заявленное исключение, и verify сообщает о несоответствии репозитория по этому пункту, пока обозреватель не будет установлен.
Когда использовать
| Сигнал | Действие |
|---|---|
| Каждый прошедший онбординг репозиторий | Flow A устанавливается в фазе 7a онбординга (вендорённый skill + .review/extension.md); точечное обновление harness добавляет его в репозитории, прошедшие онбординг раньше |
| Команда хочет CI-шлюз для слияния PR со структурированными находками | Предложить Flow B — явное согласие, никогда не по умолчанию |
| Личный или экспериментальный репозиторий; локального обзора достаточно | Остаться на Flow A — базовый уровень полон |
Два потока принятия
| Поток | Что вы получаете |
|---|---|
| A — только локально (базовый уровень) | Вендорённый skill + обязательный .review/extension.md (через generate-extension). Запускает локальный обзор внутри проверки безопасности каждого Final Review. Без рабочего процесса GitHub Actions. |
| B — двойная поверхность | Flow A плюс setup записывает рабочий процесс обзора (Action @v3), тот же файл расширения для локальной и CI-проверки. Опциональные компаньоны apply-review и address-review после того, как CI публикует находки. |
Для обнаружения локального обзора требуется skill + файл расширения в одном из мест: .review/extension.md, .github/ai-diff-reviewer/extension.md или .github/ai-pr-reviewer/extension.md. Одного skill недостаточно.
Что подключает это дополнение (намеренно ограничено)
Дополнение DWP не изобретает обозревателя заново. Оно делегирует установку, методологию, мастер CI, создание расширений, составление PR и циклы обзора после CI шести подскиллам вышестоящего skill (родительский поток по умолчанию, generate-extension, setup, open-pr, apply-review, address-review).
Обязательный локальный обзор
create добавляет шаг локального обзора к проверке безопасности каждого Final Review, а execute его запускает. Вывод добавляется под ## AI Diff Reviewer local review в локальном для плана analysis_results/SECURITY_REVIEW.md (внутри собственной папки плана, никогда в корне репозитория).
- Отсутствующий обозреватель — фиксируется, никогда не пропускается тихо: отсутствующий skill или расширение становится находкой
local reviewer not installed; Final Review запускает локальный проход, когда skill установлен, иначе находка переносится в отчёт о завершении — установка принадлежит согласию онбординга или явному вызову адд-она, никогда не внезапная установка. - Мягкий сбой (только вызов): обзор, который смог стартовать, но завершился ошибкой → предупредить один раз, зафиксировать, продолжить; никогда не проваливать задачу из-за этого промаха.
- Шлюз после завершённого прохода: подтверждённые находки
criticalблокируют завершение Final Review до исправления или явного принятия (BC-07). Неподтверждённые критические утверждения приходят как аннотированные предупреждения — видимые и неблокирующие, покаstrict-unverified-criticals: trueне вернёт блокировку по утверждению. Обзор, упёршийся в лимит ходов (incomplete) или в лимит времени (timeout), не является чистым проходом при блокирующей строгости (BC-04).warning/infoдокументируются, но не блокируют. - Flow A не требует CI-секрета. Незаданный ключ провайдера не должен подавлять локальный проход.
CI-шлюз Flow B (опционально)
Action DailybotHQ/ai-diff-reviewer@v3, обычно блокированный меткой (ready), со стабильно именованным заданием AI review gate для защиты ветки и опциональной меткой пропуска skip-review-label: skip-ai-review. Начиная с v3 бюджет обзора следует детерминированному уровню риска изменения — 8/20/30/40 ходов от low до critical при budget-profile: auto (fixed на время перехода возвращает константы до v3), — а push, не меняющий кода, запускает раунд только с верификатором. Общие prompt.md + расширение согласовывают методологию и уровень серьёзности; локальная и CI-проверки остаются методологически идентичными, при этом раунды CI 2+ при Iteration-Aware Review могут быть короче, а локальный проход остаётся полным.
Опциональные компаньоны для обзора
Два вызываемых разработчиком подскилла замыкают цикл после того, как CI публикует обзор; ни тот ни другой никогда не является файлом задачи плана (это нарушило бы обязательный порядок финальных задач).
apply-reviewпроходит по находкам одну за другой (применить / отложить / пропустить) с согласия. Только чтение по умолчанию; никогда не делает коммитов и push.address-review(новый в v3.1.1) — это цикл в одно обращение: найти открытые PR ветки, проверить свежесть обзора для текущего head, представить находки с планом применить/отложить/пропустить, а затем — после одного «да» — применить, закоммитить малыми партиями Conventional Commits, сделать push и перевзвести обозревателя тем способом, каким репозиторий его запускает (по метке → переключить метку выкл/вкл; по push → подтвердить новый запуск). В отличие отapply-review, он делает коммиты и push; в этом смысл цикла. На агрегированных обзорах ансамбля он читает агрегированный документ и маркерai-pr-reviewer-aggregate.- Машинный путь — структурированный вывод, а не тело обзора: документ
review-output/3.0(.aiprr/review-output.json, находимый через выходыstructured-output-pathиstructured-output-sha256) несёт запись запуска, находки с доказательствами и верификацией, опровергнутые находки и шлюз. Тело обзора, в котором написаноRecommendation: approve, не является доказательством, что проверка прошла, — сначала прочитайте блок Highest severity / Strictness gate / Check status в маркере отслеживания.
Что изменилось в v3
Три релиза вышли 2026-09-24 (v3.0.0, v3.0.1, v3.1.0), за которыми последовал v3.1.1 с подскиллом address-review; затем v3.2.0 и v3.2.2 (2026-09-26) сделали этот цикл осведомлённым о CI и способным взводить PR, на котором обозреватель ещё не запускался. Ни один из них не меняет то, как это дополнение подключает обозревателя, — Flow A, три пути обнаружения и лесенка «никогда не блокировать» остались прежними, — но они меняют то, что получает тот, кто его внедряет.
| Изменение | Что это значит для репозитория DWP |
|---|---|
critical публикуется только после подтверждения (v3.0.0) |
Каждое заявленное критическое утверждение — плюс 30 % выборка предупреждений — проходит вторую короткую опирающуюся на код проверку отдельным вызовом модели (≈ 3 k токенов, 10 с и $0.009 на подтверждённую находку). Подтверждённые критические находки блокируют проверку безопасности; опровергнутые утверждения остаются видимыми как аннотированные предупреждения и перечисляются в структурированном выводе, никогда не публикуясь инлайн. |
| Бюджеты следуют уровню риска (v3.0.0) | 8/20/30/40 ходов от low до critical, выводимых из инвентаря изменений (budget-profile: auto). Push, не меняющий кода, запускает раунд только с верификатором за −93 % стоимости. budget-profile: fixed возвращает константы до v3 в 30 ходов. |
| Незавершённый обзор красный (v3.0.0) | incomplete (лимит ходов) и timeout (лимит времени) публикуют частичные находки и проваливают блокирующую строгость — «находок нет» теперь всегда означает, что обозреватель посмотрел и ничего не нашёл. |
| Структурированный вывод — машинный путь (v3.0.0) | Документ review-output/3.0 несёт запись запуска, инвентарь изменений, находки с типизированными доказательствами и верификацией, опровергнутые находки и шлюз. Читайте документ, а не соскребайте тела обзоров. |
| Шесть подскиллов (v3.1.1) | address-review присоединяется к роутеру: одно обращение применяет, коммитит, делает push и перевзводит обозревателя. |
| Цикл учитывает CI (v3.2.0, v3.2.2) | address-review также читает логи упавших workflow и исправляет их в том же согласованном проходе, обновляет ветку, отставшую от базовой, и взводит PR, на котором обозреватель ещё не запускался (простое «loop the review» нацелено на открытый PR текущей ветки). |
| Опциональный ансамбль (v3.0.0) | Ветки только для чтения mode: emit плюс одно задание aggregate однократно проверяют консолидированные находки и публикуют единый обзор. |
@v2 продолжает работать |
Линия v2 заморожена на release/v2 с шестью месяцами поддержки безопасности и каталога. v3 — рекомендация, никогда не принудительная миграция. |
Два из этих пунктов важнее остальных для методологии.
Шлюз подтверждённых критических находок укрепляет проверку безопасности. До v3 модель могла свободно заявить critical, и шлюз следовал заявлению. Теперь критическая находка в Final Review означает, что второй вызов модели подтвердил её по коду, и релизная кампания измерила разницу: 771 платный оценочный прогон в десяти кампаниях примерно за $83 в сумме, критический уровень достиг полноты 63/63 при точности 1.0 по итогам разбора, а инкрементальные раунды срезали входные токены на 62–76 %. Эти цифры — опубликованные upstream измерения, а не собственные измерения Deep Work Plan.
economy намеренно не дешевле. Бенчмарк upstream от 2026-09-16 показал у grok-4.3 0 из 5 известных дефектов — он одобряет, не проверяя, — тогда как grok-4.5 сравнялся с grok-4.6, найдя 3 из 5 без ложных срабатываний, при той же стоимости и вчетверо меньшем времени. Поскольку более дешёвой модели xAI, которая всё ещё действительно проверяет, не существует, economy разрешается в ту же модель, что и balanced, вместо того чтобы быть уровнем, который ничего не находит; на runner’е grok стоимость масштабирует бюджет ходов уровня риска, а не выбор модели. Поэтому путь xAI через CLI дорожает примерно с $0.07 до примерно $0.40–0.75 за обзор; С промпта v3.0 повторное измерение на 63 прогонах подняло grok-4.3 с 0 из 5 до 83 % полноты без ложных срабатываний и с ~31 % меньшей стоимостью — но он по-прежнему примерно втрое чаще grok-4.5 не записывает файл находок, поэтому grok-4.5 остаётся значением по умолчанию, а model: grok-4.3 — явным выбором с принятым компромиссом. Эти цифры — опубликованные upstream измерения, а не собственные измерения Deep Work Plan.
Поведение
- Flow A — базовый уровень; о Flow B спрашивают, никогда не угадывают. Установка рабочего процесса без запроса создаёт большую нагрузку, чем остаться на Flow A.
- Согласовывать, не затирать. Существующий skill, расширение или рабочий процесс обзора сохраняются; заполнять только пробелы.
- Аутентификация отложена. Секреты провайдера для CI настраивает сопровождающий; это дополнение никогда не хранит учётные данные.
- Нейтральность к провайдеру. Коммерческий сервис, CI-провайдер или секрет никогда не требуются; CI-поверхность — единственная часть, которая касается провайдера.
Примечания
Локальный обзор обязателен начиная со стандарта 2.3.0; CI-поверхность опциональна. Вышестоящий skill: DailybotHQ/ai-diff-reviewer. Руководство по миграции upstream: docs/MIGRATION_v3.md. Страница спецификации: Add-ons.