# skill-creator > 创建有效技能的指南。当用户想要创建新技能(或更新现有技能)以通过专业知识、工作流程或工具集成扩展Claude功能时,应使用此技能。 - Author: purpose - Repository: purpose168/awesome-llm-skills - Version: 20260103133008 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-07 - Source: https://github.com/purpose168/awesome-llm-skills - Web: https://mule.run/skillshub/@@purpose168/awesome-llm-skills~skill-creator:20260103133008 --- --- name: skill-creator description: 创建有效技能的指南。当用户想要创建新技能(或更新现有技能)以通过专业知识、工作流程或工具集成扩展Claude功能时,应使用此技能。 license: 完整条款见 LICENSE.txt --- # 技能创建器 此技能提供创建有效技能的指导。 ## 关于技能 技能是模块化、自包含的软件包,通过提供专业知识、工作流程和工具来扩展Claude的功能。可以将它们视为特定领域或任务的"入职指南"——它们将Claude从通用代理转变为具备程序化知识的专业代理,而没有任何模型能够完全拥有这些知识。 ### 技能提供的内容 1. 专业化工作流程 - 特定领域的多步骤程序 2. 工具集成 - 使用特定文件格式或API的说明 3. 领域专业知识 - 公司特定知识、模式、业务逻辑 4. 打包资源 - 用于复杂和重复任务的脚本、参考资料和资产 ### 技能的解剖结构 每个技能由必需的SKILL.md文件和可选的打包资源组成: ``` skill-name/ ├── SKILL.md (必需) │ ├── YAML前置元数据 (必需) │ │ ├── name: (必需) │ │ └── description: (必需) │ └── Markdown说明 (必需) └── 打包资源 (可选) ├── scripts/ - 可执行代码 (Python/Bash等) ├── references/ - 意在根据需要加载到上下文中的文档 └── assets/ - 输出中使用的文件 (模板、图标、字体等) ``` #### SKILL.md (必需) **元数据质量**:YAML前置元数据中的`name`和`description`决定Claude何时使用该技能。要具体说明技能的功能以及何时使用它。使用第三人称(例如,"此技能应在...时使用",而不是"在...时使用此技能")。 #### 打包资源 (可选) ##### 脚本 (`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确定需要时加载 - **最佳实践**:如果文件很大(>10k字),请在SKILL.md中包含grep搜索模式 - **避免重复**:信息应存在于SKILL.md或参考资料文件中,而不是两者中。对于详细信息,首选参考资料文件,除非它确实是技能的核心——这使SKILL.md保持精简,同时使信息可发现而不占用上下文窗口。在SKILL.md中仅保留必要的程序说明和工作流程指导;将详细的参考资料、模式和示例移至参考资料文件。 ##### 资产 (`assets/`) 不意在加载到上下文中的文件,而是在Claude生成的输出中使用。 - **何时包含**:当技能需要在最终输出中使用的文件时 - **示例**:用于品牌资产的`assets/logo.png`、用于PowerPoint模板的`assets/slides.pptx`、用于HTML/React样板代码的`assets/frontend-template/`、用于排版的`assets/font.ttf` - **用例**:模板、图像、图标、样板代码、字体、被复制或修改的示例文档 - **好处**:将输出资源与文档分离,使Claude能够在不将文件加载到上下文的情况下使用它们 ### 渐进式披露设计原则 技能使用三级加载系统来高效管理上下文: 1. **元数据(name + description)** - 始终在上下文中(~100字) 2. **SKILL.md正文** - 当技能触发时(<5k字) 3. **打包资源** - 根据Claude需要(无限制*) *无限制是因为脚本可以在不读取到上下文窗口的情况下执行。 ## 技能创建过程 要创建技能,请按顺序遵循"技能创建过程",仅在有明显理由认为不适用时跳过步骤。 ### 步骤1:通过具体示例理解技能 仅在技能的使用模式已经清楚理解时跳过此步骤。即使在使用现有技能时,它仍然很有价值。 要创建有效的技能,清楚地了解技能如何使用的具体示例。这种理解可以来自直接的用户示例或通过用户反馈验证的生成示例。 例如,在构建image-editor技能时,相关问题包括: - "image-editor技能应该支持什么功能?编辑、旋转,还是其他?" - "您能给出一些如何使用此技能的示例吗?" - "我可以想象用户会要求诸如'从此图像中去除红眼'或'旋转此图像'之类的事情。您还能想象此技能的其他使用方式吗?" - "用户会说什么来触发此技能?" 为了避免让用户不知所措,避免在单条消息中问太多问题。从最重要的问题开始,根据需要跟进以提高效果。 当清楚了解技能应支持的功能时,结束此步骤。 ### 步骤2:规划可重用的技能内容 要将具体示例转化为有效的技能,通过以下方式分析每个示例: 1. 考虑如何从头开始执行该示例 2. 识别在重复执行这些工作流程时,哪些脚本、参考资料和资产会有帮助 示例:在构建`pdf-editor`技能以处理诸如"帮我旋转此PDF"之类的查询时,分析显示: 1. 旋转PDF每次都需要重写相同的代码 2. 在技能中存储`scripts/rotate_pdf.py`脚本会有帮助 示例:在设计`frontend-webapp-builder`技能以处理诸如"为我构建一个待办事项应用程序"或"为我构建一个仪表板来跟踪我的步数"之类的查询时,分析显示: 1. 编写前端Web应用程序每次都需要相同的样板HTML/React 2. 在技能中存储包含样板HTML/React项目文件的`assets/hello-world/`模板会有帮助 示例:在构建`big-query`技能以处理诸如"今天有多少用户登录?"之类的查询时,分析显示: 1. 查询BigQuery每次都需要重新发现表模式和关系 2. 在技能中存储记录表模式的`references/schema.md`文件会有帮助 要建立技能的内容,分析每个具体示例以创建要包含的可重用资源列表:脚本、参考资料和资产。 ### 步骤3:初始化技能 此时,是时候实际创建技能了。 仅在正在开发的技能已经存在,并且需要迭代或打包时跳过此步骤。在这种情况下,继续下一步。 从头开始创建新技能时,始终运行`init_skill.py`脚本。该脚本方便地生成一个新的模板技能目录,自动包含技能所需的一切,使技能创建过程更加高效和可靠。 用法: ```bash scripts/init_skill.py --path ``` 该脚本: - 在指定路径创建技能目录 - 生成具有适当前置元数据和TODO占位符的SKILL.md模板 - 创建示例资源目录:`scripts/`、`references/`和`assets/` - 在每个目录中添加可以自定义或删除的示例文件 初始化后,根据需要自定义或删除生成的SKILL.md和示例文件。 ### 步骤4:编辑技能 在编辑(新生成的或现有的)技能时,请记住该技能是为另一个Claude实例创建的。专注于包含对Claude有益且不明显的信息。考虑哪些程序知识、领域特定细节或可重用资产将帮助另一个Claude实例更有效地执行这些任务。 #### 从可重用的技能内容开始 要开始实施,从上面确定的可重用资源开始:`scripts/`、`references/`和`assets/`文件。请注意,此步骤可能需要用户输入。例如,在实施`brand-guidelines`技能时,用户可能需要提供要存储在`assets/`中的品牌资产或模板,或要存储在`references/`中的文档。 此外,删除技能不需要的任何示例文件和目录。初始化脚本在`scripts/`、`references/`和`assets/`中创建示例文件以演示结构,但大多数技能不需要所有这些文件。 #### 更新SKILL.md **写作风格**:使用**命令式/不定式形式**(动词优先的说明)编写整个技能,而不是第二人称。使用客观、指导性的语言(例如,"要完成X,执行Y",而不是"你应该做X"或"如果你需要做X")。这为AI消费保持了一致性和清晰度。 要完成SKILL.md,回答以下问题: 1. 技能的目的是什么,用几句话说明? 2. 何时应该使用该技能? 3. 在实践中,Claude应该如何使用该技能?应该引用上面开发的所有可重用技能内容,以便Claude知道如何使用它们。 ### 步骤5:打包技能 一旦技能准备就绪,应该将其打包成可分发的zip文件,与用户共享。打包过程会自动首先验证技能,以确保它满足所有要求: ```bash scripts/package_skill.py ``` 可选的输出目录规范: ```bash scripts/package_skill.py ./dist ``` 打包脚本将: 1. **验证**技能,自动检查: - YAML前置元数据格式和必需字段 - 技能命名约定和目录结构 - 描述完整性和质量 - 文件组织和资源引用 2. 如果验证通过,**打包**技能,创建一个以技能命名的zip文件(例如,`my-skill.zip`),其中包含所有文件并保持适当的目录结构以供分发。 如果验证失败,脚本将报告错误并退出而不创建包。修复任何验证错误并再次运行打包命令。 ### 步骤6:迭代 在测试技能后,用户可能会请求改进。这通常在使用技能后立即发生,对技能的表现有新鲜的上下文。 **迭代工作流程:** 1. 在实际任务上使用技能 2. 注意困难或低效之处 3. 识别应该如何更新SKILL.md或打包资源 4. 实施更改并再次测试