关于 write-a-skill
write-a-skill 是面向 Agent 和技能创作者的技能编写指南,涵盖需求收集、起草与审阅,并提供检查清单工具及脚本和文件拆分建议。
主要功能
- 01三阶段技能编写流程
- 02SKILL.md 结构与模板
- 03描述和触发条件指南
- 04脚本与文件拆分准则
- 05自动化审阅检查清单
适用场景
- 01根据需求起草技能
- 02判断技能是否需要脚本
- 03使用前检查技能内容
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill write-a-skill安装后在 Claude Code 中输入/write-a-skill确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/companion_tooling.mddescription_design_patterns.mdprogressive_disclosure_principles.mdquality_gates_for_skills.mdscripts/_skill_frontmatter.pyskill_description_validator.pyskill_review_checklist_runner.pyskill_structure_validator.py详细介绍
编写技能
源自 Matt Pocock 的 write-a-skill(MIT)。原样保留 Matt 的表达风格和 3 阶段工作流。新增内容:验证工具 + 参考资料 + cs-* 封装器(见下文 工具 + 配套组件)。
流程
-
收集需求 - 询问用户:
- 这项技能涵盖什么任务/领域?
- 需要处理哪些具体用例?
- 是否需要可执行脚本,还是只需要说明?
- 是否需要包含任何参考资料?
-
起草技能 - 创建:
- 包含简明说明的 SKILL.md
- 如果内容超过 500 行,则创建额外的参考文件
- 如果需要执行确定性操作,则创建实用脚本
-
与用户审核 - 呈现草稿并询问:
- 这是否涵盖了你的用例?
- 是否有遗漏或不清楚的内容?
- 是否需要增加或减少某些部分的详细程度?
技能结构
skill-name/
├── SKILL.md # Main instructions (required)
├── REFERENCE.md # Detailed docs (if needed)
├── EXAMPLES.md # Usage examples (if needed)
└── scripts/ # Utility scripts (if needed)
└── helper.js
SKILL.md 模板
---
name: skill-name
description: Brief description of capability. Use when [specific triggers].
---
# Skill Name
## Quick start
[Minimal working example]
## Workflows
[Step-by-step processes with checklists for complex tasks]
## Advanced features
[Link to separate files: See [REFERENCE.md](REFERENCE.md)]
描述要求
描述是你的 Agent 在决定加载哪项技能时能看到的唯一内容。它会与所有其他已安装技能一起显示在系统提示词中。Agent 会阅读这些描述,并根据用户的请求选择相关技能。
目标:提供足够的信息,让你的 Agent 知道:
- 这项技能提供什么能力
- 何时/为何触发它(具体关键词、上下文、文件类型)
格式:
- 最多 1024 个字符
- 使用第三人称
- 第一句:说明它的作用
- 第二句:“在[具体触发条件]时使用”
优秀示例:
Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when user mentions PDFs, forms, or document extraction.
糟糕示例:
Helps with documents.
糟糕示例无法让你的 Agent 将这项技能与其他文档技能区分开来。
何时添加脚本
在以下情况下添加实用脚本:
- 操作具有确定性(验证、格式化)
- 会反复生成相同代码
- 需要明确处理错误
与生成代码相比,脚本能节省令牌并提高可靠性。
何时拆分文件
在以下情况下拆分为单独的文件:
- SKILL.md 超过 100 行
- 内容涉及不同领域(金融与销售模式)
- 很少需要使用高级功能
审核清单
起草后,确认:
- 描述包含触发条件(“在……时使用”)
- SKILL.md 少于 100 行
- 不含时效性信息
- 术语一致
- 包含具体示例
- 参考资料最多一层深
工具 + 配套组件
验证工具 + cs-* 封装器与这项技能配套使用。通过程序检查全部 6 项审核清单内容:
python scripts/skill_review_checklist_runner.py path/to/skill-folder
参见 references/companion_tooling.md,了解工具目录、cs-skill-author persona agent 和 /cs-write-a-skill slash command。
知识来自文档,而非你的头脑时
这项技能基于你已有的专业知识编写。如果源内容是一本书、一个文档文件夹、一项标准或一批规范,请改用 engineering/book-to-skill ——它会将文档编译成知识库技能(核心框架 + 按需章节 + 术语表 + 模式 + 速查表),还可以将结果打包成插件。
/cs-book-to-skill <path|folder|glob> [skill-name] # compile the source
/cs-book-to-plugin <compiled-skill-dir> # wrap it as a plugin
经验法则:**先编写,再编译。**手写技能说明你希望 Agent 执行什么;编译生成的书籍技能则是 Agent 执行任务时查阅的参考资料。如果两者都有,它们就是两项技能,而不是一项。
版本: 1.0.0 源自: Matt Pocock(MIT)+ 本仓库的封装器