语音摘要 — 点击播放以跟读:正在朗读的行会保持在顶部附近。
你将学到什么
预计时间:20分钟
完成本课程后,你将能够:
- 使用正确的前置元数据结构从头创建技能
- 测试并验证技能在Claude Code中正确加载
- 解释Claude Code如何将传入请求与可用技能进行匹配
- 描述技能优先级层次结构(企业级、个人级、项目级、插件)
创建你的第一个技能
(4分钟)
本视频将带你从头构建一个技能——一个适用于所有项目的个人PR描述技能。你将看到如何准确构建SKILL. md文件结构、测试它,并理解Claude Code如何发现和匹配技能到你的请求。视频还涵盖了当名称冲突时决定哪个技能优先的层级结构。
关键要点
- 一个技能是**包含SKILL. md文件的目录**,其中包含前置元数据(名称、描述)和下方的指令
- Claude在启动时仅加载技能名称和描述,然后使用语义匹配将传入请求与这些描述进行匹配
- 在Claude将完整技能内容加载到上下文之前,你会收到确认提示
- 名称冲突时的优先级:企业级 → 个人级 → 项目级 → 插件
- 更新技能时编辑其SKILL. md。删除技能时删除其目录。始终重启Claude Code以使更改生效
让我们从头创建一个技能,然后看看Claude Code实际上是如何加载和匹配技能的。
创建技能
我们将构建一个个人技能,教Claude如何以一致的格式编写PR描述。由于这是一个个人技能,它存放在你的主目录中,并适用于所有项目。
首先,在技能文件夹中为你的技能创建一个目录。目录名称应与技能名称匹配:
mkdir -p ~/. claude/skills/pr-description
然后在目录内创建SKILL. md文件。文件由两部分组成,用前置元数据分隔:
--- name: pr-description description: 编写拉取请求描述。在创建PR、编写PR或用户要求总结拉取请求变更时使用。 ---
编写PR描述时:
- 运行git diff main... HEAD查看此分支上的所有变更
- 按照以下格式编写描述:
变更内容
一句话说明此PR的作用。
原因
简要说明为何需要此变更
具体变更
- 列出具体变更的要点
- 将相关变更分组
- 提及任何删除或重命名的文件
名称标识你的技能。描述告诉Claude何时使用它——这是匹配标准。第二组破折号之后的所有内容是技能激活时Claude遵循的指令。
测试你的技能
Claude Code在启动时加载技能,因此在创建后重启会话。你可以通过检查可用技能列表来验证它是否可用。
你应该看到你的技能列在其中。要测试它,在分支上进行一些更改并说类似"为我的变更写一个PR描述"的话。Claude会表示它正在使用PR描述技能,检查你的差异,并按照你的模板编写描述——每次都是相同的格式。
技能匹配的工作原理
当Claude Code启动时,它会扫描四个位置的技能,但仅加载名称和描述——而不是完整内容。这是一个重要的细节。
当你发送请求时,Claude会将你的消息与所有可用技能的描述进行比较。例如,"解释这个函数的作用"会匹配描述为"用可视化图表解释代码"的技能,因为意图重叠。
一旦找到匹配项,Claude会要求你确认加载技能。此确认步骤让你了解Claude正在引入什么上下文。确认后,Claude读取完整的SKILL. md文件并遵循其指令。
技能优先级
如果你克隆的仓库有一个与你的个人技能同名的技能,哪个会胜出?有一个明确的优先级顺序:
- 企业级——管理设置,最高优先级
- 个人级——你的主目录(~/. claude/skills)
- 项目级——仓库内的. claude/skills目录
- 插件级——安装的插件,最低优先级
这允许组织通过企业技能强制执行标准,同时仍允许个人定制。如果你的公司有一个企业级"code-review"技能,而你创建了一个同名的个人"code-review"技能,企业版本优先。
为避免冲突,使用描述性名称。不要只使用"review",而是使用类似"frontend-review"或"backend-review"的名称。
更新和删除技能
要更新技能,编辑其SKILL. md文件。要删除技能,删除其目录。任何更改后重启Claude Code以使更改生效。
课程反思
- 你日常工作中的哪一项任务可以立即转化为技能?描述会是什么样子?
- 优先级层次结构如何影响你团队的技能管理策略?你会更依赖个人级还是项目级技能?
下一步
在下一课中,你将学习高级配置选项,包括元数据字段、使用allowed-tools的工具限制,以及如何通过渐进式披露和多文件组织构建更大的技能。
反馈
随着课程的进展,我们很想知道你如何在工作中使用技能,以及你可能有的任何反馈。在此处分享你的反馈。