SuperAPI AI 工具集

ponytail-review

编程与开发

查看项目

更新于 10-15 10:17

技能介绍

用途

ponytail-review 是一个代码审查技能,专门针对“过度工程”(over-engineering)问题。它审查代码差异(diff),目标是找出可以删除的内容,让 diff 变得更短。

主要能力

它聚焦于以下几类不必要的复杂度:

  • delete:死代码、无人使用的灵活性、投机性功能。替代方案:无。
  • stdlib:手写的、标准库已经提供的实现。需指出对应的函数名。
  • native:依赖或代码在做平台本身已经能做的事。需指出对应的平台特性。
  • yagni:只有一个实现的抽象、没人设置的配置、只有一个调用方的分层。
  • shrink:逻辑相同但行数更少的写法。需给出更短的形式。

使用方式

输出格式为每条发现一行:

  • 单文件 diff:L<line>: <tag> <what>. <replacement>.
  • 多文件 diff:<file>:L<line>: ...

示例:

  • L12-38: stdlib: 27-line validator class. "@" in email, 1 line, real validation is the confirmation mail.
  • L4: native: moment.js imported for one format call. Intl.DateTimeFormat, 0 deps.
  • repo.py:L88: yagni: AbstractRepository with one implementation. Inline it until a second one exists.
  • L52-71: delete: retry wrapper around an idempotent local call. Nothing replaces it.
  • L30-44: shrink: manual loop builds dict. dict(zip(keys, values)), 1 line.

审查结束时给出唯一评分指标:net: -<N> lines possible(净可减少 N 行)。

如果没有任何可删内容,则输出 Lean already. Ship. 并停止。

适用场景

适用于希望精简代码、减少不必要抽象和依赖的代码审查场景。它只列出问题,不实际应用修复。

限制

  • 范围仅限过度工程与复杂度。正确性 bug、安全漏洞和性能问题明确不在范围内,应转交常规审查流程。
  • 单个冒烟测试或基于 assert 的自检是 ponytail 的最低要求,不算臃肿,不应被标记删除。
  • 不应用修复,只列出清单。
  • 可通过 stop ponytail-review 或 normal mode 切换回详细审查风格。