7层决策阶梯(Laziness Ladder)
Agent每次生成代码前,必须从梯顶向下走,停在第一个满足条件的梯级:
1
这东西需要存在吗?
不需要 → 跳过(YAGNI原则)
3
标准库能做到吗?
Python stdlib → 不pip install
4
原生平台特性覆盖吗?
浏览器 <input type="date"> → 不装datepicker库
7
以上都不行:写最小可工作代码
最短diff、最小文件数、最简实现
关键设计:梯级是"反射而非研究项目",但必须先深入理解问题再爬楼梯。Ponytail明确规定"懒惰削减的是解决方案的长度,不是阅读代码的时间"。
三种模式
lite · 轻量
建议模式,不强制
构建你要求的功能,但标记出可以更"懒"的替代方案,让你自己决定是否采用。
full · 默认
强制执行决策阶梯
标准库和原生优先,最短diff。日常编码推荐。
ultra · 极端
YAGNI极端版
先删后加。在给出代码的同时质疑需求合理性。适用于代码库过度复杂的场景。
六个子技能
🔄/ponytail
切换模式(lite/full/ultra/off)
🔍/ponytail-review
审查当前文件是否存在过度工程
📝/ponytail-debt
记录被迫写的过渡代码(技术债务追踪)
📈/ponytail-gain
节省量记分板(统计少写/删除了多少代码)
适配器架构:单一信源模式
┌─────────────────────┐
│ skills/ponytail/ │
│ SKILL.md │ ← 唯一信源(~100行)
│ (权威版本) │
└──────────┬──────────┘
│
┌──────────────────┼──────────────────┐
│ │ │
plugin hooks rule files AGENTS.md
│ │ │
┌───────┼───────┐ │ ┌───────┼───────┐
│ │ │ │ │ │ │
Claude Codex Gemini Cursor/ CodeWhale Qoder OpenClaw
Code CLI Windsurf/ (AGENTS.md) (clawhub)
Cline/Kiro
16+平台覆盖:Claude Code · Codex · Copilot CLI · Cursor · Windsurf · Cline · Gemini CLI · OpenCode · OpenClaw · Qoder · 等
安全保护:"绝对不砍"清单
Ponytail明确列出了不可简化的安全边界——这是它与纯"写一行"提示词的关键区别:
- 信任边界的输入验证 — 永不可简化
- 防止数据丢失的错误处理 — 永不可简化
- 安全措施(Security measures)— 永不可简化
- 无障碍基础(Accessibility basics)— 永不可简化
- 用户明确要求的完整版 — 无条件构建,不争辩
SKILL.md质量评估
问题清单
⚠️ 设计系统冲突风险:"原生平台优先"(梯级4)排在"已安装依赖"(梯级5)之上。在有shadcn/ui等设计系统的项目中,可能导致Agent选原生控件而非项目组件库。
缓解方案:在项目AGENTS.md中声明设计系统规则(如"UI组件一律使用shadcn/ui")。