Skills是为特定任务扩展 Cline 能力的模块化指令集。每个Skills都包含详细的指导、工作流程和可选的资源文件,Cline 仅在与您的请求相关时加载这些内容。
您可以安装多个Skills,Cline 只会按需加载。例如,一个部署Skills在您提出部署相关请求之前会一直处于休眠状态。与 规则(始终激活)不同,Skills是按需加载的,因此当您处理不相关的事务时,它们不会占用上下文窗口。
注
Skills是一项实验性功能。请在 Settings → Features → Enable 中开启它。
Skills 工作原理
考虑如何让新团队成员入职:你不会一次性把所有文档都给他们。你会给他们一个简要概述,然后在他们处理特定任务时指向详细指南。
Skills使用渐进式加载以最大化效率:
| 级别 | 加载时机 | 消耗的tokens数 | 内容 |
|---|---|---|---|
| 元数据 | 始终(启动时) | 每个Skills约 100 个tokens | YAML 前置元数据中的 name 和 description |
| 指令 | Skills被触发时 | 低于 5k tokens | SKILL.md 正文,包含指令和指导 |
| 资源文件 | 按需加载 | 实际上无限制 | 通过 read_file 访问或执行脚本的捆绑文件 |
当您发送消息时,Cline 会看到可用Skills列表及其描述。如果您的请求与某个Skills描述匹配,Cline 将使用 use_skill 工具激活该Skills,从而加载 SKILL.md 中的完整指令。这种渐进式加载意味着你可以打包大量的领域知识,而不会在当前任务不相关的信息上消耗上下文令牌。
例如,如果你有一个用于部署到AWS的技能:
---
name: aws-deploy
description: 使用CDK将应用程序部署到AWS。在部署、更新基础设施或管理AWS资源时使用。
---
询问"将此部署到AWS"将触发Cline激活该技能,加载其详细指令,并按照它们完成你的请求。
Skills结构
每个Skills都是一个包含 SKILL.md 文件的目录,该文件带有 YAML 前置元数据。
my-skill/
├── SKILL.md # 必需:主要指令
├── docs/ # 可选:额外文档
│ └── advanced.md
└── scripts/ # 可选:实用脚本
└── helper.sh
SKILL.md 文件包含两部分:元数据和指令。
---
name: my-skill
description: 简要描述该Skills的作用及何时使用。
---
# 我的Skills
当此Skills被激活时,Cline 需要遵循的详细指令。
## 步骤
1. 首先,执行此操作
2. 然后执行彼操作
3. 高级用法,请参阅 [advanced.md](docs/advanced.md)
必填字段:
name必须与目录名称完全一致description告知 Cline 何时使用此Skills(最多 1024 个字符)
创建Skills
打开Skills菜单
点击 Cline 面板底部(模型选择器左侧)的天平图标。切换到“Skills”标签页。
创建新Skills
点击“新建Skills...”,为您的Skills命名(例如:
aws-deploy)。Cline 将创建一个Skills目录,其中包含一个模板SKILL.md文件。编写Skills指令
编辑
SKILL.md文件:- 更新
description字段,明确此Skills的触发条件 - 在正文中添加详细指令
- 可选地在
docs/、templates/或scripts/子目录中添加辅助文件
- 更新
您也可以通过手动在文件系统中创建目录结构来创建Skills。将Skills目录放置在 .cline/skills/(工作区)或 ~/.cline/skills/(全局)中,Cline 将自动检测到它们。
请将重要信息放在 SKILL.md 的开头。Cline 会按顺序读取文件,因此请将常见情况放在前面。使用清晰的章节标题,如“## 错误处理”或“## 配置”,以便 Cline 能够快速扫描到相关部分。
编写你的 SKILL.md
命名约定
Skills名称出现在 name 字段中,必须与目录名称完全一致。请使用小写字母和连字符(kebab-case),并对Skills的功能进行描述性命名。
好的命名示例:
aws-cdk-deploypr-review-checklistdatabase-migrationapi-client-generator
应避免的命名:
aws(过于模糊)my_skill(使用了下划线,且未描述功能)DeployToAWS(应使用 kebab-case,而非 PascalCase)misc-helpers(过于通用)
编写有效的描述
描述决定了 Cline 何时激活该Skills。模糊的描述可能导致Skills无法在您期望时被触发。
好的描述具体且可操作:
description: 使用 CDK 将应用程序部署到 AWS。在部署、更新基础设施或管理 AWS 资源时使用。
description: 从 git 提交记录生成发布说明。在准备发布、编写变更日志或总结近期更改时使用。
description: 分析 CSV 和 Excel 数据文件。在探索数据集、生成统计数据或基于表格数据创建可视化时使用。
薄弱的描述会留下太多歧义:
description: 帮助处理 AWS 相关事宜。
description: 数据分析助手。
description: 对发布有用。
以Skills的作用开头(使用动词),包含用户可能说的触发短语,并提及特定的文件类型、工具或领域。通过尝试不同措辞的请求来测试您的描述,观察Skills是否能够被触发。
保持Skills聚焦
请将 SKILL.md 的内容控制在 5k 个tokens以内。如果您的Skills需要更多内容,可以将其拆分成多个文件,放在 docs/ 目录中,并在主指令中引用它们。Cline 仅在需要时加载被引用的文件。
包含真实的示例。展示要运行的命令、预期的输出以及结果应该是什么样子的。抽象的指令比具体的示例更难遵循。
Skills的存放位置
Skills可以全局存储,也可以存储在项目工作区中。有关何时使用哪种方式的指导,请参阅 存储位置 。
项目级Skills存放位置:
.cline/skills/(推荐).clinerules/skills/.claude/skills/
全局Skills存放位置:
~/.cline/skills/(macOS/Linux)C:\Users\用户名\.cline\skills\(Windows)
当全局Skills和项目Skills同名时,全局Skills具有更高优先级。这使您可以将通用Skills保存在全局位置,同时在 .cline/skills/ 中使用项目特定Skills,以便整个团队都能使用它们。
捆绑辅助文件
Skills可以包含额外的文件,Cline 仅在需要时访问这些文件。
complex-skill/
├── SKILL.md
├── docs/
│ ├── setup.md
│ └── troubleshooting.md
├── templates/
│ └── config.yaml
└── scripts/
└── validate.py
docs/
将 docs 用于那些对 SKILL.md 来说过于详细或仅在特定情况下相关的信息:
- 高级配置选项
- 边缘情况的故障排除指南
- 参考资料(API 模式、数据库模式)
- 特定平台的说明
一个部署Skills可能包含 docs/aws.md、docs/gcp.md 和 docs/azure.md。Cline 会根据您的请求,仅加载相关平台的指南。
templates/
当您的Skills需要创建配置文件、样板代码或结构化文档时,使用模板:
- 配置文件(Terraform、Docker Compose、CI/CD 管道)
- 代码脚手架(组件模板、测试夹具)
- 文档模板(README、API 文档)
一个项目设置Skills可能包含 templates/dockerfile、templates/docker-compose.yml 和 templates/.env.example,Cline 会为每个新项目定制这些模板。
scripts/
在需要确定性操作且希望行为一致时使用脚本:
- 验证(检查配置文件的语法、检查先决条件)
- 数据处理(解析、格式化、转换)
- 复杂计算(成本估算、资源规模确定)
- API 交互(获取数据、运行健康检查)
脚本是tokens效率高的,因为只有它们的输出(而非代码本身)会进入上下文。一个 500 行的验证脚本可能只输出一个简单的“通过”或详细的错误消息,而不会为脚本逻辑消耗任何上下文。
引用捆绑文件
在您的 SKILL.md 指令中引用这些文件:
对于初始设置,请遵循 [setup.md](docs/setup.md)。
以 `templates/config.yaml` 中的配置模板作为起点。
运行验证脚本来检查您的配置:
```bash
python scripts/validate.py
```
当指令中引用文档文件时,Cline 会使用 read_file 读取它们。脚本可以直接执行,并且只有脚本的输出会进入上下文窗口。
| 适合使用脚本的场景 | 适合使用指令的场景 |
|---|---|
| 确定性操作(验证、格式化) | 适应上下文的灵活指导 |
| 复杂计算 | 决策制定工作流程 |
| 需要可靠性的操作 | 可能因情况而异的步骤 |
| 任何您不想消耗tokens来解释的内容 | 最佳实践和模式 |
技能创意
技能在以下任务中表现出色:
- 需要详细的多步骤工作流程
- 需要领域特定知识或最佳实践
- 否则需要在多个对话中重复相同的指令
一些可能性:
- 发布管理:版本升级、变更日志生成、git标签和发布
- 代码审查:你团队特定的审查清单和质量标准
- 数据库迁移:使用回滚过程安全演进模式
- API集成:通过适当的错误处理连接到特定的第三方服务
- 文档:你偏好的结构、风格指南和工具
- 调试工作流程:诊断特定类型问题的系统方法
- 基础设施:为你的云设置使用的Terraform/CDK模式
技能 vs 规则 vs 工作流程
| 特性 | 目的 | 激活时机 |
|---|---|---|
| 规则 | 定义Cline应该如何行为 | 始终(或根据上下文) |
| 工作流程 | 逐步任务自动化 | 使用 /workflow.md 调用 |
| 技能 | 按需加载的领域专业知识 | 通过匹配请求触发 |
规则设置约束和偏好(如"始终使用TypeScript"或"遵循此风格指南")。
工作流程是你为特定任务调用的显式序列(如使用 /release.md 进行发布过程)。
技能是Cline在相关时自动激活的专业知识(如在你处理CSV文件时激活数据分析知识)。
使用规则进行持续约束,使用工作流程进行显式自动化,使用技能用于应该可用但不始终激活的领域知识。
示例:数据分析Skills
这是一个用于数据分析任务的实用Skills。创建一个名为 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. 呈现发现
- 从关键洞察的摘要开始
- 用具体数字支持发现
- 在能增加清晰度的地方包含可视化
- 以建议或下一步行动结束
Skills将 Cline 从一个通用助手转变为了解您领域的专家。从一个您经常重复的任务开始,创建一个Skills,进行测试,并反复调整其描述,直到它能可靠地被触发。
