Claude Code Skills终极指南:九大类型深度解析

Anthropic内部几百个Skills实战:从库解释到运维自动化,揭秘Claude Code Skills的九大分类体系与最佳实践,附赠团队协作与插件市场搭建秘籍,助你打造属于自己的AI工具箱帝国。

Claude Code的Skills功能。这玩意儿说白了就像是给AI配了一套万能工具箱,你想让它干啥,提前把说明书和工具塞进去,它就能干得更漂亮。Anthropic这家公司,就是造Claude的那个,他们自己内部已经搞了几百个这种Skills在用,今天咱们就来扒一扒他们到底学到了啥经验教训。

很多人一听Skills就觉得,这不就是几个Markdown文件嘛,有啥了不起的。这种想法就像是看到冰山露出水面那一小块,就觉得整座山就这么大一样天真。实际上Skills最骚的地方在于它根本不是一个文件,而是一个完整的文件夹,里面可以塞脚本、塞资源、塞数据,Claude这个agent(智能体)可以在里面逛来逛去,发现东西,摆弄东西,就像你进了一个装备齐全的实验室一样自在。

在Claude Code里面,Skills还有一个专门的配置文件叫claude-plugin.toml,这个文件厉害到什么程度呢?它甚至可以注册动态钩子,让AI在特定的时候自动触发特定操作。Anthropic的人用了一段时间后发现,那些最牛的Skills往往都是把文件夹结构和配置选项玩出花来的,而不是简简单单写几行说明文字就完事的。

Skills的九大江湖门派

Anthropic的人把自家几百个Skills翻出来盘点了一下,发现这些家伙自然而然地聚成了几个帮派。最厉害的Skills通常只混一个帮派,而那些让人摸不着头脑的Skills往往是脚踩好几条船的墙头草。这个分类不是啥金科玉律,但用来检查自己公司是不是漏掉了哪种类型的Skills,简直不要太好用。

第一类帮派叫做库解释派,专门教Claude怎么正确使用各种库、命令行工具或者SDK。这些可能是你们公司内部开发的库,也可能是Claude Code有时候搞不定的常见库。这类Skills通常会有一个文件夹专门放参考代码片段,还会列出一堆坑让Claude绕着走。比如有个叫billing-lib的Skill,专门讲内部计费库的各种边界情况和坑;还有个internal-platform-cli,把内部CLI工具的每个子命令都讲清楚,配上啥时候该用啥的例子;再比如frontend-design,让Claude更懂你们公司的设计系统。

第二类是验证派,专门描述怎么测试和验证代码是不是在正常工作。这类Skills经常和外部工具搭档,比如playwright、tmux之类的。验证类的Skills超级有用,能确保Claude产出的东西是对的。Anthropic甚至觉得值得让一个工程师花一整周时间把这类Skills打磨到极致。你可以让Claude录个视频展示它测试了啥,或者在每一步都用程序断言检查状态。这类Skills通常会包含各种脚本。比如signup-flow-driver,用无头浏览器跑完注册、邮箱验证、 onboarding全套流程,每一步都能检查状态;checkout-verifier,用Stripe的测试卡驱动结账界面,验证发票是不是真的到了正确的状态;tmux-cli-driver,专门用来测试需要TTY的交互式CLI。

第三类是数据连接派,负责连上你们的数据和监控体系。这类Skills可能包含用凭证拉取数据的库、特定的仪表盘ID,还有常见工作流程的说明。比如funnel-query,告诉你"要看注册到激活到付费该join哪些事件",还有真正存着canonical user_id的表在哪;cohort-compare,比较两群人的留存或转化率,标出统计上显著的差异,还能链接到人群定义;grafana,存着数据源UID、集群名、问题到仪表盘的查找表。

第四类是工作流自动化派,把重复性的工作流程压缩成一个命令。这类Skills通常指令比较简单,但可能依赖其他Skills或MCP。对于这类Skills,把之前的结果存到日志文件里能帮模型保持一致性,还能回顾之前的执行情况。比如standup-post,聚合你的工单系统、GitHub活动和之前的Slack消息,格式化成日报,只显示变化;create--ticket,强制要求schema(有效的枚举值、必填字段),还有创建后的流程(通知审核人、在Slack里发链接);weekly-recap,把合并的PR、关闭的工单、部署记录汇总成格式化的周报。

第五类是脚手架生成派,为代码库里的特定功能生成框架模板。你可以把这类Skills和可组合的脚本搭配使用。当脚手架有自然语言需求没法纯靠代码覆盖时,这类Skills特别有用。比如new--workflow,脚手架生成新服务、工作流或处理器,带上你们的注解;new-migration,你们的迁移文件模板加上常见坑;create-app,新的内部应用,预先把认证、日志和部署配置接好。

第六类是代码质量派,在组织内部强制执行代码质量规范,帮忙审查代码。这类可以包含确定性脚本或工具来保证最大健壮性。你可能想把这些Skills作为钩子自动运行,或者放到GitHub Action里。比如adversarial-review, spawn一个 fresh-eyes 子agent来挑刺,实现修复,迭代到发现的问题只剩吹毛求疵;code-style,强制执行代码风格,特别是Claude默认做不好的那些风格;testing-practices,说明怎么写测试、测什么。

第七类是代码操作派,帮你在代码库里获取、推送和部署代码。这类Skills可能会引用其他Skills来收集数据。比如babysit-pr,监控一个PR,重跑 flaky CI,解决合并冲突,开启自动合并;deploy-,构建、冒烟测试、渐进式流量灰度、错误率对比、回滚;cherry-pick-prod,隔离工作区、cherry-pick、冲突解决、带模板的PR。

第八类是调试派,拿到一个症状(比如Slack线程、告警或错误签名),走一遍多工具调查流程,产出结构化报告。比如-debugging,把症状映射到工具再到查询模式,针对你们流量最高的服务;oncall-runner,获取告警、检查常见嫌疑、格式化发现;log-correlator,给定一个请求ID,从所有可能接触过的系统里拉取匹配日志。

第九类是运维派,执行例行维护和运维操作——其中一些涉及破坏性操作,有防护措施会更安全。这些让工程师在关键操作中更容易遵循最佳实践。比如-orphans,找到孤儿pod或卷,发到Slack,浸泡期,用户确认,级联清理;dependency-management,你们组织的依赖审批流程;cost-investigation,"为啥存储或出口账单暴涨",带上具体的bucket和查询模式。

写好Skills的十八般武艺

决定好要做啥Skill之后,怎么写才能写好呢?这里有一些Anthropic总结的最佳实践、技巧和窍门。他们最近还发布了Claude Code Skills Creator,让在Claude Code里创建Skills变得更容易。

Claude Code对你的代码库了解很多,Claude本身对编程也懂很多,包括很多默认观点。如果你发布的Skill主要是关于知识的,试着聚焦于能把Claude推出常规思维模式的信息。Design Skill就是个好例子——它是Anthropic的一个工程师通过和客户迭代,提升Claude的设计品味而建的,避免Inter字体和紫色渐变这种经典套路。

任何Skill里信号最强的内容就是Gotchas(坑)部分。这些部分应该从Claude使用你的Skill时遇到的常见失败点积累而来。理想情况下,你会随着时间更新Skill,把这些坑都 capture 进去。

就像之前说的,Skill是一个文件夹,不只是个Markdown文件。你应该把整个文件系统当作一种上下文工程和渐进式披露。告诉Claude你的Skill里有哪些文件,它会在合适的时候读取它们。

最简单的渐进式披露形式是指向其他Markdown文件让Claude用。比如,你可以把详细的函数签名和用法示例拆到references/api.md里。另一个例子:如果你的最终输出是Markdown文件,你可以在assets/里放个模板文件让它复制使用。你可以有references、scripts、examples等文件夹,帮Claude更有效地工作。

Claude通常会尽量遵守你的指令,因为Skills非常可复用,你在指令里太具体的时候要小心。给Claude它需要的信息,但给它适应情况的灵活性。比如:

Some skills may need to be set up with context from the user. For example, if you are making a skill that posts your standup to Slack, you may want Claude to ask which Slack channel to post it in.

A good pattern to do this is to store this setup information in a config.json file in the skill directory like the above example. If the config is not set up, the agent can then ask the user for information.

If you want the agent to present structured, multiple choice questions you can instruct Claude to use the AskUserQuestion tool.

当Claude Code启动会话时,它会构建一个所有可用Skills的清单,带上描述。这个清单就是Claude扫描来决定"有没有Skill能处理这个请求?"的东西。这意味着description字段不是摘要——而是描述啥时候触发这个Skill的说明。

有些Skills可以通过在里面存数据来包含某种形式的记忆。你可以存数据到简单如只追加的文本日志文件或JSON文件,或者复杂如SQLite数据库。比如,standup-post Skill可能会保留一个standups.log,记录它写的每个帖子,这样下次运行时Claude能读自己的历史,告诉你自昨天以来有啥变化。

存在Skill目录里的数据可能在升级Skill时被删除,所以你应该存在稳定的文件夹里。目前他们提供${CLAUDE_PLUGIN_DATA}作为每个插件存数据的稳定文件夹。

你能给Claude最强大的工具之一就是代码。给Claude脚本和库,让它把回合花在组合上,决定下一步做啥,而不是重建样板代码。比如,在你的数据科学Skill里,你可能有一堆函数库用来从事件源拉取数据。为了让Claude做复杂分析,你可以给它一组辅助函数,像这样:

Claude can then generate scripts on the fly to compose this functionality to do more advanced analysis for prompts like "What happened on Tuesday?"

Skills可以包含只在Skill被调用时激活、持续整个会话的钩子。用这个来放那些你不想一直运行、但有时极其有用的更有观点的钩子。比如:

/careful — blocks rm -rf, DROP TABLE, force-push, kubectl delete via PreToolUse matcher on Bash. You only want this when you know you're touching prod — having it always on would drive you insane

/freeze — blocks any Edit/Write that's not in a specific directory. Useful when debugging: "I want to add logs but I keep accidentally 'fixing' unrelated"

团队协作:Skills的社交牛逼症

Skills最大的好处之一就是你可以和团队其他人分享。有两种主要方式可以分享Skills:一种是把Skills签入你的仓库(放在./.claude/skills下面);另一种是做个插件,搞个Claude Code Plugin市场,让用户上传和安装插件。

对于在相对少量仓库工作的小团队,把Skills签入仓库就挺好。但每个签入的Skill都会给模型的上下文增加一点点负担。随着规模扩大,内部插件市场让你能分发Skills,让团队决定装哪些。

怎么决定哪些Skills进市场?人们怎么提交?Anthropic没有 centralized 团队来决定;相反他们尝试有机地找到最有用的Skills。如果你有个Skill想让人试用,可以上传到GitHub的sandbox文件夹,然后在Slack或其他论坛指给人们看。

一旦Skill有了 traction(由Skill owner决定),他们可以提PR把它移进市场。需要注意的是,创建糟糕或冗余的Skill相当容易,所以确保发布前有一些策展方法很重要。

你可能想要相互依赖的Skills。比如,你可能有个文件上传Skill负责上传文件,还有个CSV生成Skill负责生成CSV并上传。这种依赖管理还没原生内置到市场或Skills里,但你可以直接通过名字引用其他Skills,模型会在它们已安装时调用它们。

为了理解Skill表现如何,Anthropic用PreToolUse钩子在公司内部记录Skill使用情况。这意味着他们能发现哪些Skill受欢迎,或者哪些触发频率低于预期。

结尾:Skills的未来在你手中

Skills是极其强大、灵活的工具,但现在还处于早期,大家都在摸索怎么最好地使用它们。把这当作一袋有用的小技巧,而不是 definitive 指南。理解Skills最好的方式就是开始动手,实验,看看啥对你有用。Anthropic的大部分Skills一开始都只有几行和一个坑,因为人们不断添加Claude遇到的新边界情况而变得越来越好。