agents24 agent-teams 插件的评审维度检查清单:为并行代码审查建立可执行的多维评审标准
本文以 review-dimensions.md 中的五大评审维度检查清单为主体,结合 agents24 仓库中 agent-teams 插件的 team-reviewer 智能体定义 与 /team-review 命令编排,讲解多智能体并行代码审查中每个维度“查什么、按什么顺序查、发现如何结构化上报”。读完本文,你可以理解该插件如何把 Security、Performance、Architecture、Testing、Accessibility 五个维度的审查拆解为可逐项核销的 Checklist,并与发现去重、严重度校准机制配合,产出一份可追溯的合并评审报告。
检查清单在并行评审流程中的位置
agents24 仓库的 agent-teams 插件基于 Claude Code 的实验性 Agent Teams 能力,把一次代码审查拆成多个专职评审员并行执行。其分工链条是:
- team-reviewer.md 定义了单一维度的评审员:它被分配一个维度(security / performance / architecture / testing / accessibility),只在该维度内深挖,产出带
file:line定位、严重度等级和修复建议的结构化发现; - team-review.md 定义了编排流程:解析目标(文件、目录、git diff 区间或 PR 号)→ 为每个维度生成一个
{dimension}-reviewer→ 收集各维度的结构化发现 → 去重、按严重度归并 → 输出合并报告并清理团队资源; - 本文的主题文件 review-dimensions.md 则是这套流程的“执行手册”:它把每个维度展开为带
- [ ]复选框的详细检查清单,供评审员在并行评审时逐项核对。
也就是说,team-reviewer.md 描述的是“每个维度关注哪些主题”(如 Security 维度关注输入校验、认证授权、SQL 注入/XSS/CSRF、密钥暴露、依赖 CVE 等),而检查清单文件进一步把这些主题落成可逐项打勾的具体验证点。下面逐维度完整介绍这些清单及其设计意图。
安全评审检查清单(Security)
安全维度覆盖输入处理、认证授权、密钥与配置、依赖四个子域,是评审用户输入或涉及认证的代码时必查的维度。
输入处理
- [ ] 所有用户输入都经过验证与净化
- [ ] SQL 查询使用参数化语句(禁止字符串拼接)
- [ ] HTML 输出正确转义以防止 XSS
- [ ] 文件路径经过校验以防止路径穿越
- [ ] 强制限制请求体大小
认证与授权
- [ ] 所有受保护端点都要求认证
- [ ] 授权检查验证用户是否有权执行该操作
- [ ] JWT 令牌经过完整校验(签名、过期时间、签发者)
- [ ] 密码哈希使用 bcrypt/argon2(而非 MD5/SHA)
- [ ] 会话管理遵循最佳实践
密钥与配置
- [ ] 无硬编码的密钥、API Key 或密码
- [ ] 密钥从环境变量或密钥管理器加载
- [ ]
.gitignore包含敏感文件模式 - [ ] 生产环境中禁用调试/开发端点
依赖
- [ ] 直接依赖中无已知 CVE
- [ ] 依赖锁定到具体版本
- [ ] 无增大攻击面的不必要依赖
与 team-reviewer.md 中 Security 维度的主题描述对照可见,清单把“不安全的加密使用”“API 安全(限流、输入边界)”等主题细化成了可操作的核对点,例如“请求大小限制”“依赖版本锁定”。按该插件的严重度校准规则(见 multi-reviewer-patterns 的 SKILL.md),可被外部用户利用的安全漏洞一律定为 Critical 或 High,因此这一维度产出的发现天然排在报告前列。
性能评审检查清单(Performance)
性能维度覆盖数据库、内存与资源、计算三个子域,适合在修改数据访问层或热路径代码时启用。
数据库
- [ ] 不存在 N+1 查询模式
- [ ] 查询使用合适的索引
- [ ] 大表上不做
SELECT * - [ ] 列表端点实现了分页
- [ ] 配置了连接池
内存与资源
- [ ] 无内存泄漏(事件监听器被清理、流被关闭)
- [ ] 大数据集采用流式处理,而非整体载入内存
- [ ] 文件句柄与连接被正确关闭
- [ ] 昂贵操作使用了缓存
计算
- [ ] 无不必要的重复计算或冗余操作
- [ ] 算法复杂度与数据规模匹配
- [ ] I/O 密集场景使用了异步操作
- [ ] 主线程上无阻塞操作
对照 team-reviewer.md 中 Performance 维度的主题(N+1/缺索引/全表扫描、内存分配与潜在泄漏、缓存机会与失效、异步正确性、资源清理、算法复杂度、包体大小与懒加载),检查清单将其中后端相关部分展开为具体核对点;而“包体大小与懒加载”这类前端性能主题则由该维度的描述兜底,体现了“清单为主、维度描述为辅”的分工。性能发现按校准规则在热路径上至少定为 Medium。
架构评审检查清单(Architecture)
架构维度覆盖设计原则、结构、模式三个子域,适合结构性变更或新增模块时使用。
设计原则
- [ ] 单一职责:每个模块/类只有一个变更原因
- [ ] 开闭原则:不修改即可扩展
- [ ] 依赖倒置:依赖抽象而非具体实现
- [ ] 模块之间无循环依赖
结构
- [ ] 关注点分离清晰(UI、业务逻辑、数据层)
- [ ] 全代码库的错误处理策略一致
- [ ] 配置外部化而非硬编码
- [ ] API 契约定义清晰且带版本管理
模式
- [ ] 全代码库模式使用一致(无模式混用)
- [ ] 抽象层级合适(不过度设计也不欠设计)
- [ ] 模块边界与领域边界对齐
- [ ] 共享工具真正被共享(无重复实现)
值得注意的是,清单把“配置外部化”放在架构维度,而安全维度同时检查“密钥从环境变量/密钥管理器加载”——两个维度从不同角度覆盖同一处代码,这正是并行评审后需要发现去重的原因。
测试评审检查清单(Testing)
测试维度覆盖覆盖率、质量、可维护性三个子域,适合新增功能时启用。
覆盖率
- [ ] 关键路径有测试覆盖
- [ ] 边界情况有测试(空输入、null、边界值)
- [ ] 错误路径有测试(失败时发生什么)
- [ ] 集成点有集成测试
质量
- [ ] 测试是确定性的(无 flaky 测试)
- [ ] 测试是隔离的(测试间无共享状态)
- [ ] 断言足够具体(不满足于“没抛异常”)
- [ ] 测试命名清晰描述测试内容
可维护性
- [ ] 测试没有复制实现逻辑
- [ ] Mock/Stub 最少化且准确
- [ ] 测试数据清晰且相关
- [ ] 不看实现也能读懂测试
与 team-reviewer.md 中 Testing 维度的八项主题(关键路径覆盖缺口、测试隔离与确定性、Mock 恰当性、边界条件、集成测试完整性、命名与文档、断言质量、测试可维护性与脆弱性)逐项对应,可以推断该清单是由维度描述“落地化”而来,每项主题都能找到对应的可勾选项。
无障碍评审检查清单(Accessibility)
无障碍维度覆盖结构、交互、内容三个子域,适合 UI/前端变更时启用。该维度是五个维度中唯一有明确量化阈值的:
结构
- [ ] 使用语义化 HTML 元素(nav、main、article、button)
- [ ] 标题层级逻辑正确(h1 → h2 → h3)
- [ ] ARIA role 与属性使用正确
- [ ] 地标(Landmarks)标识页面区域
交互
- [ ] 全部功能可通过键盘访问
- [ ] 焦点顺序逻辑且可见
- [ ] 无键盘陷阱
- [ ] 触摸目标至少 44x44px
内容
- [ ] 图片具备有意义的 alt 文本
- [ ] 颜色不是传达信息的唯一手段
- [ ] 文本对比度充足(正文 4.5:1,大字 3:1)
- [ ] 内容在 200% 缩放下仍可读
其中 44x44px 触摸目标、4.5:1 / 3:1 对比度阈值与 team-reviewer.md 中“WCAG 2.1 AA 合规”的要求一致,使评审员可以直接对照 WCAG 级别给出结论。按严重度校准规则,核心功能的无障碍违规至少定为 Medium。
从清单到报告:发现格式、去重与严重度校准
检查清单的价值最终体现在合并报告中。三个机制保证多评审员结果不会互相矛盾或重复:
结构化发现格式
team-reviewer.md 要求每条发现使用固定结构:标题含严重度前缀(如 ### [SEVERITY] Finding Title),并包含 Location(path/to/file.ts:42 形式)、Dimension、Severity、Evidence(含代码片段)、Impact、Recommended Fix 六个字段。行为准则还要求:严格停留在被分配维度内、每条发现必须引用具体 file:line、严重度基于证据而非印象、区分“已确认问题”与“潜在隐患”、对无发现的维度如实报告而非凑数。
发现去重规则
当多个评审员在同一位置报告问题时,multi-reviewer-patterns 的 SKILL.md 定义了合并规则:
- 同 file:line、同问题 — 合并为一条发现,署名所有评审员;
- 同 file:line、不同问题 — 保留为两条独立发现;
- 同问题、不同位置 — 分开保留但互相交叉引用;
- 严重度冲突 — 采用更高等级;
- 修复建议冲突 — 两条都保留并标注来源评审员。
去重流程逐条检查各报告中的 file:line 是否重合,重合时判断是否描述同一问题:同一问题则合并并保留更详细的描述,不同问题则都保留并打上 “co-located” 标签,合并后的严重度取最高值。/team-review 命令 的 Phase 4 正是按这套规则执行:去重 → 冲突取更高等级 → 按 Critical/High/Medium/Low 分组 → 交叉引用跨维度出现的发现。
严重度校准标准
| 严重度 | 影响 | 可能性 | 典型示例 |
|---|---|---|---|
| Critical | 数据丢失、安全入侵、完全失效 | 确定或极有可能 | SQL 注入、认证绕过、数据损坏 |
| High | 显著功能影响、性能退化 | 很可能 | 内存泄漏、缺失校验、流程中断 |
| Medium | 部分影响、存在绕过方案 | 有可能 | N+1 查询、缺失边界用例、错误信息不清晰 |
| Low | 影响极小、外观问题 | 不太可能 | 风格问题、次要优化、命名 |
配套的校准规则把检查清单中常见命中项直接映射到等级:可被外部用户利用的漏洞一律 Critical/High;热路径性能问题至少 Medium;关键路径缺测试至少 Medium;核心功能无障碍违规至少 Medium;无功能影响的风格问题为 Low。这解释了为何清单把“N+1 查询”放在性能维度、“缺失边界用例”放在测试维度——它们在合并报告中的起始等级都已预设。
合并报告模板与实操方式
评审完成后,按 SKILL.md 中的报告模板输出:头部包含 Target、Reviewers(各维度)、Date、Files Reviewed;正文按 Critical/High/Medium/Low 分节,每条发现带编号(如 [CR-001])及 Location/Dimension/Description/Impact/Fix 字段;结尾是一张按维度 x 严重度交叉统计的 Summary 表加总体建议。
实操层面,README 给出了完整的启动方式:先设置环境变量 export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1,在 ~/.claude/settings.json 中配置 teammateMode(推荐 "tmux",可选 "iterm2" 或默认的 "in-process"),安装插件后直接运行:
/team-review src/ --reviewers security,performance,architecture
该命令的 argument-hint 为 <target> [--reviewers security,performance,architecture,testing,accessibility] [--base-branch main],其中 target 可以是文件路径、目录、git diff 区间(如 main...HEAD)或 PR 号(如 #123);--reviewers 缺省为 security,performance,architecture,即 team-spawn 的 review 预设默认组合。针对特定变更类型,SKILL.md 还给出了推荐组合:API 端点变更选 Security + Performance + Architecture;前端组件选 Architecture + Testing + Accessibility;数据库迁移选 Performance + Architecture;认证变更选 Security + Testing;完整功能评审则启用除 Accessibility 外的全部维度。
小结
review-dimensions.md 把 agent-teams 插件的多维评审从“维度主题描述”推进到了“逐项可核销的检查点”:安全维度 18 项核对点覆盖输入、认证、密钥、依赖四层纵深;性能维度 14 项聚焦数据库、资源与计算;架构维度 12 项约束 SOLID、结构与模式一致性;测试维度 12 项兼顾覆盖、质量与可维护;无障碍维度 12 项以 WCAG 量化阈值收口。配合 team-reviewer 智能体的结构化发现格式与 SKILL.md 的去重、校准规则,这套清单使并行评审的产出收敛为一份按严重度排序、可追溯到人(评审员)和位置(file:line)的合并报告,这正是该插件“多维度并行审查”能力的执行层保障。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0624
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00