# ponytail-cn
**Repository Path**: yangshun2016/ponytail-cn
## Basic Information
- **Project Name**: ponytail-cn
- **Description**: [中文化] Makes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote.
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-08-14
- **Last Updated**: 2026-08-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
> **[中文化] ponytail**
>
> 此项目是 [DietrichGebert/ponytail](https://github.com/DietrichGebert/ponytail) 的中文翻译版本。
> - 原项目 Stars: 102479
> - 主语言: JavaScript
> - 许可证: MIT
> - 翻译日期: 2026-08-14
> - 原始 README: [README_en.md](README_en.md)
>
> 如有翻译不准确之处,欢迎提 Issue 或 PR。
---
---
Ponytail
他沉默不语。他写下一行代码。它就能运行。
减少约54%的代码(最高可达94%)· 成本降低约20% · 速度提升约27% · 100%安全
基于真实的 Claude Code 会话,在编辑一个真实的开源仓库(FastAPI + React)时,与未使用该技能的同一代理进行对比测量。约54%是12个功能任务的平均值(Haiku 4.5,n=4);在代理过度构建(如日期选择器)的情况下可达94%,而在代码已经极简的情况下则接近零。ponytail 保留了所有安全防护措施,而单纯的“写一行代码”提示则会丢失一项。(早期单次基准测试报告了80-94%的固定数字;与公平的代理基线相比,这是每个任务的上限,而非平均值。)完整报告 · 复现结果。
Español · 한국어
---
你认识他。长长的马尾辫。椭圆形的眼镜。他在公司的时间比版本控制系统还长。你给他看五十行代码;他看了看,一言不发,然后用一行代码替换掉它们。
Ponytail 将他放进了你的 AI 代理中。
## 前后对比
你要求一个日期选择器。你的代理安装了 flatpickr,编写了一个包装组件,添加了一个样式表,并开始讨论时区问题。
使用 ponytail:
```html
```
更多幸存案例见 [examples/](examples/)。
## 数据
诚实的衡量标准是让真实代理做真实工作:一个无头 Claude Code 会话编辑 [tiangolo 的 full-stack-fastapi-template](https://github.com/fastapi/full-stack-fastapi-template)(一个真实的 FastAPI + React 仓库),根据其留下的 `git diff` 进行评分。十二个功能工单,同一代理分别使用和不使用该技能,n=4,Haiku 4.5。
| 对比无技能基线 | 代码行数 | Token | 成本 | 耗时 | 安全 |
|---|--:|--:|--:|--:|--:|
| **ponytail** | **-54%** | **-22%** | **-20%** | **-27%** | **100%** |
| caveman(简洁提示对照组) | -20% | +7% | +3% | +2% | 100% |
| “YAGNI + 一行代码”提示 | -33% | -14% | -21% | -30% | 95% |
ponytail 是唯一在所有指标上都有所削减的分支,也是唯一在削减的同时保持完全安全的分支。削减幅度最大的是存在真正过度构建陷阱的地方(日期选择器从404行降至23行,颜色选择器从287行降至23行,因为它直接使用原生 `` 而非组件),而在代码已经极简的情况下则接近零。完整方法、逐任务表格和局限性:[benchmarks/results/2026-06-18-agentic.md](benchmarks/results/2026-06-18-agentic.md)。
早期单次数据(独立生成)
五个日常任务,三个模型,三个分支(无技能、[caveman](https://github.com/JuliusBrussee/caveman)、ponytail),十次运行,报告中位数。一次提示、一次完成,统计答案的代码行数:
这显示了**减少80-94%的代码**。[#126](https://github.com/DietrichGebert/ponytail/issues/126) 公正地指出,裸模型基线用散文和选项填充了答案,因此这一差距部分是对话基线的产物。上述代理数据是修正后的、可辩护的版本。使用 `npx promptfoo eval -c benchmarks/promptfooconfig.yaml` 复现单次运行。
**规则从来不是“最少的 Token”。** 而是:只编写任务所需的内容,绝不削减验证、错误处理、安全性或可访问性。代码之所以精简,是因为必要,而非刻意压缩。降低成本和延迟是遵循该阶梯的模型的附带效果;一个简洁的推理模型如果花费思考 Token 来斟酌阶梯的每一级,可能会走向相反的方向(在 GPT-5.5 上确实如此)。
## 工作原理
在编写代码之前,代理会停在第一个适用的阶梯层级:
```
1. 这需要存在吗? → 不需要:跳过(YAGNI)
2. 代码库中已有? → 复用,不要重写
3. 标准库能实现? → 使用它
4. 原生平台功能? → 使用它
5. 已安装的依赖? → 使用它
6. 一行代码? → 一行代码
7. 只有在那时:能工作的最小实现
```
该阶梯在代理*理解问题之后*运行,而非替代理解:它会阅读变更涉及的代码,并在选择层级之前追踪真实流程。对解决方案懒惰,但从不懒惰于阅读。
懒惰,而非疏忽:信任边界验证、数据丢失处理、安全性和可访问性永远不会被削减。
## 安装
这是 ponytail 对你提出的最大要求:
Claude Code 和 Codex 插件运行两个微小的 Node.js 生命周期钩子,因此 `node` 需要在你的 PATH 中(Nix/nvm 用户注意:它必须在非交互式 shell 的 PATH 中)。如果没有,技能仍然可以工作,只是始终开启的激活会保持静默,而不是在每次提示时出错。
### Claude Code
```
/plugin marketplace add DietrichGebert/ponytail
```
```
/plugin install ponytail@ponytail
```
(你需要发送两条单独的提示才能完成安装)
在 Claude Code 桌面应用的 Code 标签页中执行相同步骤:在提示框中输入上述两条 `/plugin` 命令,或点击旁边的 **+** 按钮,选择 **插件** → **添加插件** 以浏览已配置的市场,并从侧边栏的 **自定义** 管理市场。
### Codex
```bash
codex plugin marketplace add DietrichGebert/ponytail
codex plugin add ponytail@ponytail
```
运行 `codex` 并打开 `/hooks`,审查并信任其两个生命周期钩子,然后开始一个新线程。
此安装同样适用于 Codex 桌面应用:安装后重启应用即可加载插件。
### GitHub Copilot CLI
```bash
copilot plugin marketplace add DietrichGebert/ponytail
copilot plugin install ponytail@ponytail
```
在交互式 Copilot CLI 会话中,使用斜杠命令的等效形式:
```
/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail
```
Copilot CLI 按插件名称对插件命令进行命名空间划分。例如:
```text
/ponytail:ponytail ultra
/ponytail:ponytail-review
```
### Pi agent harness
```
pi install git:github.com/DietrichGebert/ponytail
```
### OpenCode
添加到 `opencode.json`:
```json
{ "plugin": ["@dietrichgebert/ponytail"] }
```
改为从检出目录运行(插件会复用 `hooks/` 和 `skills/`):
```json
{ "plugin": ["./.opencode/plugins/ponytail.mjs"] }
```
每轮在活动级别注入规则集;添加 `/ponytail` 命令(见 [命令](#commands))。OpenCode 还会自动加载此仓库的 `AGENTS.md`,因此即使没有插件,规则也适用。插件添加了 `lite/full/ultra/off` 级别。
`./` 路径相对于你的项目的 `opencode.json` 解析;要在多个项目间共享一个检出目录,请将其指向 `.mjs` 的绝对路径(它会相对于自身文件查找 `hooks/` 和 `skills/`)。
### Gemini CLI
```bash
gemini extensions install https://github.com/DietrichGebert/ponytail
```
每会话将规则集作为始终开启的上下文加载,并注册 `/ponytail` 命令;`skills/` 也会随附,在任务需要时激活。
Gemini 适配器有意不附带根级 `hooks/hooks.json`:Gemini 会自动加载该路径,而 Ponytail 的生命周期钩子使用 Claude/Codex 事件名称。
### Qoder
Qoder 会从仓库根目录自动加载 `AGENTS.md` 作为始终开启的上下文,因此从检出目录运行 ponytail 无需任何设置。对于项目级规则,将 [`.qoder/rules/ponytail.md`](.qoder/rules/ponytail.md) 复制到你的项目的 `.qoder/rules/` 中。六个 ponytail 技能(`/ponytail`、`/ponytail-review`、`/ponytail-audit`、`/ponytail-debt`、`/ponytail-gain`、`/ponytail-help`)可通过 Qoder 的技能系统使用;[`.qoder-plugin/plugin.json`](.qoder-plugin/plugin.json) 中的插件清单指向 `skills/` 目录。
如需完整的插件级支持(自动模式激活 + 每次提示注入规则集),请将 [`hooks/qoder-hooks.json`](hooks/qoder-hooks.json) 中的钩子添加到你的 `.qoder/settings.json`。将 `PONYTAIL_DIR` 替换为你的 ponytail 检出路径。Qoder 的 `UserPromptSubmit` 钩子在首次提示时激活默认模式,并在每轮注入规则集;带有 `task|Task` 匹配器的 `PreToolUse` 将规则集注入子代理。级别切换(`/ponytail lite|full|ultra|off`)自动工作。
### Antigravity CLI
Google 正在将 Gemini CLI 更名为 Antigravity CLI(`agy` 二进制文件);相同的扩展安装在那里:
```bash
agy plugin install https://github.com/DietrichGebert/ponytail
```
它复用此仓库的 `gemini-extension.json`。一个区别:Antigravity 将 `/ponytail` 命令转换为技能,因此你在聊天中输入它们(例如将 `/ponytail-review` 作为消息发送),而不是从斜杠菜单中选择。在迁移完成之前(大约2026年6月18日),`gemini extensions install` 仍然有效。若要将其作为始终开启的规则运行,请将规则集放入 `.agents/rules/`。
### Hermes Agent
```bash
hermes plugins install DietrichGebert/ponytail --enable
```
安装后重启 Hermes。该插件在每次 LLM 轮次前注入活动的 Ponytail 模式,将捆绑的技能注册为 `ponytail:`,并添加 `/ponytail`、`/ponytail-review`、`/ponytail-audit`、`/ponytail-debt`、`/ponytail-gain` 和 `/ponytail-help`。在共享网关中,使用 Hermes 斜杠命令访问控制将 `/ponytail` 限制为受信任用户;运行时模式是进程本地的。
### CodeWhale
从项目根目录读取 `AGENTS.md`,零设置。将 [`AGENTS.md`](AGENTS.md) 复制到你的项目,或从此仓库的检出目录运行 `codewhale`。就这样。
### Swival
先将集合暂存到你的库中,然后添加你想要的技能:
```bash
swival skills add --global https://github.com/DietrichGebert/ponytail # 暂存到 ~/.config/swival/library
swival skills add ponytail # 将集合安装到当前项目
swival skills add --global ponytail # 或在每个项目中激活
```
Swival 还会从项目根目录读取 `AGENTS.md`,并从 `~/.config/swival/AGENTS.md` 全局读取,作为仅指令的回退方案。
在命令行中,使用 `$` 前缀显式激活技能。例如:`$ponytail-review`。
### Devin CLI
```bash
devin plugins install DietrichGebert/ponytail
```
将 ponytail 安装为 Devin 插件;技能以 `/ponytail:ponytail`、`/ponytail:ponytail-review` 等形式提供。
### OpenClaw
```bash
clawhub install ponytail
```
将 ponytail 作为 OpenClaw 技能从 ClawHub 安装;review、audit、debt、gain 和 help 技能以相同方式安装(`clawhub install ponytail-review`,依此类推)。OpenClaw 在编码任务中应用它,并将其作为 `/ponytail` 命令公开。如果没有 ClawHub,请将 [`.openclaw/skills/ponytail`](.openclaw/skills/) 复制到 `~/.openclaw/skills/`。
### Grok Build
```bash
grok plugin install DietrichGebert/ponytail --trust
```
启用插件(默认关闭):`/plugins` → 插件 → 在 `ponytail` 上按空格,或在 `~/.grok/config.toml` 中:
```toml
[plugins]
enabled = ["ponytail"]
```
开始新会话(或重新加载插件)。技能显示为 `/ponytail`、`/ponytail-review`、`/ponytail-audit`、`/ponytail-debt`、`/ponytail-gain`、`/ponytail-help`。使用 `grok inspect` 验证。Grok 可以根据技能描述自动为编码任务调用 ponytail;当需要显式激活时,使用 `/ponytail`(或 `/ponytail lite`、`/ponytail full`、`/ponytail ultra`)。不使用 Grok 生命周期钩子,因为它们的 SessionStart 输出无法注入指令。
`AGENTS.md` 在没有插件的情况下,从检出目录仍可作为仅指令方式工作。
就这样。他会感到自豪。他不会说出口。
每个会话都处于活动状态,并带有少量命令(见 [命令](#commands))。`/ponytail ultra` 适用于代码库对你个人造成伤害的情况。启动和模式切换文本显示当前模式。
使用 `PONYTAIL_DEFAULT_MODE` 环境变量(`lite`/`full`/`ultra`/`off`)或 `~/.config/ponytail/config.json` 中的 `defaultMode` 字段(Windows 上为 `%APPDATA%\ponytail\config.json`)为每个新会话设置级别。默认值为 `full`。
活动期间,规则集也会注入到通过 Agent 工具生成的每个子代理中。要将其限定到特定代理类型(例如,保持只读搜索代理不受影响),请将 `PONYTAIL_SUBAGENT_MATCHER` 环境变量设置为针对子代理的 `agent_type` 测试的正则表达式。它是非锚定且不