AI Diff Reviewer 애드온
모든 Deep Work Plan은 같은 방식으로 끝납니다. 작업을 완료라고 부를 수 있기 전에, 그 계획이 쌓아 올린 변경 전체를 읽는 필수 Final Review입니다. 그 안의 보안 점검은 무언가를 붙잡을 수 있는 마지막 지점입니다. 도움이 없다면 그 시점의 유일한 독자는 그 코드를 작성한 바로 그 agent입니다.
이 애드온은 그 diff에 두 번째 독자를 앉힙니다. AI Diff Reviewer(마켓플레이스 등록명 “AI Diff Reviewer”, 현재 릴리스 v3.3.0)를 보안 점검에 연결해, 산문이 아니라 구조화된 결과를 돌려주도록 합니다. 판정, 발견 사항 표, 그리고 각 발견의 심각도입니다. v3부터 critical 발견은 애드온의 검증기가 두 번째이자 코드 기반인 모델 호출로 확인했다는 뜻이며, 검증된 크리티컬만 수정되거나 명시적으로 수용될 때까지 완료를 막습니다. 이 리뷰는 코멘트가 아니라 게이트입니다.
표준 2.3.0부터 이 로컬 리뷰는 부가 기능이 아니라 기준선의 일부입니다. 온보딩이 설치하고, 모든 Final Review가 실행합니다. 선택으로 남는 것은 CI 표면, 곧 Flow B입니다. 거기서는 동일한 리뷰가 GitHub Action을 통해 풀 리퀘스트를 게이트합니다.
이것을 안심하고 도입할 수 있게 하는 경계는 의도적으로 좁습니다. 리뷰어는 MIT 라이선스로 배포되고 태그로 고정된 skill이며, 이미 사용 중인 코딩 agent가 실행합니다. 따라서 어떤 Deep Work Plan 플로우도 상용 서비스나 CI 제공자, 비밀 값에 의존하지 않습니다. Flow A(로컬 전용)는 온보딩을 마친 모든 저장소가 받는 것이고, Flow B는 명시적으로 제안될 뿐 요청 없이 설치되지 않습니다. 개발자는 리뷰어 자체를 거절할 수도 있습니다. 그 거절은 선언된 예외로 기록되며, 설치될 때까지 verify가 해당 항목에 대해 저장소를 비적합으로 보고합니다.
사용 시기
| 신호 | 조치 |
|---|---|
| 온보딩된 모든 저장소 | 온보딩 7a 단계에서 Flow A가 설치됨(벤더 스킬 + .review/extension.md); 표적 하니스 업그레이드가 이전에 온보딩된 저장소에 이를 추가 |
| 팀이 구조화된 결과가 있는 CI PR 병합 게이트를 원함 | Flow B 제안 — 명시적 옵트인, 절대 기본값이 아님 |
| 개인 또는 실험적 저장소; 로컬 검토로 충분 | Flow A 유지 — 기준선은 완전합니다 |
두 가지 채택 플로우
| 플로우 | 제공 내용 |
|---|---|
| A — 로컬 전용(기준선) | 벤더 관리 스킬 + 필수 .review/extension.md(generate-extension 경유). 모든 Final Review의 보안 점검 안에서 로컬 리뷰를 실행. GitHub Actions 워크플로우 없음. |
| B — 이중 서피스 | Flow A에 추가로 setup이 리뷰 워크플로우(Action @v3)를 작성. 로컬 및 CI에 동일한 확장 파일 사용. CI가 발견을 게시한 후 선택적 apply-review와 address-review 컴패니언. |
로컬 리뷰 감지에는 다음 중 하나에 스킬 + 확장 파일이 필요합니다: .review/extension.md, .github/ai-diff-reviewer/extension.md, 또는 .github/ai-pr-reviewer/extension.md. 스킬만으로는 충분하지 않습니다.
이 애드온이 연결하는 내용(의도적으로 제한)
DWP 애드온은 리뷰어를 재발명하지 않습니다. 설치, 방법론, CI 마법사, 확장 작성, PR 초안 작성, CI 후 리뷰 루프를 업스트림 스킬의 6개 서브 스킬(부모 기본 플로우, generate-extension, setup, open-pr, apply-review, address-review)에 위임합니다.
필수 로컬 리뷰
create가 모든 Final Review의 보안 점검에 로컬 리뷰 단계를 추가하고 execute가 이를 실행합니다. 출력은 플랜 로컬 analysis_results/SECURITY_REVIEW.md(플랜 자체 폴더 안에 있으며 저장소 루트가 아님)의 ## AI Diff Reviewer local review 아래에 추가됩니다.
- 리뷰어 누락 — 기록됨, 절대 조용히 건너뜀 없음: 누락된 스킬이나 확장은
local reviewer not installed발견 사항이 됩니다. Final Review는 스킬이 있을 때 로컬 패스를 실행하고, 없을 때는 발견 사항을 완료 보고로 전달합니다 — 설치는 온보딩 동의 또는 명시적 애드온 호출에 속하며 절대 깜짝 부트스트랩이 아닙니다. - 소프트 실패(호출만): 시작할 수 있었지만 오류가 난 검토 → 한 번 경고하고 기록한 뒤 계속; 그 누락으로 작업을 실패시키지 않음.
- 완료된 패스 후 게이트: 검증된
critical발견 사항은 수정되거나 명시적으로 수락될 때까지 Final Review 완료를 차단합니다(BC-07). 검증되지 않은 크리티컬 주장은 주석 달린 경고로 도착합니다 — 보이지만,strict-unverified-criticals: true가 주장 기반 게이팅을 복원하지 않는 한 차단하지 않습니다. 턴 상한에 걸린(incomplete)이나 경과 시간에 걸린(timeout) 검토는 차단 엄격도에서 깨끗한 패스가 아닙니다(BC-04).warning/info는 문서화되지만 차단하지 않습니다. - Flow A는 CI 시크릿이 필요 없습니다. 설정되지 않은 프로바이더 키가 로컬 패스를 억제해서는 안 됩니다.
Flow B CI 게이트(선택적)
Action DailybotHQ/ai-diff-reviewer@v3, 일반적으로 레이블 게이트(ready), 브랜치 보호를 위한 안정적으로 명명된 AI review gate 작업, 옵트인 건너뜀 레이블 skip-review-label: skip-ai-review. v3부터 리뷰 예산은 변경의 결정적 위험 등급을 따릅니다 — budget-profile: auto 아래 low에서 critical까지 8/20/30/40 턴(fixed는 전환 기간 동안 v3 이전 상수를 복원) — 코드를 바꾸지 않는 푸시는 검증기 전용 라운드를 실행합니다. 공유 prompt.md + 확장으로 방법론 및 심각도 정렬; 로컬과 CI는 방법론 동일하게 유지되며, 반복 인식 검토에서 CI 2 라운드 이상이 더 짧을 수 있고 로컬 패스는 완전하게 유지됩니다.
선택적 리뷰 컴패니언
CI가 검토를 게시한 후 루프를 닫는 개발자 호출 서브 스킬 두 개; 둘 중 어느 것도 플랜 작업 파일이 아닙니다(필수 최종 작업 순서를 깨트림).
apply-review는 발견을 하나씩(적용 / 연기 / 건너뜀) 동의하에 검토합니다. 기본적으로 읽기 전용; 커밋이나 푸시를 하지 않습니다.address-review(v3.1.1의 신규)는 단일 호출 루프입니다: 브랜치의 열린 PR을 찾고, 검토가 현재 head에 대해 최신인지 확인하고, 적용/연기/건너뜀 계획과 함께 발견을 제시한 뒤, 한 번의 예를 받으면 적용하고 작은 Conventional Commits 배치로 커밋하고, 푸시하고, 저장소가 트리거하는 방식대로 리뷰어를 재무장합니다(레이블 게이트 → 레이블을 끄고 켬; 푸시 트리거 → 새 실행 확인).apply-review와 달리 커밋하고 푸시합니다; 그것이 이 루프의 요점입니다. 집계된 앙상블 검토에서는 집계 문서와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 % 표본 — 가 별도의 모델 호출로 두 번째이자 짧고 코드 기반인 검사를 받습니다(검증된 발견당 ≈ 3k 토큰, 10초, $0.009). 검증된 크리티컬은 보안 점검을 게이트합니다; 반박된 주장은 주석 달린 경고로 보이게 남고 구조화된 출력에 나열되며 인라인으로 게시되지 않습니다. |
| 예산은 위험 등급을 따름(v3.0.0) | 변경 인벤토리에서 도출된, low에서 critical까지 8/20/30/40 턴(budget-profile: auto). 코드를 바꾸지 않는 푸시는 −93 % 비용으로 검증기 전용 라운드를 실행합니다. budget-profile: fixed는 v3 이전의 30턴 상수를 복원합니다. |
| 미완료 검토는 빨강(v3.0.0) | incomplete(턴 상한)과 timeout(경과 시간)은 부분 발견을 게시하고 차단 엄격도에서 실패합니다 — “발견 없음”은 이제 항상 리뷰어가 살펴보고 아무것도 찾지 못했다는 뜻입니다. |
| 구조화된 출력이 머신 경로(v3.0.0) | review-output/3.0 문서가 실행 기록, 변경 인벤토리, 타입이 붙은 증거와 검증이 있는 발견, 반박된 발견, 게이트를 담습니다. 리뷰 본문을 긁어 모으는 대신 문서를 읽으십시오. |
| 6개 서브 스킬(v3.1.1) | address-review가 라우터에 합류합니다: 단일 호출이 적용, 커밋, 푸시, 리뷰어 재무장을 수행합니다. |
| 루프가 CI를 인식(v3.2.0, v3.2.2) | address-review는 실패한 워크플로 로그도 읽어 동의된 같은 과정에서 고치고, 기반 브랜치보다 뒤처진 브랜치를 업데이트하며, 리뷰어가 한 번도 실행되지 않은 PR을 시동합니다(단독 “loop the review”는 현재 브랜치의 열린 PR을 대상으로 합니다). |
| 선택적 앙상블(v3.0.0) | mode: emit 읽기 전용 실행 경로와 하나의 aggregate 작업이 통합된 발견을 한 번 검증하고 단일 리뷰를 게시합니다. |
@v2는 계속 작동함 |
v2 라인은 release/v2에서 동결되어 6개월간 보안 및 카탈로그 유지보수를 받습니다. v3가 권장이지 강제 마이그레이션이 결코 아닙니다. |
이 가운데 두 가지는 방법론에 특히 중요합니다.
검증된 크리티컬 게이트는 보안 점검을 단단히 합니다. v3 이전에는 모델이 critical를 자유롭게 주장할 수 있었고 게이트는 주장을 따랐습니다. 이제 Final Review의 크리티컬 발견은 두 번째 모델 호출이 코드에 대해 확인했다는 뜻이며, 릴리스 캠페인이 그 차이를 측정했습니다: 열 번의 캠페인에 걸친 771회의 유료 평가 실행, 총 약 $83, 크리티컬 등급의 63/63 재현율과 심사된 정밀도 1.0, 증분 라운드의 입력 토큰 62–76 % 절감. 이 수치는 업스트림이 공개한 측정값이며 Deep Work Plan이 직접 측정한 것이 아닙니다.
economy는 의도적으로 더 저렴하지 않습니다. 업스트림의 2026-09-16 벤치마크에서 grok-4.3은 알려진 결함 5건 중 0건을 찾아냈고(검토하지 않은 채 승인합니다), grok-4.5는 오탐 없이 3건을 찾아 grok-4.6과 동률을 이루면서 비용은 같고 소요 시간은 4분의 1이었습니다. 더 저렴하면서도 실제로 검토하는 xAI 모델이 없기 때문에, economy는 아무것도 찾지 못하는 등급이 되는 대신 balanced와 같은 모델로 해석됩니다. grok 러너에서 비용을 좌우하는 것은 모델 선택이 아니라 위험 등급의 턴 예산입니다. 그래서 CLI를 통한 xAI 경로는 리뷰당 약 $0.07에서 약 $0.40–0.75로 올라갑니다; v3.0 프롬프트 이후 63회 재측정에서 grok-4.3은 5건 중 0건에서 83 % 재현율, 오탐 없음, 약 31 % 낮은 비용으로 개선됐지만 — 발견 파일 작성에 실패하는 빈도가 여전히 grok-4.5의 약 3배라 grok-4.5가 기본값으로 남고 model: grok-4.3은 명시적인, 수용된 트레이드오프 선택으로 유지됩니다. 이 수치는 업스트림이 공개한 측정값이며 Deep Work Plan이 직접 측정한 것이 아닙니다.
동작
- Flow A가 기준선; Flow B는 물어보고 결정, 절대 추측하지 않음. 요청 없이 워크플로우를 설치하는 것은 Flow A에 머무는 것보다 더 큰 영향을 줍니다.
- 조정하고, 덮어쓰지 않음. 기존 스킬, 확장, 리뷰 워크플로우는 보존; 빈틈만 채움.
- 인증 연기. CI의 프로바이더 시크릿은 메인테이너가 구성; 이 애드온은 자격 증명을 저장하지 않음.
- 벤더 중립. 상업 서비스, CI 공급자, 시크릿이 결코 필요하지 않음; 프로바이더에 닿는 유일한 조각은 CI 표면입니다.
참고
표준 2.3.0부터 로컬 리뷰는 필수; CI 표면은 선택적. 업스트림 스킬: DailybotHQ/ai-diff-reviewer. 업스트림 마이그레이션 안내: docs/MIGRATION_v3.md. 스펙 페이지: Add-ons.