Claude Skills 深度解析:从 skill-creator 看技能创建最佳实践
通过分析 skill-creator 工具学习如何创建有效的 Claude skills。了解 skill 解剖结构、捆绑资源和六步创建流程。
📚 Source Information
ℹ️ This article was automatically imported and translated using Claude AI. Imported on 11/17/2025.
Claude Skills 深度解析:从 skill-creator 看技能创建最佳实践
skill-creator 是 Anthropic 仓库中最重要的示例技能之一。它提供了创建、打包和迭代 Claude skills 的完整框架。本文将剖析其结构、分析其设计原则,并提取可应用于您自己技能开发的最佳实践。
这是一个用于创建其他 skills 的真实、生产就绪的 skill。通过了解其设计,您可以将相同的模式应用于构建自己的专业 skills。
什么是 skill-creator?
skill-creator 是一个元技能(meta-skill)——一个帮助创建其他 skills 的技能。它将 Claude 从通用助手转变为专业的技能开发教练,配备:
- 专业工作流程:6 步技能创建流程
- 工具集成:初始化和打包脚本
- 领域专业知识:技能设计的最佳实践
- 捆绑资源:Python 脚本和验证工具
核心价值主张
无需手动编写 SKILL.md 文件和组织目录,skill-creator 提供了系统化的方法,确保所有技能的一致性、质量和效率。
Skill 的解剖结构
skill-creator 展示了所有设计良好的 skills 应遵循的标准结构:
skill-creator/
├── SKILL.md (required)
│ ├── YAML frontmatter metadata
│ └── Markdown instructions
└── Bundled Resources (optional)
├── scripts/
│ ├── init_skill.py
│ └── package_skill.py
└── LICENSE.txtSKILL.md 是唯一必需的文件。所有捆绑资源都是可选的,但强烈建议复杂技能使用。
SKILL.md 结构
每个技能都以 YAML frontmatter 中的元数据开始:
---
name: skill-creator
description: Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
license: Complete terms in LICENSE.txt
---name 和 description 决定 Claude 何时使用该技能。要具体并使用第三人称语言("This skill should be used when..." 而不是 "Use this skill when...")。
捆绑资源分析
Scripts 目录 (scripts/)
skill-creator 包含两个基本的 Python 脚本,使技能创建高效可靠。
init_skill.py
用途:生成完整的技能模板和正确结构
用法:
scripts/init_skill.py <skill-name> --path <output-directory>功能:
- 在指定路径创建技能目录
- 生成 SKILL.md 模板,包含正确的 frontmatter 和 TODO 占位符
- 创建空的资源目录:
scripts/、references/和assets/ - 添加可自定义或删除的示例文件
主要优势:
- 一致性:每个技能都以相同的结构开始
- 效率:无需手动创建目录或文件模板
- 可靠性:自动遵循 Anthropic 的最佳实践
从头创建新技能时,始终运行 init_skill.py。生成的模板包含技能规范要求的所有内容。
package_skill.py
用途:验证技能并将其打包为可分发 zip 文件
用法:
scripts/package_skill.py <path/to/skill-folder>
# 可选:指定输出目录
scripts/package_skill.py <path/to/skill-folder> ./dist验证检查:
- YAML frontmatter 格式:必需字段(name, description)
- 技能命名约定:正确的目录结构
- 描述质量:完整性和具体性
- 文件组织:正确的资源引用
打包流程:
- 创建以技能命名的 zip 文件(例如
my-skill.zip) - 保持正确的目录结构以进行分发
- 仅当验证通过时才打包
验证失败会阻止打包。脚本会报告必须在分发前修复的具体错误。
何时包含捆绑资源
并非每个技能都需要所有三种资源类型。以下是使用每种资源的时间:
Scripts
当代码被反复重写或需要确定性可靠性时包含。示例:scripts/rotate_pdf.py
优势:令牌高效、确定性强、无需上下文即可执行
References
包含供 Claude 在工作时参考的文档。
示例:API 文档、数据库模式、公司政策、领域知识
Assets
包含用于最终输出的文件(模板、图片、字体)。
示例:Logo.png、演示模板、样板代码、示例文档
最佳实践:信息应存在于 SKILL.md 或 references 文件中,不能同时存在于两者。将详细的参考材料移至 references/ 以保持 SKILL.md 精简,同时使信息可发现。
渐进式披露设计原则
skill-creator 最重要的贡献之一是渐进式披露模式——一个有效管理上下文的三级加载系统:
第 1 级:Metadata(始终在上下文中)
内容:来自 YAML frontmatter 的 name 和 description
大小:~100 个单词
加载时机:始终在 Claude 的上下文窗口中
用途:决定何时触发技能
第 2 级:SKILL.md 主体(触发时)
内容:完整的指令和工作流程
大小:<5k 个单词(推荐)
加载时机:仅当技能被用户查询触发时
用途:提供任务执行的程序性知识
第 3 级:捆绑资源(按需)
内容:Scripts、references、assets
大小:无限制(脚本可以在不读取到上下文的情况下执行)
加载时机:仅当 Claude 确定需要时
用途:提供详细的参考材料而不占用上下文窗口
关键洞察:脚本无需加载到上下文中即可执行。这使得它们在令牌角度上具有无限可扩展性。
6 步技能创建流程
skill-creator 提供了将技能想法转化为生产就绪包的完整工作流程。
第 1 步:通过具体示例理解技能
目的:清楚了解技能在实践中将如何被使用
询问用户的问题:
- "此技能应支持哪些功能?"
- "您能给出此技能如何使用的具体示例吗?"
- "用户说什么应该触发此技能?"
示例:对于图片编辑器技能,询问具体用例,如"去除红眼"或"旋转图片"。
避免在单条消息中问太多问题。从最重要的问题开始,根据需要跟进。
输出:对技能应支持的功能有清晰认识
第 2 步:规划可重用技能内容
目的:识别哪些资源会使重复工作流程更高效
分析过程:
- 考虑如何从零开始执行每个示例
- 识别重复这些工作流程时哪些脚本、references 和 assets 会有帮助
示例:
PDF 编辑器技能:
- 示例查询:
- 可重用资源:
- 原因:没有脚本会反复重写代码
前端构建器技能:
- 示例查询:
- 可重用资源:
- 原因:每次都需相同样板 HTML/React
BigQuery 技能:
- 示例查询:"今天有多少用户登录?"
- 可重用资源:
- 原因:每次都会重新发现表模式和关系
输出:要包含的可重用资源列表(scripts、references、assets)
第 3 步:初始化技能
目的:使用自动化创建技能目录结构
何时跳过:仅当技能已存在且需要迭代或打包时
命令:
scripts/init_skill.py <skill-name> --path <output-directory>脚本创建内容:
- 在指定路径创建技能目录
- 生成 SKILL.md 模板,包含正确的 frontmatter 和 TODO 占位符
- 创建空资源目录:
scripts/、references/和assets/ - 添加可自定义或删除的示例文件
初始化后,根据需要自定义或删除生成的文件。模板提供结构,但应适应您的具体技能。
第 4 步:编辑技能
目的:将模板转化为生产就绪技能
关键心态:为另一个 Claude 实例编写。专注于包含对 Claude 有益且非显而易见的信息。
从捆绑资源开始:
- 实现第 2 步中识别的 scripts、references 和 assets
- 删除技能不需要的示例文件
- 如果资源需要用户内容(例如品牌资产),则获取用户输入
更新 SKILL.md
关键:写作风格
使用指令式/不定式形式(动词优先指令),而不是第二人称:
❌ 错误: ✅ 正确:
这为 AI 消费保持一致性和清晰度。
在 SKILL.md 中回答的问题:
-
目的是什么?(几句话)
- 清晰、简洁地解释技能的作用
-
何时应使用该技能?(触发条件)
- 应激活技能的具体用户查询
- 不应使用它的示例
-
Claude 在实践中应如何使用该技能?(实际使用)
- 引用所有可重用资源(scripts、references、assets)
- 解释工作流程和决策过程
- 包含正确用法的示例
保持 SKILL.md 精简。将详细参考材料移至 references/ 文件。这使得核心指令可发现,而不会让上下文窗口不堪重负。
第 5 步:打包技能
目的:验证并创建可分发 zip 文件
命令:
scripts/package_skill.py <path/to/skill-folder> [output-directory]自动验证检查:
- YAML frontmatter 格式和必需字段(name、description)
- 技能命名约定和目录结构
- 描述完整性和质量
- 文件组织和资源引用
输出(如果验证通过):
- 以技能命名的 zip 文件(例如
my-skill.zip) - 保持正确的目录结构以进行分发
- 准备分发
如果验证失败,脚本会报告具体错误并在不打包的情况下退出。在重试前修复所有错误。
第 6 步:迭代
目的:基于实际使用持续改进
迭代工作流程:
- 使用技能执行真实任务
- 注意困难或低效之处
- 识别应如何更新 SKILL.md 或资源
- 实施更改并再次测试
用户通常在使用技能后立即请求改进,此时他们对技能表现有全新认识。
最佳实践总结
基于分析 skill-creator,以下是有效技能开发的关键原则:
1. 渐进式披露
使用三级加载系统:Metadata → SKILL.md → 捆绑资源。这在提供详细信息时有效管理上下文。
2. 避免重复
信息应存在于SKILL.md或references文件中,不能同时存在于两者。
- 保持 SKILL.md 精简,包含基本程序指令
- 将详细示例、模式和参考材料移至
references/ - 这使得核心工作流程可发现,而不会让上下文窗口臃肿
3. 命令式写作风格
始终使用动词优先指令:
❌ 避免: ✅ 使用:
这为 AI 消费保持一致性和清晰度。
4. 具体示例
创建技能前,始终收集具体示例:
- "向我展示用户会询问的 3 个真实查询"
- "每个示例的成功是什么样子?"
- "什么资源会使重复执行更容易?"
示例将抽象需求转化为可操作技能内容。
5. 测试和迭代
没有任何技能在首次发布时是完美的:
- 立即在真实任务上使用技能
- 注意 Claude 遇到困难的地方
- 根据实际使用更新 SKILL.md 或资源
- 打包并重新分发改进版本
最佳技能通过真实世界测试不断进化。
结论
skill-creator 体现了 Claude 技能开发的最佳实践。通过研究其结构并遵循其 6 步流程,您可以创建以下技能:
- ✅ 系统地扩展 Claude 能力
- ✅ 通过渐进式披露有效管理上下文
- ✅ 为重复任务提供可重用资源
- ✅ 通过验证和迭代保持高质量
- ✅ 将 Claude 从通用转变为专业代理
关键洞察:Skills 是特定领域的入职指南。它们提供任何模型无法完全拥有的程序性知识。
后续步骤
想要创建自己的技能?请遵循以下步骤:
- 克隆 skill-creator 仓库 (github.com/anthropics/skills)
- 运行
./scripts/init_skill.py my-skill --path ./my-skills/ - 遵循本文中概述的 6 步流程
- 使用
./scripts/package_skill.py ./my-skills/my-skill/打包 - 根据实际使用进行测试和迭代
其他资源
- Anthropic Skills Repository: github.com/anthropics/skills
- 创建您的第一个 Skill: /tutorials/creating-first-skill
- Skill 示例库: /development/skill-examples
- 高级 Skill 开发: /development/advanced-skills
ℹ️ 源信息
原始文章: skill-creator SKILL.md
- 来源: Anthropic Skills Repository
- 作者: Anthropic
- 发布日期: 2025-10-16
- 导入日期: 2025-11-17
- 许可证: Complete terms in LICENSE.txt
本文使用 Claude AI 自动处理和翻译,并采用防御性内容安全措施以防止 MDX 语法错误。