16. AI 협업 코드리뷰 가이드

0. 먼저 알고 가기 (30초 요약)

  • AI 제안은 작업 속도를 올리지만 최종 판단은 사람의 맥락 이해입니다.
  • 제안은 테스트/근거/리스크를 분리해서 검토하면 오탐을 줄입니다.
  • 사람의 리뷰가 지표와 정책을 통과하면 바로 반영, 아니면 재요청하세요.

왜 중요한가: AI 리뷰는 노이즈를 줄이고 사람의 주의력을 위험 구간에 모으는 도구입니다. 사람의 승인 책임을 대체하면 사고가 났을 때 책임 소재가 사라집니다.

일상 비유: 공장의 자동 검사 라인과 같습니다. 카메라(AI)가 1차로 결함을 걸러주지만, 출고 전 최종 인장 도장은 검사관(사람)이 찍습니다.

초심자용 한눈에 보기

AI는 속도 보조 도구이지 최종 결정권이 아닙니다. 사람이 최종 판단합니다.

flowchart LR
  D[작성자] -->|작은 PR| AI[AI 1차 리뷰]
  AI -->|시그널 정리| H[사람 reviewer]
  H -->|blocking 해결 확인| O[Code Owner 승인]
  O --> M[Merge + 모니터링]

핵심 용어 빠르게 정리

용어 쉬운 뜻
AI 제안 생성된 수정안이나 리뷰 코멘트
근거 링크 변경 이유를 뒷받침하는 문서/로그
triage finding 분류(즉시 반영/보류/제거)
검증 로컬 테스트, 리뷰, 정책 검토로 실제 동작 확인
인수인계 AI 제안을 사람이 최종 승인/결정하고 반영하는 과정
분류 협업 & 품질 상태 Stable
연관 가이드 07. 테스팅, 15. 의사결정, 18. AI 워크플로우 도구 원칙 벤더 중립
핵심 테마 작은 PR, 리뷰 기준, AI 보조 검토, Conventional Comments, merge 책임 Update 최신 기준

코드리뷰 표준은 특정 AI 리뷰 서비스가 아니라 변경 의도, 위험도, 검증 증적, 사람의 책임 있는 승인을 일관되게 남기는 협업 방식입니다.


추천 항목 (실무 우선순위)

  • 시작 추천: AI 제안 요청 템플릿을 만들고 근거 링크/테스트 산출물을 함께 요구하세요.
  • 안정 추천: PR template에 사람 최종 승인 라인과 리스크 사전 검토를 넣어 오탐을 줄입니다.
  • 운영 추천: 반복 오류는 같은 루프에서 반복하지 않도록 체크리스트 자동화로 학습합니다.

추천 항목 고도화 체크

  • 첫 적용 — AI finding triage와 사람 승인 책임 중 하나를 실제 PR이나 운영 이슈에 붙이고, 변경 전 기준을 먼저 적는다.
  • 증거 정리 — finding disposition, 최신 head SHA review, 사람 reviewer 승인를 같은 작업 기록에 남긴다.
  • 재점검 — false positive, 미해결 thread, 재리뷰 횟수가 나아졌는지 30일 안에 확인하고 기준을 유지, 수정, 폐기 중 하나로 판정한다.

추천 항목 실행 기록 템플릿

  • 작업 : AI finding triage와 사람 승인 책임 적용 범위를 어느 화면, 패키지, 문서에 둘지 적는다.
  • 증거 : finding disposition, 최신 head SHA review, 사람 reviewer 승인 중 실제로 남긴 항목만 링크한다.
  • 판정 : 유지/수정/폐기 중 하나와 이유를 한 문장으로 남긴다.
  • 다음 점검 : false positive, 미해결 thread, 재리뷰 횟수를 다시 볼 날짜와 담당자를 지정한다.

문서 책임 범위

이 문서가 결정하는 것 단일 출처로 따르는 문서
PR 크기, 리뷰 관점, merge 책임, Conventional Comments 15. 의사결정, 11. CI/CD
테스트/보안/성능/접근성 증적을 리뷰에서 확인하는 기준 07. 테스팅, 06. 보안, 08. 성능, 19. 웹 접근성
AI 보조 리뷰의 non-blocking/blocking 판단 기준 18. AI 개발 워크플로우
신규 구성원이 리뷰 기준을 학습하는 경로 17. 온보딩

0. 모든 프론트엔드 그룹 공통 Baseline

영역 공통 기준 실패 시
PR 크기 리뷰 가능한 작은 단위로 분리 분할 요청
변경 의도 문제, 해결 방식, 영향 범위, 검증 방법 기재 리뷰 보류
자동 검증 lint, type, test, build, security gate 통과 merge 차단
리뷰 관점 correctness, security, performance, accessibility, maintainability 누락 관점 추가 요청
AI 역할 초안 검토, 위험 후보 제안, 테스트 누락 탐지 사람 승인 전 참고만
책임 최종 merge 책임은 reviewer와 owner에게 있음 AI 단독 승인 금지
증적 중요한 논의와 결정은 PR/RFC/ADR에 남김 추적 불가 시 보완

0.0 리뷰 플로우(사람+AI)

flowchart TD
  A[PR 생성] --> B[자동 체크 lint/type/test/security]
  B --> C{필수 게이트 통과}
  C -->|실패| D[작성자 수정]
  D --> B
  C -->|통과| E[AI 보조 리뷰]
  E --> F{블록킹 여부}
  F -->|있음| G[수정 후 재요청]
  G --> E
  F -->|없음| H[Review/Owner 승인]
  H --> I[Merge]
  I --> J[배포 후 모니터링]
  J --> K[피드백 반영]

0.0.1 사람과 AI의 역할 분담

flowchart TB
  subgraph AI역할["AI가 잘하는 영역"]
    A1[diff 요약]
    A2[테스트 누락 후보]
    A3[보안/접근성 체크리스트]
    A4[유사 패턴 검색]
    A5[PR 분할 제안]
  end
  subgraph Human역할["사람이 책임지는 영역"]
    H1[비즈니스 의도 확인]
    H2[보안/규제/계약 판단]
    H3[Merge approval]
    H4[운영 rollback 책임]
    H5[ADR/RFC 결정 기록]
  end
  AI역할 -.근거 제공.-> Human역할
  Human역할 -.피드백/규칙 보정.-> AI역할

비유: 의료 영상 판독 보조 AI와 같습니다. AI가 의심 영역을 강조해주지만, 진단서 서명은 의사가 합니다.

0.1 교차 검증 매트릭스

권고 1차 출처 실행 증거 운영 증거 철회 조건
작은 PR 코드리뷰 연구와 팀 cycle time PR size report escaped defect, review latency 대형 변경은 stacked PR로 분할
AI 보조 리뷰 18. AI 워크플로우 정책 AI finding 재현 test false positive/false negative 검증 없는 AI blocking 금지
Merge 책임 CODEOWNERS/ownership 기준 approval record rollback/incident owner 추적 owner 불명확 PR merge 금지

0.1.1 AI finding 처리 판정표

flowchart TD
  START["AI finding 도착"] --> REPRO{"재현 가능한가?"}
  REPRO -->|"아니오"| LABEL_FALSE["false positive로 표시<br/>규칙 보정 후보 등록"]
  REPRO -->|"예"| RISK{"보안/데이터/접근성/성능<br/>위험인가?"}
  RISK -->|"예"| BLOCK["blocking finding<br/>수정 또는 명시적 거절 사유 필요"]
  RISK -->|"아니오"| TEST{"테스트나 로그로<br/>확인 가능한가?"}
  TEST -->|"예"| FOLLOW["follow-up 또는 현재 PR 반영"]
  TEST -->|"아니오"| HUMAN["사람 reviewer 판단으로<br/>non-blocking 처리"]
  BLOCK --> VERIFY["수정 commit + 최신 head 재리뷰"]
  FOLLOW --> VERIFY
  VERIFY --> OWNER{"owner 승인 완료?"}
  OWNER -->|"예"| MERGE["merge 가능"]
  OWNER -->|"아니오"| WAIT["승인 대기"]

0.2 운영 게이트

Gate Evidence Owner Rollback
PR readiness 변경 의도, 위험도, 검증 결과, 관련 링크 Author draft 전환 또는 PR 분할
AI review 재현 가능한 finding, test/link, false-positive 표시 Reviewer AI 코멘트 non-blocking 처리
Merge approval owner approval, 품질 gate, rollback owner Code owner merge 보류 또는 revert owner 지정
Review latency review SLA, PR size, blocking reason Team lead reviewer 재배정 또는 stacked PR 전환

1. PR 작성 기준

항목 작성 기준
Summary 무엇을 바꿨는지 3줄 이내
Motivation 왜 필요한 변경인지
Scope 포함/미포함 범위
Risk 사용자 영향, rollback 난이도, migration 여부
Test 실행한 테스트와 결과
Screenshot/Trace UI 변경, E2E, 성능 변경 증적
Links 관련 issue, RFC, ADR, design, incident

좋은 PR 설명은 reviewer가 코드를 열기 전에 위험도를 판단할 수 있게 합니다.


2. 리뷰 관점

관점 질문
Correctness 요구사항을 실제로 만족하는가, edge case가 처리되는가
Type safety API boundary와 external input이 검증되는가
Security 인증/인가/secret/PII/XSS/CSRF 위험이 없는가
Performance 렌더링, bundle, network, cache 비용이 증가하지 않는가
Accessibility keyboard, focus, name/role/value, contrast가 유지되는가
Reliability 실패 상태, retry, fallback, rollback이 있는가
Maintainability ownership, layering, naming, duplication이 적절한가
Testability 변경 위험에 맞는 테스트가 있는가

리뷰어는 취향보다 기준을 근거로 코멘트합니다. 기준이 없다면 새 표준/RFC 후보로 올립니다.


3. AI 리뷰 사용 기준

왜 중요한가: AI 리뷰를 무차별 적용하면 false positive로 리뷰 피로가 누적되고, 결국 정작 중요한 경고도 무시되는 "양치기 소년" 상태가 됩니다.

AI는 다음 작업에 유용합니다.

  • diff 요약과 위험 후보 정리
  • 누락된 테스트 케이스 제안
  • 보안/성능/접근성 체크리스트 적용
  • 큰 PR 분할 제안
  • RFC/ADR과 구현의 일치 여부 점검

AI 사용 제한:

  • AI 코멘트는 merge approval이 아닙니다.
  • AI가 만든 수정안은 로컬 테스트와 사람이 읽는 리뷰를 거칩니다.
  • private code, secret, 고객 데이터, 내부 로그는 정책에 맞게 마스킹합니다.
  • AI가 찾은 문제는 재현 코드, 테스트, 링크 중 하나로 검증합니다.

3.1 AI finding triage 흐름

flowchart TD
  F[AI finding] --> Q1{재현 가능한가}
  Q1 -->|아니오| REJECT[reject<br/>오탐 마킹 + 규칙 보정 후보]
  Q1 -->|예| Q2{현재 PR<br/>범위 내인가}
  Q2 -->|아니오| FU[follow-up<br/>issue + owner + due date]
  Q2 -->|예| Q3{기존 정책/ADR과<br/>충돌하는가}
  Q3 -->|예| REJECT_DOC[reject<br/>근거 문서 링크 첨부]
  Q3 -->|아니오| Q4{blocking 위험인가}
  Q4 -->|예| ACCEPT_B[accept blocking<br/>수정 + 테스트 추가]
  Q4 -->|아니오| ACCEPT_S[accept suggestion<br/>작성자 판단]
  ACCEPT_B --> COMMIT[수정 commit + 검증 명령]
  ACCEPT_S --> COMMIT
  REJECT --> RULE[규칙 보정 backlog]
  REJECT_DOC --> RULE

비유: 우편물 분류와 같습니다. 광고지(reject), 다음 주 처리할 청구서(follow-up), 즉시 처리할 등기우편(accept blocking)으로 나누어야 책상이 정돈됩니다.


4. Conventional Comments

리뷰 코멘트는 의도를 분명히 합니다.

Prefix 의미
blocking: merge 전 반드시 해결
suggestion: 개선 제안, 작성자 판단 가능
question: 의도 확인
nit: 사소한 스타일/표현
praise: 좋은 패턴 강조
thought: 장기 개선 아이디어
blocking: 이 API 응답은 외부 입력이므로 runtime validation이 필요합니다.
테스트에는 잘못된 enum 값이 들어왔을 때 fallback되는 케이스도 추가해 주세요.

5. PR 크기와 분할

왜 중요한가: PR 크기는 리뷰 누락률과 거의 선형으로 관련됩니다. 큰 PR은 reviewer가 끝까지 보지 않고 LGTM을 누를 위험이 큽니다.

크기 기준 정책
XS 50줄 이하 빠른 승인 가능
S 200줄 이하 권장
M 400줄 이하 변경 의도와 테스트 명확해야 함
L 800줄 이하 분할 검토
XL 800줄 초과 원칙적으로 분할

큰 변경은 preparatory refactor -> behavior change -> cleanup 순서로 나누면 리뷰가 쉬워집니다.

5.1 PR 크기와 리뷰 시간/결함의 상관

flowchart LR
  XS[XS<br/>~50줄] -->|리뷰 5~15분<br/>결함 검출 높음| Q[정상 머지]
  S[S<br/>~200줄] -->|리뷰 15~30분<br/>핵심 logic 추적 가능| Q
  M[M<br/>~400줄] -->|리뷰 30~60분<br/>피로 누적 시작| Q
  L[L<br/>~800줄] -->|리뷰 1~2시간<br/>스킵 위험| WARN[분할 권장]
  XL[XL<br/>800줄+] -->|LGTM 의례화<br/>escaped defect 급증| SPLIT[필수 분할]

비유: 식사량과 같습니다. 한 끼에 한 끼분만 먹어야 소화가 됩니다. 일주일치를 한 번에 먹으면 탈이 납니다.

5.2 큰 PR 분할 전략

flowchart TB
  BIG[큰 변경 1개<br/>800줄+] --> P1[1. preparatory refactor<br/>동작 변경 없음, 테스트 그대로 통과]
  P1 --> P2[2. behavior change<br/>실제 로직 변경, 테스트 새로 추가]
  P2 --> P3[3. cleanup<br/>죽은 코드/dead config 제거]
  P3 --> DONE[모든 단계 reviewable]

6. Merge 기준

조건 기준
Gate 필수 CI 통과
Approval 코드 owner 또는 책임 reviewer 승인
Discussion blocking thread 해결
Documentation 표준/RFC/ADR 영향이 있으면 문서 업데이트
Release feature flag, migration, rollback 계획 확인
Ownership 배포 후 모니터링 owner 확인

승인은 "읽었다"가 아니라 "이 변경을 해당 위험도로 배포해도 된다고 판단했다"는 의미입니다.


7. 리뷰 메트릭

왜 중요한가: 메트릭이 없으면 "리뷰 잘하고 있다"는 감각만 남고, 어디가 막혔는지 데이터로 말할 수 없습니다.

지표 목적
PR size 리뷰 가능성 관리
Time to first review 병목 확인
Rework count 요구사항/설계 불명확성 탐지
Escaped defects 리뷰 품질 확인
Flaky gate rate 자동화 신뢰도 관리
Review coverage owner 없는 영역 탐지

메트릭은 사람 평가보다 프로세스 개선에 사용합니다.

7.1 PR 상태 다이어그램

stateDiagram-v2
  [*] --> Draft: 작성 시작
  Draft --> Open: ready for review
  Open --> CIRunning: 자동 게이트 진행
  CIRunning --> CIFail: 실패
  CIRunning --> AIReview: 통과
  CIFail --> Draft: 수정 필요
  AIReview --> ChangesRequested: AI/사람 blocking
  AIReview --> ApprovedReady: blocking 없음
  ChangesRequested --> Draft: 작성자 수정
  ApprovedReady --> Merged: owner approval
  Merged --> Monitored: 배포/모니터링
  Monitored --> [*]: 안정
  Monitored --> Reverted: 회귀 감지
  Reverted --> Draft: 재설계

8. 체크리스트

  • [ ] PR 설명에 변경 의도, 영향 범위, 테스트 결과가 있는가
  • [ ] 변경 크기가 리뷰 가능한 단위인가
  • [ ] 보안/성능/접근성/장애 대응 관점이 검토되었는가
  • [ ] AI 리뷰 결과를 사람이 검증했는가
  • [ ] blocking 코멘트가 모두 해결되었는가
  • [ ] 문서/RFC/ADR 업데이트가 필요한 변경인지 확인했는가
  • [ ] 배포 후 모니터링 owner가 명확한가

9. 제외한 벤더 종속 항목

공통 개발 가이드에는 특정 코드리뷰 SaaS, 특정 SCM bot, 특정 AI 에이전트 제품, 특정 가격/벤치마크, 특정 PR 자동화 action을 팀 표준으로 강제하지 않습니다. 다만 도구를 도입한 저장소가 일관되게 운영할 수 있도록 CodeRabbit 같은 AI 리뷰 도구의 설정 예시는 선택 가이드로 제공합니다.


10. CodeRabbit 설정 운영 예시

CodeRabbit은 사람 리뷰를 대체하지 않고 PR 초안 검토, 반복 품질 규칙, 경로별 체크리스트를 자동으로 상기시키는 도구로 사용합니다.

10.1 .coderabbit.yaml 기본값

# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
language: ko-KR
tone_instructions: '간결하게, 파일/라인 근거와 재현 가능한 검증 명령을 우선한다.'
early_access: false

reviews:
  profile: assertive
  request_changes_workflow: false
  high_level_summary: true
  review_status: true
  review_details: true
  auto_review:
    enabled: true
    drafts: false
  path_filters:
    - '!dist/**'
    - '!node_modules/**'
    - '!coverage/**'
    - '!public/mockServiceWorker.js'
    - 'src/**'
    - 'public/개발가이드/**'
  path_instructions:
    - path: 'src/**/*.test.{ts,tsx}'
      instructions: 'MSW handler가 실제 API 계약과 같은 fixture를 쓰는지, 성공/실패/empty/error 경로가 모두 있는지 확인한다.'
    - path: 'src/**/api/**/*.{ts,tsx}'
      instructions: 'hidden side effect, 인증 wrapper 이름, Result/error 반환 계약, timeout/retry/idempotency 정책을 확인한다.'
    - path: 'public/개발가이드/**/*.md'
      instructions: 'Frontend Fundamentals의 가독성, 예측 가능성, 응집도, 낮은 결합도 기준과 PR 완료 기준이 실무적으로 연결되는지 확인한다.'
  tools:
    eslint:
      enabled: true
    markdownlint:
      enabled: true
    github-checks:
      enabled: true

chat:
  auto_reply: true

10.2 경로별 리뷰 지침

  • path_filters는 generated code, build output, lockfile, coverage처럼 리뷰 가치가 낮은 파일을 제외합니다.
  • path_instructions는 테스트, API, 문서, 보안 파일처럼 관점이 다른 경로에 별도 체크 기준을 둡니다.
  • CodeRabbit의 third-party tool 연동은 저장소의 ESLint/markdownlint 같은 기존 설정을 기준으로 삼습니다. 도구 설정이 없으면 기본 profile이 쓰일 수 있으므로 중요한 rule은 repository config에 명시합니다.

10.3 주석 룰

  • TODO, FIXME, XXX는 ESLint no-warning-comments로 감지하고, owner 또는 issue 링크가 없는 항목은 PR에서 제거합니다.
  • inline comment는 ESLint no-inline-comments 또는 review rule로 제한합니다. 같은 줄 설명이 필요할 정도로 표현이 어려우면 변수명, predicate 함수, 타입명으로 먼저 옮깁니다.
  • eslint-disable 주석은 한 줄 단위로 제한하고, 규칙명과 사유를 함께 적습니다.
  • 주석으로 코드 동작을 설명하기보다 "왜 이 예외가 필요한지", "언제 제거할지", "어떤 외부 계약 때문인지"를 남깁니다.

10.4 AI finding 처리

상태 의미 PR에 남길 것
accept 실제 결함 또는 품질 개선으로 반영 수정 commit과 검증 명령
reject 오탐 또는 의도된 예외 공식 문서, 테스트 결과, ADR 링크
follow-up 현재 PR 범위를 넘는 개선 issue 링크, owner, due date

10.5 CodeRabbit 리뷰 게이트

CodeRabbit을 merge 조건으로 쓰는 저장소는 .coderabbit.yaml과 별도로 CodeRabbit review gate 체크를 둡니다. 이 체크는 PR의 최신 head SHA에 달린 CodeRabbit 리뷰만 인정합니다. 과거 commit에서 승인된 리뷰는 새 commit 이후의 변경을 검토하지 않았으므로 merge 근거가 될 수 없습니다.

조건 처리
최신 head SHA 리뷰 없음 게이트 실패, CodeRabbit 리뷰를 기다리거나 @coderabbitai review로 재요청
APPROVED 게이트 통과, 사람 reviewer의 위험 항목 확인 후 merge 가능
CHANGES_REQUESTED 수정 commit push, CodeRabbit 재리뷰 후 재검증
COMMENTED / DISMISSED / 기타 명시적 승인으로 보지 않고 재리뷰 또는 사람 reviewer 판단 필요

브랜치 보호 규칙에는 CodeRabbit review gate를 required status check로 등록하고 required conversation resolution을 켭니다. workflow 파일만 추가하면 빨간 체크나 미해결 리뷰 스레드가 보여도 설정에 따라 merge가 가능할 수 있으므로, 실제 강제력은 브랜치 보호 설정에서 완성됩니다.

CodeRabbit 적용 저장소에는 .github/workflows/branch-protection.yml을 두고, GH_ADMIN_TOKEN 시크릿으로 수동 실행합니다. 이 워크플로우는 저장소별 quality aggregator 체크와 CodeRabbit review gate를 required status checks로 묶고, 미해결 리뷰 스레드가 남아 있으면 auto-merge도 대기하게 만듭니다. 사람 승인까지 필수로 둘 저장소는 dispatch 입력값 required_approving_review_count1 이상으로 실행합니다.

자동 머지는 Dependabot safe bump 정책 또는 automerge/auto-merge 라벨처럼 병합 의도가 명확한 PR에만 활성화합니다. Dependabot이라도 production dependency major는 자동 머지하지 않습니다. CodeRabbit이 CHANGES_REQUESTED를 남긴 상태에서는 required check가 빨간 상태로 유지되어 auto-merge가 대기해야 하며, 수정 commit 후 최신 head SHA에 대한 재승인이 있어야 병합됩니다. 리뷰 스레드가 열린 상태라면 conversation resolution이 auto-merge를 계속 대기시킵니다.

운영자는 CodeRabbit review gate를 사람 승인 카운트와 혼동하지 않습니다. 기본 브랜치 보호는 사람 승인 수를 0으로 두고 CodeRabbit/CI required checks와 conversation resolution으로 자동화 게이트를 강제할 수 있습니다. 사람 리뷰도 반드시 요구하는 저장소는 같은 branch-protection.ymlrequired_approving_review_count=1 이상으로 다시 실행해 정책을 올립니다.

AI 리뷰 도구를 새 저장소에 도입할 때는 다음 순서로 적용합니다.

  1. .coderabbit.yaml을 먼저 추가하고 PR에서 실제 CodeRabbit 리뷰가 생성되는지 확인한다.
  2. .github/workflows/coderabbit-gate.yml을 추가해 최신 head SHA 승인만 통과하게 한다.
  3. .github/workflows/branch-protection.yml의 required check 목록에 저장소의 quality aggregator와 CodeRabbit review gate를 넣는다.
  4. GitHub 원격 main 브랜치 보호에 required checks와 required conversation resolution을 적용한다.
  5. automerge/auto-merge 라벨 workflow는 브랜치 보호가 검증된 뒤 활성화한다.

실무 적용 가이드

언제 이 문서를 펼칠까

  • AI 리뷰를 도입했지만 지적사항이 피상적이거나 노이즈가 많을 때
  • AI가 만든 코드가 테스트 없이 merge될 위험이 있을 때
  • PR이 커져 사람이 변경 의도를 따라가기 어려울 때

적용 순서

  1. PR을 기능, 리팩터, 테스트, 문서 변경으로 작게 나눈다.
  2. AI 리뷰에는 변경 의도, 위험 영역, 확인할 파일을 명확히 준다.
  3. AI finding을 accept, reject, follow-up으로 triage한다.
  4. 보안, 접근성, 성능 항목은 사람 reviewer가 최종 승인한다.
  5. 리뷰 결과와 검증 명령을 PR description에 남긴다.

함께 두는 파일

  • 리뷰 체크리스트는 PR template과 가이드 문서에 둔다.
  • AI가 생성한 fixture/test는 기능 코드 가까이에 둔다.
  • review metric은 repository 단위로 보되 finding taxonomy는 도메인별로 기록한다.

흔한 실수

  • AI approve를 사람 리뷰 대체로 사용한다.
  • 큰 PR 하나에 기능, 구조 변경, 스타일 수정이 섞인다.
  • AI가 제안한 dependency나 API를 공식 문서로 확인하지 않는다.
  • false positive가 많아도 규칙을 조정하지 않는다.

PR 완료 기준

  • [ ] PR 크기와 의도가 명확하다.
  • [ ] AI finding disposition이 남아 있다.
  • [ ] CodeRabbit review gate가 최신 head SHA 기준으로 통과했다.
  • [ ] 사람 reviewer가 위험 항목을 확인했다.
  • [ ] 테스트/보안/접근성 증거가 연결되어 있다.

추천 항목 실행 우선순위 매핑

  • P1(7일 내) — AI finding triage와 사람 승인 책임 중 하나를 작은 변경 1건에 적용하고 증거(finding disposition)를 남긴다.
  • P2(30일 내) — AI 리뷰 기준을 팀 템플릿, 체크리스트, CI 중 한 곳에 고정한다.
  • P3(90일 내) — false positive, 미해결 thread, 재리뷰 횟수 추이를 보고 기준을 유지할지 조정할지 결정한다.
  • 완료 기준 — 리뷰 오너가 증거와 철회 조건을 확인했다는 기록을 남긴다.

추천 항목 실행 체크리스트

  • [ ] 1단계(7일) : AI finding triage와 사람 승인 책임 적용 대상을 1개로 좁힌다.
  • [ ] 2단계(30일) : 증거(finding disposition, 최신 head SHA review, 사람 reviewer 승인)를 PR, ADR, 회고 중 한 곳에 연결한다.
  • [ ] 3단계(60일) : false positive, 미해결 thread, 재리뷰 횟수가 기준 안에 들어왔는지 확인한다.
  • [ ] 문제 대응 : 미달성 사유와 다음 조치, 중단 여부를 같은 기록에 남긴다.

추천 항목 실행 운영 규칙

  • 실행 게이트 : AI approve가 사람의 위험 판단을 대체하지 않는지 확인한다.
  • 승인 체계 : 리뷰 오너가 영향 범위와 rollback 담당자를 적용 전에 확인한다.
  • 재개 조건 : 최신 head SHA 리뷰와 사람 승인 근거가 맞으면 merge를 진행한다.
  • 정지 조건 : AI 제안이 테스트 없이 바로 반영되거나 thread가 미해결이면 멈춘다.
  • 리스크 점수 : PR 크기, 자동 수정량, 민감 파일 변경으로 산정한다.
  • 리더 승인자 : 코드리뷰 리드가 최종 승인 책임을 맡는다.
  • 승인 역할 : AI 리뷰 작성자, 검토자, 운영 확인자를 분리해 기록한다.
  • 재평가 주기 : 2주마다 false positive와 blocking 기준을 조정한다.