SuperAPI AI 工具集

skill-creator

通用与其它

查看项目

更新于 10-15 10:44

技能介绍

Skill Creator 是一个用于指导创建高效技能的技能,适用于用户希望创建新技能或更新现有技能以扩展 Claude 能力时。

用途

技能是模块化、自包含的包,通过提供专门知识、工作流和工具来扩展 Claude 的能力。可以将其理解为面向特定领域或任务的“入职指南”——将 Claude 从通用代理转变为具备程序性知识的专用代理。技能提供:专门工作流(特定领域的多步骤流程)、工具集成(处理特定文件格式或 API 的指令)、领域专业知识(公司特定知识、模式、业务逻辑)、捆绑资源(用于复杂和重复任务的脚本、参考资料和资产)。

技能结构

每个技能由必需的 SKILL.md 文件和可选的捆绑资源组成:

skill-name/
├── SKILL.md (required)
│   ├── YAML frontmatter metadata (required)
│   │   ├── name: (required)
│   │   └── description: (required)
│   └── Markdown instructions (required)
└── Bundled Resources (optional)
    ├── scripts/          - Executable code (Python/Bash/etc.)
    ├── references/       - Documentation intended to be loaded into context as needed
    └── assets/           - Files used in output (templates, icons, fonts, etc.)

SKILL.md 中的元数据质量很重要:YAML frontmatter 中的 name 和 description 决定 Claude 何时使用该技能。应具体说明技能做什么以及何时使用,并使用第三人称(例如“This skill should be used when...”而非“Use this skill when...”)。

捆绑资源

  • scripts/:用于需要确定性可靠性或会被反复重写的任务。当同一代码被反复重写或需要确定性时包含,例如 scripts/rotate_pdf.py 用于 PDF 旋转任务。优点是 token 高效、确定性强,可能无需加载到上下文中即可执行;但脚本可能仍需被 Claude 读取以进行修补或环境特定调整。
  • references/:旨在按需加载到上下文以指导 Claude 过程的文档和参考资料。当 Claude 在工作时应参考的文档时包含,例如 finance.md 用于财务模式、mnda.md 用于公司 NDA 模板、policies.md 用于公司政策、api_docs.md 用于 API 规格。用例包括数据库模式、API 文档、领域知识、公司政策、详细工作流指南。优点是保持 SKILL.md 精简,仅在 Claude 判断需要时加载。最佳实践:如果文件很大(超过 1 万词),在 SKILL.md 中包含 grep 搜索模式。避免重复:信息应存在于 SKILL.md 或 references 文件中,而非两者。除非对技能真正核心,否则详细参考材料、模式和示例应移到 references 文件。
  • assets/:不打算加载到上下文,而是在 Claude 生成的输出中使用的文件。当技能需要用于最终输出的文件时包含,例如 assets/logo.png 用于品牌资产、assets/slides.pptx 用于 PowerPoint 模板、assets/frontend-template/ 用于 HTML/React 样板、assets/font.ttf 用于排版。用例包括模板、图像、图标、样板代码、字体、被复制或修改的示例文档。优点是将输出资源与文档分离,使 Claude 无需加载即可使用文件。

渐进式披露设计原则

技能使用三级加载系统来高效管理上下文:元数据(name + description)始终在上下文中(约 100 词);SKILL.md 主体在技能触发时加载(少于 5 千词);捆绑资源由 Claude 按需使用(无限制,因为脚本可以执行而无需读入上下文窗口)。

技能创建流程

按照“技能创建流程”依次进行,仅在明确不适用时跳过步骤。

步骤 1:通过具体示例理解技能——仅在技能使用模式已清晰理解时跳过。理解技能将如何被使用的具体示例,可通过直接用户示例或经用户反馈验证的生成示例获得。例如构建图像编辑器技能时的问题:“图像编辑器技能应支持什么功能?编辑、旋转,还有其他吗?”“能否给出一些使用示例?”“我能想象用户会要求‘去除这张图片的红眼’或‘旋转这张图片’,还有其他使用方式吗?”“用户会说什么来触发这个技能?”为避免用户负担过重,避免在单条消息中问太多问题,从最重要的问题开始,根据需要跟进。当对技能应支持的功能有清晰认识时结束此步骤。

步骤 2:规划可复用技能内容——将具体示例转化为有效技能,分析每个示例:考虑如何从头执行该示例;识别在执行这些工作流时反复出现的脚本、参考资料和资产。例如构建 pdf-editor 技能处理“帮我旋转这个 PDF”时:旋转 PDF 每次都需要重写相同代码,scripts/rotate_pdf.py 脚本会有帮助。构建 frontend-webapp-builder 技能处理“给我构建一个待办应用”时:编写前端 webapp 每次都需相同的 HTML/React 样板,assets/hello-world/ 模板会有帮助。构建 big-query 技能处理“今天有多少用户登录?”时:查询 BigQuery 每次都需要重新发现表模式和关系,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”)。完成 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 格式和必需字段、技能命名约定和目录结构、描述完整性和质量、文件组织和资源引用;如果验证通过,打包技能,创建以技能命名的 zip 文件(例如 my-skill.zip),包含所有文件并保持正确的目录结构以供分发;如果验证失败,脚本报告错误并退出而不创建包,修复验证错误后再次运行打包命令。

步骤 6:迭代——测试技能后,用户可能请求改进。迭代工作流:在实际任务中使用技能;注意困难或低效之处;确定应如何更新 SKILL.md 或捆绑资源;实施更改并再次测试。