Code Review를 켜면 PR 하나에 리뷰가 몇 번 도나

동딩
2026.10.24·3분 읽기·

리뷰는 PR을 열 때 한 번만 돌게 둔다

새로 추가한 저장소는 푸시마다 리뷰가 도는 After every push로 시작하니, Review runs를 Once after PR creation으로 바꿉니다. Code Review는 Claude가 GitHub PR을 읽고 문제가 있는 줄에 코멘트를 다는 서비스입니다. 조직 Owner가 켜 두면 개발자는 아무것도 설치하지 않아도 PR에서 리뷰를 받습니다.

  1. claude.ai의 Admin settings > Usage에서 Claude Code Review 서비스의 월 한도를 정합니다.
  2. Admin settings > Claude Code의 Code review 칸에서 Allow code review를 켜고, GitHub 앱을 설치해 저장소를 고릅니다.
  3. Repositories 표에서 저장소 행의 Edit를 눌러 Review runs를 Once after PR creation으로 바꿉니다.

Review runs는 저장소마다 리뷰가 언제 도는지 정하는 설정입니다. 결제 API 저장소에서 환불 기능 PR을 열고 지적을 고치며 네 번 푸시하면, 기본값에서는 리뷰가 다섯 번 돕니다.

OnceEvery pushManual
PR 열기지원지원미지원
푸시 네 번미지원지원미지원
@claude review 댓글지원지원지원
댓글 없이 도는 리뷰1번5번0번
환불 PR을 열고 네 번 푸시할 때 리뷰가 도는 때

리뷰 요금은 정해진 값 없이 쓴 토큰만큼 조직 사용 크레딧에서 나가고, 요금제 포함 사용량과 따로 셉니다. 리서치 프리뷰 때 리뷰 한 번 평균이 $15~25였습니다. 같은 PR이라도 기본값에서는 Once의 다섯 배가 나갑니다.

몇 주 돌린 뒤 Repositories 표의 Average cost 열에 저장소별 평균이 나오면 월 PR 수를 곱해 한도를 다시 잡습니다.

리뷰를 더 받거나 깊이를 바꾸려면

쓰기 권한이 있는 사람이 PR에 @claude review 댓글을 달면 한 번 더 돌고, @claude review always를 달면 그 PR만 이후 푸시마다 돕니다. Claude Code GitHub Action을 기본 트리거 @claude로 쓰는 저장소라면 이 댓글이 Action까지 띄우니, Action의 trigger_phrase 입력을 다른 말로 바꿔 둘을 가릅니다.

리뷰의 깊이는 Review level로 따로 정합니다.

  • Quick은 빠르고 쌉니다.
  • Standard가 기본값입니다.
  • Deep은 꼼꼼하고 비쌉니다.

정산 로직이 든 저장소만 Deep으로 올리는 식으로 저장소마다 다르게 줄 수 있습니다.

Enterprise 조직이라면

유료 Enterprise 조직은 2027년 1월 15일까지 Code Review 크레딧을 한 번 받을 수 있습니다. 활성 Claude Code 좌석 수에 따라 $10,000~$50,000이고, 받은 순간부터 30일이 지나면 남은 금액은 사라집니다. Owner가 Organization settings > Claude Code의 Code Review 칸에서 Claim을 누릅니다. 저장소 설정을 끝낸 뒤에 받아야 30일을 다 씁니다. Team 요금제는 대상이 아닙니다.

리뷰는 검증을 통과한 지적만 줄에 단다

리뷰는 찾은 지적을 한 번 더 검증해 근거 없는 것을 버리고, 남은 것만 해당 줄에 답니다. 환불 PR에 테넌트 조건 없이 주문을 찾는 쿼리가 있다면, 에이전트 여럿이 diff와 주변 코드를 함께 읽다가 이 쿼리를 후보로 올립니다. 코드를 빌드하거나 실행하지는 않습니다. 후보마다 코드에 다시 대 보고 근거가 없는 지적은 버린 뒤, 남은 지적을 심각도 순으로 해당 줄에 달고 Claude Code Review 체크에 목록을 남깁니다.

정식 출시 뒤 리뷰 시간은 대개 20분에서 6~10분으로 줄었습니다. 지적마다 심각도가 붙습니다.

  • Important는 머지 전에 고칠 버그입니다.
  • Nit은 막지 않는 사소한 문제입니다.
  • Pre-existing은 이 PR이 만들지 않은 기존 버그입니다.

리뷰는 PR을 승인하거나 막지 않고, 체크도 실패로 끝나지 않습니다. 고치고 푸시하면 다음 리뷰가 고쳐졌다고 본 스레드를 닫습니다.

Important가 남은 PR의 머지를 CI에서 막으려면

체크 상세 글의 마지막 줄에 심각도별 개수가 JSON으로 들어 있습니다. normal이 Important 개수입니다. 체크 ID는 gh api repos/OWNER/REPO/commits/<sha>/check-runs로 찾습니다.

bash
gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID --jq '
(.output.text | split("\n") | last
| scan("^<!-- bughunter-severity: (.*) -->$")[0] | fromjson)?
// error("no severity line")'

이 줄이 없으면 0개로 보지 말고 판정 없음으로 다룹니다. 실패하거나 시간을 넘긴 리뷰에는 이 줄이 없습니다.

팀 규칙은 REVIEW.md에 적는다

리뷰에만 쓰는 규칙은 저장소 루트의 REVIEW.md에 적고, 기본 브랜치에 머지해야 적용됩니다. 리뷰는 무엇을 Important로 볼지, 무엇을 건너뛸지 이 파일을 따릅니다. 결제 API라면 테넌트 범위 없는 쿼리와 로그에 찍힌 사용자 ID를 늘 보게 하고 Nit은 다섯 개까지만 달게 합니다.

markdown
# 리뷰 지시
## 여기서 Important는
잘못된 로직, 테넌트 범위 없는 DB 쿼리, 로그 속 개인정보,
되돌릴 수 없는 마이그레이션에만 씁니다. 이름·스타일은 Nit까지만.
## Nit 상한
리뷰 한 번에 Nit은 다섯 개까지만 답니다.
## 늘 확인
- DB 쿼리가 호출한 테넌트로 범위가 좁혀져 있다
- 로그 줄에 이메일이나 사용자 ID가 없다

리뷰는 이 파일을 PR의 변경분이 아니라 base 브랜치나 기본 브랜치에서 읽습니다. 규칙을 바꾸는 PR은 먼저 머지해야 다음 리뷰부터 적용됩니다. 리뷰는 심각도 낮추기, 경로 제외, Nit 상한을 기본 브랜치가 보호될 때만 따르니 보호를 켜 둡니다.

모든 작업에 걸리는 프로젝트 규칙은 CLAUDE.md에 두면 리뷰도 읽습니다. 로컬에서 돌리는 /code-review 명령은 CLAUDE.md만 읽고 REVIEW.md는 읽지 않습니다.

Comments

댓글

powered by giscus ↗