你让 AI 写一个日期选择器,它先去装了 dayjs,然后封了一个 DatePicker 组件,顺手把样式系统、国际化、无障碍属性全配了一遍,然后开始讨论时区。
你盯着屏幕,想说「我就想选个日期」。

Ponytail 这个 GitHub 项目,就是帮你把这句话变成规则的。
项目名故意叫「ponytail」(马尾辫),灵感来自一个从不废话的高级开发者:他坐在那里不说话,写一行代码,问题解决了。
这个项目的核心不是某个新模型,而是一套「规则文件」——让 AI 编程助手在动手之前,先过一遍「能不能不写」的检查清单。
它到底在管什么
AI 编程工具现在有个通病:太勤快。
你让它「帮我加个搜索框」,它顺手做了防抖、虚拟滚动、搜索历史持久化、键盘快捷键、暗黑模式。总共 800 行。
你想做的其实就是一个 <input> 加一个 filter()。
Ponytail 给 AI 设了一个「懒惰阶梯」。每次 AI 要写代码之前,按这个顺序问自己,在哪一层能停住,就在哪一层停住:
这个东西真的需要存在吗 → 不需要就整个跳过 标准库能做吗 → 用标准库,别造轮子 平台原生能力能覆盖吗 → 用原生,别加依赖 已有的依赖能搞定吗 → 用现有的,别装新的 一行代码能搞定吗 → 写一行,别封函数 以上都不行 → 才写最小可用实现
阶梯的底层逻辑是「YAGNI」(You Aren't Gonna Need It),一个写了二十年的软件工程原则,现在被做成规则塞给 AI。
数字代表了什么
项目里有一组 benchmark,用的是真实 Claude Code 无头会话,编辑的是一个真实项目(FastAPI + React 的全栈模板),跑 12 个功能任务,每个任务跑 4 次取结果。
对照三组:ponytail、一个叫 caveman 的「极简提示词」、以及作者自己写的「YAGNI + one-liners」提示词。
| -54% | |||
| -22% | |||
| -20% | |||
| -27% | |||
| 100% |
几个值得注意的点:
ponytail 是唯一在所有指标上都有削减的方案。caveman 反而让 token 消耗和成本上升了——说明「极简提示词」不一定等于「更省」。 安全性那一栏:ponytail 和 caveman 都是 100%,但 YAGNI 提示词降到了 95%,原因是某次测试里丢失了路径遍历防护。这就是 Ponytail 强调的「懒但不失职」:省代码可以,安全边界不能动。 代码行数最高能砍掉 94%,但那是单次生成测试的旧数据。项目作者也标注了「有基线偏差,agentic 数据更可信」。所以 -54% 是更现实的参考值。
怎么安装
目前支持 14 个 AI 编程工具,覆盖主流的应该都有了。
Claude Code 用户直接在会话里输入:
/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail
Codex 用户:
codex plugin marketplace add DietrichGebert/ponytail
然后在 /plugins 里安装,在 /hooks 里信任生命周期钩子。
Cursor / Windsurf / Cline / GitHub Copilot(编辑器版) 不用装插件,直接把仓库里对应的规则文件复制到自己项目目录就行。比如 Cursor 就复制 .cursor/rules/ 那个文件夹。
装完之后有几个命令可以用:
/ponytail [lite|full|ultra|off]— 调强度,或者关掉/ponytail-review— 让 AI 审查当前 diff,找出哪些代码写多了/ponytail-audit— 审计整个仓库的过度工程化/ponytail-debt— 收集你写代码时顺手标了ponytail:的「以后再说」,防止它们永远不做
哪些边界不能省
项目强调了一句话:「懒但不失职」。
具体来说,以下几样东西,Ponytail 的规则明确说不能为了少写代码而删掉:
信任边界的校验(比如用户输入能不能信) 数据丢失的处理(比如删东西之前有没有确认) 安全性(路径遍历、XSS、权限检查) 无障碍访问(ARIA 属性、键盘导航)
这几条是比较硬的约束。如果你打算在严肃项目里用,建议先把规则文件里这几段读一遍,确认它覆盖到了你关心的场景。
代码之外
不一定非要装这个插件。Ponytail 真正的价值,可能是它把「少写代码」这件事变成了一套你可以在任何 AI 工具里复用的提示思路。
你可以直接把下面这段话当成提示词前缀,贴给任何 AI 编程助手:
在写任何代码之前,按顺序检查:
这个功能真的需要写吗? 标准库或原生平台能力能不能覆盖? 现有依赖能不能搞定? 能不能一行代码解决? 如果以上有一个成立,就不要写新的封装。 但以下东西不能省:输入校验、安全处理、数据丢失防护。
这段话没提 Ponytail,但逻辑是一样的。

如果你已经用 Claude Code 或 Codex 干过实际项目,试试把规则文件贴进去跑一个小功能,看看它会不会少写点。
如果你之前被 AI 生成的代码量吓到过,这个项目值得一试。如果你本来就习惯了手写,可能觉得它管得有点多。
仓库地址:https://github.com/DietrichGebert/ponytail
夜雨聆风