code-review-russ-cox 是一个代码审查与审计技能,以 Russ Cox 的工程视角评判代码的长期维护成本。它不关注短期风格偏好,而是追问:这段代码是否应该存在、是否位于正确的抽象层、接缝是否最小、错误与日志是否规范、测试是否可靠、文档是否清晰,以及整体是否臃肿。
用途
该技能用于两类任务:
- 变更审查:输入是 diff、PR、提议的新功能或新依赖,执行四轮检查。
- 包审计:输入是既有代码,触发词包括 audit、polish、refactor、what's wrong with this package。审计时完整阅读目标代码(包括文档注释、测试和导入),并抽样阅读调用方,然后从六个维度评估,最后给出重构计划。
在两种模式开始前,都必须先用一句话说明代码解决的问题。如果无法说明,应向用户提问。在既有代码库中,应先搜索已有原语,再评判新代码——最常见的发现是已有 helper、interface 或 package 已经实现了相同功能。
主要能力
变更审查:四轮检查
- 功能蔓延:是否解决了现有组件无法组合解决的真正问题?五年维护成本是否值得用户价值?
- 错误层级:是否在治标而非修复拥有该行为的层级?
- 依赖爆炸:依赖实际做什么?带来什么传递成本?能否用 20-50 行替代?启发式:难写的导入,核心的自有,小的复制。
- 质量债务:新维护者六个月后能否理解?债务是否配有具体的偿还触发条件?
包审计:六个维度
这些是原则而非合规清单,需翻译为代码库自身的语言、生态和规模,不适用的维度应静默跳过(CLI 脚本没有接缝可审计;无状态库没有长运行循环)。不得写出要求其他项目惯用法的发现——应指出原则及其本地翻译。
- 接缝:代码是否在每个外部边界(存储、网络、LLM、时钟、exec)拥有最小接口,重依赖是否隔离在叶子包中?外部类型是否跨越内部接缝?每个接口旁是否有 fake 并在文档中说明?
- 组合收益:给定下层抽象,每个单元是否近乎平凡?如果包很胖,说明下层抽象错了。如果显式状态、迭代器栈、队列或状态机主要用于记录执行应恢复的位置,应问直接控制流是否能让单元变得平凡。配置应是对象上的方法/字段;必需依赖应是位置构造参数——不为单个调用者使用函数式选项或配置结构体样板。
- 错误制度:按谁的 bug 划分:程序员 bug 和损坏的不变量应快速失败(panic/assert),并作为文档化策略;可恢复错误应带上下文,用于预期的环境故障;长运行循环中应记录并继续,使单个坏项不能杀死整轮。错误路径是否被测试?
- 可观测性:Logger 作为依赖注入,绝不全局。结构化键值属性;消息字符串是稳定的全小写标识符,变量数据放在属性中,而非插值。测试日志通过测试框架路由,仅在失败时出现。
- 测试:每个接口都有 fake;确定性测试(不依赖时序/竞态);网络调用使用 record/replay;人类可编辑的 fixture;多实现接口使用一致性套件;覆盖缺口用注释说明理由,而非忽略。
- 文档与风格:每个包都有真正的包文档;主包的文档是活的架构导览。文档注释说明契约、边界情况和成本形态,而非机制:昂贵的 API 应看起来昂贵,廉价的 API 应看起来廉价。行内注释只写为什么;TODO 签名并附上已考虑过的权衡;真正的设计疑虑应记录,而非抹平。
通用测试
- 简单性:能在两分钟内向聪明的初级工程师解释清楚。
- 删除:如果删除它不会改变任何重要东西,就删除。
- 组合:当现有原语能干净组合时,使用它们。
- 未来的自己:在故障期间能理解。
- 抽象:等待 3 个真实用例再泛化。
使用方式
该技能通过输入类型自动选择模式:diff、PR、新功能或新依赖触发变更审查;既有代码加 audit、polish、refactor 等词触发包审计。输出契约如下:
- 发现优先:必须修复、考虑、开放问题;省略空部分。除非被要求,否则不写赞美。
- 变更审查发现前缀 [Pass N | file:line];审计发现前缀 [Dim N | file:line]。
- 每条发现指出不应存在、应移动层级或应简化的内容,并给出一个具体替代方案(勾勒形状,而非仅指出)。
- 审计模式以重构计划结束:步骤按收益排序,每步说明它能删除或简化什么。每步必须可独立发布——可作为单个 PR 审查,每个点测试通过;标记任何改变行为的步骤。
- 最后是简要总结。
完整哲学、红旗目录、措辞模式和每个维度背后的 oscar-repo 范例见 REFERENCE.md。
适用场景
- 审查 PR 或 diff,判断是否引入不必要的功能、错误层级或依赖。
- 审计既有包,识别接缝、组合、错误处理、可观测性、测试和文档方面的问题。
- 在重构前评估代码库,制定以删除为衡量标准的重构计划。
- 在引入新依赖前评估其长期维护成本。
限制
该技能是原则驱动的审查框架,不是自动化合规检查清单。它要求审查者理解代码库的本地语言和生态,并将原则翻译为本地实践。不适用于需要机械式规则检查的场景。具体平台支持、安装方式、收费模式等信息暂未提供。