他一言不发。他写一行。它能跑。
Ponytail 5:从头重建。
代码 -53% · 时间 -41% · 成本 -26% · token -45%
即便如此:98% 的高风险逻辑交付时都带着测试。没有 Ponytail:68%。
在 Claude Code 中测得,同一个智能体分别在启用和不启用该 skill 时运行:39 个任务,其中包括一个真实的 FastAPI + React 仓库,Opus 5.5,每个任务运行 5 次。详情。
English · Español · 한국어 · 简体中文 · 日本語
本文译自英文 README。如有出入,以英文版为准。
你认识他。长马尾。椭圆眼镜。他在公司待的时间比版本控制系统还长。你给他看五十行代码;他看了看,一言不发,把它们换成了一行。
Ponytail 把他放进你的 AI 智能体里。
图表里没有体现的两点:在盲测对比中,Ponytail 5 的回复以 110 比 67 胜过上一版 Ponytail。另外,在 6 个安全任务上(SQL 注入、路径穿越、伪造 token、限流、格式错误的 CSV 行、缓存),它全部 30 次运行都通过了:代码更少,安全一点不少。方法、逐任务表格和局限性:benchmarks/results/2026-10-07-agentic.md。
**规则从来不是"token 最少"。**规则是:只写任务需要的东西,永远不砍校验、错误处理、安全和无障碍访问。代码最后变小,是因为只留下了必要的部分,而不是被硬压缩出来的。成本和延迟的降低只是副作用。
你要一个日期选择器。没有 Ponytail,智能体会安装一个日期选择器库,或者干脆手写一整个日历:335 行。Ponytail 5 会先看看已经有什么:仓库里有一个 Input 组件,而每个浏览器都自带日期选择器。它把这两样组合起来。10 行。
更多幸存的例子见 examples/。
/ponytail-review 以前只找可以删掉的代码。现在它像出了故障会被叫醒的资深开发者那样审查:它会读你的改动涉及的代码,而不只是 diff,并检查 bug、安全、真实负载、缺失的测试、速度,以及可以删掉的东西。每条发现都写清这段代码做什么、哪里出错、怎么修、不修会怎样。
/ponytail-audit 对整个仓库做同样的检查。它先摸清代码的全貌:入口在哪、数据怎么流动、项目预计要承受多大负载。然后给发现的问题排好优先级,告诉你先修哪个。旧版审计只会列出可以删掉的东西。
这个阶梯在理解问题之后才运行,而不是代替理解:它会先读改动涉及的代码,追踪真实的执行流程,再选择台阶。对方案偷懒,对阅读从不偷懒。
偷懒,但不失职:信任边界上的输入校验、防止数据丢失的处理、安全和无障碍访问,永远不会被砍掉。
带分支、循环、解析器,或涉及金钱、安全的逻辑,会留下一个小测试。每条回复结尾都会写明跳过了什么、没检查什么,以及你应该知道的风险。
Ponytail 就是一段提示词:skills/ponytail/SKILL.md。给读取规则文件的智能体用的精简版是 AGENTS.md。仓库里的其他东西都只是为了把这段提示词装进不同的智能体。
Claude Code,分成两条提示:
/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail
Codex:
codex plugin marketplace add DietrichGebert/ponytail
codex plugin add ponytail@ponytail然后在 Codex 里打开 /hooks,信任它的两个生命周期 hook,再开一个新线程。
其他任何智能体:把 AGENTS.md 复制到你的项目里,或者让你的智能体把 skills/ponytail/SKILL.md 安装为 skill。Copilot、Cursor、OpenCode、Gemini 等的分步安装说明(英文):INSTALL.md。
就这些。他会很满意。但他不会说出来。
每个会话都会启用,另外有几个命令(见命令)。/ponytail ultra 是为代码库把你个人惹毛了的时候准备的。启动和切换模式时会显示当前模式。
只从 GitHub 上的 DietrichGebert/ponytail 或 npm 上的 @dietrichgebert/ponytail 安装 ponytail。它从不包含 .exe 或 .dll 文件;包含这些文件的副本不是我的。
| 命令 | 作用 |
|---|---|
/ponytail [lite | full | ultra | off] |
设置强度或关闭。不带参数时:如果已关闭,就以默认级别打开;否则显示当前级别。 |
/ponytail-review |
像出了故障会被叫醒的资深开发者那样审查当前 diff:bug、安全、真实负载、没有测试的高风险代码、慢的地方,以及可以删掉的东西。每条发现都写清这段代码做什么、哪里出错、怎么修、不修会怎样。用普通的话指定目标来缩小或扩大范围:uncommitted、staged、branch,或一个 PR 链接。 |
/ponytail-audit |
对整个仓库做同样的检查,最重要的排在前面。 |
/ponytail-debt |
把你推迟处理的 shortcut: 捷径收集成一份清单,免得"以后再说"变成"永远不做"。 |
/ponytail-gain |
以计分板形式显示基准测试测得的效果(更少代码、更低成本、更快速度)。 |
/ponytail-help |
上述命令的速查表。 |
命令需要支持 skill 的宿主(Claude Code、Codex、Devin CLI、OpenCode、Gemini、pi、Hermes Agent、Qoder、Grok Build)。在 Codex CLI 和 IDE 扩展中,它们是插件命名空间下的 skill,用 $ponytail:ponytail-review 调用。使用 hooks 的 Cursor 只支持 /ponytail 级别切换,以普通消息输入。只有指令的适配器(Cursor 的规则文件、Windsurf、Cline、Copilot、Kiro、Antigravity)会加载始终生效的规则,但没有这些命令。
需要配置文件吗?
不需要。可选的 ~/.config/ponytail/config.json 或环境变量 PONYTAIL_DEFAULT_MODE 可以设置默认级别,但什么都不是必需的。
为什么它会写 shortcut: 注释?
它标记一个有意的捷径以及何时该回头处理,/ponytail-debt 会把它们收集成一份清单。想换个词,或者完全不要?在项目的 CLAUDE.md 或 AGENTS.md 里写明,然后运行 /ponytail-debt <你的词>。
如果我真的需要那个 120 行的缓存类呢? 你不需要。非要的话,他也会写。慢慢地。正确地。一边看着你。
它能扩展吗? 你从没写过的代码可以无限扩展。零 bug,零 CVE,开天辟地以来 100% 在线。
为什么叫 "ponytail"? 你心里很清楚为什么。
MIT。能用的最短许可证。







