name: 技能指南 description: 将专业知识打包成可发现、可重用的能力,以扩展Claude的功能。在创建新技能、理解技能工作原理或组织现有能力时使用。
技能指南
将可重用的专业知识打包成可发现的能力。技能是模块化指令,Claude在相关时自主激活——扩展您的工作流,无需斜杠命令。
目录
快速开始
个人技能(随处可用)
mkdir -p ~/.claude/skills/my-skill-name
项目技能(与团队共享)
mkdir -p .claude/skills/my-skill-name
创建SKILL.md
---
name: 技能名称
description: 它做什么 + 何时使用(要具体!)
---
# 技能名称
## 指令
为Claude提供的逐步指导
## 示例
具体使用示例
什么是技能
代理技能将专业知识打包成可发现、可组合的能力:
- SKILL.md — Claude在相关时读取的指令
- 支持文件 — 可选的脚本、模板、参考文档
- 模型调用 — Claude基于描述自主决定何时使用
- 可发现 — 无斜杠命令;与您的工作流集成
优势
- 一次性解决重复问题,随处重用
- 通过git在团队间分享专业知识
- 组合多个技能处理复杂任务
- 减少重复提示带来的令牌开销
创建技能
个人技能:~/.claude/skills/
在所有项目中可用。用于:
- 个人工作流和实验性技能
- 个人生产力工具
- 跨多个项目使用的实用程序
项目技能:.claude/skills/
通过git与团队共享。用于:
- 团队工作流和共享专业知识
- 项目特定能力
- 团队成员一起需要的实用程序
团队成员在拉取您的仓库时自动获取项目技能。
插件技能
与Claude Code插件捆绑;安装插件时自动可用。
编写SKILL.md
每个技能都需要YAML frontmatter + Markdown内容。
必填字段
| 字段 | 限制 | 目的 |
|---|---|---|
name |
64字符 | 人类可读名称 |
description |
1024字符 | 它做什么 + 何时使用 |
可选字段
| 字段 | 目的 |
|---|---|
allowed-tools |
限制Claude可以使用的工具(例如,Read, Grep, Glob) |
描述字段至关重要
Claude使用此字段决定是否激活您的技能。始终包括:
- 它做什么 — 具体能力
- 何时使用 — 特定触发器和上下文
好(触发Claude):
从PDF文件提取文本和表格,填写表单,合并文档。
在处理PDF文件或用户提及PDF、表单或提取时使用。
差(太模糊):
帮助处理文档
命名约定
使用动名词形式(动词 + -ing):
- “处理PDF”
- “分析电子表格”
- “测试代码”
- “编写文档”
结构与组织
简单技能(单文件)
用于专注、单用途能力:
commit-helper/
└── SKILL.md
带支持文件的技能
参考文件按需加载;为优化性能,保持SKILL.md在500行以下:
pdf-processing/
├── SKILL.md # 主指令(快速开始)
├── FORMS.md # 表单填写指南
├── REFERENCE.md # API参考
├── EXAMPLES.md # 使用示例
└── scripts/
├── analyze_form.py
├── fill_form.py
└── validate.py
渐进式披露模式
SKILL.md中的高级概述:
- 快速开始和常见用例
- 链接到详细参考文件
## 快速开始
使用pdfplumber提取文本:
```python
import pdfplumber
with pdfplumber.open("file.pdf") as pdf:
text = pdf.pages[0].extract_text()
高级功能
表单填写:参见FORMS.md API参考:参见REFERENCE.md 示例:参见EXAMPLES.md
### 多领域技能的组织
对于覆盖多个领域的技能,按领域组织:
bigquery-skill/ ├── SKILL.md └── reference/ ├── finance.md ├── sales.md ├── product.md └── marketing.md
SKILL.md充当路由器,链接到领域特定文档。
## 最佳实践
### 1. 假设Claude很聪明
不要解释基本概念。简洁直接。
**冗长**(约150令牌):
PDF文件是包含文本、图像和其他内容的常见格式。 要提取文本,您需要一个库。存在许多库…
**简洁**(约50令牌):
使用pdfplumber进行文本提取:
import pdfplumber
with pdfplumber.open("file.pdf") as pdf:
text = pdf.pages[0].extract_text()
### 2. 使用示例而非解释
提供输入/输出对,尤其是对于转换:
```markdown
## 提交消息格式
**示例1:**
输入:添加了基于JWT令牌的用户认证
输出:
feat(auth): 实现基于JWT的认证
添加登录端点和令牌验证中间件
**示例2:**
输入:修复了日期显示不正确的错误
输出:
fix(reports): 在时区转换中更正日期格式化
3. 提供实用脚本
预制的脚本比生成的代码更可靠:
## 实用脚本
**analyze_form.py**:从PDF提取表单字段
```bash
python scripts/analyze_form.py input.pdf > fields.json
validate_boxes.py:检查重叠字段
python scripts/validate_boxes.py fields.json
### 4. 列出所需包
提前指定依赖项:
```markdown
## 要求
```bash
pip install pypdf pdfplumber
### 5. 实施验证循环
对于质量关键任务,强制验证检查:
```markdown
## 工作流
1. 进行编辑
2. **立即验证**:`python scripts/validate.py`
3. 如果验证失败:
- 查看错误消息
- 修复问题
- 再次运行验证
4. **仅当验证通过时继续**
6. 使用带清单的工作流
对于复杂多步骤操作:
## 任务进度
- [ ] 步骤1:分析表单
- [ ] 步骤2:创建映射
- [ ] 步骤3:验证映射
- [ ] 步骤4:填写表单
- [ ] 步骤5:验证输出
7. 限制工具访问(可选)
限制Claude可以使用的工具:
---
name: 安全文件读取器
description: 读取文件而不做更改
allowed-tools: Read, Grep, Glob
---
8. 匹配任务脆弱性的特异性
高自由度(多种方法有效):
## 代码审查流程
1. 分析代码结构
2. 检查潜在错误
3. 建议可读性改进
4. 验证项目约定
低自由度(需要精确序列):
## 数据库迁移
精确运行此命令(不要修改):
```bash
python scripts/migrate.py --verify --backup
## 调试
### 技能不激活?
**检查描述特异性**:
- 太模糊:`帮助处理文档`
- 具体:`从PDF提取文本和表格。在处理PDF文件或用户提及PDF、表单或提取时使用。`
**在描述中包含使用触发器**,以便Claude识别您的任务。
### 多个技能冲突?
使用不同的触发术语:
而不是:
```yaml
# 技能1
description: 用于数据分析
# 技能2
description: 用于分析数据
使用:
# 技能1
description: 分析Excel和CRM导出的销售数据。
用于销售报告、管道分析和收入跟踪。
# 技能2
description: 分析日志文件和系统指标。
用于性能监控、调试和系统诊断。
检查文件路径
验证技能位置:
# 个人
ls ~/.claude/skills/my-skill/SKILL.md
# 项目
ls .claude/skills/my-skill/SKILL.md
验证YAML语法
无效YAML阻止加载:
cat SKILL.md | head -n 10
确保:
- 第1行有开头
--- - 内容前有结尾
--- - 有效的YAML(无制表符,正确缩进)
仅使用正斜杠
- ✓ 好:
scripts/helper.py - ✗ 错:
scripts\helper.py
分享技能
通过git与团队分享
- 在
.claude/skills/中创建技能 - 提交到git:
git add .claude/skills/ git commit -m "添加用于PDF处理的团队技能" git push - 团队拉取后技能立即可用
测试您的技能
向Claude提问,匹配您的描述:
你能帮我从这个PDF提取文本吗?
如果描述匹配请求,Claude自主激活您的技能。