Ponytail | 让 AI 编程代理先复用、再写最小实现

一个需求只是输入日期,AI 代理却引入新组件、包装组件,再补一层样式——Ponytail 针对的就是这类过度实现。它把“先理解代码,再检查能否复用”写成可供编程代理读取的规则,并通过插件或规则文件接入不同宿主。项目采用 MIT 许可,核心是一份编码决策提示词和配套适配层。

Ponytail AI 编程代理最小实现规则封面

读懂现有流程后,再沿着这条阶梯选择

Ponytail 要求代理先读涉及的代码、追踪实际数据流,然后停在第一个能满足需求的选项上。README 给出的顺序是:

  1. 是否确实需要这项实现?不需要就省去。
  2. 代码库里是否已有可用实现?有就复用。
  3. 标准库能否完成?优先用标准库。
  4. 浏览器、系统或运行时是否已有原生能力?先考虑原生能力。
  5. 项目已经安装的依赖是否能够处理?先用已有依赖。
  6. 能否用一行清楚的代码完成?能就保持简单。
  7. 前面都不成立,再写满足任务的最小实现。

这个顺序先判断需求和复用条件,最后才考虑写多少代码。如果已有组件封装了业务约束,应先检查它;直接改成更短的原生控件,可能反而丢掉项目需要的行为。

Ponytail 最小实现阶梯与安全护栏概念示意
Ponytail 的最小实现阶梯与安全护栏概念示意图,用于解释规则关系,并非某个 Agent 宿主的实际界面。

日期控件可以很小,业务要求仍要完整

README 用浏览器自带的日期输入作为例子:

<input type="date">

它可以成为普通日期输入的起点。若业务需要日期范围、特殊禁选规则或统一交互,就要逐项判断原生能力和现有组件是否满足。决定使用原生控件时,还需检查目标浏览器、键盘操作、标签、错误提示和服务端校验。

输入校验、数据丢失处理、安全和无障碍能力不在可删清单里。“最小”是满足任务后留下必要实现;必要部分不能因为行数减少就被省去。检查一次具体改动时,可以据此逐项判断哪些实现可以省去。

接入方式决定是否有钩子和命令

插件:自动加载规则并提供命令

当前 README 给 Claude Code 的安装方式是先后发送两条独立提示:

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

Codex 等宿主另有对应安装入口,按 INSTALL.md 选择。插件的生命周期钩子使用 Node.js,非交互 shell 的 PATH 也要能找到 node;规则文件能被读取,不代表钩子一定正常工作。实际调用语法和可用命令随宿主而异。

规则文件:只保留编码约定

不需要插件时,可以将官方紧凑规则与项目已有约定合并,或按宿主方式安装核心 Skill。instruction-only 适配器加载规则,不会自动获得完整的模式命令。已有 AGENTS.md 时,要保留其中的项目要求,避免直接覆盖。

资料应从官方 DietrichGebert/ponytail 仓库或 @dietrichgebert/ponytail npm 包取得。当前文档的接入步骤不一定适用于旧插件版本,安装与调用应对应同一版本。

用 review 看本次变更,audit 才看整个仓库

  • /ponytail:设置 lite、full、ultra、off 等强度;具体调用按宿主入口。
  • /ponytail-review:查看当前 diff,返回可以精简的项目;也可以用文字限定范围。
  • /ponytail-audit:检查整个仓库,范围比一次变更更大。
  • /ponytail-debt:整理以 ponytail: 标记的暂缓事项。
  • /ponytail-gain:展示项目基准测试的影响数据。

例如只想检查刚加的日期输入,先限定 review 的目标,看看新增依赖、包装和重复逻辑是否必要。删除清单是审查建议,仍应逐项对照功能、调用方和测试,不能收到建议就自动全部删除。切换模式也不等于更高强度一定更适合当前任务。

基准测试说明了什么,也没说明什么

README 的主要基准是在一个 FastAPI + React 仓库中,让无头 Claude Code 完成 12 项功能任务,用 Haiku 4.5、n=4 比较有无 Skill 的结果。项目报告的代码行数平均减少 54%、成本减少 20%、耗时减少 27%,这些是该测试条件下的结果。

原生日期控件这类有明显过度实现空间的任务差距较大,已经很小的实现则接近于零。README 也说明,早期单次回答测试受到基线回答中说明和备选方案的影响,不能把最高减少比例当作普遍收益。不同模型花在决策上的推理成本也可能增加。

其中的安全项通过率只对应测试中的检查,不能推导为任意生成代码都安全。判断是否适合自己的流程,应看真实变更有没有减少重复、是否仍满足需求,而不是只追逐行数或套用宣传比例。MIT 许可同样不替代项目审查和宿主权限管理。

  • 项目规则与命令:https://github.com/DietrichGebert/ponytail
  • 不同宿主安装方式:https://github.com/DietrichGebert/ponytail/blob/main/INSTALL.md
  • 基准方法与限制:https://github.com/DietrichGebert/ponytail/blob/main/benchmarks/results/2026-06-18-agentic.md
Ponytail | 让 AI 编程代理先复用、再写最小实现 - 杂货喵
Ponytail | 让 AI 编程代理先复用、再写最小实现
此内容为免费资源,请登录后查看
M币0
发布平台GitHub
编码语言JavaScript
运行方式Agent插件/规则集
项目版本v4.9.0
项目许可MIT
支持系统多种Agent宿主
免费资源
© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容