用途
Skill Creation 是一个指导用户创建有效 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/)
用于需要确定性可靠性或会被反复重写的任务的可执行代码(Python/Bash 等)。当同一段代码被反复重写或需要确定性可靠性时包含。示例:用于 PDF 旋转任务的 scripts/rotate_pdf.py。优点是节省 token、确定性、可在不加载进上下文的情况下执行。注意:Claude 仍可能需要读取脚本以进行修补或环境特定调整。
References(references/)
旨在按需加载进上下文以指导 Claude 过程和思考的文档与参考资料。当 Claude 在工作中应参考某些文档时包含。示例:references/finance.md 用于财务模式,references/mnda.md 用于公司 NDA 模板,references/policies.md 用于公司政策,references/api_docs.md 用于 API 规范。用例包括数据库模式、API 文档、领域知识、公司政策、详细工作流指南。优点是保持 SKILL.md 精简,仅在 Claude 判断需要时加载。最佳实践:如果文件很大(超过 1 万词),在 SKILL.md 中包含 grep 搜索模式。避免重复:信息应只存在于 SKILL.md 或 references 文件之一,不要两者都有。除非信息对技能真正核心,否则优先放在 references 文件中,这样既保持 SKILL.md 精简,又让信息可被发现而不占用上下文窗口。SKILL.md 中只保留必要的程序性指令和工作流指导,把详细参考资料、模式和示例移到 references 文件。
Assets(assets/)
不打算加载进上下文,而是在 Claude 产生的输出中使用的文件。当技能需要用于最终输出的文件时包含。示例:assets/logo.png 用于品牌资产,assets/slides.pptx 用于 PowerPoint 模板,assets/frontend-template/ 用于 HTML/React 样板,assets/font.ttf 用于排版。用例包括模板、图像、图标、样板代码、字体、会被复制或修改的示例文档。优点是将输出资源与文档分离,使 Claude 无需加载即可使用文件。
隐私与路径引用
关键:面向公开分发的技能不得包含用户特定或公司特定信息:
- 禁止:指向用户目录的绝对路径(/home/username/、/Users/username/、/mnt/c/Users/username/)。
- 禁止:个人用户名、公司名称、部门名称、产品名称。
- 禁止:OneDrive 路径、云存储路径或任何环境特定的绝对路径。
- 禁止:硬编码的技能安装路径,如 ~/.claude/skills/ 或 /Users/username/Workspace/claude-code-skills/。
- 允许:技能包内的相对路径(scripts/example.py、references/guide.md)。
- 允许:标准占位符(~/workspace/project、username、your-company)。
- 最佳实践:使用简单相对路径引用捆绑脚本,如 scripts/script_name.py,Claude 会解析实际位置。
版本管理
关键:技能不应在 SKILL.md 中包含版本历史或版本号:
- 禁止:SKILL.md 中的版本章节(## Version、## Changelog、## Release History)。
- 禁止:SKILL.md 正文内容中的版本号。
- 理由:SKILL.md 应是聚焦功能的无时效内容。
- 对于全局技能:如需跟踪版本,可在 git 历史或外部变更日志中记录。
渐进式披露设计原则
技能使用三级加载系统来高效管理上下文:
- 元数据(name + description)——始终在上下文中(约 100 词)。
- SKILL.md 正文——技能触发时加载(少于 5 千词)。
- 捆绑资源——Claude 按需加载(无限制*)。
*无限制是因为脚本可以在不读入上下文窗口的情况下执行。
技能创建最佳实践
Anthropic 已撰写技能编写最佳实践,在创建或更新技能前应检索:https://docs.claude.com/en/docs/agents-and-tools/agent-skills/best-practices.md
⚠️ 关键:在源位置编辑技能
切勿在 ~/.claude/plugins/cache/ 中编辑技能——那是只读缓存目录。那里的所有更改都会:缓存刷新时丢失、不会同步到源代码控制、需要手动重新合并而白费功夫。
始终确认你在编辑源仓库:
# WRONG - cache location (read-only copy)
~/.claude/plugins/cache/daymade-skills/my-skill/1.0.0/my-skill/SKILL.md
# RIGHT - source repository (global skills)
~/DotFiles/home/.claude/skills/my-skill/SKILL.md
# RIGHT - source repository (local project skills)
/path/to/project/.claude/skills/my-skill/SKILL.md
在任何编辑之前,确认文件路径不包含 /cache/ 或 /plugins/cache/。
快速开始
完整的分步流程见 references/detailed_workflow.md。简要概览:
- 理解——收集技能将如何被使用的具体示例。
- 规划——确定需要哪些脚本、参考资料和资产。
- 初始化——创建技能目录结构(全局技能手动创建,市场技能用 init_skill.py)。
- 编辑——创建可复用资源,并使用祈使句形式编写 SKILL.md。
- 安全审查——运行 security_scan.py 检测机密和个人信息(市场技能)。
- 打包——运行 package_skill.py 进行验证和压缩(仅市场技能)。
- 迭代——根据实际使用进行测试和优化。
参考文件
- references/detailed_workflow.md——完整的技能创建分步流程与示例。
相关资源
- Anthropic Engineering: Equipping Agents
- Claude Support: Creating Skills
- Anthropic Docs: Best Practices