Code Review를 켜면 PR 하나에 리뷰가 몇 번 도나
리뷰는 PR을 열 때 한 번만 돌게 둔다
새로 추가한 저장소는 푸시마다 리뷰가 도는 After every push로 시작하니, Review runs를 Once after PR creation으로 바꿉니다. Code Review는 Claude가 GitHub PR을 읽고 문제가 있는 줄에 코멘트를 다는 서비스입니다. 조직 Owner가 켜 두면 개발자는 아무것도 설치하지 않아도 PR에서 리뷰를 받습니다.
- claude.ai의 Admin settings > Usage에서 Claude Code Review 서비스의 월 한도를 정합니다.
- Admin settings > Claude Code의 Code review 칸에서 Allow code review를 켜고, GitHub 앱을 설치해 저장소를 고릅니다.
- Repositories 표에서 저장소 행의 Edit를 눌러 Review runs를 Once after PR creation으로 바꿉니다.
Review runs는 저장소마다 리뷰가 언제 도는지 정하는 설정입니다. 결제 API 저장소에서 환불 기능 PR을 열고 지적을 고치며 네 번 푸시하면, 기본값에서는 리뷰가 다섯 번 돕니다.
| Once | Every push | Manual | |
|---|---|---|---|
| PR 열기 | 지원 | 지원 | 미지원 |
| 푸시 네 번 | 미지원 | 지원 | 미지원 |
| @claude review 댓글 | 지원 | 지원 | 지원 |
| 댓글 없이 도는 리뷰 | 1번 | 5번 | 0번 |
리뷰 요금은 정해진 값 없이 쓴 토큰만큼 조직 사용 크레딧에서 나가고, 요금제 포함 사용량과 따로 셉니다. 리서치 프리뷰 때 리뷰 한 번 평균이 $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로 찾습니다.
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은 다섯 개까지만 달게 합니다.
# 리뷰 지시## 여기서 Important는잘못된 로직, 테넌트 범위 없는 DB 쿼리, 로그 속 개인정보,되돌릴 수 없는 마이그레이션에만 씁니다. 이름·스타일은 Nit까지만.## Nit 상한리뷰 한 번에 Nit은 다섯 개까지만 답니다.## 늘 확인- DB 쿼리가 호출한 테넌트로 범위가 좁혀져 있다- 로그 줄에 이메일이나 사용자 ID가 없다리뷰는 이 파일을 PR의 변경분이 아니라 base 브랜치나 기본 브랜치에서 읽습니다. 규칙을 바꾸는 PR은 먼저 머지해야 다음 리뷰부터 적용됩니다. 리뷰는 심각도 낮추기, 경로 제외, Nit 상한을 기본 브랜치가 보호될 때만 따르니 보호를 켜 둡니다.
모든 작업에 걸리는 프로젝트 규칙은 CLAUDE.md에 두면 리뷰도 읽습니다. 로컬에서 돌리는 /code-review 명령은 CLAUDE.md만 읽고 REVIEW.md는 읽지 않습니다.