让 HeyDeer 了解你的代码库
技能
技能以开放的 Agent Skills 格式保存可复用的流程,例如如何核实路由的访问控制。仓库检查会列出它需要的技能,HeyDeer 在执行该检查时会遵循这些技能。
添加技能
- 在
.agents/skills/中创建一个文件夹。文件夹名就是技能名称,例如api-auth。 - 在文件夹中添加
SKILL.md。按照 Agent Skills 格式的要求,文件以 frontmatter 开头,其中重复写明name,并通过description说明何时使用该技能。 - 在 frontmatter 下方编写流程。
- 在每个需要该技能的检查中,将它列在
skills下。
.agents/skills/api-auth/SKILL.md
---
name: api-auth
description: How route handlers authenticate and authorize requests.
Use when checking a route's access control.
---
# Checking a route's access control
1. Find the handler in src/routes/ and the middleware its router
applies.
2. requireAuth() from src/auth/middleware.ts must run before the
handler reads the request.
3. Routes under /admin also need requireRole('admin').
4. A handler that takes an :orgId parameter calls
assertMember(user, orgId) before its first query.
Routes listed in src/routes/public.ts are public by design.- 技能名称使用小写字母、数字和单个连字符,最多 64 个字符。
- 每个技能是一个包含 SKILL.md 的文件夹。HeyDeer 会按照 Agent Skills 格式的规定加载整个文件夹,包括 SKILL.md 引用的文件。
- HeyDeer 从 PR 中读取技能,所以 PR 可以添加或修改审查它自己时用到的技能。参见 PR 可以更改哪些内容。
在检查中列出技能
在检查的 frontmatter 中,将技能名称添加到 skills 下,可以是单个名称或列表:
.agents/checks/route-auth.md
---
files: "src/routes/**"
skills: [api-auth]
---
Every new or changed route handler checks authentication and
authorization before it reads the request.- 技能只起指导作用。列出的技能不存在时,HeyDeer 仍会按检查本身的指令执行检查。
- 匹配变更文件的检查如果列出了无效的技能名称,该检查就是无效的。HeyDeer 会跳过该检查,在审查说明中列出,并继续审查。
已经在使用 .claude/skills?
添加一个符号链接,让 .agents/skills 指向同一批技能,不用移动文件:
mkdir -p .agents
ln -s ../.claude/skills .agents/skills
git add .agents/skills