skill-creator

初始化新 skill 目录(运行 init_skill.py)、打包 skill(运行 package_skill.py)、或需要了解 skill 结构规范时使用。

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "skill-creator" with this command: npx skills add lyfe2025/lyfes-coding-skills/lyfe2025-lyfes-coding-skills-skill-creator

Skill Creator

本 Skill 提供“如何编写有效 Skill”的方法与流程。

关于 Skill

Skill 是模块化、可复用的“指引包”,通过提供专业知识、workflow、工具与资源,让 Claude 从通用助手变成具备流程化能力的专用助手。

Skill 提供什么

  1. Specialized workflow:面向特定领域的多步流程
  2. Tool integration:针对特定文件格式 / API 的操作指引
  3. Domain expertise:公司/业务特定的知识、schema、业务逻辑
  4. Bundled resources:用于重复性任务的 scripts/references/assets/

核心原则

简洁第一

context window 是公共资源:system prompt、对话历史、其他 Skill metadata、以及用户需求都要共用它。

默认假设:Claude 已经很聪明。 只加入 Claude 现实中“拿不到”的信息。对每一段文字都要自问:

  • “Claude 真的需要这段解释吗?”
  • “这段文字的 token 成本值得吗?”

优先用短小的例子与可执行步骤,避免冗长叙述。

设定合适的自由度(Degrees of Freedom)

根据任务的“脆弱性”和“可变性”决定指令有多具体:

  • 高自由度(纯文本指导):可行方案很多、决策依赖上下文、需要启发式判断时使用
  • 中自由度(伪代码 / 可配置脚本):存在推荐模式、允许有限变体、配置会影响行为时使用
  • 低自由度(明确脚本 + 少量参数):流程易出错、需要强一致性、必须按固定顺序执行时使用

可以把 Claude 想象成“走路”:窄桥两侧是悬崖就需要更强的护栏(低自由度);开阔草地就允许更多路线(高自由度)。

Skill 的组成结构

每个 skill 由必需的 SKILL.md 与可选的资源目录组成:

skill-name/
├── SKILL.md(必需)
│   ├── YAML frontmatter metadata(必需)
│   │   ├── name:(必需)
│   │   └── description:(必需)
│   └── Markdown instructions(必需)
└── Bundled resources(可选)
    ├── scripts/          - 可执行代码(Python/Bash 等)
    ├── references/       - 需要时加载的参考文档
    └── assets/           - 用于输出的文件(模板、图标、字体等)

SKILL.md(必需)

SKILL.md 包含:

  • Frontmatter(YAML):包含 namedescription。Claude 主要依赖它们来判断是否触发 skill,因此务必清晰描述“做什么 + 何时用”。
  • Body(Markdown):skill 的具体指令与资源使用方法。通常只在 skill 被触发后才加载(如果平台支持)。

Bundled resources(可选)

scripts/

用于需要确定性与可重复执行的任务(Python/Bash 等)。

  • 适用场景:同样的代码反复重写,或需要更高确定性
  • 示例scripts/rotate_pdf.py(旋转 PDF)
  • 收益:省 token、可重复、可直接执行(无需全部读入 context)
  • 注意:脚本仍可能需要被阅读以便 patch 或做环境适配
references/

按需加载的参考材料,用来支撑 Claude 的推理与决策。

  • 适用场景:Claude 在执行任务时需要查阅的文档
  • 示例references/schema.md(表结构)、references/api_docs.md(API 说明)、references/policies.md(政策/规范)
  • 收益:让 SKILL.md 保持精简;只在需要时加载
  • 最佳实践:如果文件很大(>10k words),在 SKILL.md 中提供 grep/搜索提示
  • 避免重复:信息要么放在 SKILL.md,要么放在 references/;细节优先放 references/SKILL.md 只保留关键流程与导航
assets/

不需要读入 context、但会被复制/引用到输出中的文件。

  • 适用场景:skill 需要模板、图片、图标、字体、boilerplate 等
  • 示例assets/logo.pngassets/slides.pptxassets/frontend-template/
  • 收益:把“输出用资源”和“说明文档”分离,减少 context 压力

Skill 里不要放什么

Skill 应只包含支撑其功能的必要文件,不要新增无关文档/辅助文件,例如:

  • README.md
  • INSTALLATION_GUIDE.md
  • QUICK_REFERENCE.md
  • CHANGELOG.md
  • 等等

这些“人类文档”会制造噪音与维护成本。Skill 的目标是让 AI agent 能更可靠地完成任务,而不是记录编写过程或面向用户的说明书。

Progressive Disclosure(渐进式加载)

用三层结构控制 context:

  1. Metadata(name + description):始终在 context(~100 words)
  2. SKILL.md body:skill 触发后加载(建议 <5k words)
  3. Bundled resources:需要时再加载(脚本可直接执行,参考文档按需读取)

Progressive Disclosure 的常用模式

尽量把 SKILL.md 控制在必要范围内(建议 <500 行),避免 context 膨胀。接近上限时,把细节拆分到独立文件,并在 SKILL.md 中明确“何时阅读”。

关键原则: 当 skill 支持多种变体/框架/选项时,SKILL.md 只保留核心流程与选择指引;把变体细节(pattern、example、config)放到 references/

模式 1:高层导航 + 引用

# PDF 处理

## Quick start

用 pdfplumber 提取文本:
[code example]

## Advanced features

- **表单填写**:完整指南见 [FORMS.md](FORMS.md)
- **API reference**:所有方法见 [REFERENCE.md](REFERENCE.md)
- **Examples**:常见模式见 [EXAMPLES.md](EXAMPLES.md)

需要时才加载 FORMS.md / REFERENCE.md / EXAMPLES.md

模式 2:按业务域拆分

当 skill 覆盖多个 domain 时,按 domain 拆分,避免加载无关内容:

bigquery-skill/
├── SKILL.md(概览与导航)
└── reference/
    ├── finance.md(revenue、billing metrics)
    ├── sales.md(opportunities、pipeline)
    ├── product.md(API usage、features)
    └── marketing.md(campaigns、attribution)

用户问 sales 指标时,只读 sales.md

类似地,支持多 provider 的部署类技能也可按 provider 拆分:

cloud-deploy/
├── SKILL.md(workflow + provider selection)
└── references/
    ├── aws.md(AWS deployment patterns)
    ├── gcp.md(GCP deployment patterns)
    └── azure.md(Azure deployment patterns)

模式 3:条件化细节

先给基础做法,再链接到高级内容:

# DOCX 处理

## Creating documents

新建文档用 docx-js。详见 [DOCX-JS.md](DOCX-JS.md)。

## Editing documents

简单修改可以直接改 XML。

**涉及 tracked changes**:见 [REDLINING.md](REDLINING.md)
**涉及 OOXML 细节**:见 [OOXML.md](OOXML.md)

重要建议:

  • 避免引用链太深:reference 文件最好都能从 SKILL.md 直接链接到(保持一层深度)。
  • 长 reference 要结构化:超过 100 行的文件建议加目录(table of contents),便于快速预览与定位。

Skill 创建流程

Skill 创建通常按以下步骤推进:

  1. 用具体例子理解需求
  2. 规划可复用资源(scripts、references、assets)
  3. 初始化 skill(运行 init_skill.py
  4. 编辑 skill(实现资源并完善 SKILL.md
  5. 打包 skill(运行 package_skill.py
  6. 结合真实使用迭代

按顺序执行;只有在明确不适用时才跳过某步。

Step 1:用具体例子理解 Skill

仅当使用方式已非常清晰时才可跳过;即使在迭代已有 skill 时,这一步通常仍有价值。

要写出有效 skill,必须先明确它会如何被使用:可以来自用户提供的真实例子,也可以由你生成例子并让用户确认。

例如:要做一个 image-editor skill,可以问:

  • “这个 image-editor skill 需要支持哪些功能?裁剪、旋转、调色、去红眼……还有吗?”
  • “你能给我一些你会怎么用它的例子吗?”
  • “我能想到的触发语有:‘帮我去掉照片红眼’、‘把这张图片旋转 90 度’。你还会怎么提?”
  • “什么样的话应该触发这个 skill?”

避免一次问太多问题;先问最关键的,后续再补。

当你对“要支持的功能边界”有明确共识时,结束本步骤。

Step 2:规划可复用内容(Reusable contents)

把具体例子转化为 skill 内容时,对每个例子做两件事:

  1. 从零执行一次(脑内/纸面)——你会怎么做?
  2. 判断哪些 scripts/references/assets/ 能让重复执行更快、更稳

示例:做 pdf-editor(用户问“帮我旋转这个 PDF”)时,你会发现:

  1. 旋转 PDF 需要反复写同样的代码
  2. 适合沉淀成 scripts/rotate_pdf.py

示例:做 frontend-webapp-builder(用户问“做个 todo app / 做个 dashboard”)时,你会发现:

  1. 前端项目总要重复写同样的 boilerplate(HTML/React 等)
  2. 适合准备一个 assets/hello-world/ 模板目录

示例:做 big-query(用户问“今天有多少用户登录?”)时,你会发现:

  1. 每次都要重新发现 table schema 与关系
  2. 适合写 references/schema.md 来记录 schema

把所有例子都过一遍,最终得到“要包含哪些可复用资源”的清单。

Step 3:初始化 Skill

如果是从零新建 skill,总是先运行 init_skill.py。它会生成一个包含必需结构的模板目录,减少遗漏与返工。

仅当 skill 已存在且你在做迭代/打包时,才跳过本步骤并进入下一步。

用法:

scripts/init_skill.py <skill-name> --path <output-directory>

该脚本会:

  • 在指定路径创建 skill 目录
  • 生成带 TODO 占位的 SKILL.md 模板(包含正确的 frontmatter)
  • 创建示例资源目录:scripts/references/assets/
  • 在每个目录放入可按需改造/删除的示例文件

初始化后,按需要修改或删除示例文件与目录。

Step 4:编辑 Skill

编辑(新生成或已有)skill 时要记住:你是在给“另一个 Claude 实例”写说明。只加入对 Claude 有帮助且不显然的信息:流程化知识、domain 细节、可复用资产等。

学习成熟的设计模式

根据 skill 类型参考以下指南:

  • 多步流程:见 references/workflows.md(顺序流程与条件分支)
  • 特定输出格式/质量标准:见 references/output-patterns.md(模板与示例模式)

从可复用资源入手

优先实现 Step 2 中识别出的 scripts/references/assets/。这一步可能需要用户提供材料:例如 brand-guidelines skill 需要用户提供品牌资源放入 assets/,或提供文档放入 references/

新增脚本必须“实际运行”验证输出是否符合预期;如果脚本很多且相似,至少运行代表性样本以建立信心(兼顾时间成本)。

不需要的示例文件/目录要删除。模板目录只是演示结构,大多数 skill 不会用到全部内容。

更新 SKILL.md

写作要求: 统一使用祈使/动词原形(imperative/infinitive)表达(例如“检查… / 运行… / 生成…”)。

Frontmatter

SKILL.md 顶部的 YAML frontmatter 只写 namedescription

  • name:skill 名称
  • description:skill 的主要触发机制,用来告诉 Claude“什么时候用它”
    • 需要同时写清楚“它做什么”与“触发场景/上下文”
    • 所有 “when to use” 信息都应放在这里,而不是正文里(正文只有触发后才会加载)
    • 示例(docx skill 的 description):
      • “支持 tracked changes、comments、格式保留与文本提取的专业文档(.docx)创建/编辑/分析。当 Claude 需要处理 .docx:新建、修改、处理 tracked changes、添加 comments 等场景时使用。”

不要在 frontmatter 里加入其他字段。

Body

在正文里写清楚:如何使用该 skill 以及如何使用其 bundled resources。

Step 5:打包 Skill

开发完成后,需要打包成可分发的 .skill 文件。打包脚本会先自动验证 skill 是否符合要求:

scripts/package_skill.py <path/to/skill-folder>

也可指定输出目录:

scripts/package_skill.py <path/to/skill-folder> ./dist

打包脚本会:

  1. Validate:检查
    • YAML frontmatter 格式与必需字段
    • skill 命名约定与目录结构
    • description 的完整性与质量
    • 文件组织与资源引用
  2. Package:验证通过后,生成以 skill 目录名命名的 .skill 文件(如 my-skill.skill),并保持正确的分发目录结构(本质是 zip + .skill 扩展名)。

验证失败则输出错误并退出,不会生成包。修复后重新运行打包命令。

Step 6:迭代

skill 在真实任务中使用后,用户通常会马上提出改进(此时上下文最新、反馈最具体)。

迭代 workflow:

  1. 在真实任务中使用 skill
  2. 观察卡点/低效之处
  3. 判断应如何更新 SKILL.md 或 bundled resources
  4. 修改后再次测试

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

frontend-master

No summary provided by upstream source.

Repository SourceNeeds Review
General

skill-creator

No summary provided by upstream source.

Repository SourceNeeds Review
General

skill-creator

No summary provided by upstream source.

Repository SourceNeeds Review
General

skill-creator

No summary provided by upstream source.

Repository SourceNeeds Review
504-jezweb
skill-creator | V50.AI