Claude Code Skills 使用教程——从入门到进阶
作者: CaoZH
版本: 2026-05-31
适用平台: Claude Code CLI / Claude Desktop
目录
一、什么是 Skills?
Skills(技能)是 Claude Code 的能力扩展系统。本质上,它是一个包含 SKILL.md 文件的目录,该文件使用 YAML 前端配置 + Markdown 指令 告诉 Claude 如何完成特定任务。
Skills vs 其他概念
| 概念 | 是什么 | 区别 |
|---|---|---|
| Skills | SKILL.md 指令文件 | 教会 Claude 怎么做某事(流程、规范、知识) |
| CLAUDE.md | 项目级记忆文件 | 告诉 Claude 项目的背景信息(不涉及流程) |
| MCP 服务器 | 外部服务连接器 | 给 Claude 新增能力(访问 API、数据库等) |
| Plugins | 技能的打包单元 | 一个插件可以包含多个 Skills + MCP + Hooks |
| Hooks | 生命周期脚本 | 在特定时机自动运行脚本(如保存时格式化) |
两种技能来源
Skills 有两种来源:
- 社区安装的技能——通过插件市场安装(如 Superpowers、webapp-testing 等),详见第三章
- 自己编写的技能——手动创建 SKILL.md 文件放在
~/.claude/skills/下,详见第四章
⚠️ 注意:Claude Code 的
/review、/plan、/compact等斜杠命令是 CLI 内置功能,不属于 Skills 系统。Slash Commands 是手动调用的,Skills 是基于自然语言自动触发的,两者是不同的机制。
技能的工作机制
当你与 Claude 对话时,它会扫描所有已安装技能的 name 和 description(仅消耗约 100 tokens/技能 的上下文)。当对话内容匹配某个技能的描述时,Claude 会按需加载该技能的完整 SKILL.md 内容。
这意味着:
- ✅ 装几十个技能也几乎不占上下文
- ✅ 只有触发时才加载完整指令
- ✅ 技能之间可以联动和组合
二、内置命令:开箱即用
Claude Code 自带了一套内置的斜杠命令(Slash Commands),安装后直接通过 / 前缀访问。这些是 CLI 内置功能,与 Skills(技能系统)是不同的概念——Skills 是 SKILL.md 文件驱动的自动触发工作流,而这里是手动调用的命令。
内置命令列表
会话与上下文管理
| 命令 | 功能 | 适用场景 |
|---|---|---|
/help |
查看所有可用命令 | 首次使用、查找命令 |
/compact [焦点] |
压缩上下文节省 token | 上下文占用超过 70% 时 |
/clear |
清空对话历史,重新开始 | 对话偏离主题 |
/context |
可视化查看上下文使用情况 | 检查 token 消耗 |
/cost |
查看 token 用量及费用明细 | 费用监控 |
/status |
显示版本、连接状态和会话信息 | 检查环境 |
/resume |
切换或恢复历史会话 | 继续上次工作 |
/rewind |
回退到之前的检查点 | 纠正 AI 错误走向 |
/btw <问题> |
提出旁侧问题,不增加主对话上下文 | 查文档、快速查询 |
/todos |
列出当前对话中的待办事项 | 跟踪进度 |
/exit / Ctrl+D |
结束会话 | 退出 |
开发与审查
| 命令 | 功能 | 适用场景 |
|---|---|---|
/review |
自动代码审查 | 提交 PR 前、合并分支前 |
/security-review |
安全审计 | 检查安全漏洞 |
/plan [描述] |
进入 Plan 模式制定实施计划 | 复杂任务先规划再写代码 |
/loop [间隔] |
在会话中设置循环任务 | 重复性操作 |
/batch |
自动创建工作树进行大规模并行修改 | 同时改 5-30 个文件 |
配置与工具
| 命令 | 功能 | 适用场景 |
|---|---|---|
/model [模型] |
切换模型(如 /model haiku) |
根据任务复杂度选模型 |
/effort [等级] |
设置推理深度:low/medium/high/max/auto | 控制思考深度和成本 |
/init |
创建项目 CLAUDE.md 记忆文件 | 新项目初始化 |
/memory |
编辑 CLAUDE.md | 更新项目背景 |
/config |
交互式配置设置 | 调整 Claude Code 行为 |
/permissions |
查看/更新工具权限 | 安全检查 |
/agents |
管理自定义子代理 | 编排多代理工作流 |
/mcp |
管理 MCP 服务器 | 添加数据库、API 等外部连接 |
/add-dir |
添加额外工作目录 | monorepo 多目录项目 |
/voice |
语音模式(长按空格录音) | 语音输入 |
用法示例
1 | # 在 Claude Code 终端中直接输入 |
内置命令无需安装,开箱即用,但注意它们不是 Skills(技能系统)——你不能像覆盖自定义技能那样覆盖它们。想要扩展 Claude Code 的行为,应该通过编写自定义 Skills(见第四章)或自定义 Slash 命令(见第四章)来实现。
三、安装社区技能
Claude Code 使用 Plugin(插件)系统 来分发技能。社区技能托管在 GitHub 仓库中,可以被添加为”市场”(Marketplace)。
3.1 从官方市场安装
Anthropic 官方维护了一个技能市场:
1 | # 第一步:添加市场源 |
3.2 从社区仓库安装
1 | # 添加 Superpowers 市场 |
3.3 常用社区市场
| 市场 | 来源 | 推荐技能 |
|---|---|---|
anthropics/skills |
官方 | webapp-testing, frontend-design, skill-creator |
obra/superpowers |
社区最热 | brainstorming, writing-plans, execute-plan, TDD |
addyosmani/agent-skills |
Google 工程师出品 | spec-driven, code-review, security, performance |
firecrawl/firecrawl-claude-plugin |
网页抓取 | firecrawl-build |
composiohq/composio |
应用集成 | composio-connect |
3.4 管理已安装的技能
1 | # 查看所有已安装的插件 |
3.5 直接从 GitHub 手动安装
你也可以从 GitHub 直接下载技能:
1 | # 克隆技能仓库 |
四、编写自己的技能
这是最强大的部分——为你的团队或项目定制专属技能。
4.1 最简单的技能
创建一个文件 ~/.claude/skills/hello/SKILL.md:
1 | --- |
重启 Claude Code 后,说”你好”就会触发这个技能。
4.2 实用技能示例:Git 提交规范
1 | --- |
feat(auth): add OAuth2 login support
fix(parser): handle null input in JSON parser
docs(readme): update installation instructions
1 | ``` |
~/.claude/skills/deploy-check/
├── SKILL.md # 核心指令
├── scripts/
│ └── check-health.sh # 健康检查脚本
└── references/
└── deployment-checklist.md # 部署检查清单
1 |
|
注意: {skilldir} 是 Claude Code 自动注入的变量,指向技能目录的路径。
五、SKILL.md 前端配置详解
YAML 前端配置(Frontmatter)是 SKILL.md 的核心控制区域,位于文件开头的 --- 之间。
全部前端字段
1 |
|
关键字段详解
description —— 决定技能是否被触发
这是最重要的字段。Claude 在每次对话中只读 name 和 description,如果描述不够精准,技能永远不会被激活。
好的描述:
1 | description: | |
差的描述:
1 | description: 处理文件 |
allowed-tools —— 安全沙箱
通过限制工具来防止误操作:
1 | # 只读模式:查看文件,不能修改 |
context: fork —— 隔离执行
适合以下场景:
- 长时间运行的批量操作:不阻塞主线对话
- 高风险操作:即使子代理崩溃,主线对话不受影响
- 并行任务:多个 skill 可以 fork 后并行执行
hooks —— 自动化钩子
支持三个生命周期事件:
| 钩子 | 触发时机 | 典型用途 |
|---|---|---|
on_skill_start |
技能开始前 | 日志记录、环境准备 |
on_skill_end |
技能完成后 | 清理、通知、统计 |
on_error |
技能出错时 | 错误记录、告警 |
六、技能类型与设计模式
根据功能分类,Claude Code 技能通常有四种设计模式:
6.1 参考型(Reference Skill)
目的:提供知识背景,让 Claude 按特定风格工作。
1 |
|
特点:
- 通常设置
disable-model-invocation: false(自动触发) - 不定义具体流程,只提供规范
- 触发后 Claude 会自动按规范行事
6.2 工作流型(Workflow Skill)
目的:定义多步骤的执行流程。
1 |
|
特点:
- 步骤明确、顺序执行
- 每个步骤可能有验证条件
- 适合重复性开发任务
6.3 斜杠命令型(Slash Command)
目的:用户主动触发,通常带有参数。
1 |
|
特点:
disable-model-invocation: true防止自动触发argument-hint提示用户输入参数- 适合用户主动调用的工具
6.4 代理型(Agent Skill)
目的:在独立子代理中执行复杂任务。
1 |
|
特点:
context: fork隔离执行- 适合耗时或计算密集的任务
- 不干扰主对话
七、技能存放位置与作用域
技能可以放在不同的位置,决定其作用范围:
7.1 用户级(全局生效)
1 | ~/.claude/skills/<skill-name>/SKILL.md |
放在此处的技能在所有项目中都可用。
7.2 项目级
1 | <project-root>/.claude/skills/<skill-name>/SKILL.md |
仅在该项目目录下生效。项目级技能优先级高于用户级。
7.3 团队级(通过 Git 共享)
将技能放在项目仓库中:
1 | my-project/ |
提交到 Git 后,所有克隆该项目的人自动获得这些技能。
7.4 作用域优先级
1 | 项目级 > 用户级 |
同名技能,项目级覆盖用户级。
八、实战:一步步创建技能
我们来创建一个实用的 Python 项目初始化技能。
步骤 1:创建目录
1 | mkdir -p ~/.claude/skills/init-python-project |
步骤 2:编写 SKILL.md
1 | vim ~/.claude/skills/init-python-project/SKILL.md |
内容如下:
1 | --- |
project-name/
├── src/
│ └── project_name/
│ ├── init.py
│ └── main.py
├── tests/
│ ├── init.py
│ └── test_main.py
├── docs/
├── scripts/
├── .env.example
├── .gitignore
├── README.md
├── pyproject.toml
└── requirements.txt
1 |
|
5. 创建初始 Git 仓库
1 | git init |
输出
完成后打印项目结构和下一步建议。
1 |
|
如果看到 init-python-project 出现在列表中,说明加载成功。
步骤 4:测试使用
在 Claude Code 中说出:
“帮我创建一个新的 Python 项目”
此时 Claude 会匹配到 init-python-project 技能描述,加载完整指令并执行。
九、调试与优化技能
9.1 检查技能加载状态
1 | /skills # 列出所有已加载的技能 |
9.2 强制触发技能
如果技能没有被自动触发,可以用斜杠命令方式:
1 | /init-python-project "创建一个名为 my-app 的 Python 项目" |
9.3 技能未触发的常见原因
| 问题 | 原因 | 修复 |
|---|---|---|
| 技能列表看不到 | 目录或文件名不对 | 检查 SKILL.md(大小写敏感) |
| 描述匹配了但不触发 | description 不够精准 | 增加触发词,参考已有技能 |
| 执行效果不符合预期 | 指令不够明确 | 增加具体步骤和代码示例 |
| 技能太多影响性能 | description 太泛导致频繁误匹配 | 缩小触发范围,增加 when_to_use |
9.4 优化建议
- 描述要精确:用触发词列表收窄匹配范围
- 步骤要具体:模糊的指令导致模糊的执行
- 提供示例:代码示例比文字描述更有效
- 使用脚本:复杂逻辑放到脚本中,SKILL.md 保持简洁
- 迭代改进:用 2-3 次真实使用来打磨内容
9.5 测试新技能的方法
装完后用实际场景测试:
1 | # 场景 1:自然语言触发 |
十、常见问题
Q1:Skills 和 CLAUDE.md 有什么区别?
CLAUDE.md 是项目的背景知识(技术栈、架构、命名约定),Skills 是可执行的工作流程(怎么做某事)。两者互补。
Q2:装太多技能会影响性能吗?
不会。Claude 仅在启动时加载技能的 name 和 description(约 100 tokens/技能),完整内容只有在触发时才加载。装 50-100 个技能对性能影响微乎其微。
Q3:技能文件写得不好,Claude 会跳过吗?
会。如果技能指令模糊或前后矛盾,Claude 可能部分忽略或执行不到位。建议参考社区优秀技能(如 Superpowers)的写法。
Q4:如何共享我写的技能?
- 上传到 GitHub 仓库
- 分享给他人直接复制到
~/.claude/skills/ - 打包为 Plugin 发布到社区市场
Q5:技能可以在不同 AI 工具间通用吗?
可以!SKILL.md 是开放标准(Agent Skills open standard),兼容 Claude Code、Codex CLI、Cursor、OpenCode、Gemini CLI 等 30+ 工具。
Q6:技能的执行顺序可以控制吗?
不能直接控制顺序,但可以通过以下方式实现:
- 在技能指令中引用其他技能的名称
- 使用
context: fork让子代理串行执行 - 用钩子触发后续操作
总结
Claude Code 的技能系统是 2026 年 AI 编程领域最重要的进化之一。它的核心价值不在于安装了多少社区技能,而在于:
- 将最佳实践固化——不再依赖”记住要这样做”,而是让 AI 自动执行
- 定制化工作流——团队规范、个人习惯、项目约束都可以编码为技能
- 开放生态——SKILL.md 标准让技能跨平台通用
入门三步走:
1 | # 第一步:熟悉内置命令 |
从今天开始,每次你发现 Claude “总是做错”某件事时,与其手动纠正,不如花 15 分钟写一个技能——它在未来会为你省下无数个 15 分钟。
本文首发于 CaoZH 的笔记