技能是模块化的指令集,可以扩展Cline在特定任务中的能力。每个技能都打包了详细的指导、工作流程和可选资源,Cline只在相关请求时加载这些内容。
与规则(始终处于活动状态)不同,技能是按需加载的。你可以安装数十个技能而不会影响上下文或性能,因为在真正需要之前,Cline只能看到技能名称和描述。
为什么需要技能?
考虑如何让新团队成员入职:你不会一次性把所有文档都给他们。你会给他们一个简要概述,然后在他们处理特定任务时指向详细指南。
技能的工作方式相同:
- 启动时:Cline只看到每个技能的简要描述
- 触发时:Cline加载该特定技能的完整指令
- 需要时:技能可以捆绑其他文件,Cline只在引用时读取
这种渐进式加载意味着你可以打包大量的领域知识,而不会在当前任务不相关的信息上消耗上下文令牌。
创建技能
每个技能都是一个包含 SKILL.md 文件的目录,该文件带有YAML前置元数据:
my-skill/
├── SKILL.md # Required: main instructions
├── docs/ # Optional: additional documentation
│ └── advanced.md
└── scripts/ # Optional: utility scripts
└── helper.sh
SKILL.md文件有两个部分:元数据和指令。
---
name: my-skill
description: 简要描述此技能的作用以及何时使用它。
---
# 我的技能
当此技能激活时,Cline需要遵循的详细指令。
## 步骤
1. 首先,执行这个
2. 然后执行那个
3. 对于高级用法,参见[advanced.md](docs/advanced.md)
必需字段:
name:必须与目录名完全匹配description:告诉Cline何时使用此技能(最多1024个字符)
描述至关重要,因为这是Cline决定是否激活技能的依据。具体说明技能的作用以及何时应该使用。
技能存储位置
技能可以存储在两个位置:
全局技能适用于所有项目:
- macOS/Linux:
~/.cline/skills/ - Windows:
C:\Users\USERNAME\.cline\skills\
项目技能仅适用于当前工作区:
.cline/skills/(推荐).clinerules/skills/.claude/skills/(用于Claude Code兼容性)
当全局技能和项目技能同名时,全局技能优先。这让你可以为个人工作流程自定义技能,同时仍然使用项目默认值。
管理技能
点击聊天输入框下方的天平图标打开规则和工作流程面板。启用技能后,你将看到一个技能选项卡,在那里你可以:
- 查看所有可用技能(全局和工作区)
- 切换单个技能的开启或关闭状态
- 从模板创建新技能
- 删除不再需要的技能
技能在发现时默认启用。如果你希望它们可用但不为当前项目激活,请将它们切换为关闭状态。
Cline如何使用技能
当你发送消息时,Cline会看到可用技能列表及其描述。如果你的请求与某个技能描述匹配,Cline会使用 use_skill 工具激活它,加载完整指令。
例如,如果你有一个用于部署到AWS的技能:
---
name: aws-deploy
description: 使用CDK将应用程序部署到AWS。在部署、更新基础设施或管理AWS资源时使用。
---
询问"将此部署到AWS"将触发Cline激活该技能,加载其详细指令,并按照它们完成你的请求。
示例:数据分析技能
这是一个用于数据分析任务的实用技能。创建一个名为 data-analysis/ 的目录,包含以下 SKILL.md :
---
name: data-analysis
description: 分析数据文件并生成洞察。在处理需要探索、清理或可视化的CSV、Excel或JSON数据文件时使用。
---
然后在文件主体中添加指令:
# 数据分析
分析数据文件时,请遵循以下工作流程:
## 1. 理解数据
- 读取文件样本以了解其结构
- 识别列类型和数据质量问题
- 注意任何缺失值或异常情况
## 2. 询问澄清问题
在深入分析之前,询问用户:
- 他们正在寻找什么具体洞察?
- 是否有任何已知的数据质量问题?
- 他们希望以什么格式输出?
## 3. 执行分析
使用pandas进行数据操作:
```python
import pandas as pd
# 加载和探索
df = pd.read_csv("data.csv")
print(df.head())
print(df.describe())
print(df.info())
```
对于可视化,根据复杂程度优先使用matplotlib或seaborn。
## 4. 呈现发现
- 从关键洞察的摘要开始
- 用具体数字支持发现
- 在能增加清晰度的地方包含可视化
- 以建议或下一步行动结束
捆绑支持文件
技能可以包含仅在需要时Cline才访问的额外文件:
complex-skill/
├── SKILL.md
├── docs/
│ ├── setup.md
│ └── troubleshooting.md
├── templates/
│ └── config.yaml
└── scripts/
└── validate.py
在你的指令中引用这些文件:
对于初始设置,请遵循[setup.md](docs/setup.md)。
使用`templates/config.yaml`的配置模板作为起点。
运行验证脚本来检查你的配置:
```bash
python scripts/validate.py
Cline在指令引用这些文件时使用read_file读取它们。脚本可以直接执行,只有输出进入上下文(而不是脚本代码本身)。
技能创意
技能在以下任务中表现出色:
- 需要详细的多步骤工作流程
- 需要领域特定知识或最佳实践
- 否则需要在多个对话中重复相同的指令
一些可能性:
- 发布管理:版本升级、变更日志生成、git标签和发布
- 代码审查:你团队特定的审查清单和质量标准
- 数据库迁移:使用回滚过程安全演进模式
- API集成:通过适当的错误处理连接到特定的第三方服务
- 文档:你偏好的结构、风格指南和工具
- 调试工作流程:诊断特定类型问题的系统方法
- 基础设施:为你的云设置使用的Terraform/CDK模式
最好的技能编码了那些否则只存在于经验丰富开发人员头脑中的机构知识。
技能 vs 规则 vs 工作流程
| 特性 | 目的 | 激活时机 |
|---|---|---|
| 规则 | 定义Cline应该如何行为 | 始终(或根据上下文) |
| 工作流程 | 逐步任务自动化 | 使用 /workflow.md 调用 |
| 技能 | 按需加载的领域专业知识 | 通过匹配请求触发 |
规则设置约束和偏好(如"始终使用TypeScript"或"遵循此风格指南")。
工作流程是你为特定任务调用的显式序列(如使用 /release.md 进行发布过程)。
技能是Cline在相关时自动激活的专业知识(如在你处理CSV文件时激活数据分析知识)。
使用规则进行持续约束,使用工作流程进行显式自动化,使用技能用于应该可用但不始终激活的领域知识。
