6 6
7> 시작되지 않았거나, 실패했거나, 예산 때문에 건너뛴 Code Review를 해결하고, 누락된 발견 사항을 찾고, 설정 및 `REVIEW.md` 문제를 해결합니다.7> 시작되지 않았거나, 실패했거나, 예산 때문에 건너뛴 Code Review를 해결하고, 누락된 발견 사항을 찾고, 설정 및 `REVIEW.md` 문제를 해결합니다.
8 8
9[Code Review](/docs/ko/code-review.md)가 풀 리퀘스트에서 예상대로 동작하지 않으면 먼저 **Claude Code Review** 체크 실행을 확인합니다. 체크 실행의 제목을 보면 리뷰가 어디까지 진행되었는지 알 수 있습니다.9[Code Review](https://code.claude.com/docs/ko/code-review.md)가 풀 리퀘스트에서 예상대로 동작하지 않으면 먼저 **Claude Code Review** 체크 실행을 확인합니다. 체크 실행의 제목을 보면 리뷰가 어디까지 진행되었는지 알 수 있습니다.
10 10
11## 리뷰 진행 상황 확인하기11## 리뷰 진행 상황 확인하기
12 12
18| **Code review found no issues** | 리뷰가 완료되었으며 지적할 사항을 찾지 못했습니다 | 조치가 필요하지 않습니다 |18| **Code review found no issues** | 리뷰가 완료되었으며 지적할 사항을 찾지 못했습니다 | 조치가 필요하지 않습니다 |
19| 문제가 발견되었다는 제목 | 리뷰가 발견 사항과 함께 완료되었습니다 | diff에서 발견 사항이 보이지 않으면 [인라인 댓글로 표시되지 않는 문제 찾기](#find-issues-that-aren’t-showing-as-inline-comments)를 참조하세요 |19| 문제가 발견되었다는 제목 | 리뷰가 발견 사항과 함께 완료되었습니다 | diff에서 발견 사항이 보이지 않으면 [인라인 댓글로 표시되지 않는 문제 찾기](#find-issues-that-aren’t-showing-as-inline-comments)를 참조하세요 |
20| **Code review skipped — no new changes** | 최근 푸시에 대해 자동 리뷰가 실행되지 않았습니다 | 그래도 리뷰를 받으려면 `@claude review`라고 댓글을 작성합니다 |20| **Code review skipped — no new changes** | 최근 푸시에 대해 자동 리뷰가 실행되지 않았습니다 | 그래도 리뷰를 받으려면 `@claude review`라고 댓글을 작성합니다 |
21| **Code review not repeated — earlier findings still open** | 최근 푸시에 대해 자동 리뷰가 실행되지 않았으며, 이전 리뷰의 Important 발견 사항이 아직 해결되지 않았습니다 | 수정 사항을 푸시하거나, 그래도 리뷰를 받으려면 `@claude review`라고 댓글을 작성합니다. [푸시 후에도 이전 결과가 유지되는 경우](/docs/ko/code-review-pull-requests.md#when-a-push-keeps-the-earlier-result)를 참조하세요 |21| **Code review not repeated — earlier findings still open** | 최근 푸시에 대해 자동 리뷰가 실행되지 않았으며, 이전 리뷰의 Important 발견 사항이 아직 해결되지 않았습니다 | 수정 사항을 푸시하거나, 그래도 리뷰를 받으려면 `@claude review`라고 댓글을 작성합니다. [푸시 후에도 이전 결과가 유지되는 경우](https://code.claude.com/docs/ko/code-review-pull-requests.md#when-a-push-keeps-the-earlier-result)를 참조하세요 |
22| **Code review failed** 또는 **Code review timed out** | 리뷰가 완료되지 않았습니다 | 다시 실행하려면 [실패하거나 시간 초과된 리뷰 다시 트리거하기](#retrigger-a-failed-or-timed-out-review)를 참조하세요 |22| **Code review failed** 또는 **Code review timed out** | 리뷰가 완료되지 않았습니다 | 다시 실행하려면 [실패하거나 시간 초과된 리뷰 다시 트리거하기](#retrigger-a-failed-or-timed-out-review)를 참조하세요 |
23| **Code review declined** | 리뷰가 실행되지 않았습니다 | 체크 실행의 요약을 읽습니다. 요약에 예산이나 지출 한도가 언급되어 있으면 [리뷰가 실행되지 않고 PR에 예산 메시지가 표시되는 경우](#review-didn’t-run-and-the-pr-shows-a-budget-message)를 참조하세요 |23| **Code review declined** | 리뷰가 실행되지 않았습니다 | 체크 실행의 요약을 읽습니다. 요약에 예산이나 지출 한도가 언급되어 있으면 [리뷰가 실행되지 않고 PR에 예산 메시지가 표시되는 경우](#review-didn’t-run-and-the-pr-shows-a-budget-message)를 참조하세요 |
24| 체크 실행 없음 | 리뷰가 시작되지 않았습니다 | `@claude review`라고 댓글을 작성합니다. 그 후에도 체크 실행이 나타나지 않으면 [댓글 명령으로 리뷰가 시작되지 않는 경우](#a-comment-command-didn’t-start-a-review)를 참조하세요 |24| 체크 실행 없음 | 리뷰가 시작되지 않았습니다 | `@claude review`라고 댓글을 작성합니다. 그 후에도 체크 실행이 나타나지 않으면 [댓글 명령으로 리뷰가 시작되지 않는 경우](#a-comment-command-didn’t-start-a-review)를 참조하세요 |
31 31
32`@claude review`라고 댓글을 작성한 후, 풀 리퀘스트에서 **Code review queued...** 또는 \*\*Code review in progress...\*\*라는 제목의 **Claude Code Review** 체크 실행이 있는지 확인합니다. 댓글에 👀 반응이 달렸다고 해서 리뷰가 진행된다는 의미는 아닙니다. 체크 실행이 나타나지 않으면 다음 각 원인을 확인합니다.32`@claude review`라고 댓글을 작성한 후, 풀 리퀘스트에서 **Code review queued...** 또는 \*\*Code review in progress...\*\*라는 제목의 **Claude Code Review** 체크 실행이 있는지 확인합니다. 댓글에 👀 반응이 달렸다고 해서 리뷰가 진행된다는 의미는 아닙니다. 체크 실행이 나타나지 않으면 다음 각 원인을 확인합니다.
33 33
34* **이 저장소에 Code Review가 켜져 있지 않음**: Claude가 명령에 대한 응답으로 댓글이나 체크 실행을 게시하지 않습니다. Owner에게 [저장소 추가](/docs/ko/code-review-setup.md#add-more-repositories)를 요청합니다.34* **이 저장소에 Code Review가 켜져 있지 않음**: Claude가 명령에 대한 응답으로 댓글이나 체크 실행을 게시하지 않습니다. Owner에게 [저장소 추가](https://code.claude.com/docs/ko/code-review-setup.md#add-more-repositories)를 요청합니다.
35* **댓글이 조건을 충족하지 않음**: 새 최상위 댓글이 아니라 인라인 댓글이나 리뷰 본문이었거나, 명령이 댓글의 시작 부분에 있지 않았습니다. 새 댓글을 게시하지 않고 이전 댓글을 편집한 경우도 인정되지 않으며, 풀 리퀘스트가 열려 있어야 합니다. [댓글 명령의 조건](/docs/ko/code-review-pull-requests.md#comment-commands)을 확인하고 이를 충족하는 새 댓글을 게시합니다.35* **댓글이 조건을 충족하지 않음**: 새 최상위 댓글이 아니라 인라인 댓글이나 리뷰 본문이었거나, 명령이 댓글의 시작 부분에 있지 않았습니다. 새 댓글을 게시하지 않고 이전 댓글을 편집한 경우도 인정되지 않으며, 풀 리퀘스트가 열려 있어야 합니다. [댓글 명령의 조건](https://code.claude.com/docs/ko/code-review-pull-requests.md#comment-commands)을 확인하고 이를 충족하는 새 댓글을 게시합니다.
36* **쓰기 권한이 없음**: 저장소에 대한 write, maintain 또는 admin 권한이 필요하며, 포크에서 생성된 풀 리퀘스트의 경우 기본 저장소에 대한 권한이 기준이 됩니다. 본인이 작성한 풀 리퀘스트가 아니면 Claude가 [팁](/docs/ko/code-review-setup.md#turn-tip-comments-on-or-off)으로 "No review was started: manual reviews can only be requested by someone with write access to this repository."라고 답장할 수 있습니다. 쓰기 권한이 있는 사람에게 대신 댓글을 작성해 달라고 요청합니다.36* **쓰기 권한이 없음**: 저장소에 대한 write, maintain 또는 admin 권한이 필요하며, 포크에서 생성된 풀 리퀘스트의 경우 기본 저장소에 대한 권한이 기준이 됩니다. 본인이 작성한 풀 리퀘스트가 아니면 Claude가 [팁](https://code.claude.com/docs/ko/code-review-setup.md#turn-tip-comments-on-or-off)으로 "No review was started: manual reviews can only be requested by someone with write access to this repository."라고 답장할 수 있습니다. 쓰기 권한이 있는 사람에게 대신 댓글을 작성해 달라고 요청합니다.
37* **예산 소진**: Claude가 "⚠️ Code review skipped"로 시작하는 댓글을 게시합니다. [리뷰가 실행되지 않고 PR에 예산 메시지가 표시되는 경우](#review-didn’t-run-and-the-pr-shows-a-budget-message)를 참조하세요.37* **예산 소진**: Claude가 "⚠️ Code review skipped"로 시작하는 댓글을 게시합니다. [리뷰가 실행되지 않고 PR에 예산 메시지가 표시되는 경우](#review-didn’t-run-and-the-pr-shows-a-budget-message)를 참조하세요.
38 38
39### 리뷰가 실행되지 않고 PR에 예산 메시지가 표시되는 경우39### 리뷰가 실행되지 않고 PR에 예산 메시지가 표시되는 경우
42 42
43이 댓글에는 관리자가 예산을 복원할 수 있는 [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) 링크가 포함되어 있습니다. 댓글의 문구를 보면 어떤 한도에 도달했는지 알 수 있습니다.43이 댓글에는 관리자가 예산을 복원할 수 있는 [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) 링크가 포함되어 있습니다. 댓글의 문구를 보면 어떤 한도에 도달했는지 알 수 있습니다.
44 44
45* **"has reached its monthly code review spending cap"**: [Code Review의 월간 지출 한도](/docs/ko/code-review-costs.md#limit-your-spend)에 도달했습니다. 리뷰는 다음 청구 기간이 시작될 때 재개됩니다. 더 일찍 리뷰를 받으려면 관리자에게 한도를 높여 달라고 요청합니다.45* **"has reached its monthly code review spending cap"**: [Code Review의 월간 지출 한도](https://code.claude.com/docs/ko/code-review-costs.md#limit-your-spend)에 도달했습니다. 리뷰는 다음 청구 기간이 시작될 때 재개됩니다. 더 일찍 리뷰를 받으려면 관리자에게 한도를 높여 달라고 요청합니다.
46* **"has no extra usage available to pay for this review"**: 조직의 [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) 잔액이 비어 있거나, 전체 월간 지출 한도에 도달했습니다. 관리자에게 사용량 크레딧을 추가하거나 해당 한도를 높여 달라고 요청합니다.46* **"has no extra usage available to pay for this review"**: 조직의 [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) 잔액이 비어 있거나, 전체 월간 지출 한도에 도달했습니다. 관리자에게 사용량 크레딧을 추가하거나 해당 한도를 높여 달라고 요청합니다.
47* **"is too low to start another review"**: 남은 예산이나 잔액이 리뷰 1회의 예상 비용보다 적습니다. 관리자에게 한도를 높이거나 사용량 크레딧을 추가해 달라고 요청합니다.47* **"is too low to start another review"**: 남은 예산이나 잔액이 리뷰 1회의 예상 비용보다 적습니다. 관리자에게 한도를 높이거나 사용량 크레딧을 추가해 달라고 요청합니다.
48 48
49예산이 복원된 후 풀 리퀘스트에 `@claude review`라고 댓글을 작성하면 건너뛴 리뷰를 받을 수 있습니다. [댓글 명령의 조건](/docs/ko/code-review-pull-requests.md#comment-commands)이 적용되므로 댓글 작성자에게 쓰기 권한이 있어야 합니다.49예산이 복원된 후 풀 리퀘스트에 `@claude review`라고 댓글을 작성하면 건너뛴 리뷰를 받을 수 있습니다. [댓글 명령의 조건](https://code.claude.com/docs/ko/code-review-pull-requests.md#comment-commands)이 적용되므로 댓글 작성자에게 쓰기 권한이 있어야 합니다.
50 50
51## 실패하거나 시간 초과된 리뷰 다시 트리거하기51## 실패하거나 시간 초과된 리뷰 다시 트리거하기
52 52
55그 외에 체크 실행의 제목이 **Code review failed** 또는 **Code review timed out**인 경우, 댓글이나 재실행으로 리뷰를 다시 실행합니다.55그 외에 체크 실행의 제목이 **Code review failed** 또는 **Code review timed out**인 경우, 댓글이나 재실행으로 리뷰를 다시 실행합니다.
56 56
57* **`@claude review` 댓글 작성**: 풀 리퀘스트에 최상위 댓글로 게시합니다. 이렇게 하면 풀 리퀘스트를 이후 푸시에 구독시키지 않고 새 리뷰를 시작합니다.57* **`@claude review` 댓글 작성**: 풀 리퀘스트에 최상위 댓글로 게시합니다. 이렇게 하면 풀 리퀘스트를 이후 푸시에 구독시키지 않고 새 리뷰를 시작합니다.
58* **Re-run 클릭**: 풀 리퀘스트가 [포크에서 생성된](/docs/ko/code-review-pull-requests.md#review-drafts-and-pull-requests-from-forks) 것이 아니라면, GitHub의 **Checks** 탭에서 **Claude Code Review** 체크의 **Re-run**을 클릭합니다. 재실행은 풀 리퀘스트의 현재 헤드 커밋을 대상으로 하며, 이 방법 역시 풀 리퀘스트를 구독시키지 않습니다.58* **Re-run 클릭**: 풀 리퀘스트가 [포크에서 생성된](https://code.claude.com/docs/ko/code-review-pull-requests.md#review-drafts-and-pull-requests-from-forks) 것이 아니라면, GitHub의 **Checks** 탭에서 **Claude Code Review** 체크의 **Re-run**을 클릭합니다. 재실행은 풀 리퀘스트의 현재 헤드 커밋을 대상으로 하며, 이 방법 역시 풀 리퀘스트를 구독시키지 않습니다.
59 59
60## 인라인 댓글로 표시되지 않는 문제 찾기60## 인라인 댓글로 표시되지 않는 문제 찾기
61 61
69 69
70다음은 체크 실행에 표시될 수 있는 `REVIEW.md` 관련 메시지 중 세 가지입니다.70다음은 체크 실행에 표시될 수 있는 `REVIEW.md` 관련 메시지 중 세 가지입니다.
71 71
72* **"This review applied the repository's review instructions (REVIEW\.md) from its default branch, which is not protected against direct pushes."**: 리뷰가 루트 파일만 읽었습니다. 브랜치를 보호하면 무엇이 달라지는지는 [REVIEW.md를 읽는 브랜치](/docs/ko/code-review-customize.md#which-branch-review-md-is-read-from)를 참조하세요.72* **"This review applied the repository's review instructions (REVIEW\.md) from its default branch, which is not protected against direct pushes."**: 리뷰가 루트 파일만 읽었습니다. 브랜치를 보호하면 무엇이 달라지는지는 [REVIEW.md를 읽는 브랜치](https://code.claude.com/docs/ko/code-review-customize.md#which-branch-review-md-is-read-from)를 참조하세요.
73* **"were not applied to this review: branch protection could not be confirmed"**: 리뷰가 `REVIEW.md`를 전혀 읽지 않았습니다.73* **"were not applied to this review: branch protection could not be confirmed"**: 리뷰가 `REVIEW.md`를 전혀 읽지 않았습니다.
74* **"they link to a file this pull request modifies, or carry more links than the review checks"**: 리뷰가 루트 `REVIEW.md` 또는 메시지에 표시된 개수만큼의 하위 디렉터리 `REVIEW.md` 파일을 건너뛰었습니다. 건너뛴 파일에서 각 원인을 확인하세요. 루트 `REVIEW.md`의 경우 [포함된 파일](/docs/ko/code-review-customize.md#include-other-files-in-review-md)도 확인하세요.74* **"they link to a file this pull request modifies, or carry more links than the review checks"**: 리뷰가 루트 `REVIEW.md` 또는 메시지에 표시된 개수만큼의 하위 디렉터리 `REVIEW.md` 파일을 건너뛰었습니다. 건너뛴 파일에서 각 원인을 확인하세요. 루트 `REVIEW.md`의 경우 [포함된 파일](https://code.claude.com/docs/ko/code-review-customize.md#include-other-files-in-review-md)도 확인하세요.
75 * **링크가 너무 많은 경우**: Markdown 링크가 64개를 초과합니다. 링크를 [64개 이하](/docs/ko/code-review-customize.md#include-other-files-in-review-md)로 줄이세요.75 * **링크가 너무 많은 경우**: Markdown 링크가 64개를 초과합니다. 링크를 [64개 이하](https://code.claude.com/docs/ko/code-review-customize.md#include-other-files-in-review-md)로 줄이세요.
76 * **리뷰가 파싱할 수 없는 링크가 있는 경우**: 형식이 잘못된 Markdown 링크가 있습니다. 해당 링크를 수정하거나 제거하세요.76 * **리뷰가 파싱할 수 없는 링크가 있는 경우**: 형식이 잘못된 Markdown 링크가 있습니다. 해당 링크를 수정하거나 제거하세요.
77 * **변경된 파일에 대한 링크가 있는 경우**: 이 풀 리퀘스트가 변경하는 파일이나 폴더에 링크되어 있으며, 리뷰가 해당 링크가 있는 줄만 제외할 수 없었습니다. 규칙을 `REVIEW.md` 자체에 직접 작성하세요.77 * **변경된 파일에 대한 링크가 있는 경우**: 이 풀 리퀘스트가 변경하는 파일이나 폴더에 링크되어 있으며, 리뷰가 해당 링크가 있는 줄만 제외할 수 없었습니다. 규칙을 `REVIEW.md` 자체에 직접 작성하세요.
78 78
79## 설정 문제79## 설정 문제
80 80
81다음 사례는 Owner가 [Code Review를 설정](/docs/ko/code-review-setup.md)하는 과정에서 발생합니다.81다음 사례는 Owner가 [Code Review를 설정](https://code.claude.com/docs/ko/code-review-setup.md)하는 과정에서 발생합니다.
82 82
83### Add a repository에 저장소가 나열되지 않는 경우83### Add a repository에 저장소가 나열되지 않는 경우
84 84
90 90
91## 관련 리소스91## 관련 리소스
92 92
93* [풀 리퀘스트에서 리뷰 읽기 및 요청하기](/docs/ko/code-review-pull-requests.md): 발견 사항과 체크 실행의 의미, 그리고 댓글 명령93* [풀 리퀘스트에서 리뷰 읽기 및 요청하기](https://code.claude.com/docs/ko/code-review-pull-requests.md): 발견 사항과 체크 실행의 의미, 그리고 댓글 명령
94* [Code Review 설정하기](/docs/ko/code-review-setup.md): Owner를 위한 Code Review 켜기 및 저장소 관리94* [Code Review 설정하기](https://code.claude.com/docs/ko/code-review-setup.md): Owner를 위한 Code Review 켜기 및 저장소 관리
95* [Code Review 비용 및 사용량](/docs/ko/code-review-costs.md): 예산 메시지의 원인이 되는 지출 한도95* [Code Review 비용 및 사용량](https://code.claude.com/docs/ko/code-review-costs.md): 예산 메시지의 원인이 되는 지출 한도
96* [Code Review 사용자 지정하기](/docs/ko/code-review-customize.md): 리뷰가 읽는 `REVIEW.md`의 사본96* [Code Review 사용자 지정하기](https://code.claude.com/docs/ko/code-review-customize.md): 리뷰가 읽는 `REVIEW.md`의 사본