name: 技能-创建器 description: “根据Anthropic最佳实践创建新技能。用于发现可重用工作流或重复模式时。触发词:创建技能、新工作流、编码此过程、标准化工作流。”
技能创建器
根据Anthropic官方最佳实践创建结构良好的技能。
何时创建技能
好的候选:
- 重复3次以上
- 复杂的多步骤工作流
- 容易出错的过程
- 领域特定知识
不值得编码化:
- 一次性任务
- 高度可变的过程
- 简单的单步骤操作
SKILL.md 结构
必需的前置元数据
---
name: 处理-文档
description: "处理文档并提取数据。用于处理PDF或Word文件时。触发词:处理文档、提取数据。"
---
字段要求:
| 字段 | 规则 |
|---|---|
name |
最大64字符,仅小写字母/数字/连字符 |
description |
最大1024字符,非空,使用第三人称 |
命名约定
使用动名词形式(动词 + -ing):
处理-pdfs分析-电子表格管理-数据库
避免: helper, utils, tools, anthropic-*, claude-*
编写描述
始终使用第三人称(注入到系统提示中):
# 好
description: "处理Excel文件并生成报告"
# 避免
description: "我可以帮你处理Excel文件"
description: "你可以用这个来处理Excel文件"
具体并包括触发词:
description: "分析BigQuery数据并生成报告。用于查询销售指标或创建仪表板时。触发词:分析数据、bigquery报告、销售指标。"
技能正文模板
# [技能标题]
[一句话描述这个技能做什么]
## 快速开始
[最小示例以开始 - 少于50个令牌]
## 过程
1. [步骤1]
2. [步骤2]
3. [步骤3]
## 高级功能
**[功能A]**: 参见[FEATURE_A.md](FEATURE_A.md)
**[功能B]**: 参见[FEATURE_B.md](FEATURE_B.md)
最佳实践
简洁
只添加Claude不知道的上下文。质疑每一部分:
- “Claude真的需要这个解释吗?”
- “我可以假设Claude知道这个吗?”
好(约50个令牌):
## 提取PDF文本
使用pdfplumber:
\`\`\`python
import pdfplumber
with pdfplumber.open("file.pdf") as pdf:
text = pdf.pages[0].extract_text()
\`\`\`
坏(约150个令牌):解释PDF是什么以及库如何工作。
保持少于500行
如果内容超过500行,使用渐进式披露拆分成单独文件。
一级深度引用
保持所有引用文件直接从SKILL.md链接:
# SKILL.md
**基本用法**: [指令在这里]
**高级功能**: 参见[advanced.md](advanced.md)
**API参考**: 参见[reference.md](reference.md)
避免时间敏感信息
使用“旧模式”部分代替日期:
## 当前方法
使用v2 API端点。
## 旧模式
<details>
<summary>遗留v1 API(已弃用)</summary>
v1 API使用不同的端点...
</details>
使用一致的术语
选择一个术语并坚持使用:
- 总是“API端点”(不混合“URL”、“路由”、“路径”)
- 总是“提取”(不混合“拉取”、“获取”、“检索”)
目录结构
技能名称/
├── SKILL.md # 主要指令(< 500行)
├── ADVANCED.md # 高级功能(根据需要加载)
├── REFERENCE.md # API参考(根据需要加载)
└── scripts/
└── utility.py # 执行,不加载到上下文中
检查清单
保存前:
- [ ] 名称使用动名词形式和kebab-case
- [ ] 描述是第三人称且具体
- [ ] 描述包括它做什么以及何时使用它
- [ ] SKILL.md正文少于500行
- [ ] 没有不必要的Claude已经知道的解释
- [ ] 引用是一级深度
- [ ] 没有时间敏感信息
- [ ] 整个术语一致