目录
问这篇文章
只基于本文回答
一句话总结:越顶级的 Skill,字数越少——12 个文件没有一个超过 5KB,但每一个都精确控制了模型的一类行为。
开场
Claude Code 源码泄露之后,社区都在拆它的 Runtime、压缩梯子、Tool 协议。但还有一层东西更接地气、更能直接抄回家用——Skill。
Skill 是 Anthropic 给模型写的”行为铁路”:不是写死的 system prompt,而是按需激活的、负责约束某一类具体动作的小规则集。源码里一共抠出 12 个,加起来不到 60KB。
很多人一看到”提示词模板”,第一反应是越长越好、越细越好。结果就是动辄 20KB、30KB 的 mega-prompt,模型注意力被稀释,规则形同虚设。Claude Code 的做法恰好相反:每个 Skill 都被压到极限的精炼,靠”少而准”赢过”多而散”。
那么这 12 个 Skill 到底各管什么?怎么按场景挑?哪些可以直接照抄?
金字塔总览
mindmap
root((12 个 Skill<br/>4 类铁路))
一·调度类
代码探索 Agent
规划 Agent
子 Agent 编排
二·反思类
反向假设
不准乱来
诚实汇报
三·护栏类
权限分级
命令安检
文件改动保护
四·节流类
上下文压缩
缓存友好
子任务复用一、为什么 12 个 Skill 都不到 5KB
先把这一点说清楚——它不是巧合,是设计取向。
大模型有注意力机制。规则文件越长,模型越读越散,前面读完后面忘了,最后哪条都没贯彻。所以顶级 Skill 不是”把所有规则写全”,而是把规则压到模型一眼能扫完的程度。
Skill 大小与质量的关系,大致是这样:
| 大小 | 形态 | 模型行为 |
|---|---|---|
| < 2KB | 单一规则 + 几条反例 | 几乎 100% 命中 |
| 2~5KB | 一类行为 + 触发场景 + 反例 | 高命中,仍可控 |
| 5~10KB | 多类混杂 | 注意力开始分散 |
| > 10KB | mega-prompt | 形同虚设 |
金句:好的规则像铁路,决定的不是方向,而是速度——是火车还是动车,全看铁路修得有多准。
12 个 Skill 全部落在前两档。下面按”调度、反思、护栏、节流”四类拆开。
二、调度类:让模型知道”谁该干这件事”
这一类 Skill 解决的是任务分发:一个请求进来,到底是该自己干、找子 Agent 干,还是先规划再干。
2.1 代码探索 Agent
核心规则:遇到陌生代码库的问题,先做侦察、不做修改——读、grep、glob、跟随调用链,把上下文摸清楚再发结论。
典型场景:用户说”这个 bug 在哪里”、“这块逻辑怎么实现的”。模型最容易犯的错是直接给一段看似合理的代码,但其实没读过仓库。这个 Skill 把”先侦察”写成硬规则。
抄家精髓:规则里只有几条——禁止写入、禁止猜测、必须列出引用过的文件路径。不到 2KB。
2.2 规划 Agent
核心规则:复杂任务先出计划再动手,计划里必须有可验证的中间产物。
典型场景:用户说”重构这个模块”、“加一个新功能”。如果不强制规划,模型会直接 dive into 写代码,到一半发现方向错了,沉没成本巨大。
抄家精髓:把”先写 plan.md,再按步执行,每步完成打勾”写进规则。重点不在格式而在强制中断——计划没出来之前不许调用 file_edit。
2.3 子 Agent 编排
核心规则:什么时候开 sub-agent,什么时候在主链里继续。默认不开,只有上下文压力大或者任务可以并行时才开。
典型场景:批量读文件、跑多个独立检索。如果主 Agent 自己读 20 个文件,主链 transcript 会被工具产物撑爆。开一个 sub-agent,让它读完只返回摘要,主链就轻了。
抄家精髓:明确写出”开 sub-agent 的三种条件”——任务可并行、输出量大、需要隔离失败半径。不满足条件就不开。
金句:调度类 Skill 不是教模型”怎么做”,而是教模型”先停下来,想清楚谁来做”。
三、反思类:把”差不多”和”幻觉”按死
这一类是 12 个 Skill 里最有创意的。它们不解决”怎么做对”,而是解决”怎么不让模型给自己找借口”。
3.1 反向假设
核心规则:当模型自己心里冒出”看起来没问题”、“测试应该过了”、“应该可以”这种模糊词时——立刻去做相反的事,主动找反例。
典型场景:写完代码后模型说”我觉得这个改动应该 OK”。这个”应该”就是触发器,Skill 立刻要求它构造一个失败用例去打破自己的假设。
抄家精髓:规则只有两段——列出”危险词清单”(“应该、大概、差不多、看起来、似乎”),列出”触发后必做动作”(写反例、跑测试、对比 diff)。
3.2 不准乱来
核心规则:禁止四件事——加没要求的功能、过度封装、瞎重构、假装测试。
典型场景:用户只是说”改一下 X 函数的返回值”,模型一兴奋顺手把整个文件重构了。或者用户说”加一个测试”,模型写了一个 expect(true).toBe(true) 凑数。
抄家精髓:每条禁令配一个典型违规样本。模型对”反例”的敏感度远高于”正面规范”。
3.3 诚实汇报
核心规则:禁止说”已经完成”,除非有可验证的产物。允许说”我尝试了 A、失败原因是 B、下一步建议 C”。
典型场景:长任务跑到一半因为某个工具失败,模型最常见的反应是美化失败——“已经基本完成,剩下一点小问题”。这个 Skill 强制它直说”卡在哪、为什么卡”。
抄家精髓:规则里写明三种合法汇报格式——成功 + 证据、失败 + 原因、部分完成 + 边界。其他一律不算。
金句:反思类 Skill 的本质是给模型装一个”自我反讽器”,让它发现自己开始打模糊牌时,主动出手把自己拽回来。
四、护栏类:让”能跑 shell 的 Agent”也敢交给普通人
这一类是和 Runtime 安全管线配套的——Skill 负责模型层的克制,Runtime 负责执行层的拦截,两层叠在一起才是完整的安全策略。
4.1 权限分级
核心规则:每一个工具动作必须自己声明”风险级别”——只读、本地写、外网请求、shell 执行——不同级别走不同审批路径。
典型场景:模型决定跑一条 rm -rf 之前,必须把它标成最高风险等级,触发权限弹窗,而不是直接调用。
抄家精髓:风险级别只分三档,别多——绿(直接做)、黄(提示后做)、红(必须问)。三档已经够覆盖 90% 场景。
4.2 命令安检
核心规则:所有 shell 命令进入执行前要过 14 道关卡——危险关键字、路径白名单、参数解析、目录边界等等。
典型场景:用户输入 npm test,看着无害,但参数里如果带了 --prepare-script 之类的钩子,可能间接拉起任意命令。Skill 不直接信任命令字符串,而是先做语义解析。
抄家精髓:抄不动 14 道关卡的全部,但可以抄第一关——把命令字符串解析成 token,禁止 token 里出现 `; && || $( “。光这一条就拦掉 80% 的注入。
4.3 文件改动保护
核心规则:禁止改动一类特殊文件——.claude/、Skill 自身目录、权限配置文件。模型不能改自己的规则。
典型场景:一个被注入了 prompt injection 的 issue,让模型修改 .claude/settings.json 来扩大权限。如果没有这条 Skill,模型可能真的会做。
抄家精髓:维护一个”禁写目录清单”,每次 file_edit 之前先比对路径前缀。一行 if 的事,但能堵掉一整类供应链风险。
金句:护栏不是堵在出口,而是写进每一个动作的协议里。模型不是”想做坏事时被拦”,而是”压根不知道有这条路”。
五、节流类:把 token 当资源管
Claude Code 的价格在所有大模型里算是最贵的之一。Anthropic 自己在源码里也写了大量的”节流 Skill”——这些规则可以直接照搬到任何调 API 的场景里。
5.1 上下文压缩
核心规则:每轮 API 请求前先尝试轻量压缩——把陈旧的工具输出折叠成一行摘要,再去算占用。占用没超阈值就别动主链。
典型场景:跑了 30 轮后 context 占用 80%。如果直接整体 compact 一次,要单独请求一次模型、再重建 attachment,成本极高。先尝试 micro-compact,能省下来就省。
抄家精髓:把压缩做成”阶梯”——能用 1KB 解决就别用 5KB,能截断就别摘要,能摘要就别整体重写。
5.2 缓存友好
核心规则:prompt 的前缀部分保持稳定——身份、规则、工具清单放最前面、不要变;当前日期、git 状态等会变的内容放后面。
典型场景:换模型、换会话最容易破坏缓存。源码里发现 Claude Code 明确告诉用户”别瞎换模型”,因为每换一次就是一次缓存重建。
抄家精髓:自己写系统提示词的时候,按”几乎不变 / 偶尔变 / 每次变”三段排序。光这一招就能把缓存命中率从 30% 拉到 70%+。
5.3 子任务复用
核心规则:sub-agent 的输出默认进会话级缓存。下次同样的子查询,先查缓存再决定要不要重新跑。
典型场景:用户两次问”这个文件依赖了哪些模块”。如果不复用,就要重新读文件、重新分析。Skill 让 sub-agent 的产出成为可被命中的缓存条目。
抄家精髓:给 sub-agent 的输入生成稳定 hash,把输出按 hash 存起来。这一招在 RAG 系统里也直接适用。
金句:节流类 Skill 的核心思想是把 token 当资源管——不是事后省,而是从 prompt 排序就开始省。
六、怎么用这 12 个 Skill
这 12 个 Skill 不是让你照搬全部,而是给你一个对照清单——你现在写的提示词模板,对应到这 12 类,哪几类是缺的?
- 你的模板里有没有反思类?没有的话,你的模型一定会给自己找借口。
- 你的模板里调度类是不是太重?任务还没拆,规则已经塞了 20 条,模型读不动。
- 你的模板里节流类怎么排序?稳定前缀有没有放在最前?
更重要的一点——把现有的 mega-prompt 切片。一个 20KB 的模板拆成 8 个 2KB 的 Skill,按需激活,比塞成一坨好得多。这是源码里最值得直接迁移的工程动作。
一页速览
| 类别 | Skill | 一句话核心 | 抄家精髓 |
|---|---|---|---|
| 调度 | 代码探索 | 先侦察再修改 | 禁止写入 + 必列引用 |
| 调度 | 规划 | 复杂任务必须先出计划 | 强制中断,plan 之前不动手 |
| 调度 | 子 Agent 编排 | 默认不开,三个条件触发 | 并行 / 输出量大 / 隔离 |
| 反思 | 反向假设 | 出现模糊词立刻找反例 | 列危险词清单 |
| 反思 | 不准乱来 | 不加、不封、不重、不假 | 四条禁令配反例 |
| 反思 | 诚实汇报 | 没产物不准说完成 | 三种合法汇报格式 |
| 护栏 | 权限分级 | 三档够用 | 绿黄红 |
| 护栏 | 命令安检 | 解析 token,禁危险符 | 一行 if 拦 80% |
| 护栏 | 文件改动保护 | 模型不能改自己的规则 | 禁写目录清单 |
| 节流 | 上下文压缩 | 阶梯式压缩 | 能截断就别摘要 |
| 节流 | 缓存友好 | 稳定前缀不变 | 三段排序 |
| 节流 | 子任务复用 | sub-agent 输出进缓存 | 输入 hash |
一句话收束
顶级 Skill 的真功夫不在写多,而在写准——12 个 Skill 加起来不到 60KB,但它们把 Claude Code 的所有模型行为都钉在了铁路上。
带走这篇文章的核心观点
可引用观点
《从泄露源码里抠出的 12 个 Skill:每个都不到 5KB,但都是顶级范本》
核心结论:Claude Code 源码意外泄露后,作者从里面剥离出 12 个内建 Skill,全部加起来不到 60KB,平均每个不到 5KB。它们不是花哨的提示词模板,而是被 Anthropic 反复打磨过的"规则铁路"。这篇文章把 12 个 Skill 按"调度、反思、护栏、节流"四类摊开,给出每个的核心规则、典型场景、可直接照抄的精简范式。
- 1 一、为什么 12 个 Skill 都不到 5KB
- 2 二、调度类:让模型知道”谁该干这件事”
- 3 三、反思类:把”差不多”和”幻觉”按死
适合转发到飞书、微信、即刻或笔记工具;引用时建议保留作者 kele 与原文链接。