Sep 18, 2026
用 Ponytail Skill 阻止 Agent 过度写代码
一个 141k 星的 skill,让 agent 写代码前先爬一遍七级梯子——agentic 基准下代码量减少 54%,安全防护一条不少。
你让 agent 做一个日期选择器,它安装一个库、写一个包装组件、加一份样式表,然后开了一场时区讨论会。Ponytail,一个 141k 星的 skill,只用一行作答。
为什么这个 Skill 重要
Ponytail 把一位「最懒的资深工程师」装进你的 agent——就是那种盯着五十行代码、然后一行搞定的人。写代码之前,agent 会在第一级成立的梯级停下:
1. Does this need to exist? → no: skip it (YAGNI)
2. Already in this codebase? → reuse it, don't rewrite
3. Stdlib does it? → use it
4. Native platform feature? → use it
5. Installed dependency? → use it
6. One line? → one line
7. Only then: the minimum that works
梯子在 agent 理解问题之后运行,而不是替代理解:对方案懒惰,对阅读从不懒惰。懒惰也绝不等于马虎——校验、错误处理、安全性、可访问性永远不在裁剪范围内。
README 用真实工作负载做了基准:headless Claude Code 会话编辑一个真实的 FastAPI + React 仓库,12 个功能工单,同一个 agent 有无 skill 各跑一遍。Ponytail 少写 54% 的代码、少花 22% 的 token、省 20% 成本、快 27%,并通过全部安全检查——是唯一一项指标全面占优的方案。裸的「YAGNI + 一行流」提示词也能砍代码,但丢掉了一项安全检查。裁剪幅度在过度构建陷阱处最大(一个日期选择器从 404 行降到 23 行),在本来就精简的代码上则接近零。
安装
在 Claude Code 上,下面两条要分两次发送——README 说明只有这样才能安装成功:
/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail
插件会运行两个小型 Node.js 生命周期钩子,所以 node 必须在 PATH 上——使用 nvm 或 Nix 时,指的是非交互 shell 的 PATH。在 Codex 上,同样两步换成 shell 命令:
codex plugin marketplace add DietrichGebert/ponytail
codex plugin add ponytail@ponytail
没有插件机制的宿主走纯指令路线:让它读取仓库的 AGENTS.md,能带上规则集,但没有那些命令。
实战:推送前审查一次改动
这些命令需要支持 skill 的宿主,比如 Claude Code 或 Codex。正常写完代码后,请求一次审查:
/ponytail-review
它会读取当前 diff 并交回一份删除清单:没人需要的包装层、只有一个调用方的配置项、只有一个实现的抽象。想扫得更广,/ponytail-audit 给整个仓库打分,而不只是本次改动。
实战:控制力度
四个级别控制梯子的力度:/ponytail lite、/ponytail full、/ponytail ultra、/ponytail off。不带参数则报告当前级别。默认是 full;用环境变量为每个新会话设置默认值:
export PONYTAIL_DEFAULT_MODE=full
可选的 ~/.config/ponytail/config.json 里写一个 defaultMode 字段,效果相同。生效期间,规则集也会注入 agent 派生的子代理;想让只读搜索类子代理保持原样,用 PONYTAIL_SUBAGENT_MATCHER 环境变量按类型收敛注入范围。
技巧
- 从默认的
full级别开始;代码库本来就足够精简时可以考虑lite——这类代码库的收益本来就接近零。 - 把
/ponytail-review变成推送前的固定动作;趁 diff 还小的时候拦住过度构建,成本最低。 - agent 用
ponytail:快捷标记延后工作时,用/ponytail-debt把这些标记收进一本账,别让「以后」变成「永不」。 - 想要对话也更简洁,可以搭配 caveman。README 的 FAQ 划清了边界:caveman 收缩 agent 说的话,ponytail 收缩 agent 写的代码,互不重叠。
何时不用这个 Skill
Ponytail 是一层约束,不是代码生成器;在本来就简洁的模型上,token 节省未必成立——README 提到 GPT-5.5 这类简洁推理模型可能会花更多 token 斟酌梯级,而不是更少。如果你确实需要那个 120 行的缓存类,坚持要它还是会建——慢且正确——但先做好被顶回来的准备。在纯指令宿主上,规则集能到位,但 review、audit 这些命令不会。
查看 排行榜 了解更多 skill。