skill-creator by closedloop-ai/claude-plugins
npx skills add https://github.com/closedloop-ai/claude-plugins --skill skill-creator此技能为创建高效技能提供指导。
技能是模块化、自包含的包,通过提供专业知识、工作流程和工具来扩展 Claude 的能力。可以将它们视为特定领域或任务的“入职指南”——它们将 Claude 从一个通用代理转变为配备程序性知识的专业代理,而这些知识是任何模型都无法完全掌握的。
每个技能都包含一个必需的 SKILL.md 文件和可选的捆绑资源:
skill-name/
├── SKILL.md (必需)
│ ├── YAML 前置元数据 (必需)
│ │ ├── name: (必需)
│ │ └── description: (必需)
│ └── Markdown 说明 (必需)
└── 捆绑资源 (可选)
├── scripts/ - 可执行代码 (Python/Bash/等)
├── references/ - 旨在根据需要加载到上下文中的文档
└── assets/ - 输出中使用的文件 (模板、图标、字体等)
元数据质量: YAML 前置元数据中的 name 和 description 决定了 Claude 何时会使用该技能。
编写有效的描述 (最多 1024 个字符):
一个好的描述需要回答两个问题:
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
优秀示例:
description: 从 PDF 文件中提取文本和表格,填写表单,合并文档。在处理 PDF 文件或用户提到 PDF、表单或文档提取时使用。
不佳示例 (避免):
description: 帮助处理文档
最佳实践:
必需的前置元数据字段:
---
name: skill-name # 小写,仅使用连字符,最多 64 个字符
description: 此技能应在 [触发条件] 时使用。它提供 [能力]。
---
可选的前置元数据字段:
---
name: skill-name
description: 此技能应在 [触发条件] 时使用。
# 工具限制 (两种语法选项)
allowed-tools: Read, Grep, Glob # 逗号分隔的字符串
allowed-tools: # YAML 列表 (更清晰)
- Read
- Grep
- Glob
# 执行上下文
context: fork # 在分叉的子代理上下文中运行
agent: my-agent # 使用特定代理的配置
# 前置元数据中的钩子
hooks:
PreToolUse:
- matcher: "Bash(*)"
hooks:
- type: command
command: "./validate.sh"
PostToolUse:
- matcher: "Write(*.py)"
hooks:
- type: command
command: "./format.sh"
once: true # 每个会话仅执行一次
Stop:
- hooks:
- type: command
command: "./cleanup.sh"
---
| 字段 | 必需 | 描述 |
|---|---|---|
name | 是 | 小写,仅使用连字符,最多 64 个字符 |
description | 是 | 最多 1024 个字符,必须包含触发条件 |
allowed-tools | 否 | 逗号分隔的字符串或 YAML 列表;应用于技能调用的工具 |
context | 否 | fork 在分叉的子代理上下文中运行技能 |
agent | 否 | 使用特定代理的系统提示、工具和模型 |
hooks | 否 | 此技能的 PreToolUse、PostToolUse、Stop 钩子 |
注意: 技能在修改后会自动热重载——无需重启。
scripts/)用于需要确定性可靠性或重复重写的任务的可执行代码 (Python/Bash/等)。
scripts/rotate_pdf.pyreferences/)旨在根据需要加载到上下文中以告知 Claude 流程和思考的文档和参考资料。
references/finance.md,用于公司 NDA 模板的 references/mnda.md,用于公司政策的 references/policies.md,用于 API 规范的 references/api_docs.mdassets/)不打算加载到上下文中,而是在 Claude 生成的输出中使用的文件。
assets/logo.png,用于 PowerPoint 模板的 assets/slides.pptx,用于 HTML/React 样板代码的 assets/frontend-template/,用于字体的 assets/font.ttf技能使用三级加载系统来高效管理上下文:
*无限制是因为脚本无需读入上下文窗口即可执行。
500 行准则: 保持 SKILL.md 在 500 行以内。如果内容超过此限制,将详细的参考资料拆分到 references/ 文件中。这可以保持上下文集中,避免预先消耗令牌——Claude 仅在需要时加载额外的文件。
要创建技能,请按顺序遵循“技能创建流程”,只有在有明确理由不适用时才跳过某些步骤。
仅当技能的使用模式已明确理解时才跳过此步骤。即使在使用现有技能时,此步骤仍然有价值。
要创建有效的技能,请清楚地理解技能将如何使用的具体示例。这种理解可以来自直接的用户示例,也可以来自经过用户反馈验证的生成示例。
例如,在构建图像编辑器技能时,相关的问题包括:
为避免让用户不知所措,避免在单条消息中提出太多问题。从最重要的问题开始,并根据需要进行跟进以获得更好的效果。
当对技能应支持的功能有清晰的认识时,结束此步骤。
要将具体示例转化为有效的技能,请通过以下方式分析每个示例:
示例:在构建 pdf-editor 技能来处理诸如“帮我旋转这个 PDF”之类的查询时,分析显示:
scripts/rotate_pdf.py 脚本会很有帮助示例:在设计 frontend-webapp-builder 技能来处理诸如“为我构建一个待办事项应用”或“为我构建一个跟踪步数的仪表板”之类的查询时,分析显示:
assets/hello-world/ 模板会很有帮助示例:在构建 big-query 技能来处理诸如“今天有多少用户登录了?”之类的查询时,分析显示:
references/schema.md 文件会很有帮助要确定技能的内容,请分析每个具体示例,以创建要包含的可重用资源列表:脚本、参考资料和资产。
此时,是时候实际创建技能了。
仅当正在开发的技能已存在且需要迭代时才跳过此步骤。在这种情况下,请继续下一步。
从头开始创建新技能时,请始终运行 init_skill.py 脚本。该脚本方便地生成一个新的模板技能目录,自动包含技能所需的一切,使技能创建过程更加高效和可靠。
用法:
scripts/init_skill.py <skill-name> --path <output-directory>
该脚本:
scripts/、references/ 和 assets/初始化后,根据需要自定义或删除生成的 SKILL.md 和示例文件。
在编辑(新生成的或现有的)技能时,请记住,技能是为另一个 Claude 实例使用而创建的。专注于包含对 Claude 有益且非显而易见的信息。考虑哪些程序性知识、领域特定细节或可重用资产将帮助另一个 Claude 实例更有效地执行这些任务。
要开始实施,请从上面确定的可重用资源开始:scripts/、references/ 和 assets/ 文件。请注意,此步骤可能需要用户输入。例如,在实施 brand-guidelines 技能时,用户可能需要提供要存储在 assets/ 中的品牌资产或模板,或要存储在 references/ 中的文档。
此外,删除技能不需要的任何示例文件和目录。初始化脚本在 scripts/、references/ 和 assets/ 中创建示例文件以演示结构,但大多数技能不需要所有这些文件。
写作风格: 使用命令式/不定式形式 (动词优先的说明) 编写整个技能,而不是第二人称。使用客观、指导性的语言 (例如,“要完成 X,请执行 Y”而不是“你应该做 X”或“如果你需要做 X”)。这为 AI 使用保持了一致性和清晰度。
要完成 SKILL.md,请回答以下问题:
测试技能后,用户可能会请求改进。这通常发生在使用技能后不久,用户对技能的表现有新鲜的上下文。
迭代工作流程:
每周安装数
1
仓库
GitHub 星标数
71
首次出现
今天
安全审计
安装于
windsurf1
amp1
cline1
openclaw1
opencode1
cursor1
This skill provides guidance for creating effective skills.
Skills are modular, self-contained packages that extend Claude's capabilities by providing specialized knowledge, workflows, and tools. Think of them as "onboarding guides" for specific domains or tasks—they transform Claude from a general-purpose agent into a specialized agent equipped with procedural knowledge that no model can fully possess.
Every skill consists of a required SKILL.md file and optional bundled resources:
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.)
Metadata Quality: The name and description in YAML frontmatter determine when Claude will use the skill.
Writing Effective Descriptions (max 1024 chars):
A good description answers two questions:
Strong example:
description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
Weak example (avoid):
description: Helps with documents
Best practices:
Required Frontmatter Fields:
---
name: skill-name # Lowercase, hyphens only, max 64 chars
description: This skill should be used when [triggers]. It provides [capabilities].
---
Optional Frontmatter Fields:
---
name: skill-name
description: This skill should be used when [triggers].
# Tool restrictions (two syntax options)
allowed-tools: Read, Grep, Glob # Comma-separated string
allowed-tools: # YAML list (cleaner)
- Read
- Grep
- Glob
# Execution context
context: fork # Run in forked sub-agent context
agent: my-agent # Use specific agent's config
# Hooks in frontmatter
hooks:
PreToolUse:
- matcher: "Bash(*)"
hooks:
- type: command
command: "./validate.sh"
PostToolUse:
- matcher: "Write(*.py)"
hooks:
- type: command
command: "./format.sh"
once: true # Execute only once per session
Stop:
- hooks:
- type: command
command: "./cleanup.sh"
---
| Field | Required | Description |
|---|---|---|
name | Yes | Lowercase, hyphens only, max 64 chars |
description | Yes | Max 1024 chars, must include trigger conditions |
allowed-tools | No | Comma-separated string or YAML list; applied to tools invoked by skill |
context | No | fork runs skill in forked sub-agent context |
agent |
Note: Skills automatically hot-reload when modified—no restart required.
scripts/)Executable code (Python/Bash/etc.) for tasks that require deterministic reliability or are repeatedly rewritten.
scripts/rotate_pdf.py for PDF rotation tasksreferences/)Documentation and reference material intended to be loaded as needed into context to inform Claude's process and thinking.
references/finance.md for financial schemas, references/mnda.md for company NDA template, references/policies.md for company policies, references/api_docs.md for API specificationsassets/)Files not intended to be loaded into context, but rather used within the output Claude produces.
assets/logo.png for brand assets, assets/slides.pptx for PowerPoint templates, assets/frontend-template/ for HTML/React boilerplate, assets/font.ttf for typographySkills use a three-level loading system to manage context efficiently:
*Unlimited because scripts can be executed without reading into context window.
The 500-line guideline: Keep SKILL.md under 500 lines. If content exceeds this, split detailed reference material into references/ files. This keeps context focused and avoids consuming tokens upfront—Claude loads additional files only when needed.
To create a skill, follow the "Skill Creation Process" in order, skipping steps only if there is a clear reason why they are not applicable.
Skip this step only when the skill's usage patterns are already clearly understood. It remains valuable even when working with an existing skill.
To create an effective skill, clearly understand concrete examples of how the skill will be used. This understanding can come from either direct user examples or generated examples that are validated with user feedback.
For example, when building an image-editor skill, relevant questions include:
To avoid overwhelming users, avoid asking too many questions in a single message. Start with the most important questions and follow up as needed for better effectiveness.
Conclude this step when there is a clear sense of the functionality the skill should support.
To turn concrete examples into an effective skill, analyze each example by:
Example: When building a pdf-editor skill to handle queries like "Help me rotate this PDF," the analysis shows:
scripts/rotate_pdf.py script would be helpful to store in the skillExample: When designing a frontend-webapp-builder skill for queries like "Build me a todo app" or "Build me a dashboard to track my steps," the analysis shows:
assets/hello-world/ template containing the boilerplate HTML/React project files would be helpful to store in the skillExample: When building a big-query skill to handle queries like "How many users have logged in today?" the analysis shows:
references/schema.md file documenting the table schemas would be helpful to store in the skillTo establish the skill's contents, analyze each concrete example to create a list of the reusable resources to include: scripts, references, and assets.
At this point, it is time to actually create the skill.
Skip this step only if the skill being developed already exists and iteration is needed. In this case, continue to the next step.
When creating a new skill from scratch, always run the init_skill.py script. The script conveniently generates a new template skill directory that automatically includes everything a skill requires, making the skill creation process much more efficient and reliable.
Usage:
scripts/init_skill.py <skill-name> --path <output-directory>
The script:
scripts/, references/, and assets/After initialization, customize or remove the generated SKILL.md and example files as needed.
When editing the (newly-generated or existing) skill, remember that the skill is being created for another instance of Claude to use. Focus on including information that would be beneficial and non-obvious to Claude. Consider what procedural knowledge, domain-specific details, or reusable assets would help another Claude instance execute these tasks more effectively.
To begin implementation, start with the reusable resources identified above: scripts/, references/, and assets/ files. Note that this step may require user input. For example, when implementing a brand-guidelines skill, the user may need to provide brand assets or templates to store in assets/, or documentation to store in references/.
Also, delete any example files and directories not needed for the skill. The initialization script creates example files in scripts/, references/, and assets/ to demonstrate structure, but most skills won't need all of them.
Writing Style: Write the entire skill using imperative/infinitive form (verb-first instructions), not second person. Use objective, instructional language (e.g., "To accomplish X, do Y" rather than "You should do X" or "If you need to do X"). This maintains consistency and clarity for AI consumption.
To complete SKILL.md, answer the following questions:
After testing the skill, users may request improvements. Often this happens right after using the skill, with fresh context of how the skill performed.
Iteration workflow:
Weekly Installs
1
Repository
GitHub Stars
71
First Seen
Today
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
windsurf1
amp1
cline1
openclaw1
opencode1
cursor1
agent-browser 浏览器自动化工具 - Vercel Labs 命令行网页操作与测试
150,000 周安装
| No |
| Use specific agent's system prompt, tools, and model |
hooks | No | PreToolUse, PostToolUse, Stop hooks for this skill |