Reference · User-invoked · Standalone meta-skill

writing-great-skills 速查

写 / 改 / 诊断 skill 时对照的口袋版。完整教学见 Lesson 0020; 原文见 SKILL.md(原则,83 行)、 GLOSSARY.md(词条全集,201 行)。

一句话

Skill 的存在理由:从随机系统里拧出确定性。根美德 predictability—— 每次运行走同一个过程,不是产出同一个输出。 每个术语都是它的一根杠杆;成本和可维护性是症状,不是对手。 本 skill 全 reference、无 steps、user-invoked、什么都不写——纯案头参考书。

何时伸手

调用轴:两种 load

Model-invokedUser-invoked
谁能触发agent 自动 + 别的 skill prose 调用 + 人打字(无 model-only 态)只有人打字;无其它任何调用方
付账Context load:description 每轮常驻窗口,花 token + 注意力Cognitive load:人是索引,自己记它存在(human agency 的价钱,不求最小化)
description面向模型,带触发语「Use when…」面向人,一行摘要,剥掉触发列表
机制默认(无 disable 标记)disable-model-invocation: true + openai.yaml allow_implicit_invocation: false,两份同步

选择规则:只在「agent 必须自己够到它、或另一个 skill 必须够到它」时选 model-invoked。 Router skill:user-invoked 多到记不住时的解药;只能 hint 不能 fire(活例:ask-matt)。

description 三规矩

  1. Front-load the leading word——领头词顶到最前,它在 description 里干 invocation 的活
  2. One trigger per branch——同义说法写两遍 = duplication;只留真正不同的分支
  3. Cut body identity——只留触发语 + 「when another skill needs…」reach 条款

信息层级(三级梯子)

1. In-skill step        主层;每步以 completion criterion 收尾
2. In-skill reference   按需查阅;平铺同侪集合是合法布局(本 skill 全在这层)
3. External reference   压在 context pointer 后面,触发才加载
   disclosed(sibling 如 GLOSSARY.md)→ external(skill 系统外的普通文件)

拆分两种切法(granularity)

Leading word

修剪三查(按顺序)

  1. SSOT:每个意思住一个权威地点,改行为 = 一处编辑
  2. Relevance:逐行问「还和 skill 干的事有关吗」;无关分从未相关和过时两种
  3. No-op 测试:逐句问「相对默认行为改了什么」;过不了整句删,不修词;要狠。争议是 model-relative 的——跑一遍 skill 解决,别辩论

失败模式 → 杠杆(诊断主表)

失败模式症状杠杆
Premature completion步没做完就收,注意力滑向「做完」① 先磨 completion criterion(cheap, local)② 仅当判据不可约模糊 + 真观察到赶工,才按序列拆藏后续;藏只跨真实上下文边界有效(user-invoked 交接 / subagent;inline model-invoked 调用不算)
Duplication同一意思住两处合并 SSOT;leading word 重复 token 不算重复意思
Sediment旧层堆积:加感觉安全,删感觉危险修剪纪律;relevance 逐行查
Sprawl全活全独特但就是太长披露 reference 下梯子;按 branch / 序列拆
No-op写了模型默认就会做的事逐句测,整句删;注意:一行可 relevant 但仍 no-op
Negation「不要 X」把 X 点名叫醒(大象)Prompt the positive:说目标行为;硬护栏才留禁止,且配对「那该怎么做」

判别:无 steps 的 skill 早早收工 ≠ premature completion,是 thin legwork(判据 demand 没吃够)。 长度三病因先分清再治:sediment(过时)/ duplication(重复)/ sprawl(长度本身)。

词汇速记(按轴分组)

Invocation 轴
Model-Invoked / User-Invoked · Description(存在即调用轴)· Context Load(agent 侧每轮账)· Cognitive Load(人脑索引账)· Router Skill(只 hint 不 fire)· Granularity(每刀花一种 load)
Information Hierarchy 轴
Steps(主层)· Reference(按需查阅)· External Reference(disclosed → external;两个 user-invoked skill 共享材料的唯一方式)· Progressive Disclosure · Context Pointer(措辞定时机)· Co-location · Sprawl(failure)
Steering 轴
Branch(一种用法一条路径)· Leading Word(预训练先验 token)· Completion Criterion(checkable + demand)· Legwork(步内暗挖)· Post-Completion Steps(前拽力)· Premature Completion(failure)· Negation(failure,大象)
Pruning 轴
Single Source of Truth · Duplication(failure)· Relevance · Sediment(failure)· No-Op(failure,逐句删)

本仓库改 skill 后的同步链(AGENTS.md)

  1. .claude-plugin/plugin.json 的 skills 数组(已发布集合的唯一权威)
  2. 顶层 + bucket README.md 条目(按 User / Model 分组,链到 SKILL.md)
  3. docs/<bucket>/<skill>.md 文档页(按 .agents/writing-docs.md 同步)
  4. ask-matt 路由(user-reachable skill 变动必更新——路由器不许说谎)
  5. 重跑 scripts/link-skills.sh;碰 manifest 后 claude plugin validate . --strict

副作用 / 下一步

本 skill 自己什么都不写(纯参考);编辑都落在目标 skill 的 SKILL.md 正文、frontmatter description、sibling 披露文件、agents/openai.yaml 上。 用完接:当检查单改目标 skill → 走上面的同步链 → 不确定哪个 skill 负责就 /ask-matt。