HeyDeer 读取的内容
审查会结合整个仓库的上下文阅读 PR 的改动,同时参考 PR 讨论和你为 HeyDeer 提供的指导。 本页说明各类指导应放在哪里,以及其中哪些可以被 PR 更改。
代码和讨论
HeyDeer 审查 PR 的改动,并可以读取和搜索 PR 最新提交中的任何文件以及提交历史。发现的问题可能指向 diff 之外、被此次改动破坏的代码。
它还会读取 PR 的标题、描述和讨论。
相关 Issue 和 PR
开启读取相关 Issue 和 PR(默认开启)时,如果同一仓库中的 Issue 和 PR 能说明此次改动(例如该 PR 修复的 Issue),HeyDeer 可以读取它们。可在审查规则 → 如何审查中更改;参见设置参考。
各类指导应放在哪里
一开始不需要任何指导:HeyDeer 从第一次审查起就会结合整个仓库审查。之后根据最初几次审查暴露的不足再补充。
只写你的代码库特有的内容。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、仓库检查、技能、审查指令和连接器的大小限制,参见设置参考。