用途 ponytail-review 是一个代码审查技能,审查对象是代码差异(diff),目标只有一个:找出不必要的复杂度并给出删减建议。它明确指出,一份 diff 最好的结果是变得更短。注意,该技能只列出发现,不实际应用修复。
主要能力 它专注于过度工程化与复杂度,按以下标签给出单行审查意见,格式为“位置: 标签 内容。替代方案。”,多文件 diff 使用“文件:行号”定位:
- delete:死代码、无用的灵活性、推测性功能,替代方案为删除。
- stdlib:手写实现了标准库已提供的功能,需指明对应函数。
- native:依赖或代码在做平台本身已能完成的事,需指明对应特性。
- yagni:只有一个实现的抽象、没人设置的配置、只有一个调用方的分层。
- shrink:逻辑相同但可以更短,需给出更简短的写法。
输出风格强调简洁与可执行,例如用一行指出 27 行的邮箱校验类应改为判断是否包含“@”,并说明真正的验证靠确认邮件;或指出为一次格式化调用引入 moment.js,可用 Intl.DateTimeFormat 替代且零依赖。
评分与结束方式 每条审查意见输出后,以“net: -N lines possible”作为最终指标,表示可能减少的行数。若没有可删减的内容,直接输出“Lean already. Ship.”并停止。
使用方式 资料未提供具体安装或调用命令,暂未提供。资料仅说明可通过“stop ponytail-review”或“normal mode”退出该精简审查风格,恢复为详细审查模式。
适用场景 适合对代码差异做轻量、聚焦的审查,快速识别可删除的冗余代码、重复造轮子、多余依赖和过度抽象,帮助代码库保持精简。
限制与边界 范围仅限于过度工程化与复杂度;正确性缺陷、安全漏洞和性能问题明确不在范围内,应转交常规审查流程。单个冒烟测试或基于断言的自我检查属于该技能要求的最低限度,不算冗余,不应建议删除。此外,它不应用修复,只列出建议。