用途
Skill Creator 是一个指导用户创建有效 Claude 技能的技能。当用户想要创建新技能(或更新已有技能)以扩展 Claude 的能力时使用。技能是模块化、自包含的包,通过提供专门的知识、工作流和工具来扩展 Claude 的能力,可视为特定领域或任务的“入门指南”,把 Claude 从通用智能体转变为配备程序性知识的专用智能体。
技能能提供什么
- 专门的工作流:针对特定领域的多步骤流程
- 工具集成:处理特定文件格式或 API 的说明
- 领域专业知识:公司特定知识、模式、业务逻辑
- 捆绑资源:用于复杂和重复任务的脚本、参考资料和资产
核心原则
简洁是关键:上下文窗口是公共资源,技能与系统提示、对话历史、其他技能元数据及用户请求共享它。默认假设 Claude 已经很聪明,只添加 Claude 尚不具备的上下文。对每条信息追问“Claude 真的需要这个解释吗”“这段文字值得它的 token 成本吗”。优先使用简洁示例而非冗长解释。
设置适当的自由度:根据任务的脆弱性和可变性匹配具体程度。高自由度(基于文本的指令)适用于多种方法均有效、决策依赖上下文或启发式引导的情况;中自由度(伪代码或带参数的脚本)适用于存在首选模式、允许一定变化或配置影响行为的情况;低自由度(特定脚本、少量参数)适用于操作脆弱易错、一致性至关重要或必须遵循特定顺序的情况。
技能的结构
每个技能由必需的 SKILL.md 文件和可选的捆绑资源组成:
skill-name/
├── SKILL.md (required)
│ ├── YAML frontmatter metadata (required)
│ │ ├── name: (required)
│ │ ├── description: (required)
│ │ └── compatibility: (optional, rarely needed)
│ └── 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(必需):包含 frontmatter(YAML),其中有 name 和 description 字段(必需),以及 license、metadata、compatibility 等可选字段。只有 name 和 description 会被 Claude 读取以判断技能何时触发,因此要清晰全面地说明技能是什么、何时使用。compatibility 字段用于注明环境要求,但大多数技能不需要。正文(Markdown)是使用技能的说明和指导,仅在技能触发后加载。
捆绑资源(可选):
- scripts/:可执行代码(Python/Bash 等),用于需要确定性可靠性或反复重写的任务。例如 scripts/rotate_pdf.py 用于 PDF 旋转。优点是 token 高效、确定性、可无需加载到上下文即可执行。
- references/:按需加载到上下文以指导 Claude 过程的文档和参考资料。例如财务模式、公司 NDA 模板、公司政策、API 规范。适用于数据库模式、API 文档、领域知识、公司政策、详细工作流指南。最佳实践:若文件较大(超过 1 万词),在 SKILL.md 中包含 grep 搜索模式。避免重复:信息应只存在于 SKILL.md 或 references 文件之一。
- assets/:不加载到上下文,而是在 Claude 产生的输出中使用的文件。例如品牌资产、PowerPoint 模板、HTML/React 样板、字体。适用于模板、图像、图标、样板代码、字体、被复制或修改的示例文档。
技能中不应包含的内容
技能应只包含直接支持其功能的必要文件。不要创建无关文档或辅助文件,包括 README.md、INSTALLATION_GUIDE.md、QUICK_REFERENCE.md、CHANGELOG.md 等。技能应只包含 AI 智能体完成手头工作所需的信息,不应包含关于创建过程的辅助上下文、设置和测试流程、面向用户的文档等。
渐进式披露设计原则
技能使用三级加载系统高效管理上下文:
- 元数据(name + description)——始终在上下文中(约 100 词)
- SKILL.md 正文——技能触发时加载(少于 5000 词)
- 捆绑资源——按 Claude 需要加载(无限,因为脚本可执行而无需读入上下文窗口)
渐进式披露模式:保持 SKILL.md 正文精简,控制在 500 行以内以减少上下文膨胀。接近此限制时将内容拆分到单独文件。拆分内容时,务必从 SKILL.md 引用它们并清楚说明何时读取。
- 模式 1:带参考的高层指南。SKILL.md 中保留快速开始和高级功能链接,Claude 仅在需要时加载 FORMS.md、REFERENCE.md 或 EXAMPLES.md。
- 模式 2:按领域组织。对于多领域技能,按领域组织内容以避免加载无关上下文,如 bigquery-skill 下按 finance.md、sales.md、product.md、marketing.md 组织。
- 模式 3:条件细节。展示基础内容,链接到高级内容,如 DOCX 处理中简单编辑直接修改 XML,跟踪更改参见 REDLINING.md,OOXML 细节参见 OOXML.md。
重要准则:避免深层嵌套引用,保持引用距 SKILL.md 一层;对超过 100 行的较长参考文件,在顶部包含目录。
技能创建流程
- 用具体示例理解技能:明确技能将如何被使用的具体示例,可来自用户示例或经用户反馈验证的生成示例。避免在单条消息中问太多问题。
- 规划可复用技能内容:分析每个示例,考虑如何从头执行,识别重复执行时哪些脚本、参考资料和资产会有帮助。
- 初始化技能:从头创建新技能时,始终运行 init_skill.py 脚本。用法:
python3 plugins/dev-tools/skills/skill-creator/scripts/init_skill.py <skill-name> --path plugins/<category>/skills/
该脚本在指定路径创建技能目录,生成带正确 frontmatter 和 TODO 占位符的 SKILL.md 模板,创建示例资源目录 scripts/、references/、assets/,并在每个目录中添加可自定义或删除的示例文件。
- 编辑技能:技能是为另一个 Claude 实例使用而创建的,应包含对 Claude 有益且非显而易见的信息。
技能必须自包含:其他安装你技能的用户不会有你的 ~/.claude/rules/、CLAUDE.md、MCP 服务器或 Vault。技能所需的一切都必须在技能内部。不要依赖个人规则文件、项目/全局 CLAUDE.md、特定 MCP 服务器、settings.local.json 权限、环境特定路径或工具;而应把指导放入 SKILL.md 或 references/,直接在技能中包含相关上下文,使 MCP 使用可选或记录所需内容,记录技能需要的权限,使用检测逻辑或记录先决条件。测试:全新安装 Claude Code 的人能否使用此技能?
学习经过验证的设计模式:多步骤流程参见 references/workflows.md;特定输出格式或质量标准参见 references/output-patterns.md。
优先使用脚本而非 Bash 链:如果技能步骤涉及从多个来源收集数据、扫描文件或批量操作,应指示 Claude 编写并运行脚本,而非列出单个 bash 命令。每个 bash 命令需要单独的用户批准。经验法则:如果一个逻辑操作需要 3 个以上 bash 命令,就应写成脚本。脚本保存到项目的 .claude/scripts/,而非 /tmp。
从可复用技能内容开始:从上面识别的 scripts/、references/、assets/ 文件开始实现。添加的脚本必须实际运行测试,确保无 bug 且输出符合预期。
- 打包技能:运行 package_skill.py。
- 基于实际使用迭代。
按顺序遵循这些步骤,仅在明确不适用的原因时才跳过。