
一个让 AI 编程助手先问"这事真需要做吗"再动手的开源项目。装上之后,它写的代码少了一半,安全性一分没降。
「嗨,我是小开ALSKai,让我们一起用AI做点有趣的事。🌿」
前两周刷 GitHub Trending,看到一个项目叫 「Ponytail」。
介绍就一句话,Makes your AI agent think like the laziest senior dev in the room。翻译过来,让你的 AI 编程助手像房间里最懒的资深工程师一样思考(这个描述一秒就击中我了)
项目上线 10 天,54,000+ Stars。GitHub 当日 Trending 第一,周榜第一。最让我震惊的是它的基准测试数据。AI 给一个日期选择功能吭哧吭哧写了 404 行代码。装上 Ponytail 之后,23 行。因为 AI 终于想起来,浏览器自带 <input type="date"> 标签。
别的工具教 AI 怎么写,Ponytail 教 AI 什么时候别写。
你用过 AI 编程助手的话大概率遇到过这种情况。
让它加一个日期选择功能。它二话不说,给你写一个完整的日历组件。年月日切换,星期排列,节假日高亮,农历转换,可能你根本没要这些,但它"觉得"你需要(对,就是那种"我帮你多做了点"的感觉,但你只是想要一个日期输入框)
AI 编程助手有一个隐藏问题,它们太会假装勤奋了。你的需求是一行,它的产出是一个模块。你只是想吃个苹果,它给你种了一棵苹果树。
Ponytail 做的事很简单,让 AI 动手之前,先爬一张七步阶梯。
这七步的顺序是 Ponytail 最核心的设计。每次 AI 准备写代码,从第一级开始爬,停在哪一级就用哪一级的方案。
写代码是最后选项哈哈哈哈哈哈
而且这张阶梯不是让你偷工减料。Ponytail 的规则里明确写了哪些东西绝对不能省。输入验证不能省。安全防护不能省。错误处理不能省。用户明确要的功能不能省。省掉的是那些"万一以后要用"的抽象、AI 擅自帮你加的功能、"大家都这么写所以我也这么写"的样板代码。
作者 DietrichGebert 做了一组扎扎实实的基准测试。
有意思的是,这组测试是因为有人公开质疑他。知名技术博主 Colin Eberhardt 说他的原始数据有水分,对照组选得太啰嗦,把差距拉大了。
DietrichGebert 没争辩,按质疑意见完全重做了测试。
同一个开源全栈项目。12 个真实功能任务。每组跑 4 次取中位数。独立仓库,独立上下文。
结果是这样的。
日期选择器,没装 Ponytail 时 AI 写了 404 行,装完之后 23 行。因为 AI 意识到浏览器自带 <input type="date"> 标签,功能完全够用。
颜色选择器,287 行降到 23 行,用了 <input type="color">。
文件拖拽上传,251 行降到 95 行,用了 <input type="file">(Ponytail 没什么魔法,它只是提醒 AI 做一件每个合格程序员都会做的事,先看一眼平台自带了什么,再决定要不要自己写)
那是不是所有任务都能砍掉这么多代码呢。不是。
后端 CRUD 操作,增删改查这些,代码量几乎没变。因为这类任务本来就没有过度工程的空间,该写几行就是几行。Ponytail 在这种任务上的作用和没装差别不大。
这件事恰恰说明它不是无脑删代码。当代码本来就简洁的时候,它不画蛇添足。
12 个任务加起来算,代码减少 54%,Token 消耗减少 22%,费用降低 20%,速度提升 27%。
这个是 Ponytail 最有意思的地方。
测试里有一组安全验证任务。其中一个叫"安全路径拼接",把用户输入的文件名拼到目录路径上,但是要防止用户用 ../../ 这种技巧跳出目录、访问不该访问的文件。
测试里有四组对照。Baseline,没装的。Ponytail,装了的。Caveman,用极简语言做系统提示的。YAGNI-Oneliner,直接告诉 AI"尽量一行搞定"的。
前三组全部 100% 安全通过。
YAGNI-Oneliner 通过了 95%,四轮跑下来有一轮漏掉了路径穿越检查。
同样的任务,Ponytail 多写了几行,把路径穿越检查带上了。YAGNI-Oneliner 写得更少,偏偏漏了这道安全守卫。
这个对比一目了然。简单粗暴地让 AI"少写点",它会连不该删的东西也删掉。Ponytail 的做法不一样,它先明确告诉 AI 哪些东西绝对不能碰,然后在这个前提下谈简化。
安全性 100%,代码少了 54%。这件事听上去矛盾,做出来就不矛盾了。删掉的从来不是安全守卫,是过度工程。
如果你用 Claude Code,装 Ponytail 只要两行命令。在终端里敲。


装完什么都不用管。Ponytail 默认每次会话自动激活,在后台修改 AI 的决策逻辑。你该怎么提需求还怎么提需求,AI 自己会少写废话。
它现在还支持 14 个 AI 编程平台,Claude Code、Codex、GitHub Copilot、Cursor、Windsurf、Gemini CLI 这些主流工具都能用。具体安装方式在项目 README 里都有。
三个强度可以随时切换。
/ponytail lite,温和模式,轻度约束。
/ponytail full,完整模式,默认推荐。
/ponytail ultra,极致克制模式。作者原话是"当代码库对不起你的时候用"(人话就是,你受够了这个项目的冗余,想直接重构了)
它还提供了几个实用命令。/ponytail-review 检查当前代码改动有没有过度工程。/ponytail-audit 扫描整个项目找出可以简化的地方。/ponytail-debt 记录你刻意简化但以后可能要升级的技术债。/ponytail-gain 直接算给你看省了多少代码、多少 Token、多少钱。
它不神奇,也不适合所有人。
如果你已经是一个写代码前会先查标准库、先看项目里有没有现成逻辑的开发者,你不需要它。你已经内化了这张阶梯,Ponytail 不过是把这套习惯写进了 AI 的系统提示里。
但如果你经常发现 AI 写了太多你不需要的东西,你维护着一个积累了多年"为了未来而设计"的抽象的老项目,你刚开始用 AI 编程、不太确定它写出来的 500 行里有多少是真正必要的,这东西会让你的 AI 突然变聪明。
尤其适合老项目。那些三年前预留的扩展点、从未用过的工具函数、为了"解耦"而造的五层抽象,/ponytail-audit 会帮你把它们一个一个揪出来。
看完这些基准测试,我最大的感受不是"代码少了 54%"这个数字。
是 Ponytail 让 AI 开始像一个有经验的同事了。它会先看一眼项目里有没有现成的,再看看语言自带的标准库,再看看浏览器能不能直接干。实在没辙了,才写代码。
这不就是资深工程师的日常吗?会写代码不稀奇,知道什么时候该停手,才是他们值钱的地方。
「如果对你有用,欢迎关注我,让我们一起用 AI 做点有趣的事。🌿」