Ponytail 新手教程

强度等级与六个命令

同一个需求,三种强度的答复完全不同。先看这个对照,你就知道自己该常驻在哪一档。

lite / full / ultra / off 6 个技能 Cursor 只有 1 个

1四个等级

等级它做什么适合
lite照你说的做,但在后面用一行点出更懒的替代方案,你来选不想被改需求,但想被提醒
full(默认)强制执行梯子,标准库和原生优先,最短 diff + 最短解释日常默认值
ultraYAGNI 极端主义。删除优先于新增,给出那一行实现,并在同一句话里质疑剩下的需求被过度工程伤过之后
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。