Skip to content

02 · 指令层:AGENTS.md 与 skills

AGENTS.md 树与 skills:规则怎样进入模型上下文 ​

关键文件AGENTS.mdCLAUDE.mdpackages/AGENTS.mddocs/AGENTS.md.agents/skills/scripts/verify-skill-invocation-metadata.ts

根 AGENTS.md:标准规则 ​

根文件只放"每次会话都需要在上下文里"的规则。每条规则一到三行,加粗关键句,末尾链接到规则的正式归属。字数上限是 2,080 词,由 verify-doc-budgets 检查。

md
**An empty `catch` names the error** and why; keep its `try` to one statement.

上面是根文件里的一条原文。它短到能常驻上下文,又具体到可以在评审时直接判定。

CLAUDE.md 在根目录和 packages/ 下都只是指向 AGENTS.md 的链接,所以 Claude Code 和 Codex 等工具读到的是同一份规则。verify-skill-invocation-metadata 让两边的 skill 调用元数据保持一致。

子树 AGENTS.md:局部规则 ​

只在某个目录成立的规则放在那个目录的 AGENTS.md,不污染根文件。仓库里有:

文件内容
packages/AGENTS.md包的规则:插件导出形式、共享状态要有 owner、单一调用方的公共方法要改成私有闭包、在执行操作处强制决策、边界覆盖完整结果。上限 810 词
docs/AGENTS.md文档标准:分层表、写作规则、字数预算、slop 清单。上限 1,430 词
snapshots/AGENTS.md录制会话 snapshot 的命名、归一化和归属
scripts/AGENTS.md门禁脚本写法:语法感知的发现、防止空语料、spec 自己管理资源
.github/AGENTS.mdCI 工作流与运行器路由
.agents/notes/AGENTS.md 及其子目录每个新 Note 都要做取代检查;archived/ 冻结
benchmarks/、vendor/、website/、packages/client/ 等各自领域的补充规则

Skills:按需加载的工作流 ​

标准规则只说"要做什么"。"怎么做"写在 .agents/skills/<name>/SKILL.md 里,靠 frontmatter 的 description 触发,用到时才加载,所以不占常驻上下文。与减少 slop 直接相关的有:

Skill何时使用
dsh-prose-standard写或审任何文字:Markdown、JSDoc、注释、prompt、诊断信息、UI 文案
dsh-trim-cot-leakage清理读起来像推理过程转录的文字
dsh-find-simplifications寻找有证据支撑的删减:死代码、重复、投机设计
dsh-code-review评审 PR
cordis-styling-nitpicking审查 Cordis 插件的生命周期与所有权
dsh-error-handling设计或审查失败路径
dsh-ci-test-reliability编写或排查可能 flaky 的测试
dsh-pre-push-checks推送前选择最小的检查集
dsh-doc创建、重组、审计文档
dsh-archive-agent-notes新增或清理 Agent Note

多数 skill 开头都写着 "guidance, not a checklist"。这句话防止模型把 skill 当成机械执行的脚本,跳过语义判断。

可以借鉴

  • 根规则文件要短到能常驻上下文。每条规则自成一体,详细解释放在链接的归属文件里。
  • 给规则文件设字数上限,并用脚本检查。
  • 局部规则下沉到子目录;流程类知识做成按需加载的 skill。

依据 deepseek-harness 仓库 master 分支及其 git 历史整理