强度等级与六个命令
同一个需求,三种强度的答复完全不同。先看这个对照,你就知道自己该常驻在哪一档。
lite / full / ultra / off
6 个技能
Cursor 只有 1 个
1四个等级
| 等级 | 它做什么 | 适合 |
|---|---|---|
lite | 照你说的做,但在后面用一行点出更懒的替代方案,你来选 | 不想被改需求,但想被提醒 |
full(默认) | 强制执行梯子,标准库和原生优先,最短 diff + 最短解释 | 日常默认值 |
ultra | YAGNI 极端主义。删除优先于新增,给出那一行实现,并在同一句话里质疑剩下的需求 | 被过度工程伤过之后 |
off | 关闭。标志文件被删除,当轮注入 PONYTAIL MODE OFF | 这个任务不适合偷懒时 |
官方对
ultra 的原话挺有意思:「当代码库得罪过你本人的时候」用它。2同一个需求,三种强度
需求:「给这些 API 响应加个缓存。」这是原文里唯一的对照示例,很值得逐字读——因为它同时展示了三种强度的语气差异。
lite
「做完了,缓存加上了。顺带一提:如果你不想自己维护一个缓存类,
functools.lru_cache 一行就能覆盖这个场景。」full
fetch 函数上加 @lru_cache(maxsize=1000)。
skipped: 自定义缓存类,等 lru_cache 实测不够用再加。ultra
「在没有 profiler 数据之前不加缓存。
真要加的时候:@lru_cache。
手搓一个带 TTL 的缓存类是个命中率不明的 bug 农场。」读这三段的差别:lite 尊重你的决定并提醒;full 直接给更懒的方案并说明跳过什么;ultra 连「要不要做」本身都提出质疑。你的容忍度决定你常驻哪一档。
注意三档都没有做的一件事:都没有写那个自定义缓存类。差别只在于「谁来决定」。这就是为什么它能同时做到「省代码」和「不越权」。
3怎么切、怎么设默认
| 想做的事 | Linux / macOS 与多数宿主 | Cursor |
|---|---|---|
| 临时切强度 | /ponytail lite | 把 /ponytail lite 当普通消息发出 |
| 查看当前强度 | /ponytail | /ponytail |
| 关闭 | /ponytail off | 同左,或 stop ponytail / normal mode |
| 设默认 | PONYTAIL_DEFAULT_MODE=lite 环境变量,或 ~/.config/ponytail/config.json 的 defaultMode | |
| 持久化默认(CLI 里最方便) | /ponytail default lite | |
强度是会话级持久的:改了就一直用,直到你改回来或者会话结束。它不会自己漂回 full——这正是设计意图(文档里用的词是 no drift back to over-building)。
还有个容易忽略的细节:即使你不确定,规则也默认生效(still active if unsure)。关闭只有两条路:
stop ponytail 或 normal mode。4六个技能
仓库里是六个独立技能目录,主技能负责「写的时候偷懒」,另外五个是围绕它的工作流工具。
| 命令 | 做什么 | 什么时候用 |
|---|---|---|
/ponytail [lite|full|ultra|off] | 设强度或关闭;不带参数就报告当前等级 | 最常用 |
/ponytail-review | 审当前 diff 的过度工程,交回一份「可删除清单」 | 提交前 |
/ponytail-audit | 审整个仓库的过度工程,不止 diff | 接手老项目、月度体检 |
/ponytail-debt | 把散落的 ponytail: 注释收成一份台账,防止「以后再说」变成「永远不说」 | 技术债管理 |
/ponytail-gain | 展示基准测试的实测成绩板(更少代码、更少成本、更快) | 想知道值不值得留 |
/ponytail-help | 上面这些命令的速查 | 忘了命令时 |
5重要澄清:Cursor 里只有 /ponytail 一个
这一条如果没先知道,很容易以为装坏了。官方原文写得非常明确:
命令需要支持技能的宿主才能用——Claude Code、Codex、Devin CLI、OpenCode、Gemini、pi、Swival、Hermes、Qoder、Grok Build。带 hooks 的 Cursor 只得到
/ponytail 的强度切换,而且要当普通消息打。而只装规则文件的适配器(Cursor 规则、Windsurf、Cline、Copilot、Kiro、Antigravity)连强度切换都没有,只有常驻规则。也就是说,下面这五个命令在 Cursor 里不可用:
/ponytail-review·/ponytail-audit·/ponytail-debt·/ponytail-gain·/ponytail-help
在 Codex 里这些技能要用
@ 调用(例如 @ponytail-review);Copilot CLI 是命名空间化写法 /ponytail:ponytail-review;Swival 用 $ 前缀;Antigravity 把命令转成技能,直接当消息发。变通办法:在 Cursor 里想要「审查当前 diff 有没有过度工程」,可以直接用自然语言描述需求(「按 ponytail 的标准审一下当前 diff,只要一份可删除清单」),常驻规则会让它知道标准是什么。
6和 caveman 一起用
官方 FAQ 的第一个问题就是这个,答案很干脆:可以,而且建议一起用。
caveman
压缩助手说了什么(散文变短),代码逐字节保持原样。
ponytail
压缩助手造了什么(代码变少),不碰散文。
两者各占一半、互不重叠:terse talk about minimal code(用最少的字,讲最少的代码)。
这也是第 1 章那句「它管写多少、不管怎么说话」的来源。如果你的助手话多但代码已经很少,你需要的是 caveman;如果话不多但每次都给你三百行,你需要的是 ponytail。