什么是skill
一个skill是一个文件夹, 包含:
- SKILL.MD (必须): 带有YAML前置元数据(frontmatter)的Markdown的指令文档
- scripts/ (可选): 可执行代码(Python, Bash)
- references/ (可选): 按需加载的文档资料
- assets/ (可选): 输出中使用的模板,字体,图标等资源
核心设计原则:
渐进式披露(Progressive Disclosure)
技能采用三级结构:
- 第一层 (YAML 前置元数据): 始终加载在系统提示词中, 只提供足够的信息, 让Agent知道在什么情况下使用哪个技能, 而无需把全部内容都加载进上下文
- 第二层 (SKILL.md 正文): 当Agent认为该技能与当前任务相关的时候才会加载, 包含完整的指令和指导
- 第三层 (链接文件): 技能目录中打包的其他文件, agent仅在需要的时候才会进入, 浏览并且发现
可组合型(Composability)
Agent可以同时加载多个SKILL, 你的SKILL应该与其他的技能良好写作, 而不是默认他是唯一可用的能力
可移植性(Portability)
技能应该在所有的Agent中的表现完全一致, 只要运行环境支持该技能所需的依赖,你创建一次技能, 就可以在所有使用场景中无需修改直接使用
用例
好的用例定义
Use Case: Project Sprint Planning
Trigger: User says "help me plan this sprint" or "create sprint tasks"
Steps:
1. Fetch current project status from Linear (via MCP)
2. Analyze team velocity and capacity
3. Suggest task prioritization
4. Create tasks in Linear with proper labels and estimates Result: Fully planned sprint with tasks created
你需要自问:
- 用户想要达成什么目标
- 这需要哪些多步骤的工作流
- 需要用到哪些工具(内置或MCP)
- 应该把哪些领域知识或最佳实践沉浸进skill?
常见的skill用例类别
类别1: 文档与资产创建(Document & Asset Creation)
用途: 生成一致,高质量的输出,包括文档,演示文稿,应用,设计稿,代码等 真实例子: frontend-design skill (也可以参考docx,pptx,xlsx,和ppt等相关skill) 例如: 创建风格鲜明, 可用于生产环境的前端界面, 具备高质量设计, 用于构建web组件, 页面, 产物, 海报或者应用的时候 关键技巧:
- 内置风格指南与品牌标准
- 使用模板结构保证输出一致性
- 在最终输出前进行质量检查,列出清单(checklist)
- 不需要外部工具-仅使用内置能力
类别2: 工作流自动执行
用途: 适用于需要一致方法论的多步骤流程, 包括跨多个MCP server的协同 真实例子: skill-creator skill 例如: 用于创建新技能的交互式指南, 带用户完成用例定义, frontmatter生成, 指令撰写与校验 关键技巧:
- 带校验关卡(validation gates)的逐步工作流
- 常见结构的模板化
- 内置审查与改进建议
- 迭代式优化循环
类别3: mcp增强
用途: 提供工作流知道, 以增强mcp server 所提供的工具访问能力 真实例子: sentry-code-review skill 通过他们的mcp server 使用Sentry 的错误监控数据, 自动分析并修复github pull request 中检测到的bug 关键技巧:
- 串联多个mcp调用并按顺序协调执行
- 内嵌领域专业知识
- 补充用户原本需要手动说明的上下文信息
- 针对常见的mcp问题的错误处理
如果判断你的skill在正常工作
量化指标:
-
在90%的相关查询上能触发skill
-
如何衡量: 准备10-20条本应该触发该skill 的测试查询, 记录他自动加载的次数vs需要手动显示调用的次数
-
在x次工具调用内完成工作流
-
如何衡量: 对比同一个任务在启用/不启用skill的情况下执行, 统计工具调用次数与消耗的总token数
-
每个工作流0次失败的api调用
-
如何衡量: 在此时运行期间监控mcp server日志, 记录重试率与错误码 质性指标
-
用户不需要提示agent下一步该做什么
-
如何评估: 测试过程中观察你需要多少次纠正方向或澄清下一步了; 也可以向beta用户收集反馈
-
工作流能完成且不需要用户纠错
-
如何评估: 对同一请求重复运行3-5次, 比较输出在结构一致性与质量上的表现
-
跨会话结果一致
-
如何评估: 新用户在几乎不需要额外知道的情况下, 能否第一次就完成任务
技术要求
文件结构
your-skill-name/
├── SKILL.md # 必需——主技能文件
├── scripts/ # 可选——可执行代码
│ ├── process_data.py # 示例
│ └── validate.sh # 示例
├── references/ # 可选——文档资料
│ ├── api-guide.md # 示例
│ └── examples/ # 示例
└── assets/ # 可选——模板等资源
└── report-template.md # 示例
关键规则
SKILL.md 命名:
- 必须严格命名为SKILL.md (区分大小写)
- 不接受任何变体 (如SKILL.MD, skill.md等) 技能文件夹命名:
- 使用 kebab-case(螃蟹): notion-project-setup
- 不允许使用空格: Notion Project Setup
- 不允许大写 :NotionProjectSetup 不要放 README.md:
- 不要在skill文件夹里包含README.md
- 所有文档都放在SKILL.md 或者references/目录下
- 注意: 如果通过github分发, 你仍然可能需要在仓库根目录提供一个给人看的README
YAML frontmatter: 最重要的部分
必须格式
name: your-skill-name
description: What it does. Use when user asks to [specific phrases].
需要提供一个 你的skill的名字, 他是做什么的描述 字段要求:
-
name 必须:
- 只能用kebab-case 命名
- 不能有空格和大写字幕
- 应该与文件名称一致
-
description 必须:
- 必须同时包含
- 这个skill做什么
- 什么时候用(触发条件
- 少于1024个字符
- 不能出现xml标签(不能出现
<或> - 要包含用户可能会说的具体任务/表述
- 如相关,请提及文件类型(例如docx,pptx,xlsx
- 必须同时包含
-
license(可选)
- 如果你要把skill开源, 就使用这个字段
- 常见的取值: MIT, Apache-2.0
-
compatibility (可选
- 1-500个字符
- 用于说明环境要求, 例如: 目标产品, 需要的系统包, 是否需要网络访问等
-
metadata(可选
- 可以填写任意自定义的键值对
- 建议字段:author , version ,mcp-server
metadata:
author: ProjectHub
version: 1.0.0
mcp-server: projecthub
安全限制 forbidden in frontmatter 禁止包含:
- xml, 尖括号
< > - 名称中包含 claude 或者 anthropic 的skill 保留字段 原因: frontmatter 会出现在agent的系统提示词中, 若包含恶意内容, 可能会被注入指令, 从而影响系统行为
编写有效的skill
description 字段
这个字段提供了恰到好处的信息 ,使agent能够判断何时应该使用某个skill, 而无需将其全部内容加载到上下文中 这是渐进式信息披露progressive disclosure 的第一层机制
结构:
[what it does] + [When to use it] + [Key capabilities]
示例
# Good - specific and actionable
description: Analyzes Figma design files and generates developer handoff documentation. Use when user uploads .fig files, asks for "design specs", "component documentation", or "design-to-code handoff".
# Good - includes trigger phrases description: Manages Linear project workflows including sprint planning, task creation, and status tracking. Use when user mentions "sprint", "Linear tasks", "project planning", or asks to "create tickets".
# Good - clear value proposition description: End-to-end customer onboarding workflow for PayFlow. Handles account creation, payment setup, and subscription management. Use when user says "onboard new customer", "set up subscription", or "create PayFlow account".
一些不好的示例
# Too vague
description: Helps with projects.
# Missing triggers description: Creates sophisticated multi-page documentation systems.
# Too technical, no user triggers description: Implements the Project entity model with hierarchical relationships.
主要指令
推荐的结构
---
name: your-skill
description: [...]
---
# Your Skill Name
## Instructions
### Step 1: [First Major Step] Clear explanation of what happens.
Example:
```bash python scripts/fetch_data.py --project-id PROJECT_ID
Expected output: [describe what success looks like]
示例1
用户说 设置一个新的营销活动
步骤:
1 通过mcp获取现有活动列表
2 使用提供的参数创建新的活动
结果:
活动创建成功, 并返回确认连接
故障排查
错误: [常见错误信息]
原因: [发生原因]
解决方案 [修复方法]
最佳实践
Run `python scripts/validate.py --input {filename}` to check data format.
If validation fails, common issues include:
- Missing required fields (add them to the CSV)
- Invalid date formats (use YYYY-MM-DD)
错误的示例
Validate the data before proceeding.
包含错误的实例
# Common Issues
### MCP Connection Failed
If you see "Connection refused":
1. Verify MCP server is running: Check Settings > Extensions
2. Confirm API key is valid
3. Try reconnecting: Settings > Extensions > [Your Service] > Reconnect
包含引用的实例
Before writing queries, consult `references/api-patterns.md`
for: - Rate limiting guidance
- Pagination patterns
- Error codes and handling
使用渐进式的信息披露
保持 SKILL.md 只包含核心指令, 将详细文档移动到references/目录, 并在文中进行链接
测试与迭代
根据需求不同, Skill 可以采样不同严格程度的测试方式
- 在Claude.ai 中进行手动测试, 直接运行查询并观察行为, 迭代速度快, 无需额外的配置
- 在claude code 中进行脚本化测试 : 自动化测试用例, 实现跨版本变更的可重复验证
- 通过skills api 进行程序化测试 -- 构建评估套件, 针对定义好的测试集进行系统化运行 选择与质量要求和skill可见性相匹配的测试方式, 一个仅供小团队内部使用的skill 与面向数千名企业用户部署的skill , 其测试需求显然不同 实用建议: 先围绕单一任务进行迭代, 然后在扩展 我们发现, 高效的skill 创建者通常会针对一个挑战性的单一任务反复迭代, 直到claude成功完成, 然后将验证有效的方法提炼为一个skill, 这种方式利用了claude的上下文学习能力, 相比大范围测试能更快获得有效反馈, 在打好基础后, 在扩展到多个测试用例以提升覆盖率
推荐的测试方法
根据早期经验, 有效的skill测试通常覆盖三个方面 1 触发测试 目标: 确保你的skill在正确的时机被加载 测试用例 ✅ 在明显相关的任务上能够触发 ✅ 在语义改写后的请求上仍然能够触发 ❌ 在无关的主题上不会被触发
示例的测试套件
Should trigger:
- "Help me set up a new ProjectHub workspace"
- "I need to create a project in ProjectHub"
- "Initialize a ProjectHub project for Q4 planning" Should NOT trigger:
- "What's the weather in San Francisco?"
- "Help me write Python code"
- "Create a spreadsheet" (unless ProjectHub skill handles sheets)
- 功能测试 目标: 验证该skill能够产出正确的输出 测试用例:
- 能生成有效的输出
- api调用能力
- 错误处理机制正常工作
- 覆盖边界情况
Test: Create project with 5 tasks
Given: Project name "Q4 Planning", 5 task descriptions
When: Skill executes workflow
Then:
- Project created in ProjectHub
- 5 tasks created with correct properties
- All tasks linked to project
- No API errors
- 性能对比 目标; 证明该skill 相较于基线方案能够提升效果 使用在 定义成功标准Define Success Criteria 中设定的指标进行评估, 下面是一个可能的对比方式 基线对比:
Without skill:
- User provides instructions each time
- 15 back-and-forth messages
- 3 failed API calls requiring retry - 12,000 tokens consumed
With skill:
- Automatic workflow execution
- 2 clarifying questions only
- 0 failed API calls
- 6,000 tokens consumed
使用skill-creator skill
可以帮助构建和迭代skill, 如果你已经有mcp服务器, 并且明确了2-3个核心工作流, 通常可以在一次会话中完成一个可用skill的构建与测试-- 通常只需要15-30分钟 创建skill:
- 从自然语言描述生成skill
- 生成包含frontmatter的规范格式SKILL.md
- 建议触发短语与结构设计
审查skill
- 标记常见问题(如描述过于模糊, 缺少触发条件, 结构问题
- 识别潜在的过度触发或触发不足风险
- 根据skill的目标用途建议测试用力
迭代改进
- 在使用skill并遇到边界情况或失败案例后, 将这些示例返回给skill-creator
- 示例: 基于本次对话中识别的问题与解决方案, 改进该skill 对特定便捷情况的处理方式
use the skill-creatro skill to help me build a skill for [you use case]
基于反馈进行迭代
skill 是持续演进的文档, 应根据实际使用情况不断优化 触发不足的信号
- 在应当触发的时候未被加载
- 用户需要手动启用
- 出现关于 何时使用该skill的支持类问题
解决方案: 在description 中增加更多细节与语义分析, 必要的时候补充关键技术术语, 以增强触发准确性
过度触发的信号:
- 在无关查询中被加载
- 用户主动禁用
- 用户对skill的用途产生困惑
解决方案: 添加负触发条件, 并收窄描述范围, 使触发条件更加具体
执行问题:
- 结果不一致
- api调用失败
- 需要用户进行纠正
解决方案: 优化指令内容, 补充错误处理逻辑
分发与共享
个人获取skill的方式
- 下载skill文件夹
- 如果有需要, 将文件夹压缩为zip
- 在claude.ai 中通过settings > Capabilities > Skills 上传
- 或放置在claude code 的skills目录中
当前推荐的做法
建议首先将你的skill托管在github的公开仓库中, 提供清洗的readme (面向人类读着--注意, 该readme应该位于仓库根目录, 而不是skill文件夹内部, skill文件夹中不应包含readme.md , 随后, 在你的mcp文档中新增一个章节, 链接到skill , 说明两者结合使用的价值, 并且提供快速上手指南
- 托管到github
- 为开源skill创建公开仓库
- 提供清洗的readme, 包含安装说明
- 提供示例用法与截图
- 在你的mcp仓库中进行文档说明
- 在mcp文档中链接到对应的skill
- 说明两者结合使用的价值
- 提供快速上手指南
- 创建安装指南
# Installing the [Your Service] skill
1. Download the skill:
- Clone repo: `git clone https: /github.com/yourcompany/ skills`
- Or download ZIP from Releases
2. Install in Claude:
- Open Claude.ai > Settings > skills
- Click "Upload skill"
- Select the skill folder (zipped)
3. Enable the skill:
- Toggle on the [Your Service] skill
- Ensure your MCP server is connected
4. Test:
- Ask Claude: "Set up a new project in [Your Service]"
skill的定位
你如何描述的你的skill, 将直接决定用户是否理解其价值, 并真正尝试使用他, 在readme,文档或者营销材料中介绍skill的时候, 应该注意以下原则 聚焦结果, 而非功能细节: 好的示例:
ProjectHub skill 可以让团队在几秒钟内完成完整项目工作区的搭建——包括页面、数据库和模板——而不再需要花费 30 分钟进行手动配置
不好的示例
ProjectHub skill 是一个包含 YAML frontmatter 和 Markdown 指令的文件夹,用于调用我们的 MCP 服务器工具。
强调mcp与skill的协同价值
我们的 MCP 服务器让 Claude 能访问你的 Linear 项目。
我们的 Skill 教会 Claude 你团队的冲刺规划流程。
两者结合,实现 AI 驱动的项目管理。
模式与故障排查
这些patterns 来源于早期采用者的内部团队创建的skill实践经验, 他们代表的是被验证有效的常见方法, 而不是强制性的模板 选择你的方式: 问题驱动vs工具驱动 可以把他类比为去建材商店, 你可能戴着一个问题进去 -- 我uyao修理厨房橱柜, 然后工作人员为你推荐合适的工具, 也可能是你先选了一把新的电钻, 在询问如何将他用于具体任务
skill的工作方式类似
- 问题驱动problem-first 我需要搭建一个项目工作区-> 你的skill按正确顺序编排合适的mcp调用, 用户描述的是结果目标; skill负责调用工具
- 工具驱动 tool-first
- 我已经连接了notion mcp -> 你的skill教会claude 最优工具流与最佳实践, 用户已经具备工具访问能力, skill提供专业方法论
大多数skill会偏向其中一种方向, 明确哪种定位更符合你的使用场景, 有助于你在下文选择合适的设计模式
模式1 : 顺序式工作流编排
适用场景: 用户需要按照特定顺序执行多步骤流程 示例结构
## workflow : onboard new Customer
### Step 1 : Create Account
Call MCP tool : `create_customer`
Parameters : name , email , company
### Step2 : Setup payment
Call mcp tool : `setup_payment_method`
Wait for: payment method verification
### Step3 : Create Subscription
Call mc tool : `create_subscription`
Parameters: plan_id, customer_id (from Step 1)
### Step 4: Send Welcome Email
Call MCP too: `send_email`
Template: welcome_email_template
关键技巧:
- 明确步骤顺序
- 定义步骤之间的依赖关系
- 在每个阶段进行校验
- 为失败情况提供回滚指令
模式2: 多MCP 协同编排
适用场景: 工作流设计多个服务, 需要跨系统写作 示例: 设计到开发的交接流程
### Phase 1 : Design Export (Figma MCP)
1. Export design assest from Figma
2. Generate design specifications
3. Create asset manifest
### Phase 2 : Asset Storage (Drive MCP
1. Create project folder in Drive
2. Upload all assets
3. Generate shareable links
### Phase 3: Task Creation (Linear MCP)
1. Create development tasks
2. Attach asset links to tasks
3. Assign to engineering team
### Phase 4: Notification
1. Post handoff summary to #engineering
2. Include asset links and taks refernces
关键技巧: 明确阶段划分 在不同的mcp之间传递数据 在进入下一阶段前进行验证 集中式错误处理机制
模式3: 迭代式优化
使用场景: 输出质量可以通过多轮迭代不断提升 示例: 报告生成流程
## iterative report creation
### initial Draft
1. Fetch data via mcp
2. Generate first draft report
3. save to temporary file
### Quality Check
1. Run validation script : `scripts/check_report.py`
2. Identify issues:
- Missig sessions
- Inconsistent formatting
- Data validation errors
### Refinement loop
1. Address each identified issue
2. Regenerate affected sections
3. Re-validate
4. Repeat untial quality threshold met
### Finalization
1. Apply final formating
2. Generate summary
3. save final version
明确质量评判标准 采用迭代式改进机制 使用校验脚本辅助验证 明确合适停止迭代
模式4 : 基于上下文的工具选择
使用场景: 目标结果相同, 但是根据不同上下文需要调用不同工具 示例: 智能文件存储
## Smart file storage
### Decision Tree
1. check file type and size
2. Determine best storage location :
- large files (>10mb): use cloud storage MCP
- collaborative docs: use Notion/Docs MCP
- Code files : use Github mcp
- Temporary files : Use local storage
### EExecute Storage
Base on descision:
- Call appropriate mcp tool
- Apply service-specific metadata
- Generate access link
### Provide Context to user
Explain why that storage was chosen
关键技巧:
- 明确的决策标准
- 提供兜底方案(Fallback)
- 对选择过程保持透明
模式5:领域特定智能
适用场景: 你的skill不仅仅提供工具调用能力, 还嵌入了专业领域知识 示例: 带合规检查的支付处理
# Payment Processing with Compliance
### Before Processing (Compliance Check)
1. Fetch transaction details via MCP
2. Apply compliance rules:
- Check sanctions lists
- Verify jurisdiction allowances
- Assess risk level
3. Document compliance decision
### Processing IF compliance passed:
- Call payment processing MCP tool
- Apply appropriate fraud checks
- Process transaction ELSE:
- Flag for review
- Create compliance case
### Audit Trail
- Log all compliance checks
- Record processing decisions
- Generate audit report