heydeer 로그인
모범 사례

검토 가이드 작성

검토 지침과 AGENTS.md는 새 팀원이 따를 수 있는 짧고 구체적인 규칙일 때 가장 효과적입니다. 둘 중 어디에 둘지는 규칙을 둘 위치를 참고하세요.

실제 검토에서 시작하기

무언가를 작성하기 전에 HeyDeer가 몇 개의 풀 리퀘스트를 검토하게 하세요. 반복되는 누락이나 원치 않는 댓글이 있으면 그에 대한 규칙을 한 번에 몇 개씩 추가하고, 다음 검토를 읽어 효과를 확인하세요.

짧고 구체적인 규칙 작성하기

  • 규칙을 우선순위(Priorities), 건드리지 않을 것(Leave alone), 컨벤션(Conventions) 같은 몇 개의 제목 아래에 묶으세요.
  • 글머리 기호 하나에 규칙 하나를 적고, 규칙이 다루는 경로, 함수, 라이브러리를 명시하세요.
  • 이유가 분명하지 않으면 이유를 덧붙이세요.
  • 제외 범위는 좁게 유지하세요. “스크립트에 댓글을 달지 마세요”가 아니라 “scripts/one-off/의 파일에는 댓글을 달지 마세요”처럼 적으세요. 전자는 실제 문제까지 가립니다.
  • 코드베이스에서 가져온 잘못된 코드와 올바른 코드를 몇 줄씩 보여 주세요.
  • 12,000자 한도보다 훨씬 짧게 유지하세요. 지침이 길어지면 컨벤션은 AGENTS.md로, 엄격한 요구 사항은 저장소 검사로 옮기세요.

포함하지 말아야 할 것

포함하지 말 것이유대안
들여쓰기나 import 순서 같은 포매팅 규칙포매터나 린터가 이를 정확하게 강제합니다.그런 도구는 CI에서 실행하세요.
“더 꼼꼼하게 검토하세요”, “아무것도 놓치지 마세요”HeyDeer가 실행할 구체적인 내용이 없습니다.중요한 위험을 명시하거나, 심층 깊이 또는 더 넓은 피드백 범위를 사용하세요.
“당신은 시니어 보안 엔지니어입니다” 같은 페르소나 설정역할만으로는 무엇을 찾아야 하는지 알 수 없습니다.그 사람이 적용할 규칙을 작성하세요.
“…이면 병합을 막으세요”, “작은 PR은 승인하세요”지침은 검토 내용을 형성할 뿐, HeyDeer가 GitHub에서 하는 동작을 정하지 않습니다.브랜치 규칙과 함께 “문제가 발견되면 검사를 실패로 표시”를 사용하고, 자동 승인을 사용하세요.
“테스트를 실행하세요”, “먼저 프로젝트를 빌드하세요”HeyDeer는 코드를 읽습니다. 코드, 테스트, 빌드를 실행하지 않습니다.HeyDeer가 읽어서 확인할 수 있는 것을 요청하세요.
“위키의 표준을 따르세요” 같은 링크HeyDeer는 웹 링크를 열 수 없습니다.중요한 규칙을 복사하거나, 문서를 저장소에 두거나, MCP 서버를 연결하세요.
“발견 사항을 일본어로 작성하세요”언어는 요약과 제목에도 적용되는 설정입니다.검토 언어를 설정하세요.

변경 전과 후

변경 전:

You are a world-class senior engineer. Be extremely thorough and
never miss a bug. Follow our standards at
https://wiki.example.com/engineering/standards. Use 2-space
indentation. Write all comments in Japanese. Run the tests before
you review, and block the PR if anything is wrong.

변경 후:

## Priorities

- Code under src/payments/ is high risk. Every call to chargeCard()
  passes an idempotency key derived from the order ID, so a retried
  request cannot charge twice.
- Retries use retry() from src/lib/retry.ts, which adds backoff.
  Replace hand-written retry loops with it.

## Leave alone

- Files under scripts/one-off/. They run once by hand and are deleted.
- Formatting. The formatter enforces it in CI.

## Conventions

- Return client errors through AppError with a stable code.

  Incorrect:

  ```ts
  return Response.json({ error: err.message }, { status: 500 });
  ```

  Correct:

  ```ts
  throw new AppError('INVOICE_NOT_FOUND', 404);
  ```

다시 작성한 지침은 페르소나와 위키 링크를 구체적인 규칙으로 바꿉니다. 나머지는 모두 위 표에 나온 위치로 옮겨집니다.