habit
habit/skill-authoring/index.md
medium
habit-skill-authoring-index
写一条好 skill 的规约索引 — description 写法 / 长度边界 / progressive disclosure / 触发词 / 命名与检索。Use when 新建 skill 文件、review skill PR、或被问 "怎么把约定写成 skill" 时进入此索引。
子项索引
| 子项 | 一句话 |
|---|---|
| description-format leaf | skill 的 description 字段必须是两句结构 — 第一句讲是什么,第二句以"Use when"开头列具体触发场景 |
| body-length-budget leaf | skill 正文(H1 之后到文末)必须 ≤100 行,超出部分拆到同目录 reference.md / examples.md |
| progressive-disclosure leaf | skill 内容分主入口 + 二级引用文件 — 主入口给规则与自检,二级文件给详细 API / 代码示例 / 反模式集 |
| trigger-phrasing leaf | triggers.keywords 写法 — 中英双语 + 同义词 + 名词短语,与 description 的 Use when 职责分离 |
| naming-and-retrieval leaf | skill 文件/文件夹命名规范 + 检索友好规则 — 路径每段都是检索 keyword,命名直接决定召回 |
Skill Authoring · 写 skill 的规约
灵感来自 Matt Pocock 的 skills repo,结合本仓 MCP 检索语义化做的本地化。
核心理念
skill 是给 agent 看的,不是给人看的。所有规约都围绕一个问题:
agent 看到这条 skill 时,能否 (1) 立刻判断要不要加载它,(2) 加载后知道该做什么?
📐 本层是 HOW(操作规约)。背后的 WHY(harness 思想纲领:4 条核心信条 + 业界锚点)在
/.claude/skills-philosophy.md—— 写 skill 前先读那篇理解「为什么」,再回这里取「怎么做」。
本层包含
| 名称 | 类型 | 一句话 |
|---|---|---|
| description-format | 叶子 | description 字段两句结构:是什么 + Use when |
| body-length-budget | 叶子 | 正文 ≤100 行硬边界,超出拆引用 |
| progressive-disclosure | 叶子 | 渐进披露 — SKILL.md 主入口 + 外链深内容 |
| trigger-phrasing | 叶子 | triggers.keywords 必须含中英双语 + 用户原话 |
| naming-and-retrieval | 叶子 | 文件/文件夹命名规范;路径每段即检索词,命名决定召回 |
写新 skill 时的执行顺序
- 定路径与文件名(按
naming-and-retrieval.md)—— 路径每段都得是检索词,文件名 kebab、不重复父文件夹词 - 写
description(两句结构)—— 写不出来说明意图不清晰,回去想 - 写 frontmatter 其他字段(
name跟随路径、paths/triggers.keywords/effort) - 写正文 H1 + ≤100 行内容
- 跑
python scripts/lint_skills.py自检 - 跑一遍假想 query:
search_skills(query="<相关任务原话>")能命中本条吗?不能就回头改路径段 / keywords
链接
- 上层:
../index.md - 平行:
../code-quality/index.md·../prd-sync/index.md - 参考:本仓
CONTRIBUTING.md是这套规约的最终强制版(lint 工具按它跑)