Skill Creator 提供创建高效技能的指导。所谓技能,是模块化、自包含的包,通过提供专门知识、工作流和工具来扩展 Claude 的能力,可理解为面向特定领域或任务的“上手引导”,把通用型智能体转变为具备过程性知识的专用智能体。技能可提供:面向特定领域的多步骤专业工作流;针对特定文件格式或 API 的工具集成说明;公司特定的知识、模式与业务逻辑等专长;以及用于复杂重复任务的脚本、参考文档和资产等随附资源。
技能结构:每个技能由一个必需的 SKILL.md 文件和可选的随附资源组成。目录结构为 skill-name/,其中 SKILL.md 为必需,包含必需的 YAML frontmatter 元数据(name 和 description 均为必需)以及必需的 Markdown 指令;随附资源可选,包括 scripts/(可执行代码,如 Python/Bash)、references/(按需加载到上下文的文档)和 assets/(用于输出的文件,如模板、图标、字体)。
SKILL.md(必需):YAML frontmatter 中的 name 和 description 决定 Claude 何时使用该技能,应具体说明技能做什么以及何时使用,并使用第三人称(例如“This skill should be used when...”而不是“Use this skill when...”)。
随附资源(可选):
scripts/:用于需要确定性可靠性或会被反复重写的任务的可执行代码(Python/Bash 等)。当同一段代码被反复重写或需要确定性可靠性时纳入,示例为用于 PDF 旋转任务的 scripts/rotate_pdf.py。其优势是节省 token、确定性,且可能无需加载到上下文即可执行;注意 Claude 可能仍需读取脚本以进行修补或环境适配。
references/:旨在按需加载到上下文、用于指导 Claude 过程与思考的文档和参考资料。当 Claude 工作时需要参考的文档适用,示例包括财务模式 references/finance.md、公司 NDA 模板 references/mnda.md、公司政策 references/policies.md、API 规范 references/api_docs.md。用例包括数据库模式、API 文档、领域知识、公司政策、详细工作流指南。优势是保持 SKILL.md 精简,仅在 Claude 判断需要时加载。最佳实践:若文件较大(超过 1 万词),在 SKILL.md 中提供 grep 搜索模式。避免重复:信息应只存在于 SKILL.md 或 references 文件之一,倾向把详细信息放在 references 文件,除非它确实是技能核心,从而保持 SKILL.md 精简并让信息可被发现而不占用上下文窗口;SKILL.md 中只保留必要的流程指令和工作流指导,把详细参考材料、模式和示例移到 references 文件。
assets/:不用于加载到上下文、而在 Claude 产出结果中使用的文件。当技能需要用于最终输出的文件时纳入,示例包括品牌资产 assets/logo.png、PowerPoint 模板 assets/slides.pptx、HTML/React 样板 assets/frontend-template/、排版字体 assets/font.ttf。用例包括模板、图像、图标、样板代码、字体、会被复制或修改的示例文档。优势是把输出资源与文档分离,使 Claude 无需加载即可使用文件。
渐进式披露设计原则:技能采用三级加载系统以高效管理上下文——元数据(name + description)始终在上下文中(约 100 词);SKILL.md 主体在技能触发时加载(少于 5 千词);随附资源由 Claude 按需加载(无限制,因为脚本可执行而无需读入上下文窗口)。
技能创建流程:按“技能创建流程”顺序进行,仅在明确不适用时跳过步骤。
第 1 步:用具体示例理解技能。仅在技能使用模式已清楚理解时跳过。即使处理已有技能该步骤仍有价值。要创建有效技能,需清楚理解其使用方式的具体示例,理解可来自用户直接示例或经用户反馈验证的生成示例。例如构建 image-editor 技能时,相关问题包括:该技能应支持哪些功能(编辑、旋转等)?能否给出一些使用示例?设想用户会说“移除这张图片的红眼”或“旋转这张图片”,还有其他使用方式吗?什么样的用户话语应触发该技能?为避免让用户负担过重,不要在单条消息中问太多问题;从最重要的问题开始,按需追问。当对技能应支持的功能有了清晰认识时结束该步骤。
第 2 步:规划可复用的技能内容。将具体示例转化为有效技能,需分析每个示例:考虑如何从零执行该示例;识别在反复执行这些工作流时哪些脚本、参考文档和资产会有帮助。示例:构建 pdf-editor 技能处理“帮我旋转这个 PDF”时,分析发现旋转 PDF 每次都要重写相同代码,因此把 scripts/rotate_pdf.py 存入技能会有帮助。构建 frontend-webapp-builder 技能处理“给我做个待办应用”或“做个记录步数的仪表盘”时,分析发现编写前端 Web 应用每次都需要相同的 HTML/React 样板,因此把包含样板 HTML/React 项目文件的 assets/hello-world/ 模板存入技能会有帮助。构建 big-query 技能处理“今天有多少用户登录?”时,分析发现查询 BigQuery 每次都要重新发现表模式和关系,因此把记录表模式的 references/schema.md 存入技能会有帮助。为确定技能内容,分析每个具体示例,列出要纳入的可复用资源:scripts、references 和 assets。
第 3 步:初始化技能。此时实际创建技能。仅当要开发的技能已存在且需要迭代或打包时跳过此步,改用下一步。从零创建新技能时,务必运行 init_skill.py 脚本。该脚本会方便地生成新的模板技能目录,自动包含技能所需的一切,使创建过程更高效可靠。用法:scripts/init_skill.py <skill-name> --path <output-directory>。脚本会:在指定路径创建技能目录;生成带有正确 frontmatter 和 TODO 占位符的 SKILL.md 模板;创建示例资源目录 scripts/、references/ 和 assets/;在各目录添加可自定义或删除的示例文件。初始化后,按需自定义或移除生成的 SKILL.md 和示例文件。
第 4 步:编辑技能。编辑新生成或已有的技能时,记住技能是给另一个 Claude 实例使用的,重点包含对 Claude 有益且非显而易见的信息;考虑哪些过程性知识、领域特定细节或可复用资产能帮助另一个 Claude 实例更有效地执行这些任务。从可复用的技能内容开始:先实现上面识别出的可复用资源 scripts/、references/ 和 assets/ 文件。注意此步骤可能需要用户输入,例如实现 brand-guidelines 技能时,用户可能需要提供要存入 assets/ 的品牌资产或模板,或要存入 references/ 的文档。同时删除技能不需要的示例文件和目录;初始化脚本会在 scripts/、references/ 和 assets/ 中创建示例文件以演示结构,但多数技能不会全部需要。
更新 SKILL.md。写作风格:整个技能使用祈使/不定式形式(动词开头的指令),而非第二人称;使用客观、指导性的语言(例如“To accomplish X, do Y”而不是“You should do X”或“If you need to do X”),以保持一致性和便于 AI 阅读。完成 SKILL.md 需回答:该技能的用途是什么,用几句话说明?何时应使用该技能?实践中 Claude 应如何使用该技能?上面开发的所有可复用技能内容都应被引用,以便 Claude 知道如何使用它们。
第 5 步:打包技能。技能就绪后应打包为可分发的 zip 文件以便与用户共享。打包过程会先自动验证技能以确保满足所有要求。命令:scripts/package_skill.py <path/to/skill-folder>,可选指定输出目录:scripts/package_skill.py <path/to/skill-folder> ./dist。打包脚本会:自动验证技能,检查 YAML frontmatter 格式和必填字段、技能命名约定和目录结构、description 的完整性和质量、文件组织与资源引用;验证通过后打包技能,创建以技能命名的 zip 文件(例如 my-skill.zip),包含所有文件并保持正确的目录结构以便分发。若验证失败,脚本会报告错误并退出,不创建包;修复验证错误后再次运行打包命令。
第 6 步:迭代。测试技能后,用户可能要求改进,通常在使用技能后立即发生,此时对技能表现有新鲜上下文。迭代工作流:在真实任务中使用技能;注意遇到的困难或低效之处;确定应如何更新 SKILL.md 或随附资源;实施更改并再次测试。