Skills 是 Claude Code 的大招——你可以给它装上各种"技能包",让它变成代码review专家、部署达人、或者任何你需要的专业助手。一次配置,随时调用。
- 每次让 Claude 帮你review代码,你都得先把评审标准说一遍。
- 每次让它部署,你都得解释一遍流程。
- 每次让它写文档,你都得强调一遍格式要求。
Claude Agent Skills 就是来解决这个问题的。它像是给 Claude 装了一个"技能插槽",你提前把专业知识塞进去,以后 Claude 一看到相关任务,自动就调用对应的技能——不用你重复唠叨。
Skills = 预置的专业知识包。
你可以把它理解成:
- 医学院的选修课:Claude 原本是个通才,你给它上一门"代码review专业课",它就成了这方面的专家
- 厨房的调料盒:提前准备好各种调料,做菜时直接撒,不用每次都现调
- 武侠小说的武功秘籍:把内功心法提前输入,Claude 遇到敌人自动出招
Skills 最大的特点:用的时候才加载,不用时不占地方。
这就厉害了------你可以装几十个技能,Claude 也只会在真正用到的时候才把对应技能的内容调进来。不会把上下文窗口塞爆。
Skills 用了一种很聪明的设计,分三层加载:
┌─────────────────────────────────────────────┐
│ 第1层:元数据(约100 tokens) │ │ - 技能名称 + 简短描述 │ │ - Claude 启动时就知道了这些技能存在 │ └──────────────────────┬──────────────────────┘
│ 触发技能时
┌──────────────────────▼──────────────────────┐ │ 第2层:指令(约5k tokens) │ │ - SKILL.md 的正文内容 │ │ - 工作流程、指导原则 │ └──────────────────────┬──────────────────────┘
│ 需要更多资源时
┌──────────────────────▼──────────────────────┐ │ 第3层:资源文件(无限) │ │ - 模板、脚本、示例代码 │ │ - 按需加载,不进上下文 │ └─────────────────────────────────────────────┘
用人话讲就是:
- 启动时:Claude 知道你有 N 个技能,每个技能是干嘛的
- 触发时:Claude 发现这个任务需要某技能,才把技能说明书加载进来
- 需要时:Claude 发现还需要模板或脚本,才去读取对应文件
这样设计的好处:你装 100 个技能也不会变慢,因为 Claude 不是一次性全加载。
一个技能长这样:
my-awesome-skill/
├── SKILL.md # 主角,必须有 ├── templates/ # 模板文件夹 │ └── output-format.md ├── examples/ # 示例文件夹 │ └── sample-output.md └── scripts/ # 脚本文件夹
└── validate.sh
最核心的是 SKILL.md,长这样:
---
name: my-skill
description: 这个技能是干嘛的,什么时候该用它
技能标题
使用说明
一步一步告诉 Claude 该怎么做
注意事项
有哪些坑要避开
假设你想让 Claude 每次review代码都按照你公司的标准来:
目录结构:
~/.claude/skills/code-review/
├── SKILL.md ├── templates/ │ └── review-checklist.md └── scripts/
└── analyze-metrics.py
SKILL.md 写起来:
---
name: code-review-expert description: 代码评审专家,专注安全、性能、质量分析。
当你提到 code review、代码评审、PR review 时触发。
代码评审专家
评审维度
- 安全:认证授权、数据泄露、注入风险
- 性能:算法效率、数据库查询优化
- 质量:SOLID原则、命名规范、测试覆盖
- 可维护性:代码可读性、函数长度、圈复杂度
评审流程
- 先通读代码,理解整体结构
- 按上面4个维度逐一检查
- 整理问题,按严重程度排序
- 给出具体的修复建议
严重程度定义
- Critical:必须立即修复,有安全风险
- High:应该在下次迭代前修复
- Medium:建议修复,不紧急
- Low:可选的优化项
详细 Checklist 看 templates/review-checklist.md
review-checklist.md 长这样:
# Code Review Checklist
安全性
- [ ] 是否有 SQL 注入风险
- [ ] 用户输入是否做了校验
- [ ] 敏感数据是否明文存储
- [ ] 权限校验是否完整
性能
- [ ] 是否有 N+1 查询问题
- [ ] 循环中是否有不必要的数据库调用
- [ ] 是否需要加缓存
- [ ] 大数据量是否有分页
…
现在,当你跟 Claude 说"帮我review一下这个PR",它自动就知道:
- 要从哪几个维度评审
- 问题怎么分类
- 严重程度怎么定义
- 该输出什么格式的报告
不需要你每次都解释一遍。
Skills 有三种调用模式,通过 frontmatter 控制:
---
模式1:默认(你也可以调用,Claude 也可以调用)
不写任何额外配置就行
模式2:只有你能调用,Claude 不能主动用
disable-model-invocation: true
适合有副作用的操作,比如部署、删除数据
模式3:只有 Claude 能调用,你看不到(不显示在 / 菜单)
user-invocable: false
适合后台知识,比如解释旧系统怎么工作的
用人话讲:
disable-model-invocation: true= 这个技能太危险了,只有我能触发
禁止模型自动调用该技能,仅允许用户手动通过 /skill-name 触发
user-invocable: false= 这是 Claude 的私藏知识,不需要当命令用
用户手动不能调用,只能模型自动调用
Skills 支持用反引号执行命令,把结果塞进技能内容里:
---
name: pr-summary
description: 总结 Pull Request 的内容
PR 信息
- PR 差异:!
gh pr diff
- PR 评论:!
gh pr view --comments
- 改动的文件:!
gh pr diff --name-only
你的任务
根据以上信息,生成一份 PR 总结
比如这里有一个自动生成commit信息的skill
git status- 显示当前工作区的状态(有哪些文件被修改、暂存或未跟踪)git diff HEAD- 显示 HEAD 指向的提交与工作区之间的差异(已修改但未暂存的内容)git branch –show-current- 显示当前所在的分支名称git log –oneline -10- 显示最近 10 条提交记录,每条只显示一行(哈希值前7位 + 提交信息)
这些命令组合在一起,能快速了解仓库的完整状态:当前分支、有哪些变更、以及近期提交历史。这通常用于提交前的检查或生成变更记录。
!command” 会在技能内容加载前执行命令,输出结果直接拼进去。Claude 拿到的时候已经是展开后的完整上下文了。
有时候技能执行起来很复杂,你会想把它放到一个独立的子进程里跑,不占用主会话的上下文。
---
name: deep-research description: 深入研究某个主题 context: fork # 关键:fork 一个独立子agent
agent: Explore # 用 Explore 类型
深入研究 $ARGUMENTS:
- 用 Glob 和 Grep 找相关文件
- 读代码,分析逻辑
- 总结发现,附上具体文件引用
context: fork:创建隔离的子对话 / 子 Agent,不污染主上下文agent: Explore:使用探索专用 AI,擅长遍历、搜索、分析项目结构
context: fork 会在一个独立子 agent 里执行这个技能,子 agent 有自己的上下文窗口。适合:
- 研究任务,需要深度探索
- 复杂任务,步骤很多
- 你不想让主会话变乱的时候
~/.claude/skills/ 只有你 个人工作流
项目
.claude/skills/ 项目成员 团队标准
插件 插件目录 看插件配置 插件附带
团队协作推荐用项目级技能 :丢进 .claude/skills/ 目录,commit 到 git,团队成员 pull 下来就能用。
name: commit-helper
description: 帮助写规范的 commit message
Commit Message 助手
格式要求
():
Type 只能选这些
- feat:新功能
- fix:bug修复
- docs:文档改动
- style:格式(不影响代码)
- refactor:重构
- test:测试
- chore:构建/工具
示例
feat(auth): 添加微信登录支持
实现了微信 OAuth2.0 登录流程
- 扫码登录
- token 刷新
- 退出登录
你的任务
根据我给的改动,写出符合格式的 commit message
name: deploy
description: 部署应用到生产环境
disable-model-invocation: true # 太危险,Claude 不能自己触发,只能/name,手动触发
部署 $ARGUMENTS 到生产环境:
- 运行测试:
npm test
- 构建应用:
npm run build
- 推送部署目标
- 验证部署是否成功
- 报告部署状态
如果任何步骤失败,立即停止并报告错误。
name: brand-voice
description: 确保输出内容符合品牌调性(Claude 后台使用)
user-invocable: false
语气要求
- 友好但不随意
- 清晰简洁,不用黑话
- 自信但不傲慢
- 有同理心,理解用户需求
写作规范
- 用"你"称呼读者
- 用主动语态
- 句子控制在20字以内
- 先说价值,再说细节
# ❌ 太泛
description: 帮助处理文档
✅ 具体,Claude 知道什么时候该用
description: 提取 PDF 中的文字和表格,填写表单,合并文档。
当你提到 PDF、表单、文档提取时触发。
# ❌ 太宽泛
name: document-helper description: 处理各种文档相关任务
✅ 专注一件事
name: pdf-extractor description: 从 PDF 文件提取文字、表格、图片
详细的检查清单、API 文档放到 templates/ 或 references/ 目录,Claude 需要时再加载。
这是 Claude 决定是否触发技能的关键依据。
Q: Claude 不触发我的技能怎么办? A: 检查 description 是否包含了用户会说的关键词。描述越具体,触发越准确。
Q: 技能触发太频繁怎么办? A: 把 description 写窄一点,或者加上 disable-model-invocation: true。
Q: 安装太多技能会变慢吗? A: 不会。Skills 是渐进式加载,Claude 只在触发时才会加载对应技能的内容。
Q: 技能冲突怎么办? A: 优先级:企业 > 个人 > 项目。同名技能,高优先级生效。
Skills 是什么?提前预置的专业知识包。
为什么有用?不用重复唠叨,Claude 自动调用。
怎么用?
- 创建
.claude/skills//SKILL.md - 写清楚 name 和 description
- 描述里加上触发关键词
现在去试试吧,给你常用的工作流建一个技能,你会发现 Claude 突然变得专业多了。
- 官方 Skills 文档
- Agent Skills 架构解析
- Skills 开源集合
- 精通Claude第1课:Memory系统
- 精通Claude第2课:Slash Commands
比如这里有一个自动生成commit信息的skill
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/259705.html