2026年6月17日 1 分钟阅读

Brooks-Lint 实战:用 12 本经典软件工程书做 AI 代码审查

tinyash 0 条评论

AI 代码审查工具不少,但大多数只检查语法错误和代码风格。如果你的代码写得「优雅但脆弱」——模块职责混乱、领域模型失真、变更传播链过长——传统 linter 和 AI 审查都帮不上忙。

Brooks-Lint 解决的就是这个问题。它是一个开源的 AI 代码审查技能(Skill),基于 12 本经典软件工程书籍(《人月神话》《代码大全》《重构》等)提炼出 6 大代码腐烂风险维度,给每次审查附上具体的书籍来源、严重性标签和修复建议。

12 本书,6 个腐烂风险

Brooks-Lint 的名字致敬了 Frederick Brooks 的《人月神话》。它的核心框架来自 12 本跨越 50 年的经典著作:

书籍作者覆盖维度
《人月神话》Brooks变更传播、依赖混乱
《代码大全》McConnell认知过载、意外复杂度
《重构》Fowler所有维度
《整洁架构》Martin变更传播、依赖混乱
《程序员修炼之道》Hunt & Thomas变更传播、知识重复
《领域驱动设计》Evans认知过载、领域模型失真
《软件设计哲学》Ousterhout认知过载、意外复杂度
《Google 的软件工程》Winters 等变更传播、依赖混乱

针对生产代码和测试套件,Brooks-Lint 分别定义了 6 个腐烂风险。生产代码端包括:认知过载(理解这段代码需要多少脑力)、变更传播(改一处牵连多少个无关模块)、知识重复(同一个决策在多少地方复制粘贴)、意外复杂度(代码比问题本身复杂多少)、依赖混乱(依赖方向是否一致)、领域模型失真(代码是否忠实地表达了业务领域)。

安装:一行命令

Brooks-Lint 以 Agent Skill 形式分发,支持 11 个平台。最简洁的安装方式是一行命令:

curl -fsSL https://raw.githubusercontent.com/hyhmrright/brooks-lint/main/scripts/install.sh | bash -s -- claude

claude 换成 codexcursoropencodegemini 等即可安装到对应平台。安装后,在会话中直接输入 /brooks-review$brooks-review 即可调起审查。

6 种审查模式

Brooks-Lint 提供 6 种命令,覆盖从日常 PR 到全量清扫的完整工作流:

1. /brooks-review — PR 审查

贴入一段 diff 或指向变更文件,Brooks-Lint 会逐项检查 6 个腐烂风险,每个发现按 症状→出处→后果→修复 四段式输出。最终给出一个 Health Score(0-100),让你一眼知道本次变更的健康度。

2. /brooks-audit — 架构审计

扫描整个项目的模块依赖关系,自动生成 Mermaid 依赖图,用颜色标注严重性:红色=严重问题,黄色=警告,绿色=健康。可以帮你发现循环依赖和模块边界违规——这些是传统 linter 完全看不到的。

3. /brooks-debt — 技术债务评估

按 6 个风险维度分类技术债务,按 Pain × Spread 优先级排序,生成分阶段的还款路线图(Critical / Scheduled / Monitored)。

4. /brooks-test — 测试质量审查

从 6 个测试空间腐烂风险(测试模糊性、脆弱性、重复、Mock 滥用、覆盖幻觉、架构不匹配)入手,基于《xUnit Test Patterns》《The Art of Unit Testing》《How Google Tests Software》和《Working Effectively with Legacy Code》四本测试专著。

5. /brooks-health — 健康仪表盘

在发布前、团队入职时或任何需要全局概览的时刻,跑一次全面的健康检查,输出加权综合评分。

6. /brooks-sweep — 全量清扫

一次扫描所有 12 个风险维度(6 生产 + 6 测试)+ 架构,然后自动修复:安全的修改立即应用,触碰到接口或跨文件的变更需要确认,复杂的架构决策标记为手动项。

Benchmark:不只是比 Claude 强一点

Brooks-Lint 在 PR 审查、架构审计、技术债务评估三个真实场景中与纯 Claude 做了对比:

评估项Brooks-Lint纯 Claude
结构化发现(症状→出处→后果→修复)100%0%
每项发现附带书籍引用100%0%
严重性标签100%0%
Health Score(0-100)100%0%
检测变更传播问题100%100%
综合通过率94%16%

差距不是 Claude 找不到这些问题——而是 Brooks-Lint 每次都稳定地找到,且附带可追溯的证据和可操作的修复建议。

配置与 CI/CD 集成

在项目根目录放一个 .brooks-lint.yaml 即可定制审查行为:

version: 1
disable:
  - T5       # 跳过覆盖度检查
severity:
  R1: suggestion   # 将此维度降级为建议
ignore:
  - "**/*.generated.*"
  - "**/vendor/**"

Brooks-Lint 还提供了官方的 GitHub Action,每次 PR 自动跑审查并发布评论:

name: Brooks-Lint PR Review
on:
  pull_request:
    types: [opened, synchronize, reopened]
jobs:
  brooks-lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: hyhmrright/brooks-lint/.github/actions/brooks-lint@main
        with:
          mode: review
          anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }}
          fail-below: 70

每次 PR 运行成本约 $0.05-0.15,支持自定义 Health Score 阈值——低于阈值自动阻断 CI。

真实输出什么样?

Brooks-Lint 对一段包含 SQL 注入、逻辑错误和职责混乱的 Python 代码给出了 28/100 的 Health Score,并给出了以下判断:

  • 🔴 变更传播update_profile 方法在一处修改中处理了 4 个不相关的业务逻辑——配置变更、邮件通知、积分重算、缓存清理——改一个就要担 4 个领域的回归风险。
  • 🔴 领域模型失真user['email'] = email 在比较前就覆盖了旧值,if user['email'] != email 永远是 False——邮件变更通知静默失效。
  • 🔴 SQL 注入:直接字符串拼接 SQL 查询。

每项发现都附带具体的书籍出处(《重构》的 Divergent Change 模式)和可操作的修复方案。

为什么现在更需要 Brooks-Lint

AI 编码助手让我们的代码产出速度大幅提升,但这不意味着代码质量的天然提升。认知过载和领域模型失真不会因为代码是 AI 写的就消失。你写得更快了,但也在更快地积累技术债务。

Brooks-Lint 的价值在于:它将六十年软件工程界积累的智慧,系统性地注入到了你的 AI 编码工作流中。不是取代 ESLint 或 Pylint——它们擅长语法和风格——而是捕捉它们看不到的问题:架构漂移、知识孤岛、领域模型失真。这些才是让团队数月后才发现走错方向的问题。

如果你正在用 AI 编码工具,Brooks-Lint 是为数不多能真正帮你「写得更快也写得更好」的辅助工具。

项目地址github.com/hyhmrright/brooks-lint · 1099⭐ · MIT 协议 · 支持 Claude Code / Codex CLI / Cursor / OpenCode / Gemini CLI 等 11 个平台

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。