用途:add-skill 用于在 skills/<name>/ 目录下构建一个达到生产质量的 Agent Skill,采用评测优先(eval-first)的工作流。开始前每个会话先阅读 docs/skill-authoring.md 与 docs/evals.md,它们是该流程执行时的规则依据。若以 /add-skill <args> 调用,将 $ARGUMENTS 视为第 1 步要界定范围的技能名称或想法。
主要能力与使用方式:
- 界定范围:用一句话说明技能做什么、修复什么具体失败;若需要“和”就拆成多个技能逐个做。检查 skills/ 与 README 目录是否重叠,近似描述会互相抢占触发词,需调整范围或错开措辞。
- 收集资料:递归读取 .local/ 下所有子目录与文件作为素材,再向外研究(网络搜索当前事实、官方文档、既有方案),对关键事实用一手来源验证,有争议或高风险事实可用 /cross 交叉验证。已验证事实放入 skills/<name>/references/,技能中不得引用 .local/ 路径。
- 先写评测:按 docs/evals.md 创建 skills/<name>/evals/evals.json,至少 8 条 should_trigger(变化正式度、错别字、简洁度)、至少 8 条 should_not_trigger(共享关键词的近似项)、3–5 条质量用例含自然语言 expected_behavior 断言;写不出说明范围不清,回到第 1 步。
- 起草 SKILL.md:frontmatter 中 name 等于文件夹名,description 单行、第三人称,[做什么] + [何时使用…] + [不用于…],150–400 字符,触发关键词置于前约 120 字符;正文按 docs/skill-authoring.md 结构:用途 → 何时/不何时 → 编号流程 → 输出规范 → 注意事项 → 指针;不超过 500 行,确定性步骤做成 scripts/(失败时非零退出),长材料放入 references/ 并带目录。
- 校验:make check 必须退出码为 0,修复钩子报出的每个错误并分类处理每条警告。
- 触发自测:至少 3 条应触发、2 条不应触发的提示,显式推理仅凭 description(非正文)是否会在整个目录中路由到该技能;应改 description 而非改动评测,并建议用户对最高风险用例做 2–3 次全新会话探测。
- 登记:更新 README 目录表中的技能行、添加 CHANGELOG.md 条目,并将技能放入 skills.sh.json 的恰好一个分组(组描述需一句有吸引力,该文件是仓库的 skills.sh 列表文案);再次检查同级技能描述是否出现新重叠。不要 commit 或 push,留待所有者审阅。
完成标准:skills/<name>/ 含 SKILL.md + evals/evals.json(按需 scripts/references);make check → 0 错误;README 目录与 CHANGELOG 已更新;给出 3 行摘要(用途、触发短语示例、已知限制)。
限制与注意事项:不适用于创建新的技能仓库(那发生在本仓库之上的工作区),也不适用于基础设施工作(钩子、CI、校验器、文档,以普通编辑和 PR 级审查处理);仅仅复述模型已擅长内容的“技能”不要建,技能必须修复特定已观察到的失败。description 必须保持单一物理行,多行值在某些运行时无法加载且校验器会阻止,切勿绕过校验器;不要把失败的评测提示逐字粘贴进 description(过拟合),而应归纳所缺的动词/名词;过度触发时通过加入来自真实误报重叠的“Not for …”名词短语修复,不要删除正向触发词;模型升级会改变路由,应在摘要中说明下次模型发布后需重跑评测。