SuperAPI AI 工具集

write-a-skill

智能体与模型

查看项目

更新于 10-16 07:45

技能介绍

用途

write-a-skill 用于编写单个新技能:为已有技能树中的某一项能力产出一个 SKILL.md,以及可选的捆绑参考资料和脚本,遵循 Anthropic 的渐进式披露约定。其编写循环为:收集需求、按 SKILL.md 契约起草、与用户评审、精炼。核心原则是一个技能只关注一件事,一个技能一个目录。

范围界定

  • write-a-skill:在已有技能树中为某一项能力编写一个 SKILL.md。
  • Repo onboarding:面向整个仓库的入门引导,搭建 AGENTS.md 和项目约定。
  • skill-creator:skill-creator:本技能所应用的上游方法论;如需权威契约请查阅它。

编写循环

  1. 收集需求——在起草前先明确决策:
    • 能力边界:该技能覆盖什么任务,明确不覆盖什么?
    • 触发短语:哪些用户短语或上下文应加载它?
    • 确定性:是否有操作足够确定,可以放进脚本而不是每次重新生成散文?
    • 捆绑参考资料:需要包含哪些文档、模式或示例?
    • 静态保证上下文:语言家族(Rust、TypeScript、Python、Kotlin、Go、OCaml 等)——影响测试章程范围。
  2. 起草 SKILL.md——按下方契约撰写。正文保持简洁、面向决策。
  3. 与用户评审——呈现草稿,暴露有歧义的决策,并精炼。
  4. 验证——运行任何捆绑的 evals.json 用例;有针对性地重读 SKILL.md,确认描述触发条件和正文一致。

目录布局

skill-name/
  SKILL.md              # 契约;必需
  references/           # 按需加载的更深文档
    REFERENCE.md
    EXAMPLES.md
  scripts/              # 确定性辅助脚本
    helper.{ts,py,sh}
  evals.json            # 触发 / 行为评估

SKILL.md 中的引用路径使用 references/X.md,绝不使用 ./X.md。

SKILL.md 契约

---
name: skill-name
description: <技能做什么>。 <何时触发——具体短语或上下文>。
---

<一句话祈使式总结该技能的定位。>

## <章节> — 简洁、面向决策的散文

<以祈使语气撰写正文,并附简短理由。≤200 行。>

Frontmatter 规则:

  • name——kebab-case,与目录名一致。
  • description——强触发:说明做什么以及何时触发。最多 1024 字符。第三人称。第一句陈述能力;第二句陈述触发条件。
  • disable-model-invocation: true——若源中存在则原样保留;不要编造。

三级渐进式披露

  1. 描述(frontmatter)——harness 唯一读取以决定是否加载的文本。触发条件必须具体。
  2. SKILL.md 正文——被选中后加载一次。保持 ≤200 行;深度内容下放到 references。
  3. references/ 和 scripts/——当正文链接到它们时按需加载。

强触发描述示例

  • 弱:Helps with documents.
  • 强:Extract text and tables from PDF files, fill forms, merge documents. Trigger when user mentions PDFs, forms, or document extraction.

脚本与散文

当操作是确定性的、且否则每次调用都会重新生成相同代码时,添加脚本。当工作是模型每次必须重新执行的上下文推理时,跳过脚本。

语气与禁用工具

使用祈使语气或第三人称。不要使用“you/your”称呼对象。英语要求:语法正确的英语,保留冠词。禁用工具不得出现:优先使用 bat -P -p -n、fd、git grep、ast-grep、srgn、hyperfine、difft、eza、rip,而非其被禁用的对应工具。