heydeer
让 HeyDeer 了解你的代码库

HeyDeer 读取的内容

审查会结合整个仓库的上下文阅读 PR 的改动,同时参考 PR 讨论和你为 HeyDeer 提供的指导。 本页说明各类指导应放在哪里,以及其中哪些可以被 PR 更改。

代码和讨论

HeyDeer 审查 PR 的改动,并可以读取和搜索 PR 最新提交中的任何文件以及提交历史。发现的问题可能指向 diff 之外、被此次改动破坏的代码。

它还会读取 PR 的标题、描述和讨论。

开启读取相关 Issue 和 PR(默认开启)时,如果同一仓库中的 Issue 和 PR 能说明此次改动(例如该 PR 修复的 Issue),HeyDeer 可以读取它们。可在审查规则 → 如何审查中更改;参见设置参考。

各类指导应放在哪里

一开始不需要任何指导:HeyDeer 从第一次审查起就会结合整个仓库审查。之后根据最初几次审查暴露的不足再补充。

只写你的代码库特有的内容。HeyDeer 已经掌握通行的工程实践,每次审查也都会查找缺陷和安全问题,重复这些内容的指导没有作用。

在你的仓库中
AGENTS.md整个仓库的约定
src/payments/AGENTS.md单个目录的约定
REVIEW.md审查时要检查和不必理会的内容
.agents/
checks/api-workspace-scope.md适用于其覆盖文件的要求
skills/api-auth/SKILL.md供检查使用的流程
.gitattributes标记要跳过的生成文件
在 HeyDeer 中
审查指令优先事项、不必理会的内容和反馈措辞
连接器来自仓库之外的上下文
你想告诉 HeyDeer 什么放在
代码如何运作,以及遵循哪些约定。编程智能体也会遵循。AGENTS.md
审查应关注什么、不必理会什么,以及问题有多严重REVIEW.md
HeyDeer 必须在每个修改了特定文件的 PR 中核实的要求.agents/checks/
多个检查共用的流程.agents/skills/
PR 不能修改的审查指导,或适用于所有仓库的审查指导审查指令
仓库之外的上下文,例如工单或内部文档连接器

用检查还是 REVIEW.md

审查在检查整个改动时会遵循 AGENTS.md 和 REVIEW.md。每个匹配的检查还会有自己的审查员,只核实这一项要求,所以检查更彻底,但会用掉更多积分。

漏掉代价高、又容易被忽略的要求,例如 API 路由的访问控制,就写成检查。其余的放在 REVIEW.md 中。参见编写有效的检查。

指导相互冲突时

审查指令优先于 REVIEW.md、AGENTS.md、CLAUDE.md 和技能,仓库指令优先于工作区指令。无论是指令还是仓库中的任何内容,都无法阻止匹配的仓库检查运行。

如果 HeyDeer 似乎忽略了你的指导,参见故障排除。

PR 可以更改哪些内容

HeyDeer 从 PR 的最新提交中读取 AGENTS.md、CLAUDE.md、REVIEW.md、仓库检查和技能。修改了这些文件的 PR 会按 PR 里的版本审查,因此 PR 可以更改审查它时所依据的指导。 HeyDeer 不会自动批准这类 PR。

审查指令和连接器保存在 HeyDeer 中,因此 PR 无法更改它们。不能让 PR 更改的指导,请放在审查指令中。

HeyDeer 从目标分支读取 .gitattributes,因此 PR 无法把自己的文件标记为生成文件来逃避审查。各项配置位于何处、谁可以更改,参见设置参考。

生成文件

在 .gitattributes 中将生成的客户端代码等生成文件标记为 linguist-generated。HeyDeer 会在审查和仓库检查中跳过这些文件,并从目标分支读取该属性。

目标分支中已有的锁文件无需设置属性就会被跳过。如需审查某个锁文件,请将其标记为 -linguist-generated。HeyDeer 会把以下文件名视为锁文件,无论位于哪个目录: 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 也不读取:

  • 其他仓库中的 Issue 和 PR。
  • AGENTS.md 或 CLAUDE.md 导入的文件。参见 AGENTS.md。
  • 仓库中的智能体配置,例如 .claude/settings.json、.mcp.json 或钩子(hooks)。如需为审查提供仓库之外的上下文,请使用连接器。
  • 代码的运行输出。HeyDeer 会阅读代码和测试,但不会构建或运行它们。

HeyDeer 会将讨论上下文控制在约 180 KB 和 200 个代码讨论以内,优先略去较早的审查和已解决讨论,必要时再略去其他讨论内容。讨论过多不会阻止审查。

AGENTS.md、仓库检查、技能、审查指令和连接器的大小限制,参见设置参考。