开源项目
开源项目

Ponytail:让 AI coding agent 少写 54% 代码的 skill(GitHub 星 9.8 万)

Ponytail 是装进 AI coding agent 的 skill,用七级懒人阶梯让 agent 写代码前先问该不该写。实测真实 Claude Code 会话平均少写 54% 代码、便宜 20%、快 27%,安全护栏一个不掉。

发布于 2026年8月8日8 分钟阅读
<!-- ponytail-resource | resource | Ponytail:让 AI coding agent 少写 54% 代码的 skill(GitHub 星 9.8 万) -->

你身边那个最懒的资深开发

每个公司都有这样一个人:长马尾、椭圆眼镜、在公司待的时间比版本控制还久。你给他看五十行代码,他看一眼,不说什么,删成一行,然后它能跑。

Ponytail 把这个人塞进了你的 AI coding agent。

GitHub 仓库 DietrichGebert/ponytail,2026 年 6 月 12 日创建,到今天(8 月 8 日)星 98,315、fork 5,401,MIT 协议,JavaScript,npm 包名 @dietrichgebert/ponytail,昨天还有 push。它的定位一句话:让 AI agent 像屋里最懒的资深开发那样思考——最好的代码,是你从未写过的代码。最硬的数字是仓库 README 自报的 benchmark:真实 Claude Code 会话编辑真实仓库,平均少写 54% 代码(最高 94%)、便宜 20%、快 27%,安全护栏一个不掉。

star 数截至 2026-08-08,实时变动;benchmark 数据来自仓库 README,来源标注见文末。

它是什么

Ponytail 不是模型、不是框架,是一个装进 AI coding agent 的 skill——一套规则集,在 agent 每次写代码前插一道"能不写就不写"的判断。形态上是 plugin/extension,装一次,每个会话自动生效。支持 20 个 agent 宿主:Claude Code、Codex、GitHub Copilot CLI、Gemini CLI、Cursor、Windsurf、Cline、Aider、Devin、OpenCode、Qoder、Grok Build 等全覆盖。

它要解决的问题很具体:AI coding agent 普遍过度产出代码(over-engineering)。你让它加个日期选择器,它装个 flatpickr、写个包装组件、加个样式表,还跟你讨论时区。Ponytail 的做法是让 agent 在写代码前先爬一道"懒人阶梯",停在第一个"够用"的那一级。

解决什么痛点

AI agent 的过度产出代码是个普遍到令人麻木的问题。拆三层:

1. 喜欢造轮子。库里已经有现成的、stdlib 能做的、平台原生支持的,agent 视而不见,从头写一遍。一个日期选择器能写成 404 行的组件树。

2. 不问该不该存在。YAGNI(You Ain't Gonna Need It)被无视,agent 把"也许将来用得上"的东西全堆进去——缓存类、抽象层、配置开关,代码膨胀但真正有用的没几行。

3. 省了字数但丢了安全。有人试过直接在 prompt 里写"写 one-liner",代码确实短了,但校验、错误处理、安全检查也被一起砍掉——短了不等于对。Ponytail 的核心主张恰恰反过来:规则从来不是"最少 token",而是只写任务需要的,校验、错误处理、安全、可访问性一律不碰。

核心功能:懒人阶梯 + 六条命令

七级懒人阶梯

agent 在写任何代码前,从上往下停在第一个成立的那一级:

bash
1. 这东西需要存在吗?     -> 不需要:跳过(YAGNI)
2. 代码库里已经有了吗?   -> 复用,别重写
3. 标准库能做吗?         -> 用它
4. 平台原生功能支持吗?   -> 用它
5. 已装的依赖能做吗?     -> 用它
6. 一行能写完吗?         -> 一行
7. 都不行:才写最少能跑的

关键点:阶梯在理解问题之后跑,不是代替理解。agent 会先读改动涉及的代码、追踪真实流程,再选停在哪一级——对方案懒,对读代码从不懒。trust-boundary 校验、防数据丢失、安全、可访问性永远不在砍除清单上。

Benchmark 数据

仓库 README 给了可复现的 benchmark,来源是真实 Claude Code 会话编辑 tiangolo 的 full-stack-fastapi-template(FastAPI + React 真实仓库),12 个 feature ticket,同一个 agent 装与不装 skill 对比,n=4,Haiku 4.5:

对照(vs 无 skill 基线)代码行数token成本耗时安全
ponytail-54%-22%-20%-27%100%
caveman(只压缩措辞的对照)-20%+7%+3%+2%100%
"YAGNI + one-liners" 裸 prompt-33%-14%-21%-30%95%

Ponytail 是唯一四个指标全降的 arm,也是唯一在降的同时安全分保持 100% 的。削减最大的是有真实过度产出代码陷阱的地方:日期选择器从 404 行降到 23 行(agent 转而用原生 <input type="date">)、颜色选择器从 287 行降到 23 行。在代码本来就已经最小的地方,削减接近零。

早期单次基准报告曾给出 80-94% 的数字;社区指出裸模型基线会用水话和选项凑数,仓库已修正为上面的 agentic 数字(80-94% 是每任务上限,不是均值)。

六条命令

命令做什么
/ponytail [lite / full / ultra / off]设强度,或关掉。不带参数报当前级别
/ponytail-review审查当前 diff 有没有过度产出代码,给一张删除清单
/ponytail-audit审查整个仓库,不止 diff
/ponytail-debt把你推迟的 ponytail: 快捷方式收进一本账,"稍后"不变成"永不"
/ponytail-gain显示已测量的收益看板(更少代码、更省成本、更快)
/ponytail-help命令速查

/ponytail ultra 留给代码库"私人恩怨"的场景。可用 PONYTAIL_DEFAULT_MODE 环境变量给每个新会话设默认级别(lite/full/ultra/off),默认 full。规则集也会注入到通过 Agent 工具拉起的子 agent 里。

三分钟上手

以 Claude Code 为例,两条命令(需分两次发送才能装上):

bash
/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail

Codex 略有不同:

bash
codex plugin marketplace add DietrichGebert/ponytail
codex plugin add ponytail@ponytail

GitHub Copilot CLI:

bash
copilot plugin marketplace add DietrichGebert/ponytail
copilot plugin install ponytail@ponytail

Cursor / Windsurf / Cline / Aider 这类不支持 plugin 命令的宿主,把仓库里对应的规则文件复制进项目即可(.cursor/rules/.windsurf/rules/.clinerules/.github/copilot-instructions.md)。node 需在 PATH 上——Nix/nvm 用户尤其注意要用非交互式 shell 的 PATH,否则 always-on 激活会静默失败(skill 本身仍可用)。卸载用 /plugin remove ponytail,再跑 node scripts/uninstall.js 清残留状态(注意先跑卸载脚本再删 plugin,脚本本身是 plugin 文件)。

适合谁 + 踩坑

适合:天天用 Claude Code / Codex / Copilot CLI 写代码、被 agent 过度产出代码折磨的人;维护历史包袱重、agent 动不动就重写一遍的大仓库的团队;想压 token 成本但不想牺牲安全的场景;做 code review、希望 agent 先审有没有过度产出代码再改的人。

踩坑

1. 它不是"永远更省"。在已经最小化的代码上削减接近零;少数推理型模型(如 GPT-5.5)反而因为思考 token 花在权衡阶梯的每一级上而更贵——成本降低是副产物,不是保证。

2. node 必须在 PATH。两个 lifecycle hook 是 Node.js,PATH 不对 always-on 激活会静默失败。Nix/nvm 用户尤其注意。

3. 命令需要 skill-capable 宿主/ponytail-review 这类命令只在 Claude Code、Codex、Devin、OpenCode、Gemini 等 skill-capable 宿主里可用;Cursor、Windsurf、Cline 这类 instruction-only 适配器只加载规则集,没有命令。

4. 别和裸 prompt 混为一谈。直接写"YAGNI + one-liners"的 prompt 看着效果接近,但 benchmark 里它掉了一个安全护栏(95% vs 100%)。skill 的价值在于"懒但不 negligent"。

和竞品比

cavemanJuliusBrussee/caveman):压缩的是 agent 说的措辞,代码逐字节不动。Ponytail 缩的是 agent 构建的内容。两半不重叠,README 明说可以且应该一起用——少说话,少造代码。

"YAGNI + one-liners" 裸 prompt:不装任何 skill,直接在 prompt 里写规则。benchmark 显示它确实降代码行数(-33%),但安全分掉到 95%——丢了护栏。Ponytail 的区别是保留全部安全检查的同时降四个指标。

Anthropic 官方 frontend-design skill:官方出品的设计前端 skill,走的是"指导怎么写得好看"的方向;Ponytail 走的是"该不该写"的方向,定位不同。同为 coding skill,可以共存。

想横向对比更多 coding skill 框架(impeccable、mattpocock/skills、superpowers 等),见本站旧文《AI coding skill 框架横评:ponytail、impeccable、mattpocock/skills、superpowers 怎么选》:ai-coding-skill-frameworks-comparison-review。另外如果你在找能自托管、跑任意任务的 AI agent 控制中心,见本站旧文《OpenHands 自托管 AI Agent 控制中心》:openhands-resource;做 AI 生图管线则见《ComfyUI:专业玩家为何不用网页生图(星12.3万)》:comfyui-resource。


参考来源

本文由 AI 辅助生成,经人工审核编辑。最后更新:2026-08-08

相关文章

开源项目

DeepSeek-Reasonix:DeepSeek 原生终端 coding agent(GitHub 星 2.86 万)

esengine/DeepSeek-Reasonix(28,575 星、1,836 fork、Go、MIT、2026-04-21 创建、今日 push)是社区构建的 DeepSeek 原生终端 coding agent,非 DeepSeek 官方产品。围绕 DeepSeek prefix cache 调优--缓存命中输入 0.02 元 vs 未命中 1 元,差 50 倍。单一 Go 静态二进制,config/plugin 驱动(reasonix.toml),支持双模型 executor+planner、MCP 插件、跨 6 平台编译。附四条安装路径与同类对比。

2026年8月2日8 分钟阅读
开源项目

Superpowers:给编码 Agent 一套完整方法论(GitHub 星 26.4 万)

obra/superpowers 是 GitHub 上 264,481 星的开源项目(MIT,Shell),不造模型不做编辑器,只给你的 coding agent 装上一套完整开发方法论。Agent 启动后先反问需求、拆 spec、分块确认、生成强调 TDD/YAGNI/DRY 的计划,再派子代理逐任务推进,可自主工作数小时不偏离。支持 Claude Code、Cursor、Codex 等 11 个 coding agent,技能自动触发。

2026年8月1日10 分钟阅读
开源项目

worldmonitor:7.9 万星的开源 AI 全球情报仪表盘

koala73/worldmonitor 是开源实时全球情报仪表盘,TypeScript 编写,AGPL v3 许可证,GitHub 星 79,487。用 AI 聚合 500+ 新闻源、地缘信号、金融行情与基础设施状态,双地图引擎(globe.gl + deck.gl)56 图层叠加,跨流关联军事/经济/灾害/升级信号,Country Instability Index 量化 31 国压力,本地 Ollama 跑无需 API key,6 个站点变体同源,Tauri 2 桌面应用,26 语言 + RTL。

2026年8月7日9 分钟阅读