Skill 体检改造(Matt Pocock 方法论)
用 Matt Pocock writing-great-skills 元技能的 6 类失败模式,对一个 Agent Skill(SKILL.md)做体检与改造,目标只有一个:Predictability(可预测性)——让 agent 每次跑同一套流程。
何时用
- 用户说"体检 / 改造 / 优化 / 打磨 skill"、"给 XX skill 做检查"
- 发布 skill 前做质量门禁
- 复用一个旧 skill 前先审计
体检清单(逐条对照 SKILL.md)
- premature completion(过早完成):步骤是否带「✅ 完成判据」?判据是否可核验、可穷尽(如"读完所有列出的帧 + 结合转写 + 按需求产出")?无判据 → 补。
- duplication(重复):description 触发词是否把同一 branch 的同义写多遍("读懂视频/看视频/分析视频/视频理解")?中英双语复述是否冗余?合并为 one trigger per branch。
- sprawl(过长):主文件是否过长?把"非每 run 都需"的内容(速查表、效率表、边界说明)渐进式披露到
references/子文件,SKILL.md 留指针。 - no-op(空操作):是否有"模型默认就遵守"的废话(如 "be thorough")?删掉省 context;换成强词("relentless")。
- negation(否定):是否用禁令反而强化了禁项("别想大象")?改说正向目标行为;仅保留真护栏(如"绝不泄露 API key")。
- sediment(沉积):是否有只加不减的 stale 层?pruning:每个含义单一来源、删无关行、删 no-op 句。
额外两招
- 完成判据:每个工作流步骤末尾写「✅ 完成判据 = ...」,条件可核验(文件存在 / 输出特定行 / 全部项处理完)。
- leading words:用模型预训练已有的紧凑词锚定行为(如
reusing锚定"复用已加载模型、不双占显存")。 - version bump:改完升小版本(语义化),commit message 用 conventional(
docs(skill): ...)。
工作流(实操)
- 读取目标 SKILL.md(及
references/子文件)。 - 逐条跑上面 6 类清单,列出发现。
2.5 (推荐)运行python3 scripts/check.py <目标SKILL.md路径>自动扫出 6 类问题并给 0–100 体检分,作为人工清单的对照基线。 - 改 SKILL.md:补完成判据、去重触发词、把长内容迁到
references/、删 no-op/negation。 - 升 version,commit + push(若开源)。
- 写一份体检报告(对象表 / 各仓明细 / 推送结果)。
反例(真实战)
海哥 3 个开源 skill 的共性问题:均无完成判据(补)、description 触发词重复(去重)、video 主文件过长(Cookie/Token 节迁入 references)。改造后版本 1.2.2 / 1.1.3 / 1.0.1,均 push 回 GitHub 成功。报告见 记忆库/AI研究/Skill开源仓库体检改造报告-2026-07-23.md。
资源
references/rubric.md— 6 类失败模式的完整判分 rubric:每类含「定义 / 信号 / 修复动作 / 严重度 / 自测问题」,体检时逐条打勾。scripts/check.py— 纯 stdlib 自动体检脚本(加载即跑,无依赖):扫描 SKILL.md,按 6 类失败模式给出 0–100 体检分与命中清单。用法:python3 scripts/check.py path/to/SKILL.md。