HeyDeer가 읽는 내용
검토는 풀 리퀘스트의 변경 사항을 전체 저장소의 맥락에서 읽으며, PR 논의와 HeyDeer에 제공한 가이드도 함께 참고합니다. 이 페이지에서는 가이드 종류별로 어디에 두어야 하는지, 그리고 그중 무엇을 풀 리퀘스트가 바꿀 수 있는지 설명합니다.
코드와 논의
HeyDeer는 풀 리퀘스트가 변경한 내용을 검토하며, PR 헤드의 모든 파일과 커밋 기록을 읽고 검색할 수 있습니다. 발견 사항은 변경으로 인해 깨지는 diff 밖의 코드를 가리킬 수도 있습니다.
PR 제목, 설명, 논의도 함께 읽습니다.
관련 이슈와 풀 리퀘스트
기본값인 관련 이슈 및 PR 읽기가 켜져 있으면, HeyDeer는 같은 저장소의 이슈와 풀 리퀘스트가 변경 사항을 설명할 때 이를 읽을 수 있습니다. PR이 해결하는 이슈가 그 예입니다. 이 설정은 검토 규칙 → 검토 방식에서 변경할 수 있습니다. 설정 참조를 참고하세요.
가이드 종류별로 둘 곳
시작할 때 별도의 가이드는 필요하지 않습니다. HeyDeer는 첫 검토부터 저장소 전체를 기준으로 검토합니다. 처음 몇 번의 검토에서 드러난 빈틈에 맞춰 가이드를 추가하세요.
코드베이스에 고유한 내용만 쓰세요. HeyDeer는 일반적인 엔지니어링 관행을 이미 알고 있고 모든 검토에서 버그와 보안 문제를 찾으므로, 이를 되풀이하는 지침은 도움이 되지 않습니다.
| HeyDeer에 알려 줄 내용 | 둘 곳 |
|---|---|
| 코드가 동작하는 방식과 따르는 컨벤션. 코딩 에이전트도 따릅니다. | AGENTS.md |
| 검토에서 살펴볼 것, 다루지 않을 것, 문제의 심각도 | REVIEW.md |
| 특정 파일을 변경하는 모든 풀 리퀘스트에서 HeyDeer가 반드시 확인해야 하는 요구 사항 | .agents/checks/ |
| 여러 검사가 함께 쓰는 절차 | .agents/skills/ |
| 풀 리퀘스트가 바꿀 수 없어야 하거나 모든 저장소에 적용되는 검토 지침 | 검토 지침 |
| 티켓이나 내부 문서처럼 저장소 밖의 맥락 | 커넥터 |
검사와 REVIEW.md 중 무엇을 쓸까
검토는 변경 전체를 살펴보면서 AGENTS.md와 REVIEW.md를 따릅니다. 또한 해당하는 검사마다 그 요구 사항만 확인하는 전용 검토자가 붙으므로, 검사는 더 철저하지만 크레딧을 더 사용합니다.
API 라우트의 접근 제어처럼 놓치면 비용이 크고 간과하기 쉬운 요구 사항은 검사로 만드세요. 나머지는 REVIEW.md에 두세요. 효과적인 검사 작성하기를 참고하세요.
가이드가 서로 충돌하는 경우
검토 지침은 REVIEW.md, AGENTS.md, CLAUDE.md, 스킬보다 우선하며, 저장소 지침은 워크스페이스 지침보다 우선합니다. 지침이나 저장소의 어떤 내용도 일치하는 저장소 검사의 실행을 막을 수 없습니다.
HeyDeer가 가이드를 무시하는 것 같다면 문제 해결을 참고하세요.
풀 리퀘스트가 바꿀 수 있는 것
HeyDeer는 AGENTS.md, CLAUDE.md, REVIEW.md, 저장소 검사, 스킬을 풀 리퀘스트의 헤드 커밋에서 읽습니다. 이 파일을 수정하는 풀 리퀘스트는 수정된 버전으로 검토되므로, 풀 리퀘스트가 자신을 검토하는 기준이 되는 가이드를 바꿀 수 있습니다. HeyDeer는 이런 풀 리퀘스트를 자동 승인하지 않습니다.
검토 지침과 커넥터는 HeyDeer에 저장되므로 풀 리퀘스트가 바꿀 수 없습니다. 풀 리퀘스트가 바꿀 수 없어야 하는 가이드는 검토 지침에 두세요.
HeyDeer는 .gitattributes를 기준 브랜치에서 읽으므로, 풀 리퀘스트가 자기 파일을 생성된 파일로 표시해 검토에서 빠지게 할 수 없습니다. 각 구성이 어디에 저장되고 누가 변경할 수 있는지는 설정 참조를 참고하세요.
생성된 파일
생성된 클라이언트 같은 생성 파일은 .gitattributes에서 linguist-generated로 표시하세요. HeyDeer는 검토와 저장소 검사에서 이 파일을 건너뛰며, 이 속성은 기준 브랜치에서 읽습니다.
기준 브랜치에 이미 있는 lock 파일은 속성을 지정하지 않아도 건너뜁니다. lock 파일을 검토하려면 -linguist-generated로 표시하세요. HeyDeer는 어느 폴더에 있든 다음 파일 이름을 lock 파일로 취급합니다: package-lock.json, npm-shrinkwrap.json, yarn.lock, pnpm-lock.yaml, bun.lock, bun.lockb, deno.lock, Cargo.lock, go.sum, Gemfile.lock, composer.lock, poetry.lock, Pipfile.lock, uv.lock, pdm.lock, pubspec.lock, Podfile.lock, Package.resolved, mix.lock, packages.lock.json, gradle.lockfile, flake.lock, MODULE.bazel.lock, .terraform.lock.hcl
# .gitattributes
src/generated/** linguist-generated
# Review this lock file anyway
Cargo.lock -linguist-generated변경된 모든 파일을 건너뛰면 HeyDeer Review 검사에 “검토할 파일 없음”이 표시되고 크레딧은 사용되지 않습니다.
HeyDeer가 읽지 않는 것
생성된 파일 외에도 HeyDeer는 다음을 읽지 않습니다.
- 다른 저장소의 이슈와 풀 리퀘스트
- AGENTS.md나 CLAUDE.md가 가져오는 파일. AGENTS.md를 참고하세요.
.claude/settings.json,.mcp.json, 훅 같은 저장소의 에이전트 구성. 검토에 외부 맥락을 제공하려면 커넥터를 사용하세요.- 코드 실행 결과. HeyDeer는 코드와 테스트를 읽지만 빌드하거나 실행하지는 않습니다.
HeyDeer는 논의 맥락을 약 180KB 및 코드에 대한 대화 200개 이내로 유지합니다. 오래된 검토와 해결된 대화를 먼저 제외하고, 필요하면 다른 논의도 제외합니다. 논의가 많아도 검토는 진행됩니다.
AGENTS.md, 저장소 검사, 스킬, 검토 지침, 커넥터의 크기 제한은 설정 참조를 참고하세요.