用途
ponytail-audit 用于对整个代码仓库做过度工程(over-engineering)审计。它定位为 ponytail-review 的仓库级版本:ponytail-review 检查的是某一次 diff,而 ponytail-audit 扫描的是一整棵代码树。它面向的目标是发现可以删除、简化或替换的冗余代码,并按照“削减量从大到小”排序,让使用者优先处理收益最大的部分。
主要能力(标签体系)
该技能沿用 ponytail-review 的标签分类,每条发现归入以下类型之一:
- delete:死代码、无人使用的灵活性、推测性功能。替代方案:无(nothing)。
- stdlib:手写的、标准库其实已经提供的实现。需要指出对应的函数名。
- native:依赖或代码在做平台本身已经提供的事情。需要指出对应的平台特性名。
- yagni:只有一个实现的抽象、没人设置的配置项、只有一个调用方的中间层。
- shrink:逻辑相同但可以用更少行数表达。需要给出更短写法。
查找范围
技能会主动搜索以下模式:
- 标准库或平台已经内置、却仍被引入的依赖
- 只有一个实现的接口
- 只产出一种产品的工厂
- 仅做委托的包装器
- 只导出一个内容的文件
- 失效的标志位(flag)与配置
- 手写的标准库功能
输出格式
每条发现占一行,按排序输出,格式为:
<tag> <what to cut>. <replacement>. [path].
即:标签、要削减的内容、替代方案、文件路径。
最后以一行汇总收尾:
net: -<N> lines, -<M> deps possible.
表示预计可净减少多少行、多少个依赖。若没有可削减项,则输出:Nothing to cut: Lean already. Ship.
适用场景
- 在接手或审查一个陌生代码库时,快速定位过度设计。
- 做技术债清理、精简依赖、降低维护成本之前的盘点。
- 希望获得一份按优先级排序的“可删清单”,供人工进一步决策。
限制与边界
- 范围仅限过度工程与复杂度。正确性缺陷、安全漏洞、性能问题明确不在其职责内,需交由常规 review 流程处理。
- 只列出发现项,不应用任何修改。
- 属于一次性(one-shot) 执行。
- 可通过
"stop ponytail-audit"或"normal mode"退出该模式。
使用方式
资料中未提供具体的安装命令、调用命令或平台接入步骤,暂未提供相关信息。