大数跨境

以前担心 AI 不会写代码,现在担心 AI 写太多~屎山也越堆越高~

以前担心 AI 不会写代码,现在担心 AI 写太多~屎山也越堆越高~ 广东金融IT课程学习
2026-07-12
1

用 Claude Code 或者 OpenCode 做开发, 有时候一个简单的东西,非得整的很复杂,比如说帮我做个日期选择器,然后 AI 开始干活:

  • 安装一个第三方日期组件
  • 新建几个文件
  • 写一个 DatePicker 类
  • 封装 Hooks
  • 加动画
  • 加国际化
  • 加主题切换
  • 再顺便帮你写几个单元测试……

最后,一个原本一行 HTML 就能解决的问题,AI 给你生成了几百行代码。

而浏览器原生的:

 <input type="date">

一行就能解决~

有时候 AI 工具写的东西,比如颜色选择器、文件上传、表单验证等,代码量比实际需要多好几倍,倒不是说写错了,也能跑,但引入了不必要的复杂度,多了要维护的依赖,多了可能出问题的地方。

现在 AI 最大的问题,不是不会写代码,而是太喜欢写代码。


为什么会这样?

AI 在写代码的时候有一个倾向把能做到和应该做混在一起。

看到日期选择器,它知道可以用 flatpickr,于是用了,知道可以加时区处理,于是加了,知道可以封装成组件,于是封装了,每一步单独看都是合理的,但叠在一起就过了。

AI 不会先问这件事有没有更简单的做法。

解决这个问题的思路也不复杂,给 AI 一套判断优先级的规则,每次写代码之前先过一遍,确认有没有更简单的路径。

这就是我们今天要介绍的开源项目 -- Ponytail

Ponytail 是一个给 AI 编程工具用的插件,作用是让 AI 在写代码之前先走一遍判断流程,用能用的最简单的方案,而不是默认用最完整的方案。

目前 Github Star 数已经 76k+:

Ponytail  的核心是六个优先级判断,按顺序问下去,第一个成立就停:

  1. 这东西需要存在吗? → 不需要:跳过
  2. 标准库有吗? → 有:用标准库
  3. 平台/浏览器原生支持吗? → 有:用原生
  4. 项目里已经装了依赖吗? → 有:用现有的
  5. 能一行写完吗? → 能:写一行
  6. 以上都不符合:写能解决问题的最小实现

这套优先级判断逻辑建立在 AI 完整理解业务需求之后,不会跳过代码阅读环节。

插件会先读取待修改代码、梳理真实业务流程,再选择对应层级方案。

只在实现方案上追求极简,绝不偷懒跳过代码阅读。

GitHub:https://github.com/DietrichGebert/ponytail
支持工具:Claude Code、Codex、Cursor、Windsurf、GitHub Copilot、Gemini CLI 等。


效果测试

在 FastAPI + React 的真实代码库上跑了基准测试,同一个 AI(Claude Code + Haiku 4.5),同样的 12 个功能需求,加 Ponytail 和不加 Ponytail 各跑一遍,结果对比:

加 Ponytail 代码行数平均减少 54%,Token 消耗减少 22%,API 费用减少 20%,完成时间减少 27%,安全检查通过率100%。


安装

1、Claude Code:

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

2、Codex

codex plugin marketplace add DietrichGebert/ponytailcodex

启动后打开 /plugins,选 Ponytail marketplace 安装,再打开 /hooks,确认并信任两个生命周期钩子,重新开一个新线程。

3、Cursor / Windsurf / Aider

这几个工具不支持插件,用规则文件的方式接入,把仓库对应的文件复制到项目里:

拷贝对应的规则文件:

# Cursor:cp .cursor/rules/* your-project/.cursor/rules/# Windsurf:cp .windsurf/rules/* your-project/.windsurf/rules/# Aider:cp AGENTS.md your-project/AGENTS.md

4、Gemini CLI:

gemini extensions install https://github.com/DietrichGebert/ponytail

安装完之后每个会话自动加载规则,不需要每次手动触发。


快速上手

装好之后,正常让 AI 写代码,不需要改提示词,Ponytail 在后台自动运行。

验证有没有生效,可以让 AI 做一个简单的功能,比如:

帮我做一个日期输入组件,没装 Ponytail 之前,AI 大概率会安装一个日期库,写一个 wrapper。装了之后,应该输出:

<input type="date">

一行,搞定。

Ponytail 装好之后,有几个命令在特定场景下很实用:

1、调整强度

/ponytail lite      # 轻量模式,提示优先简洁/ponytail full      # 默认,六步判断都走/ponytail ultra     # 最激进,适合代码积累太多想大幅清理的情况/ponytail off       # 关掉/ponytail           # 查看当前是哪个模式

2、审查刚写的代码

/ponytail-review

审查当前 diff,列出哪些地方过度实现了,给你一个可以删掉的清单。刚写完一个功能,跑一下这个命令检查一遍,是个不错的习惯。

3、审查整个仓库

/ponytail-audit

不只看最新的改动,对整个仓库扫一遍,找出历史积累的过度实现。

4、整理技术债

/ponytail-debt

Ponytail 允许你在代码里用注释标记先欠着,以后再简化:

// ponytail: simplify when we have timeconst result = complexImplementation()

跑 /ponytail-debt 会把所有这类标记汇总成一个清单,让以后真的有个地方能找到。

【声明】内容源于网络
0
0
广东金融IT课程学习
服务于IT课程学习者
内容 1379
粉丝 0
广东金融IT课程学习 服务于IT课程学习者
总阅读10.3k
粉丝0
内容1.4k