heydeer
让 HeyDeer 了解你的代码库

技能

技能以开放的 Agent Skills 格式保存可复用的流程,例如如何核实路由的访问控制。仓库检查会列出它需要的技能,HeyDeer 在执行该检查时会遵循这些技能。

添加技能

  1. 在 .agents/skills/ 中创建一个文件夹。文件夹名就是技能名称,例如 api-auth。
  2. 在文件夹中添加 SKILL.md。按照 Agent Skills 格式的要求,文件以 frontmatter 开头,其中重复写明 name,并通过 description 说明何时使用该技能。
  3. 在 frontmatter 下方编写流程。
  4. 在每个需要该技能的检查中,将它列在 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