
这是什么
一组改变编码 agent 汇报方式的 markdown 文件。旗舰是 Attention-kind:结论放在第一行,每个要点单独成段并以箭头开头,重要词组加粗——只读加粗也能拿到完整答案;生僻术语只解释一次,五个词。Spartan 是同一套形状但去掉温度;Rundown 以 TL;DR 开头,用清单展示状态。三个文件之外还有:一套把「干的活」和「说的话」分开测的 benchmark,一条在插件清单、版本文件、样式文件内的标记与 git tag 不一致时就让发布失败的流水线,以及四个由样式源文件生成的用户触发技能,因此不会与正文措辞走偏。它以 Claude Code 插件安装,也能作为技能在 Claude 应用里使用;样式正文是纯 markdown,去掉 frontmatter 后可以放进别的 agent 的规则文件。
谁做的这个仓库几乎是作者一个人的活:66 次提交里 61 次出自作者本人,另外五次来自四个账号,而 CHANGELOG 给这四个账号都记了一笔已落地的改动——多 agent 安装、西班牙语 README、样式切换命令,以及一条关于简洁的规则。19 次提交带共同作者尾注,其中 18 条写的是 Claude Opus 4.8(一百万 token 上下文),一条写的是 Opus 5。
它是怎么搭起来的
组成 · 6组织这个项目的想法是:编码 agent 和用户之间的界面是一份文档,而不是一个程序。每个样式就是一个纯 markdown 文件,正文里没有任何厂商专有行为,所以同一份文本可以是一个 CLI 里的输出样式、另一个 agent 规则文件里被追加的一块,或者被脚本转成用户触发技能的源文件。唯一与工具相关的部分是文件顶部的 frontmatter,而各个安装方式在标记处把它剥掉,而不是再维护一份副本。第二个想法是:让模型少说话的东西必须同时在两个轴上被测量,因为最直觉的那种测法——问一个模型「这个答案是不是更好」——分不开「更短」和「更差」:活干得对不对用隐藏测试判定,通过与否就是事实;说的话则用文本形状确定性地测量,原始生成与测量工具都和数字一起提交在仓库里。仓库里其余的东西都是围绕这两个决定的包装:插件清单,一条让清单、版本文件、文件内标记与 tag 保持一致的发布流水线,以及一个「三个文件就是产品」的样式目录。
- output-styles/
- 产品本体:三个 markdown 文件——attention-kind.md 7,793 字节、spartan.md 3,676 字节、rundown.md 2,631 字节——每个都是 frontmatter、版本标记、规则正文,按这个顺序排列。
- skills/ 与 scripts/gen-skills.py
- 给 Claude 应用用的四个用户触发技能——attention-kind 7,918 字节、spartan 3,774、rundown 2,719、tldr 2,207——由一个 3,007 字节的脚本从样式文件生成,于是两套东西不会走偏。
- benchmarks/
- 五个目录:code-eval(12 个任务定义、各自的隐藏测试、参考解,以及工作量等价与交付物纯净两个 runner)、harness(密闭的答案生成、可扫读性指标、阻塞问题位置检查器)、blocking(六个有副作用的场景及其真实运行,外加一个非回归探针)、questions(留出问题集)、results(2026-08-11 的完整报告和一份 295 KB 的原始生成记录)。
- commands/style.md
- 一个 4,130 字节的斜杠命令:列出已安装的样式、直接选中一个、或恢复内置样式;它同时读全局与项目的样式目录,并把对应的设置文件按 JSON 写入,这样从一个只有单个键的文件里清掉样式后留下的是合法 JSON,而不是空文件。
- .claude-plugin/ 与 .github/workflows/release.yml
- 插件清单(版本钉在 0.8.0,带作者主页与 AGPL-3.0 许可)、旁边的 marketplace 文件,以及一个 2,271 字节的发布作业:当清单、VERSION 文件、文件内标记与 tag 不一致时,它让发布失败。
- 根目录文档与素材
- README.md 20,151 字符,旁边是西班牙语与中文版本;一份 5,446 字节的 CHANGELOG;写着 0.8 的 VERSION;34,523 字节的 AGPL-3.0 全文;以及 12 MB 素材,最大的是 3.2 MB 的主图、3.0 MB 的插图,和两张 2.9 MB 与 2.5 MB 的猫图。
取舍,以及它替代了什么
把样式做成一个 markdown 文件 替代 一个包住 agent、在运行时改写提示词的工具
README 明确写着样式改的是 agent 说话的方式,不是它写代码的能力,而每个文件都保留编码指令不动。benchmark 里隐藏测试那一组就是为了验证这一点,两组通过数相同。
用隐藏测试量「活」,用文本形状量「话」 替代 问一个模型「这个答案是不是更好」
harness 的 README 说,那个问题把「完整」和「质量」混在一起,无法公正评判一个以少说为职责的样式。报告随后自己列出了这套方法的边界:没有标准答案的开放式设计工作、偏小的样本,以及只是阅读替代量而非真人理解实验的可读性指标。
样式里不设任何字数上限 替代 一个硬性的最大长度
0.2 的 CHANGELOG 给出了理由:硬上限会让模型为数字而不是为答案做优化。改为让长度本身携带重要性——只在删掉会让读者付出代价的地方展开。
样式正文保持与厂商无关,在标记处剥掉 frontmatter 替代 为每个 agent 各维护一份样式副本
引入其他 agent 安装方式的那条 pull request 论证说,正文没有任何工具专有行为,唯一不能跟着走的是 YAML frontmatter;0.3 的 CHANGELOG 把结果记成「没有重复,也不会走偏」。
技能由样式文件生成 替代 为 Claude 应用另维护一套提示词
README 说技能由同一个源经脚本产出,因此不会与旗舰版措辞走偏;CHANGELOG 也把它们系在一个 issue 上——那位用户想要一个能从源头直接更新的官方版本。
让「简洁」管住回复,而不是管住活 替代 让一个简洁的样式连活也少干,或者交出没验证过的结论
0.8 的 CHANGELOG 为一条被描述为「brevity governs the reply, not the work」的改动记了一位贡献者,而它背后那条 pull request 来自一次会话:agent 把「写出来」当成了终点,还没验证就想把结论发出去。
依据README.md(20,151 字符)、CHANGELOG.md、benchmarks/results/2026-08-11-benchmark.md、benchmarks/harness/README.md、benchmarks/code-eval/README.md、.claude-plugin/plugin.json、VERSION,侦察报告里记录的 issue 与 pull request 全文,以及完整的 55 个文件树及其体积。
制作过程
5 个阶段- 01
一个月里,一个 markdown 文件长成了插件
仓库建于 2026-08-04,共 66 次提交:8 月 60 次,9 月的前六天 6 次。这一个月里发了七个 release,起初几乎每隔几天一个——0.2 在 2026-08-05,0.3 次日,0.4 在 2026-08-10,0.5 在 2026-08-11,0.6 在 2026-08-15,0.7 在 2026-08-21,0.8 在 2026-09-06。列表里最早的一个是 0.2,没有 0.1。tag 与 release 完全对应,因为发布流水线会在版本文件、每个样式文件里的版本标记与 tag 不一致时直接让发布失败;版本号规则是刻意扁平的,CHANGELOG 写明只有最右一位会进位。周围还有 1,150 个星、37 个 fork 和两个未关闭的 issue;提交过的账号有五个——作者 61 次,另外四个账号各一到两次。19 次提交带共同作者尾注,其中 18 条写的是 Claude Opus 4.8(一百万 token 上下文)。
- 02
改写之后到底长什么样
README 用两组并排的回答来立论。同一个问题——新的社交应用该用 PostgreSQL 还是 MongoDB——未加样式的回答有 430 词,先铺一段背景才给出结论;Attention-kind 的回答 94 词,五个箭头开头的要点,第一条就是结论。Spartan 对「本周三件事、只能做两件、砍哪件」做同样的事:310 词压到 168 词;Rundown 则把一段招聘进展变成一个 TL;DR、四行清单、一条 blocker 和四个编号的下一步。这些文件要求的比「be brief」更窄:先说结论、说全答案所需的最少内容、只有在删掉会让读者付出代价时才展开、生僻术语只解释一次、任何要点不重复。CHANGELOG 记下的是逐版收窄而不是一次发明。0.2 把「回答」和「交付物」分开——解释、判断、建议要精炼,而文档、方案、规格可以按工作量展开——并写明精简只削减回复,绝不削减内部推理。0.5 加入交付物纯净:要一段提交信息或一封邮件,就只给这些,不带任何外包装;同版还加了「压缩时绝不删掉警告」和「仅凭加粗与 TL;DR 也必须能拿到完整答案」两条。
- 03
有人把它拆开之后,benchmark 被重做了一遍
第一版 benchmark 上线五天后,有读者开 issue 质疑:它测的是「是否服从」,不是质量——生成答案的模型同时也是打分者,样本是 12 个问题乘两轮,而真正变化的两个指标(「answer-first」从 63% 到 96%,「skimmability」从 2.7 到 4.8)不过是把样式文件里的指令改写成评分表,分数当然会涨。作者在回复里认了这一点,说 benchmark 本可以做得更好,并重建了它。2026-08-11 那一版是按「经得起攻击」来设计的:活干得对不对由隐藏测试判定,通过与否就是事实;答案在密闭环境里生成,样式关闭与开启两组之间只差一个样式文件;而头条数字完全不使用模型当裁判。12 个编码任务上两组通过数相同,36 次里各 35 次;24 个问题上带样式的回答平均短 43%,话多的问题短 50% 到 71%,而本来就短的两行回答只短了 7%——这正是要点,省下的量与「本来会多啰嗦多少」成正比。它不用阅读难度分(文档指出那类分数只看句长),而是数「读到第一个重点之前要读多少词」:约 6 词对约 40 词,答案出现在第一行的比例 75% 对 3%。文档末尾自己列了局限,其中一条是工作量等价只在有隐藏测试的任务上成立。
- 04
每一条规则背后都站着一个用户
这些规则大多来自每天在用它们的人。issue 6 报告说,一个必须等待回答的问题被埋在七段中的第四段,而它决定的是后面一个有副作用、不可逆的步骤;0.7 把修法落成一条位置规则——你必须等答复才能继续的问题放在最后一块,后面不再有任何内容,若回复还有其他内容则第一行就带上它——同一版还加了位置检查器和六个副作用场景:真实 Claude 六次全部把问题放在最后,而故意埋掉问题的对照组六次全部失败。issue 9 指出清单把「未知」并进了「未开始」,0.8 给了它第四个状态;issue 8 要求把「Your move」的选项编号,也在 0.8 落地。一位贡献者的 pull request 标题是「brevity governs the reply, not the work」,来自一次在缓慢数据管道上的会话:模型不断提前收手、想把还没验证的说法写出去,因为它把「写出来」当成了终点。issue 5 提出把样式做成技能以便在 Claude 应用里用,0.8 一并交付,并由样式文件生成。社区里还有两条线没合上:一条要求单个事实的回答直接说、不要套上 TL;DR 加下一步的整套架子,开在最后推送的当天;另一条是四份新 README 翻译的 pull request。
- 05
分发方式,以及它拒绝声称的东西
真正交付的东西是一个 markdown 文件,所以分发问题基本就是「这个文件落到哪里」。最省事的路子是 Claude Code 插件,一步带来三个样式、切换命令和四个技能;手动路子是把一个文件 curl 进 output-styles 目录,再在 settings 里写明。插件清单与样式同步升版,而发布流水线在清单、版本文件、文件内标记与 tag 不一致时拒绝发布。取舍都写在明面上:样式正文约 650 个 token 的输入,每个会话加载一次、首次请求后被缓存,README 认为这点输入成本在几次回复内就被实测的输出节省盖过。样式只作用于主对话,因为子 agent 跑自己的提示词;样式文件保留编码指令不动,而隐藏测试那一组对照正是为了验证这一点。四个技能是用户触发型的,不调用就不占被动上下文,而且由脚本从样式源文件生成,两边不会走偏。README 也主动否掉了一个可能的卖点:如果目标真是省 token,更大的开销在 agent 干的活,而不是它怎么说话,作者另外两个工具正是冲这个去的。那条讨论串里有一点没有被记录覆盖:对一个写在 markdown 里的提示词使用 AGPL-3.0,以及作者最终怎么处理,材料未覆盖。
相关档案
全部档案 →第 117 号
sepia
一个可移植的去 AI 味写作技能:一套规则文件配四个操作,小说先修叙事结构再谈用词,专业文稿按场合套一份薄薄的规则文件,而每条规则都标着它是被测出来的、被咨询过的,还是这个项目自己的推断。
第 108 号
agy-staff
它把 Google 的 Antigravity CLI 雇成一名员工。宿主 agent——Claude Code、Codex 或 Pi——留住决策权,把调研、评审和范围明确的改动交给一个跑在后台的 Gemini 3.8 Flash 员工,用一个 job id 来回传话。
第 073 号
Engram
一条把「学一门东西」做成流水线的办法:课程架构师拆出第一性原理的概念图,一名看不见讲课过程的评分者盲评你写下的原话。再由 FSRS 排程,每次判分都在磁盘上留下一条收据。