> ## Documentation Index
> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Code Review 사용자 지정

> REVIEW.md와 CLAUDE.md로 Code Review가 풀 리퀘스트에서 지적하는 항목을 조정합니다. 심각도를 재조정하고, 경로를 건너뛰고, 검사를 추가하고, 어떤 사본이 적용되는지 확인합니다.

저장소에 지침을 커밋하여 [Code Review](/docs/ko/code-review)가 해당 저장소에서 지적하는 항목을 변경할 수 있습니다. 이 방법으로 nit 수를 줄이거나, 생성된 파일에 대한 코멘트를 중단하거나, 팀이 중요하게 여기는 규칙을 추가할 수 있습니다. 지침은 다음 두 파일 중 하나에 작성합니다.

* **`CLAUDE.md`**: Claude Code가 리뷰를 포함한 모든 작업에서 읽는 [프로젝트 지침](/docs/ko/memory)입니다. Code Review는 이를 프로젝트 컨텍스트로 읽고, 이를 위반하는 변경 사항을 지적합니다.
* **`REVIEW.md`**: 리뷰 전용 지침입니다. 팀이 무엇을 지적하기를 원하는지, 어떤 심각도로 지적할지, 무엇을 건너뛸지 명시하는 데 사용합니다.

저장소 루트에 `REVIEW.md`를 추가하고 병합합니다. 그런 다음 [기본 브랜치를 보호합니다](#which-branch-review-md-is-read-from).

<Note>
  리뷰의 철저함이나 리뷰 실행 시점을 변경하려면 Owner에게 [리뷰 수준](/docs/ko/code-review-setup#set-the-default-review-level) 또는 [**Review runs** 설정](/docs/ko/code-review-setup#set-when-reviews-run)을 변경하도록 요청합니다.
</Note>

<h2 id="use-claude-md-for-project-wide-rules">
  프로젝트 전체 규칙에는 CLAUDE.md 사용
</h2>

Code Review는 저장소의 `CLAUDE.md` 파일을 프로젝트 컨텍스트로 읽습니다. 이 파일의 규칙 중 하나를 위반하는 변경 사항은 문제에 맞는 [심각도 수준](/docs/ko/code-review-pull-requests#severity-levels)의 발견 사항이 됩니다.

리뷰는 저장소 루트의 `CLAUDE.md`와 변경된 각 파일의 상위 디렉터리에 있는 `CLAUDE.md` 파일을 읽습니다. 하위 디렉터리의 `CLAUDE.md`는 풀 리퀘스트가 해당 경로 아래의 파일을 변경할 때 읽힙니다.

<h2 id="use-review-md-for-review-only-rules">
  리뷰 전용 규칙에는 REVIEW\.md 사용
</h2>

`REVIEW.md`는 저장소 루트에 위치하며 Code Review를 저장소에 맞게 조정하는 파일입니다. 하위 디렉터리에 `REVIEW.md`를 추가하여 루트 파일에 더해 해당 경로 아래의 변경 사항에 대한 검사를 추가할 수도 있습니다.

문제를 찾는 에이전트와 이를 검증하는 에이전트는 Code Review의 기본 리뷰 지침과 함께 이 파일의 내용을 저장소의 리뷰 지침으로 전달받습니다. 최종 리뷰를 작성하는 단계는 심각도를 확정하고 요약을 작성하기 전에 이 파일을 참조합니다.

다음 예시 구조에는 루트 파일 하나와 하위 디렉터리 파일 하나가 있습니다.

```text theme={null}
your-repo/
├── REVIEW.md            # Root file
├── services/
│   └── billing/
│       └── REVIEW.md    # Adds checks for changes under services/billing/
└── src/
```

하위 디렉터리 파일에 의존하기 전에 기본 브랜치를 보호하고 [브랜치 구성별로 리뷰가 읽는 항목](#what-a-review-reads-for-each-branch-setup)을 확인합니다.

<Note>
  Code Review 서비스와 로컬 [`/code-review` 명령](/docs/ko/code-review-local)은 서로 별개의 도구이며, 읽는 파일도 다릅니다. 서비스는 `CLAUDE.md`와 `REVIEW.md`를 모두 읽습니다. 사용자의 로컬 머신에서 Claude Code 세션 안에서 실행하는 `/code-review` 명령은 `CLAUDE.md` 파일을 읽지만 `REVIEW.md`는 읽지 않습니다. 두 곳 모두에 적용하려는 지침은 `CLAUDE.md`에 작성하고, `REVIEW.md`에는 풀 리퀘스트 리뷰에 특화된 규칙만 둡니다.
</Note>

<h3 id="example-review-md">
  REVIEW\.md 예시
</h3>

이 `REVIEW.md`는 백엔드 서비스에 맞게 심각도를 재조정하고, nit 수를 제한하고, 생성된 파일을 건너뛰고, 저장소별 검사를 추가합니다.

```markdown theme={null}
# Review instructions

## What Important means here

Reserve Important for findings that would break behavior, leak data,
or block a rollback: incorrect logic, unscoped database queries, PII
in logs or error messages, and migrations that aren't backward
compatible. Style, naming, and refactoring suggestions are Nit at
most.

## Cap the nits

Report at most five Nits per review.

## Do not report

- Anything CI already enforces: lint, formatting, type errors
- Generated files under `src/gen/` and any `*.lock` file
- Test-only code that intentionally violates production rules

## Always check

- New API routes have an integration test
- Log lines don't include email addresses, user IDs, or request bodies
- Database queries are scoped to the caller's tenant
```

<h3 id="choose-what-to-write-in-review-md">
  REVIEW\.md에 작성할 내용 선택
</h3>

`REVIEW.md`는 리뷰가 찾아내고 보고하는 내용을 변경하는 자유 형식 Markdown입니다. 리뷰의 형식은 변경하지 않습니다. 겪고 있는 문제를 찾은 다음 제시된 것과 같은 지침을 추가합니다. [예시](#example-review-md)는 처음 네 가지를 사용합니다.

* **잘못된 항목이 Important로 표시됨**: 저장소에 맞게 🔴 Important의 의미를 재정의합니다. 기본 보정은 프로덕션 코드를 대상으로 하며, 문서 저장소, 구성 저장소 또는 프로토타입에는 훨씬 좁은 정의가 적합할 수 있습니다. 어떤 유형의 발견 사항이 Important이고 어떤 유형이 최대 Nit인지 명시합니다. 예를 들어 모든 `CLAUDE.md` 위반을 Important로 취급하는 식으로 상향 조정할 수도 있습니다.
* **nit이 너무 많음**: 단일 리뷰가 게시하는 🟡 Nit 코멘트 수를 제한합니다. "nit은 최대 5개까지만 보고"와 같은 제한을 두면 리뷰를 실행 가능한 상태로 유지할 수 있습니다.
* **생성된 파일이나 CI가 이미 검사하는 항목에 대한 코멘트**: Claude가 발견 사항을 건너뛰어야 하는 경로와 발견 사항 범주를 나열합니다. 일반적인 대상은 생성된 코드, lockfile, vendored 의존성이며, 린팅이나 맞춤법 검사처럼 CI가 이미 강제하는 모든 항목도 포함됩니다. 어느 정도 리뷰는 필요하지만 전면적인 검토는 필요하지 않은 경로에는 대신 더 높은 기준을 설정합니다: "`scripts/`에서는 거의 확실하고 심각한 경우에만 보고."
* **팀 규칙이 검사되지 않음**: "새 API 라우트에는 통합 테스트가 있어야 함"처럼 모든 풀 리퀘스트에서 지적하려는 규칙을 추가합니다.
* **잘못된 것으로 판명되는 발견 사항**: 특정 유형의 발견 사항을 게시하기 전에 근거를 요구합니다. 예를 들어 "동작에 관한 주장에는 이름에서 추론한 것이 아닌 소스의 `file:line` 인용이 필요함"과 같은 지침은 작성자에게 불필요한 왕복을 초래할 수 있는 오탐을 줄입니다.

이러한 지침 중 일부는 [보호된 기본 브랜치에 루트 파일이 있어야 합니다](#which-branch-review-md-is-read-from).

`REVIEW.md`에는 리뷰 동작을 변경하는 지침만 두고, 일반적인 프로젝트 컨텍스트는 `CLAUDE.md`에 둡니다.

<h3 id="which-branch-review-md-is-read-from">
  REVIEW\.md를 읽는 브랜치
</h3>

Code Review는 풀 리퀘스트의 기본(base) 브랜치 또는 기본(default) 브랜치에서 `REVIEW.md`를 읽으며, 풀 리퀘스트 자체의 변경 사항에서는 절대 읽지 않습니다. 리뷰 동작을 변경하려면 `REVIEW.md` 변경 사항을 먼저 병합합니다.

`REVIEW.md`를 기본 브랜치에 두고 해당 브랜치를 보호합니다. 아래 표의 첫 번째 행처럼 리뷰가 보호된 기본 브랜치의 사본을 읽는 경우, 루트 파일의 다음 지침을 따릅니다.

* 발견 사항의 심각도 낮추기
* 경로, 파일 또는 문제 유형 제외
* nit 코멘트 수 제한

<h4 id="what-counts-as-branch-protection">
  브랜치 보호로 인정되는 항목
</h4>

Code Review는 다음 설정을 보호로 인정합니다.

* **기본 브랜치**: 클래식 브랜치 보호 규칙 또는 ruleset
* **그 외 모든 브랜치**: ruleset만 해당

ruleset은 업데이트를 제한하거나 최소 한 번의 승인이 있는 풀 리퀘스트를 요구하는 경우 보호로 인정됩니다. 풀 리퀘스트를 요구하는 경우에는 새 푸시 시 해당 승인을 무효화하거나 마지막 푸시 이후에 승인이 이루어지도록 요구해야 합니다.

<h4 id="what-a-review-reads-for-each-branch-setup">
  브랜치 구성별로 리뷰가 읽는 항목
</h4>

아래 표의 첫 번째 열에서 저장소의 상황을 찾습니다.

| 브랜치 보호 | 읽는 사본 | 읽는 파일 |
| :- | :- | :- |
| 기본 브랜치가 보호되어 있고, 풀 리퀘스트가 기본 브랜치 또는 ruleset으로 보호되지 않는 브랜치를 대상으로 함 | 기본 브랜치 | 루트 및 하위 디렉터리 파일 |
| 풀 리퀘스트가 ruleset으로 보호되는 다른 브랜치를 대상으로 함 | 해당 base 브랜치 | 루트 및 하위 디렉터리 파일 |
| 기본 브랜치가 보호되어 있지 않고, base 브랜치에 어떤 종류의 보호 규칙도 없음 | 기본 브랜치 | 루트 파일 |
| Code Review가 보호 설정을 확인할 수 없음. 보호되지 않은 기본 브랜치와 클래식 규칙만 있는 base 브랜치의 조합도 여기에 포함됨 | 없음 | 없음 |

check run에 `REVIEW.md`가 언급되는 경우 [The check run mentions REVIEW.md](/docs/ko/code-review-troubleshooting#the-check-run-mentions-review-md)를 참조합니다.

<h2 id="related-resources">
  관련 리소스
</h2>

* [Code Review](/docs/ko/code-review): 서비스의 개요와 리뷰 실행 방식
* [풀 리퀘스트에서 리뷰 읽기 및 요청](/docs/ko/code-review-pull-requests#severity-levels): 각 심각도 수준의 의미와 발견 사항이 표시되는 방식
* [Code Review 설정](/docs/ko/code-review-setup): Owner가 설정하는 리뷰 수준과 리뷰 실행 시점
* [`/code-review`로 로컬에서 리뷰](/docs/ko/code-review-local): `/code-review` 명령, 인수 및 effort 수준
* [메모리](/docs/ko/memory): Claude Code 전반에서 `CLAUDE.md` 파일이 작동하는 방식
