Claude Code 学习站

Claude Code Skills 完全指南:自定义与扩展 Claude 能力

Skills 是 Claude Code 的可插拔技能系统,通过 SKILL.md 文件定义,支持用户手动调用或 Claude 自动触发,兼容旧版 custom commands,并遵循 Agent Skills 开放标准。

本页目录11
AI 摘要 · 已核查整理于 2026-06-11原文:Extend Claude with skills(Anthropic)Skills工作流
要点速览
  • Skills 与旧版 custom commands 已合并:`.claude/commands/deploy.md` 与 `.claude/skills/deploy/SKILL.md` 等效,旧文件无需迁移
  • SKILL.md 使用 YAML frontmatter 声明元数据,常用字段包括 `name`、`description`、`when_to_use`、`disable-model-invocation` 和 `allowed-tools`
  • `disable-model-invocation: true` 让技能仅能由用户 `/命令` 触发;`user-invocable: false` 则从菜单隐藏、仅供 Claude 自动调用
  • 通过 `context: fork`(配合 `agent` 字段)可让技能在独立子代理(subagent)中运行,隔离上下文
  • 动态上下文注入(dynamic context injection)用 `` !`<命令>` `` 语法在技能加载时自动填充实时信息,如当前 git 分支、文件内容等
  • 技能可通过提交 `.claude/skills/`、打包为插件或经托管设置在组织内共享,遵循跨工具的 Agent Skills 开放标准

本文是对官方文档 Extend Claude with skills 的中文要点摘要,完整内容以原文为准。

什么是 Skills

Skills 是 Claude Code 的可插拔技能单元。创建一个 SKILL.md 文件后,Claude 就会将其纳入工具箱:相关场景下自动调用,或由用户以 /技能名 手动触发。

适合创建 Skill 的时机:

  • 你反复把同一套指令、检查列表、多步流程粘贴进对话
  • CLAUDE.md 中某个章节已经演变成一个操作流程,而不再是背景事实

Skill 的正文按需加载——只有真正调用时才消耗 token,不像 CLAUDE.md 每次都随上下文载入,因此把大段参考资料放进 Skill 几乎没有额外成本。

Custom Commands 已并入 Skills

旧版自定义命令(custom commands)与新版 Skills 已完全合并:

路径结果
.claude/commands/deploy.md创建 /deploy 命令
.claude/skills/deploy/SKILL.md同样创建 /deploy 命令

两种写法完全等效,旧的 .claude/commands/ 文件无需改动,继续生效。新版 Skills 额外支持:

  • 配套支撑文件(放在同一目录下)
  • Frontmatter 控制调用方式
  • Claude 自动识别并主动调用

内置(Bundled)Skills

Claude Code 官方预置了一批开箱即用的技能,覆盖常见开发工作流(除非通过 disableBundledSkills 设置禁用)。与多数直接执行固定逻辑的内置命令不同,bundled skills 是基于提示词的:它们给 Claude 详细指令,由 Claude 用自己的工具来编排完成。常见示例包括:

  • /deep-research — 多源网络深度调研,自动验证并生成引用报告
  • /code-review — 审查当前分支 diff,支持 --comment(发 PR 评论)和 --fix(直接应用修复)
  • /debug — 调试问题排查
  • /security-review — 对待合入变更执行安全审查
  • /simplify — 对已改动代码做可读性与效率优化
  • /verify — 运行应用并观察行为,验证改动是否符合预期
  • /run — 启动并驱动项目应用
  • /init — 为代码库生成 CLAUDE.md 初始文档
  • /review — 审查指定的 GitHub Pull Request
  • /update-config — 通过自然语言修改 settings.json(hooks、权限、环境变量)
  • /loop — 以自定义间隔循环执行某个提示或命令
  • /schedule — 创建和管理定时云端 Agent(支持 cron 表达式)
  • /claude-api — Claude API / Anthropic SDK 的即查即用参考手册
  • /fewer-permission-prompts — 分析历史记录,自动添加白名单减少权限弹窗
  • /keybindings-help — 自定义键盘快捷键

创建自定义 Skill

目录结构

.claude/
  skills/
    deploy/
      SKILL.md          # 主技能文件(必须)
      checklist.md      # 可选支撑文件
      templates/        # 其他资源
  commands/             # 旧版路径,仍可用
    deploy.md

用户级技能放在 ~/.claude/skills/(对所有项目生效),项目级技能放在 .claude/skills/(仅当前项目)。

SKILL.md 格式

---
name: deploy
description: Deploy the application to production
disable-model-invocation: true
allowed-tools: Read Grep
---

# Deploy

1. Run `npm run build` and confirm it exits 0
2. Check `git status` — no uncommitted changes
3. Run `./scripts/deploy.sh $ARGUMENTS`
4. Verify the health endpoint responds 200

常用 Frontmatter 字段说明(所有字段均可选,推荐至少写 description):

字段说明
name技能在列表中显示的名称,默认取目录名
description一行描述,Claude 据此判断何时使用
when_to_use补充的触发条件,如触发短语或示例请求,附加到 description
disable-model-invocation设为 true 后 Claude 不会自动调用,仅能由用户 /命令 触发
user-invocable设为 false 后从 / 菜单隐藏,仅供 Claude 自动调用
allowed-tools技能激活时无需逐次确认即可使用的工具
context设为 fork 让技能在独立子代理上下文中运行
agentcontext: fork 时,指定使用哪种子代理类型

控制调用方式

默认情况下,你和 Claude 都能调用任意技能。两个 frontmatter 字段可以限制调用方:

  • disable-model-invocation: true:只能由用户输入 /技能名 手动触发,Claude 不会自动调用。适合带副作用或需要人工把控时机的工作流(如 /commit/deploy)。
  • user-invocable: false:从 / 菜单隐藏,只能由 Claude 在合适时机自动调用。适合不可直接当作命令执行的背景知识。

这个设计让你能明确区分「工具型」(需要人主动决策)和「辅助型」(让 Claude 在合适时机悄悄帮你)两类技能。

在子代理中运行 Skill(context: fork)

设置 context: fork 字段后,技能会在一个独立子代理中执行,而不是在主会话上下文中运行,技能正文会成为驱动该子代理的提示词。这带来两个好处:

  • 技能消耗的 token 和工具调用不污染主上下文
  • 通过 agent 字段可为不同类型的工作选择最合适的代理(如 ExplorePlangeneral-purpose 或自定义子代理);省略时默认 general-purpose

动态上下文注入

技能支持在加载时动态注入实时信息。在 SKILL.md 正文中用 !`<命令>` 语法嵌入 shell 命令(如 !`git diff HEAD`),Claude Code 会在把内容发给 Claude 之前先执行该命令,并用其输出替换占位符,因此 Claude 收到的是已填好实时数据的提示词,无需手动维护上下文。多行命令可改用以 ```! 开头的代码块。

共享与安装 Skills

Claude Code 技能遵循 Agent Skills 开放标准,可跨多种 AI 工具使用。技能可按受众范围分发:

  • 项目技能:把 .claude/skills/ 提交到版本库,团队成员拉取后即生效
  • 插件(Plugins):在插件中建立 skills/ 目录随插件一起分发
  • 组织级(Managed):通过托管设置(managed settings)在组织范围内统一部署

与 CLAUDE.md 的分工

CLAUDE.mdSkills
内容项目背景、约定、规范可执行流程、操作步骤
加载时机每次会话启动时全量载入仅调用时按需载入
适合放「是什么」「为什么」「怎么做」「执行步骤」
触发自动手动 /命令 或 Claude 自动