17.1 创建你的第一个Skill

概述

欢迎来到Skills开发的实战环节!在这个章节中,我们将一起创建你的第一个Skill。通过这个实践,你将掌握Skills的基本结构和创建流程。

想象你正在为Claude创建一个"私人助手",这个助手专门帮助你处理某种特定任务。这就是Skill的本质——一个封装了专业知识和指令的文件夹。

规划你的Skill

1. 确定Skill的功能范围

在开始编写代码之前,首先思考你的Skill要解决什么问题:

好的Skill功能

  • 具体且明确的任务(如"处理Excel文件"、"生成代码文档")
  • 有明确的使用场景(如"当用户提到数据分析时"、"处理Python项目时")
  • 能够被Claude有效执行

示例场景

  • 一个帮助处理项目文档的Skill
  • 一个专门处理数据格式转换的Skill
  • 一个提供特定领域知识的Skill

2. 选择Skill类型

根据你的需求选择合适的存放位置:

  • 个人Skill:放在 ~/.claude/skills/ 用于个人工作流
  • 项目Skill:放在 .claude/skills/ 用于团队协作

创建Skill目录结构

1. 创建目录

让我们创建一个简单的Skill来处理项目文档:

# 对于个人Skill
mkdir -p ~/.claude/skills/project-helper

# 或者对于项目Skill
mkdir -p .claude/skills/project-helper

2. 创建基础文件

每个Skill最少需要一个SKILL.md文件:

project-helper/
└── SKILL.md

编写基础SKILL.md文件

1. YAML Frontmatter

SKILL.md文件必须以YAML frontmatter开头:

---
name: project-helper
description: 帮助处理项目文档和代码结构。当用户需要项目概述、代码分析或文档生成时使用此Skill。
---

# 项目助手 Skill

## 功能概述

这个Skill帮助开发者更好地理解和管理项目结构。

YAML字段说明

  • name: Skill的唯一标识符,只能包含小写字母、数字和连字符
  • description: 详细描述Skill的功能和使用时机,这是Claude判断何时使用这个Skill的关键

2. 添加基本指令

在frontmatter之后,添加Claude应该遵循的指令:

## 使用指南

当用户询问项目相关问题时:

1. 首先查看项目的整体结构
2. 识别主要的文件类型和组织方式
3. 提供清晰的项目概述
4. 根据需要深入特定文件或目录

## 示例用法

- "这个项目是做什么的?"
- "帮我分析一下代码结构"
- "生成项目文档"

测试Skill加载

1. 验证Skill被识别

创建SKILL.md文件后,重启Claude Code或运行:

claude /skills

你应该能看到你的Skill出现在列表中。

2. 基本功能测试

在Claude中询问与你的Skill相关的问题,观察是否被触发。

常见初学者错误

1. 忘记YAML frontmatter

错误示例

# 我的Skill

这里是描述...

正确示例

---
name: my-skill
description: 描述Skill功能
---

# 我的Skill

这里是描述...

2. 描述不够具体

不好的描述: "一个有用的工具"

好的描述: "处理JSON数据文件,当用户需要格式化、验证或转换JSON数据时使用此Skill"

3. Skill名称不符合规范

错误名称: "My Skill"、"my_skill_v1"

正确名称: "my-skill"、"json-processor"

下一步

恭喜!你已经创建了第一个Skill的基础结构。在下一章,我们将学习如何编写更高质量的SKILL.md文件,包括高级指令编写技巧。

技术说明:Skills开发的核心是文件组织和指令编写,而非复杂的编程。Claude会在运行时读取这些文件,所以重点在于编写清晰、准确的指令。