是什么
Skills 是以 SKILL.md 文件定义的可复用指令包,让 Claude 在需要时加载并执行特定工作流。与 CLAUDE.md 的区别是:Skill 内容只在被调用时加载,不占用常驻上下文。可通过 /skill-name 直接调用,也可由 Claude 根据描述自动选择。
核心机制
文件结构:每个 Skill 是一个目录,SKILL.md 为入口(必需),可包含模板、示例、脚本等支持文件:
my-skill/
├── SKILL.md # 主指令(必需)
├── template.md # 模板文件
└── scripts/
└── validate.sh # 可执行脚本
动态上下文注入:在 SKILL.md 中用 !`command` 语法,Claude Code 在加载 Skill 时执行命令并将输出内联替换,让指令基于实时数据:
!`git diff HEAD`存储位置与优先级(高到低):Enterprise > Personal(~/.claude/skills/)> Project(.claude/skills/)> Plugin。
调用控制:frontmatter 中的 disable-model-invocation: true 表示只能用户手动调用,不允许 Claude 自动触发。
与旧版 Commands 的关系:.claude/commands/ 下的文件继续有效,Skills 是其超集,同名时 Skill 优先。
内置 Skills:/simplify、/batch、/debug、/loop、/claude-api 等,基于 Prompt 驱动而非固定逻辑。
关键细节
- 个人 Skill 路径:
~/.claude/skills/<skill-name>/SKILL.md - 项目 Skill 路径:
.claude/skills/<skill-name>/SKILL.md - 直接调用:
/skill-name - 插件 Skill 命名空间:
/plugin-name:skill-name - 文件变更实时生效,无需重启(新建顶层目录除外)
- 单个 Skill 文件上限:25,000 字节
关联
- hooks — 确定性自动化,与 Skills 互补
- plugins — 打包 Skills 分发给团队
- sub-agents — 另一种扩展方式,有独立上下文
实践要点
- 把反复粘贴的指令、检查清单、多步骤流程提取为 Skill
description字段要清晰,Claude 依赖它决定何时自动加载- 动态上下文注入(
!`cmd`)让 Skill 基于实时状态而非猜测 - 长参考文档放在支持文件中,从
SKILL.md引用,按需加载 - 在 Agent View 中用
/skill-name作为 dispatch prompt 可快速复用工作流