writing-great-skills
编写和编辑高质量 skills 的参考指南 — 使 skill 行为可预测的词汇和原则。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
编写和编辑高质量 skills 的参考指南 — 使 skill 行为可预测的词汇和原则。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
询问哪种技能或流程适合你的情况。本仓库技能的导航器。
沿两个轴线审查自某个固定点(commit、分支、tag 或合并基准)以来的变更 — 标准(代码是否遵循此仓库已记录的编码规范?)和规范(代码是否匹配原始 issue/PRD 要求的内容?)。以并行子 agent 运行两项审查,并将结果并排呈现。当用户想要审查分支、PR、进行中的变更,或要求"从 X 开始审查"时使用。
设计深层模块的共享词汇。当用户想要设计或改进模块接口、寻找深化机会、决定缝合点放在哪里、使代码更可测试或更适合 AI 导航,或当其他技能需要深层模块词汇时使用。
针对疑难 bug 和性能回归的诊断循环。当用户说"诊断"/"调试这个",或报告有东西损坏/抛出异常/失败/变慢时使用。
构建和精炼项目的领域模型。当用户想要确定领域术语或通用语言、记录架构决策,或当其他技能需要维护领域模型时使用。
一场无情的面试,用于打磨方案或设计。
| name | writing-great-skills |
| description | 编写和编辑高质量 skills 的参考指南 — 使 skill 行为可预测的词汇和原则。 |
| disable-model-invocation | true |
一个 skill 的存在是为了从随机系统中提取确定性。可预测性 —— 即 agent 每次运行时采取相同的流程,而非产生相同的输出 —— 是根本美德;以下每个杠杆都为此服务。
加粗术语在 GLOSSARY.md 中有定义;可查阅获取完整含义。
两种选择,付出不同的代价:
disable-model-invocation,并编写一个面向模型的 description,包含丰富的触发短语("当用户想要……、提及……时使用")。disable-model-invocation: true;description 变为面向人类的 —— 一句摘要,去掉触发列表。只有当 agent 必须自行触达该 skill,或其他 skill 必须触达它时,才选择模型调用。如果它只需手动触发,则设为用户调用,不付出任何上下文负载。
当用户调用 skills 多到你记不住时,积累的认知负载可以通过一个路由 skill 来解决:一个用户调用的 skill,列出其他 skills 以及何时使用它们。
模型调用的 description 做两件事 —— 说明该 skill 是什么,并列出应触发它的分支。每个词都会增加上下文负载,所以 description 比正文更应该被严格修剪:
一个 skill 由两种内容类型构成 —— 步骤和参考 —— 它们可以自由混合:一个 skill 可以全是步骤、全是参考,或两者兼有。核心决策是使用哪种以及每种在信息层级上的位置,该层级按 agent 对材料需求的紧急程度排序:
SKILL.md 中的有序操作,是最主要的层级:agent 按顺序做什么。每个步骤以一个完成标准结束,即告诉 agent 工作完成的条件。使其可检查(agent 能否区分已完成和未完成?),并在重要时做到穷尽("每个修改过的模型都已覆盖",而非"生成一个变更列表")—— 模糊的标准会引发过早完成。SKILL.md 中的定义、规则或事实,按需查阅。通常是一组合法的扁平同级项(例如一次 review 的所有规则处于同一层级)—— 这是一种合理的安排,不是异味。本 skill 就是纯参考。SKILL.md 中移出到单独文件的参考,通过上下文指针触达,仅在指针被触发时加载。(范围从已披露参考 —— 如 GLOSSARY.md 这样的同级文件,仍属于该 skill 的一部分 —— 到完全的外部参考,存在于 skill 系统之外,任何 skill 都可以指向它。)一个严格的完成标准驱动彻底的实地探查 —— agent 在工作过程中的深入挖掘 —— 无论 skill 是否有步骤,因为"每条规则都已应用"绑定扁平参考,正如"每个步骤都已完成"绑定一个顺序一样。
推得太少则顶层膨胀;推得太多则隐藏了 agent 实际需要的材料。这种张力就是整个决策。
渐进式披露是沿层级向下移动 —— 从 SKILL.md 中移出到链接文件 —— 使顶层保持清晰可读。实现机制:skill 文件夹中一个链接的 .md 文件,以其包含的内容命名(本 skill 将其完整定义披露到 GLOSSARY.md)。有些 skills 以不止一种方式使用,每种不同的使用方式是一个分支 —— 不同次运行走 skill 的不同路径。分支是最清晰的披露测试标准:将每个分支都需要的材料内联,将只有某些分支需要的材料放到指针后面。上下文指针的措辞,而非其目标,决定了 agent 触达该材料的时机和可靠性。
层级决定了一段内容放在多远的位置,而就近原则决定了它旁边放什么:将概念的定义、规则和注意事项放在同一个标题下,而非散落各处,这样读一处就能连带看到其周边内容。
粒度指你分割 skills 的细密程度,每次切割消耗两种负载之一,因此仅在切割值得时才拆分。两种切割方式:
将每个含义保留在单一事实来源中:一个权威位置,这样改变行为只需修改一处。
检查每一行是否具备相关性:它是否仍然影响该 skill 的行为?
然后逐句而非逐行地猎杀无效操作:对每个句子单独执行无效操作测试,当句子未通过时,删除整个句子,而非从中修剪词语。要激进 —— 大多数未通过的文本应该删除,而非重写。
主导词是一个紧凑的概念,已存在于模型的预训练中,agent 在运行该 skill 时用它来思考(例如课程、战争迷雾、示踪子弹)。它在文本中反复出现(尽管不一定 —— 一个强有力的主导词可能只需出现一次),积累出一种分布式定义,通过调用模型已有的先验知识,以最少的 token 锚定整个行为区域。
它两次服务于可预测性。在正文中它锚定执行:每次该词出现时,agent 都会采取相同的行为。在 description 中它锚定调用:当同一个词出现在你的提示语、文档和代码中时,agent 将该共享语言与 skill 关联起来,更可靠地触发它。
寻找机会将 skills 重构为使用主导词。在三处地方展开的三元组(重复),一个用一整句话来暗示一个概念的 description —— 每一处都是恳请收拢为单个 token 的段落。示例如下:
你赢两次:更少的 token,以及 agent 用来锚定其思考的更锐利的钩子。假定每个 skill 都携带着可以被主导词消除的重述 —— 去找到它们。
用这些来诊断用户在使用 skill 时可能遇到的问题。