教程

Claude Code Skills 官方完整指南:从入门到高级模式的权威教程

Claude Code Skills 官方文档完整中文整理:Skills vs CLAUDE.md 核心区别;目录结构;存储位置和优先级;实时变更检测和 Monorepo 自动发现;完整 Frontmatter 字段参考(20+字段);字符串替换(动态参数);内容类型(参考类 vs 任务类);调用控制表;Skill 内容生命周期(压缩保留机制);三个高级模式(动态注入/路径限定/Subagent运行);以及内置 Bundled Skills 和权限控制方法。

2026/5/109分钟 阅读ClaudeEagle

Skills 是 Claude Code 里最精妙的扩展机制——比 CLAUDE.md 更灵活,比 Plugins 更轻量,按需加载,几乎零上下文开销。官方文档把 Skills 定义为遵循 Agent Skills 开放标准的扩展,本文是 Skills 官方文档的完整中文整理,覆盖基础到高级模式。


Skills 是什么?

Skills 扩展 Claude 能做的事:创建一个带指令的 SKILL.md 文件,Claude 把它加入工具集。Claude 在相关时自动使用,或你直接用 /skill-name 调用。

什么时候创建 Skill

  • 你不断把同样的指令、检查清单或多步骤流程粘贴到对话里
  • CLAUDE.md 的某个部分已经从"事实"变成了"流程"

Skills vs CLAUDE.md 的核心区别

CLAUDE.mdSkills
加载时机每次会话自动加载被调用时才加载
Token 开销每次请求都占用不用时几乎为零
适合内容规则、约定、事实流程、检查清单、操作序列
长文档不适合(每次都消耗)适合(按需加载)

技能目录结构

每个 Skill 是一个目录,SKILL.md 是入口(必须):

my-skill/ ├── SKILL.md # 主指令(必须) ├── template.md # Claude 填写的模板 ├── examples/ │ └── sample.md # 展示期望格式的示例输出 └── scripts/ └── validate.sh # Claude 可以执行的脚本

存储位置和优先级

位置路径作用范围
EnterpriseManaged settings组织内所有用户
个人~/.claude/skills/<name>/SKILL.md你的所有项目
项目.claude/skills/<name>/SKILL.md仅当前项目
Plugin<plugin>/skills/<name>/SKILL.mdPlugin 启用的地方

优先级:Enterprise > 个人 > 项目。Plugin Skills 使用 plugin-name:skill-name 命名空间,不会冲突。

实时变更检测:修改 ~/.claude/skills/ 或项目 .claude/skills/ 里的文件,当前会话立即生效,不需要重启。

Monorepo 自动发现:在 packages/frontend/ 里工作时,Claude Code 自动发现 packages/frontend/.claude/skills/ 里的 Skills。


完整 Frontmatter 字段参考

yaml
---
name: my-skill                    # 显示名称,小写字母/数字/连字符,最多 64 字符
description: 技能描述              # 推荐填写,Claude 用这个决定何时使用
when_to_use: 触发词或示例请求      # 补充 description,合计不超过 1536 字符
argument-hint: "[issue-number]"   # 自动补全时显示的参数提示
arguments: [issue, branch]        # 命名位置参数,用于 $name 替换
disable-model-invocation: true    # 只允许用户调用,Claude 不自动触发
user-invocable: false             # 只允许 Claude 调用,不出现在 / 菜单
allowed-tools: Read Bash(git *)   # 技能激活时预授权的工具
model: claude-sonnet-4-6          # 覆盖当前会话模型
effort: high                      # 覆盖当前努力等级(low/medium/high/xhigh/max)
context: fork                     # fork 在独立子 agent 上下文里运行
agent: Explore                    # context: fork 时使用哪种 subagent
paths: "src/**/*.ts"              # 路径 glob,仅匹配文件时自动激活
shell: bash                       # 内联 shell 命令的 Shell(bash/powershell)
hooks:                            # 技能生命周期的 Hooks
  PostSkillUse:
    - type: command
      command: echo "skill done"
---

字符串替换(动态参数)

变量含义
$ARGUMENTS调用时传入的全部参数
$ARGUMENTS[N]第 N 个参数(0-based)
$N$ARGUMENTS[N] 的简写
$name命名参数(在 arguments 里声明)
${CLAUDE_SESSION_ID}当前会话 ID
${CLAUDE_EFFORT}当前努力等级
${CLAUDE_SKILL_DIR}技能的 SKILL.md 所在目录

示例:带参数的 Skill

markdown
---
name: fix-issue
description: 修复 GitHub Issue
disable-model-invocation: true
allowed-tools: Bash(gh *) Read Glob Grep Edit Write
---

按照我们的编码规范修复 GitHub Issue $ARGUMENTS:

1. 用 `gh issue view $ARGUMENTS` 读取 Issue 详情
2. 理解需求
3. 实现修复
4. 写测试
5. 创建 commit(包含 "Fixes #$ARGUMENTS" 的 commit 消息)

调用:/fix-issue 234


内容类型:参考 vs 任务

参考类(Reference)

把知识注入 Claude 的上下文,Claude 在工作时应用这些知识:

markdown
---
name: api-conventions
description: 这个代码库的 API 设计模式
---

编写 API 端点时:
- 使用 RESTful 命名约定
- 返回一致的错误格式 { code, message, details }
- 包含请求验证(Zod schema)
- 所有端点必须有 OpenAPI 注释

任务类(Task)

给 Claude 执行特定操作的分步指令:

markdown
---
name: deploy
description: 部署应用到生产环境
context: fork
disable-model-invocation: true
---

部署 $ARGUMENTS 到生产环境:

1. 运行测试套件(`npm test`),失败则停止
2. 构建(`npm run build`)
3. 推送到部署目标
4. 验证部署成功(健康检查)
5. 通知 Slack #deployments 频道

Skill 内容生命周期

加载后持续有效:Skill 被调用时,渲染后的 SKILL.md 以单条消息形式进入对话,在会话剩余时间里持续存在。Claude 不会在后续 turn 重新读取文件。

自动压缩(Auto-compaction)保留机制

  • 对话压缩时,Skills 会被重新附加到摘要后面
  • 每个 Skill 保留前 5000 个 Token
  • 所有重新附加的 Skills 共享 25000 Token 的总预算
  • 从最近调用的 Skill 开始填充预算,较早的可能被完全丢弃

实践建议:如果 Skill 在第一次回复后不再影响行为,加强 description 和指令;或者在压缩后重新调用。


调用控制

配置你能调用Claude 能调用加载进上下文
默认description 始终在,全文在调用时加载
disable-model-invocation: true不加载 description,仅用户调用时加载全文
user-invocable: falsedescription 始终在,全文在调用时加载

高级模式一:动态上下文注入

!`命令` 语法在 Skill 内容发送给 Claude 之前运行 Shell 命令,输出替换占位符:

markdown
---
name: pr-summary
description: 总结 Pull Request 的变更
context: fork
agent: Explore
allowed-tools: Bash(gh *)
---

## Pull Request 上下文(实时数据)

- PR 差异:!`gh pr diff`
- PR 评论:!`gh pr view --comments`
- 变更文件:!`gh pr diff --name-only`

## 你的任务

总结这个 Pull Request:
1. 主要变更是什么?
2. 有没有潜在风险?
3. 建议的测试重点

工作流程

  1. 每个 !`命令` 在 Claude 看到任何内容前立即执行
  2. 命令输出替换占位符
  3. Claude 收到带有真实 PR 数据的完整提示

多行命令使用 ```! 代码块:

## 环境信息 ```! node --version npm --version git status --short --- ## 高级模式二:在 Subagent 里运行 添加 `context: fork` 让 Skill 在独立 Subagent 里运行,不访问对话历史: ```markdown --- name: deep-research description: 深入调研某个话题 context: fork agent: Explore --- 彻底调研 $ARGUMENTS: 1. 用 Glob 和 Grep 找到相关文件 2. 阅读并分析代码 3. 用具体文件引用总结发现

可选的 agent

  • Explore:只读工具,Haiku 模型,适合代码探索
  • Plan:只读工具,适合规划阶段研究
  • general-purpose:所有工具,适合复杂任务
  • 任何自定义 Subagent 的名称

高级模式三:路径限定自动激活

markdown
---
name: react-patterns
description: React 组件的最佳实践模式
paths: "src/components/**/*.tsx,src/pages/**/*.tsx"
---

编写 React 组件时:
- 使用函数式组件和 Hooks
- Props 用 interface 而非 type
- 使用 React.memo 包裹纯展示组件

当你打开或修改 src/components/src/pages/ 里的 .tsx 文件时,此 Skill 自动激活。


实战 Skill 配置示例

Git Commit(任务类,只允许用户调用)

markdown
---
name: commit
description: 暂存并提交当前变更
disable-model-invocation: true
allowed-tools: Bash(git add *) Bash(git commit *) Bash(git status *) Bash(git diff *)
---

暂存并提交当前变更:

1. 运行 `git status` 查看变更
2. 运行 `git diff --staged` 检查暂存内容
3. 生成描述性 commit 消息(遵循 Conventional Commits 规范)
4. 运行 `git add -A && git commit -m "消息"`
5. 确认 commit 成功

安全检查(参考类 + 任务类混合)

markdown
---
name: security-check
description: 对当前变更进行安全审查
allowed-tools: Read Glob Grep
effort: xhigh
---

对以下变更进行安全审查:!`git diff HEAD`

重点检查:

**输入验证**
- SQL 注入(字符串拼接 SQL)
- XSS(未转义的用户输入输出到 HTML)
- 路径遍历(用户控制的文件路径)

**认证和授权**
- 缺失认证检查
- 硬编码密钥或密码
- 不安全的 token 存储

**数据暴露**
- 日志里的敏感信息
- 过多的 API 响应字段
- 错误消息暴露内部细节

输出:按严重性排序的发现(Critical/High/Medium/Low),每项包含:位置、问题说明、修复建议。

PR 描述生成器

markdown
---
name: pr-desc
description: 根据变更自动生成 PR 描述
disable-model-invocation: true
allowed-tools: Bash(gh *) Bash(git *)
---

## 当前变更

提交历史:!`git log main..HEAD --oneline`
变更统计:!`git diff main --stat`

## 生成 PR 描述

根据以上变更,生成符合以下模板的 PR 描述:

### What
(用 1-2 句话描述这个 PR 做了什么)

### Why  
(为什么需要这个变更)

### How
(关键实现思路,不超过 5 个要点)

### Testing
(如何验证这个 PR,测试场景)

### Screenshots
(如有 UI 变更,在此说明截图位置)

技术债检查器(路径限定)

markdown
---
name: debt-check
description: 检查当前文件的技术债标记
paths: "**/*.ts,**/*.tsx,**/*.py,**/*.go"
user-invocable: false
---

检查这个文件里的技术债标记:

1. 找出所有 TODO、FIXME、HACK、XXX 注释
2. 评估每个标记的:严重性、是否过时(结合 git blame)、预估修复时间
3. 如果有超过 90 天的 TODO,特别标注

输出简洁的摘要,不超过 10 行。

内置 Bundled Skills

Claude Code 自带几个内置 Skill,无需安装:

Skill说明
/simplify分析代码质量,建议简化
/batch在多个并行 Worktree 上执行大规模变更
/debug调试当前会话的问题
/loop定期重复执行某个命令
/claude-apiClaude API 使用指导

这些 Skill 基于提示词,和自定义 Skill 调用方式相同。


权限控制

拒绝所有 Skills:在 /permissions 里添加 Skill 到拒绝规则。

只允许特定 Skills

# 允许规则 Skill(commit) Skill(review-pr *)

拒绝特定 Skills

# 拒绝规则 Skill(deploy *)

来源:Claude Code 官方文档 - Extend Claude with skills | 整理:ClaudeEagle

相关文章推荐

教程Claude Code Skills 进阶指南:四大内置技能、动态上下文注入、Subagent 运行与参数传递Claude Code Skills 进阶完整指南:四大内置 Skill(/simplify 三 Agent 并行优化/batch 5-30 单元并行大规模变更//debug 会话调试//claude-api 自动加载 API 参考)、目录结构和四级存储位置(优先级规则)、完整 Frontmatter 字段(disable-model-invocation/context/tools.allow/deny)、参考型 vs 任务型内容对比、动态上下文注入($GIT_STATUS/$CURRENT_SCHEMA)、context:fork 在 Subagent 运行、$ARGUMENTS 参数传递。2026/3/6教程Claude Code Sub-agents 官方完整指南:内置 Agent、自定义配置、并行模式和 Fork 会话Claude Code Sub-agents 官方文档完整整理:解决的核心问题(保护上下文/成本控制);三个内置 Sub-agent(Explore/Plan/General-purpose 及各自模型和工具);/agents 创建流程(界面/描述生成/工具选择/持久内存配置);完整 Frontmatter 字段参考;模型选择策略(Haiku 探索→Sonnet 审查→Opus 复杂任务);MCP 服务器限定到 Sub-agent;自动委托 vs 显式调用;前台/后台运行;隔离高容量/并行调研/链式 Sub-agent 三种模式;Fork 会话(与命名 Sub-agent 的区别);以及 4 个官方示例配置。2026/5/8教程OpenClaw Skills 开发完全指南:从零编写高质量 SKILL.md 自定义技能文件OpenClaw Skills 开发完整教程:SKILL.md 文件结构详解、自动触发 vs 显式触发原理、三个实战模板(GitHub 仓库管理/每日信息简报/代码健康检查)、让技能精准自动触发的描述写法,以及技能质量标准和 clawhub.ai 使用方法。2026/4/19教程Claude Code SKILL.md 自定义技能教程:创建可复用 AI 工作流,告别重复配置Claude Code SKILL.md 自定义技能教程:4 种技能类型详解(领域知识、工作流、安全检查、支付约束),含团队共享配置和全局 Skill 设置,告别每次重复配置。2026/4/10教程Claude Code 插件系统完全指南:创建、分发和管理自定义插件Claude Code 插件系统完全指南:创建自定义 Skills、Agents、Hooks,支持团队共享和 Marketplace 分发。含完整目录结构、组件详解和开发技巧。2026/4/7教程Claude Code Skills 自定义命令:打造你的团队专属 AI 工作流Claude Code Skills 自定义命令完整教程:Skills vs CLAUDE.md 使用场景对比、内置 Skills 速览(/batch/simplify/loop)、SKILL.md 文件格式与 Frontmatter 配置、四大实用 Skills 示例(代码审查/部署检查/功能开发/团队 OnBoarding)、传参方式、子代理执行与 Git 团队共享。2026/3/14