Clipping 微信公众号

驾驭 Claude Code:CLAUDE.md 配置文件、Skills、Hooks、Rules、Subagents 等 7 种指令全解析

by 邵猛 原文 ↗
Created: 2026-06-20

公众号名称:AI 启蒙小伙伴

作者名称:邵猛

发布时间:2026-06-20 11:03

驾驭 Claude Code 的 7 种指令

Steering Claude Code: CLAUDE.md files, skills, hooks, rules, subagents and more

https://claude.com/blog/lessons-from-building-claude-code-how-we-use-skills

Claude Code 最新博客围绕七种方法展开:CLAUDE.md 文件、Rules、Skills、Subagents、Hooks、Output Styles、Appending the System Prompt。 每种方式的本质差异体现在三个维度:

  • 何时加载进上下文
  • 会话压缩(compaction)后是否保留
  • 消耗多少 token、权威性如何

七种指令方式

1. CLAUDE.md 文件

项目根目录下的 Markdown 文件,是最基础的配置层。

分两类加载:根目录 CLAUDE.md 在会话开始时全程驻留上下文,压缩后重新读取;子目录 CLAUDE.md 按需加载,仅当 Claude 访问该目录下文件时才触发,压缩后即失效。

关键警示:在共享仓库中,CLAUDE.md 往往像任何无人负责的配置文件一样,各团队不断追加内容却从不删减,成本在规模上会持续累积。每一行都会加载进每位工程师的每次会话,无论与当前任务是否相关。

官方建议:控制在 200 行以内,指定负责人,像审查代码一样审查变更。


2. Rules(规则)

存放在 .claude/rules/ 的 Markdown 文件。

最有价值的特性是路径作用域:通过 paths 字段控制仅在触碰特定文件时才加载。例如只在 src/api/** 被访问时才注入”所有 API 处理器必须用 Zod 验证输入”的规则,而不是全程占用 token。

无 paths 限定的规则,行为等同于 CLAUDE.md——始终在场,始终消耗。


3. Skills(技能)

存放在 .claude/skills/ 的程序化工作流。

设计精妙之处:会话开始时只加载名称和描述;完整内容仅在技能被调用时才载入,可通过斜杠命令或任务自动匹配触发。

适合封装部署流程、发布检查清单、代码审查流程等固定程序,而非塞进 CLAUDE.md。Claude Code 自带若干内置 Skills,也支持自定义。


4. Subagents(子智能体)

存放在 .claude/agents/ 的独立助理定义。

与 Skills 的关键区别在于隔离性:子智能体在自己独立的全新上下文窗口中运行,返回给主会话的只有最终消息(通常是多个子任务的聚合结果)加上元数据,中间过程完全不污染主会话。

适合”跑完就丢”的旁路任务:深度搜索、日志分析、依赖审计。子智能体最多可嵌套五层深,支持动态编排数十到数百个后台 Agent 并行运作。

Skills vs Subagents 选择原则:想在主线程中逐步看到、随时干预 → Skills;想要隔离运行、只要最终结论 → Subagents。


5. Hooks(钩子)

注册在 settings.json 中,在 Claude 生命周期的特定事件上触发(文件编辑、工具调用、会话开始等)。

这是确定性控制的唯一真正实现:Hooks 完全绕过上下文压缩机制,配置本身存在于主上下文窗口之外,因此上下文成本极低。

支持 command、HTTP、mcp_tool(确定性执行)和 prompt、agent(用模型判断)五种类型。一个 PreToolUse hook 可以拦截任何工具调用,以 exit code 2 阻止其执行。

重要观点:凡是写在 CLAUDE.md 里的”永远不要做某事”,都是错误的工具选择。Claude 大多数时候会遵守,但在长会话、模糊情况或遭遇提示词注入时可能失效。真正的硬约束必须是确定性的,而 Hooks 和权限控制才是实现方式。

组织级强制管控还可以使用 Managed Settings(管理员部署,用户无法覆盖)。


6. Output Styles(输出风格)

存放在 .claude/output-styles/ 的文件,直接注入系统提示,永不被压缩,权威性最高。

高权威有代价:自定义输出风格默认会替换掉 Claude Code 的默认输出风格,包括”如何界定改动范围、何时添加注释、如何处理安全问题、声称完成前是否运行测试”等关键编程默认指令,使 Claude Code 退化为通用助理。

官方建议先看内置风格(Proactive/Explanatory/Learning),覆盖大多数需求,无需自己维护文件。


7. Appending the System Prompt(追加系统提示)

通过 CLI flag 在调用时追加,仅对本次调用生效,不跨会话持久化。

与 Output Styles 的区别是只增不替换,不改变 Claude 的角色设定,只是在默认角色上叠加指令。

注意边界:追加系统提示存在边际收益递减问题。提供的指令越多,Claude 的遵从度越低,若指令之间存在矛盾则尤为明显。


几个实用决策原则

文章最后的”避坑指南”值得单独提炼:

你想做的事错误做法正确做法
每次编辑后自动跑 linter写进 CLAUDE.md用 Hook 注册到 PostToolUse
禁止某类危险操作”Never do this” 写 CLAUDE.mdPreToolUse Hook + exit code 2
30 行部署流程塞进 CLAUDE.md放进 .claude/skills/
只对 API 目录生效的规则无路径限定的 Rulepaths: 字段作用域限定
个人习惯偏好写进项目级 CLAUDE.md写进用户级配置(对所有仓库生效)

总结

这篇文章的核心价值在于揭示了一个常被忽略的认知:“告诉 Claude 应该怎么做”和”让某件事确定性地发生”是两件本质不同的事。 CLAUDE.md、Rules、Skills 走的是”提示词说服”路径,依赖模型理解和遵从;而 Hooks 走的是”代码执行”路径,不依赖模型,不受提示词注入干扰,是真正的硬约束。

理解这七种机制各自的加载时机、生命周期和权威等级,是把 Claude Code 从”可用”推向”可靠”的关键一步。


相关资源推荐

Claude Code 一周年回顾:从 Slack 两人点赞到绝对主流 Coding Agent,CC 到底做对了什么,未来要做什么?

[Anthropic 官方白皮书] 面向 AI Agent 的零信任安全:企业自主 AI Agent 部署框架

Anthropic 团队内设计师们如何用 Claude Code 做产品、写代码、推 PR、浏览器验证、定时巡检…

Claude Code 工程实践揭秘:Anthropic 内部 Skills 设计的九类框架与编写最佳实践


内容效果不满意?点此反馈

输入关键词开始搜索