用第 1 课和第 2 课练习中确定的任务,创建一个完整的 SKILL.md。
Level 1:创建你自己的第一个 Skill要求:
- 创建目录结构
- 写完整的 frontmatter(name + description)
- 写 instructions,至少包含:输入格式、处理步骤、输出格式
- 保存文件
- 在 Claude Code 里调用一次
学习目标:
- 创建 Skill 的目录结构
- 从零编写一个完整的 SKILL.md
- 理解渐进式披露原则
- 第一次调用你的 Skill
这一课,我们从零开始创建一个真实可用的 Skill:任务整理器。
它做什么:
为什么选这个:
打开终端,执行:
目录结构现在是这样:
用你的文本编辑器(VS Code、Cursor、或其他)打开 SKILL.md。
先写文件开头的元数据:1
检查清单:
name 是小写、用连字符description 说了做什么(整理待办)、输入是什么(混乱列表)、什么时候用(会议行动项、项目待办)frontmatter 之后,加上标题:
为什么要写标题和简介:
告诉 Claude 接受什么样的输入:2
完成季度报告
这里做了什么:
这是 instructions 的核心部分,要写得足够具体:2
为什么要这么详细:
Claude 不是人,不会"理解你的意思"。你写"判断优先级",它不知道按什么标准判断。但你写"包含'紧急'→ 紧急",它就知道该怎么做。3
告诉 Claude 结果应该长什么样:
给示例的好处:
Claude 看到示例,就知道具体的排版、符号、格式。不用猜"emoji 放哪里""时间写在前面还是后面"。
补充特殊情况的处理方式:
现在,你的 SKILL.md 应该是这样的:
保存文件。
打开 Claude Code,输入:
Claude 应该输出:
如果输出不对,不要慌。 下一课我们专门讲调试。
你可能注意到,这个 Skill 没有处理"任务有依赖关系"或"任务分配给不同的人"。32
这是故意的。
渐进式披露原则:只给 Claude 它当前需要的信息,不要一次性塞太多。3
第一个版本只做最核心的功能:提取、分类、排序。等你用了几天,发现确实需要"任务分配"功能,再加进去。
好处:
等第一个版本跑通了,再迭代。这是所有好的 Skill 的开发方式。3
/skill-name + 输入内容下一课,我们学习如何测试和调试 Skill,让它从"能跑"变成"跑对"。
Claude Code 官方文档:Skills 扩展指南 — https://code.claude.com/docs/en/skills ↩
Claude Skills 深度解析(First Principles 视角) — https://leehanchung.github.io/blogs/2025/10/26/claude-skills-deep-dive/ ↩ ↩2 ↩3
Anthropic Platform 文档:Agent Skills 概述 — https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview ↩ ↩2 ↩3 ↩4
要求:
看看输出是什么,记录下来。下一课我们会用这个结果练习调试。
记下想法、痛点、没懂的地方。只写进这门课的附录,正课文件不动。
# 创建 personal skills 目录(如果还没有)
mkdir -p ~/.claude/skills
# 创建 Skill 目录
mkdir ~/.claude/skills/task-organizer
# 创建 SKILL.md 文件
touch ~/.claude/skills/task-organizer/SKILL.md
~/.claude/skills/└── task-organizer/ └── SKILL.md---
name: task-organizer
description: 整理待办事项,按优先级和截止日期分组。用于处理混乱的任务列表、会议行动项或项目待办
---
# 任务整理器
从混乱的文本中提取任务,按优先级和截止日期整理成结构化清单。
## 输入格式
接受以下任何格式的任务列表:
- 纯文本列表(每行一个任务)
- Markdown checklist(`- [ ] 任务内容`)
- 带时间标记的消息("明天之前要完成 X")
- 会议记录中的行动项
**示例输入:**
## 处理步骤
按顺序执行以下步骤:
1. **提取任务**
- 每行或每个列表项是一个任务
- 移除勾选框标记(`- [ ]` 或 `- [x]`)
- 保留任务的核心描述
2. **识别时间信息**
- 查找日期关键词:今天、明天、本周、周X、具体日期(2024-01-15)
- 查找时间表达:XX 之前、截止 XX、XX 前完成
- 如果没有明确时间,标记为"无明确截止"
3. **判断优先级**
- 包含"紧急""ASAP""尽快""立即"→ 紧急
- 包含"重要""优先""关键"→ 重要
- 今天或明天到期 → 紧急
- 本周内到期 → 重要
- 其他 → 普通
4. **排序**
- 同一优先级内,按截止日期排序,最近的在前
- 无明确截止日期的排在该优先级最后
## 输出格式
按以下结构输出,使用 emoji 作为优先级标识:
### 🔴 紧急(今天或明天)
- [任务内容] - 截止时间
### 🟡 重要(本周)
- [任务内容] - 截止时间
### ⚪ 普通
- [任务内容] - 截止时间(如果有)
**示例输出:**
### 🔴 紧急
- 修复登录 bug - 明天
- 完成季度报告 - 今天
### 🟡 重要
- 审查 PR #234 - 周五
- 准备演示 demo - 周五
### ⚪ 普通
- 更新文档 - 无明确截止
## 注意事项
- 如果输入是空的或没有识别到任何任务,输出"未识别到有效任务"
- 如果所有任务都没有时间信息,全部归为"普通"类别
- 如果任务描述太长(超过 100 字),保留前 80 字 + "..."
- 已完成的任务(标记为 `[x]`)忽略不处理
---
name: task-organizer
description: 整理待办事项,按优先级和截止日期分组。用于处理混乱的任务列表、会议行动项或项目待办
---
# 任务整理器
从混乱的文本中提取任务,按优先级和截止日期整理成结构化清单。
## 输入格式
接受以下任何格式的任务列表:
- 纯文本列表(每行一个任务)
- Markdown checklist(`- [ ] 任务内容`)
- 带时间标记的消息("明天之前要完成 X")
- 会议记录中的行动项
## 处理步骤
按顺序执行以下步骤:
1. **提取任务**
- 每行或每个列表项是一个任务
- 移除勾选框标记
- 保留任务的核心描述
2. **识别时间信息**
- 查找日期关键词:今天、明天、本周、周X、具体日期
- 查找时间表达:XX 之前、截止 XX
- 如果没有明确时间,标记为"无明确截止"
3. **判断优先级**
- 包含"紧急""ASAP""尽快"或今天/明天到期 → 紧急
- 包含"重要""优先"或本周内到期 → 重要
- 其他 → 普通
4. **排序**
- 同一优先级内,按截止日期排序,最近的在前
## 输出格式
### 🔴 紧急(今天或明天)
- [任务内容] - 截止时间
### 🟡 重要(本周)
- [任务内容] - 截止时间
### ⚪ 普通
- [任务内容] - 截止时间(如果有)
## 注意事项
- 如果输入是空的,输出"未识别到有效任务"
- 如果所有任务都没有时间信息,全部归为"普通"
- 任务描述太长(超过 100 字)时,保留前 80 字 + "..."
- 已完成的任务(`[x]`)忽略不处理
/task-organizer
完成季度报告审查 PR #234,周五之前明天修复登录 bug更新文档紧急:客户反馈的支付问题### 🔴 紧急- 修复登录 bug - 明天- 客户反馈的支付问题 - 无明确截止
### 🟡 重要- 审查 PR #234 - 周五
### ⚪ 普通- 完成季度报告 - 无明确截止- 更新文档 - 无明确截止