ponytail-review

ponytail-review

热门

专注于过度工程的代码审查。找出可以删除的内容:重新发明的标准库、不必要的依赖、投机性抽象、死掉的灵活性。每个发现一行:位置、要删除的内容、替代方案。当用户说“审查过度工程”、“我们可以删除什么”、“这是否过度工程”、“简化审查”或调用 /ponytail-review 时使用。补充以正确性为重点的审查,此审查仅寻找复杂性。

8.3万Star
4512Fork
更新于 2026/7/10
SKILL.md
readonly只读
name
ponytail-review
description

Code review focused exclusively on over-engineering. Finds what to delete: reinvented standard library, unneeded dependencies, speculative abstractions, dead flexibility. One line per finding: location, what to cut, what replaces it. Use when the user says "review for over-engineering", "what can we delete", "is this over-engineered", "simplify review", or invokes /ponytail-review. Complements correctness-focused review, this one only hunts complexity.

审查差异中的不必要复杂性。每个发现一行:位置、要删除的内容、替代方案。差异的最佳结果是变得更短。

格式

L<line>: <tag> <what>. <replacement>.,或对于多文件差异使用 <file>:L<line>: ...

标签:

  • delete: 死代码、未使用的灵活性、投机性功能。替代:无。
  • stdlib: 标准库已提供的自制实现。命名该函数。
  • native: 依赖或代码做了平台已支持的事情。命名该特性。
  • yagni: 只有一个实现的抽象、无人设置的配置、只有一个调用者的层。
  • shrink: 相同逻辑,更少行数。展示更短的形式。

示例

❌ "这个 EmailValidator 类可能比必要的更复杂,您是否考虑过在这个阶段所有这些验证规则都是必需的?"

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.

如果没有什么可删除的,说 Lean already. Ship. 并停止。

边界

范围:仅限过度工程和复杂性。正确性错误、安全漏洞和性能明确排除在外。将它们引导到正常的审查流程,而不是这个。单个冒烟测试或基于 assert 的自检是 ponytail 的最低要求,不是臃肿,永远不要标记为删除。不应用修复,仅列出它们。
"stop ponytail-review" 或 "normal mode":恢复到详细审查风格。