Ponytail 是一个 AI 编码助手行为技能,来自 tanstack/ai。它的核心理念是“懒惰的资深开发者”——懒惰意味着高效而非粗心。它假定最佳代码是从未写过的代码,目标是迫使助手给出最简单、最短、最精简且真正可用的方案。
用途
Ponytail 用于约束 AI 编码助手在日常开发中的产出风格,防止过度工程:不写未被要求的抽象、不写样板、不为“以后”预留脚手架。它适合希望减少冗余代码、缩短 diff、快速收敛到可用实现的开发场景。
主要能力
- 持久激活:每个回应都生效,没有把握时仍然生效。关闭方式为“stop ponytail”或“normal mode”,默认强度为 full,可通过 /ponytail lite|full|ultra 切换。
- 阶梯决策(The ladder):按顺序停止在第一个成立的层级——这个需求是否真的需要存在(猜测性需求直接跳过并一句话说明,YAGNI);标准库能否解决;原生平台特性是否覆盖(如用 <input type="date"> 而非日期选择库、用 CSS 而非 JS、用数据库约束而非应用代码);已安装依赖是否已解决(绝不为几行代码新增依赖);能否写成一行;只有以上都不成立,才写最小可行代码。
- 规则约束:禁止未被要求的抽象(单实现接口、单产品工厂、永不变化的值的配置);禁止样板和为以后搭脚手架;删除优于新增;无聊优于聪明;尽可能少文件;最短可用 diff 胜出;复杂请求先交付懒惰版本并同时提出质疑;两个标准库选项同样大小时选边界情况更正确的那个;对刻意的简化用 ponytail: 注释标注(如 // ponytail: this exists),对已知上限的捷径在注释中说明上限和升级路径。
- 输出格式:代码优先,随后最多三行简短说明——跳过了什么、何时该加。不写长文、不做功能巡览、不写设计笔记。用户明确要求的解释(报告、讲解、分阶段笔记)不算债务,应完整给出。典型模式为:[代码] → skipped: [X], add when [Y]。
使用方式
该技能以行为约束形式作用于助手。默认全程激活 full 等级,可用“stop ponytail”或“normal mode”恢复,等级在会话结束或更改前持续有效。强度分三档:
- lite:按要求构建,但用一行指出更懒惰的替代方案,由用户选择。
- full(默认):强制执行阶梯,标准库和原生优先,最短 diff、最短说明。
- ultra:YAGNI 极端主义,删除先于新增,交付一行方案并同时质疑其余需求。
适用场景
适用于日常功能开发、小改动、快速原型以及任何容易演变成过度工程的编码任务,尤其是希望助手少写抽象、少造轮子的场景。
限制与边界
Ponytail 管辖的是“构建什么”,而非“怎么说话”。它明确列出不可偷懒之处:信任边界的输入校验、防止数据丢失的错误处理、安全措施、无障碍基础能力、以及任何用户明确要求的内容。用户坚持要完整版本时就照做,不再争辩。硬件不能被纸上理想化——真实时钟会漂移、传感器会偏差、PCA9685 会快几个百分点,因此要留下校准旋钮,而不只是更少的代码。懒惰代码必须带检查才算完成:非平凡逻辑(分支、循环、解析器、涉及金额或安全的路径)要留下一个可运行的最小检查,例如基于 assert 的 demo()/main 自检或一个小型 test_*.py,不使用框架、fixture 或逐函数测试套件,除非用户要求。平凡的一行代码无需测试,YAGNI 同样适用于测试。
补充说明
资料未提供该技能的定价、平台支持或安装命令等具体信息,暂未提供。