1. 什么是Claude Code Skills
Claude Code Skills是一种扩展Claude AI能力的机制,它允许用户通过创建、管理和分享自定义技能来增强Claude的功能。这些技能可以包含特定领域的知识、工作流程自动化脚本或专用工具集成,使Claude能够更精准地处理特定任务。
Skills的核心是一个包含SKILL.md文件的目录,这个文件定义了技能的行为和触发条件。每个技能都可以通过简单的命令调用,比如/summarize-changes这样的斜杠命令。技能可以存储在个人目录、项目目录或企业共享目录中,支持不同级别的复用和覆盖。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Skills的核心工作原理
2.1 技能目录结构
一个典型的Skill目录结构如下:
code复制my-skill/
├── SKILL.md # 主指令文件(必需)
├── template.md # Claude填充的模板
├── examples/
│ └── sample.md # 示例输出
└── scripts/
└── validate.sh # 可执行脚本
SKILL.md是每个技能的核心文件,采用YAML frontmatter和Markdown内容的组合格式。frontmatter定义了技能的元数据和行为,而Markdown部分包含具体的指令内容。
2.2 技能加载机制
Skills通过多级目录结构实现灵活的加载优先级:
- 企业级技能:适用于组织内所有用户
- 个人技能(~/.claude/skills/):适用于用户所有项目
- 项目技能(.claude/skills/):仅适用于当前项目
- 插件技能:在插件启用时可用
当同名技能存在于不同级别时,企业级覆盖个人级,个人级覆盖项目级。这种层级设计既保证了通用技能的广泛可用性,又允许针对特定项目进行定制。
2.3 动态上下文注入
Skills支持通过!command语法在技能加载时注入动态内容。例如:
code复制## Current changes
!`git diff HEAD`
这会在技能加载时执行git diff HEAD命令,并将输出直接插入到技能内容中,使Claude能够基于实时数据工作,而不是静态的指令。
3. 创建你的第一个Skill
3.1 基础技能创建步骤
让我们通过一个实际例子来创建一个简单的技能,用于总结git仓库的未提交变更:
- 创建技能目录:
bash复制mkdir -p ~/.claude/skills/summarize-changes
- 编写SKILL.md文件:
markdown复制---
description: 总结未提交的变更并标记风险点。当用户询问变更内容、需要提交信息或要求审查差异时使用。
---
## 当前变更
!`git diff HEAD`
## 指令
用2-3个要点总结上述变更,然后列出你注意到的任何风险,如缺少错误处理、硬编码值或需要更新的测试。如果没有未提交的变更,说明没有变化。
- 测试技能:
- 在git项目中做一个小修改
- 启动Claude Code(运行claude命令)
- 通过提问触发技能:"我改了哪些内容?"
- 或直接调用:/summarize-changes
3.2 技能参数传递
Skills支持参数传递,通过$ARGUMENTS或$0、$1等占位符接收:
markdown复制---
name: fix-issue
description: 修复GitHub issue
---
修复GitHub issue $ARGUMENTS:
1. 阅读issue描述
2. 理解需求
3. 实现修复
4. 编写测试
5. 创建提交
调用方式:/fix-issue 123
4. 高级Skill功能
4.1 子代理上下文
通过设置context: fork可以让技能在隔离的子代理中运行:
markdown复制---
name: deep-research
description: 深入研究某个主题
context: fork
agent: Explore
---
深入研究 $ARGUMENTS:
1. 使用Glob和Grep查找相关文件
2. 阅读分析代码
3. 总结发现并引用具体文件
这种模式适合需要隔离环境或专用工具集的任务。
4.2 工具预授权
通过allowed-tools字段可以预授权特定工具:
markdown复制---
name: commit
description: 暂存并提交当前变更
allowed-tools: Bash(git add *) Bash(git commit *) Bash(git status *)
这允许Claude在执行该技能时无需单独请求权限就能使用指定的git命令。
4.3 可视化输出
Skills可以生成交互式HTML报告。例如创建一个代码库可视化工具:
markdown复制---
name: codebase-visualizer
description: 生成代码库的交互式树状可视化
allowed-tools: Bash(python3 *)
---
生成交互式HTML树状视图展示项目文件结构:
```bash
python3 ${CLAUDE_SKILL_DIR}/scripts/visualize.py .
code复制配套的Python脚本会扫描目录并生成包含可折叠目录树、文件大小和类型着色的HTML报告。
## 5. Skills的最佳实践
### 5.1 技能设计原则
1. **单一职责**:每个技能应专注于一个明确的任务
2. **参数化设计**:通过$ARGUMENTS使技能可复用
3. **实时数据**:尽可能使用!`command`注入动态内容
4. **明确触发**:description字段应清晰说明何时使用该技能
5. **安全边界**:对具有副作用的技能设置disable-model-invocation: true
### 5.2 性能优化技巧
1. 保持SKILL.md简洁(建议<500行)
2. 将详细参考文档拆分为单独文件
3. 使用context: fork隔离资源密集型任务
4. 对常用查询添加缓存机制
5. 定期评估技能效果和性能
### 5.3 调试与测试
1. 使用skill-creator插件自动化测试
2. 在干净环境中验证技能触发条件
3. 比较有技能和无技能的输出差异
4. 记录token使用和响应时间
5. 进行A/B测试比较不同版本的技能
## 6. 实际应用案例
### 6.1 代码审查自动化
创建一个自动代码审查技能:
```markdown
---
name: code-review
description: 执行代码质量审查
context: fork
---
审查当前变更的代码质量:
1. 检查代码风格一致性
2. 识别潜在的性能问题
3. 标记安全风险
4. 建议测试改进
5. 按严重程度分类问题
6.2 部署流水线
自动化部署流程技能:
markdown复制---
name: deploy
description: 部署应用到生产环境
disable-model-invocation: true
allowed-tools: Bash(make *) Bash(kubectl *)
---
部署 $ARGUMENTS 到生产环境:
1. 运行测试套件
2. 构建应用
3. 推送镜像
4. 更新Kubernetes部署
5. 验证健康状态
6.3 数据报告生成
创建数据分析报告技能:
markdown复制---
name: generate-report
description: 生成数据分析报告
allowed-tools: Bash(python3 *)
---
生成 $ARGUMENTS 报告:
1. 查询数据库获取原始数据
2. 执行分析计算
3. 生成可视化图表
4. 编写执行摘要
5. 输出HTML报告到reports/
通过Claude Code Skills,开发者可以构建强大的AI辅助工作流,将重复性任务自动化,同时保持对关键流程的控制。技能系统的层级设计和灵活的触发机制使其既适合个人生产力提升,也能支持企业级的知识管理和流程标准化。
