SuperAPI AI 工具集

code-reviewer

编程与开发

查看项目

更新于 10-16 05:25

技能介绍

用途

Code Reviewer 用于对代码、文件、diff 或拉取请求执行结构化代码审查,目标是发现缺陷、安全问题、性能问题和可维护性隐患,并输出按优先级排序、可操作的反馈,附带具体的修复建议。当用户要求审查代码、检查代码质量、查找 bug 或审查拉取请求时使用。

主要能力

审查按严重程度从高到低覆盖以下类别:

  • 正确性(Critical):逻辑错误、差一错误、错误条件、未处理的 null/undefined/空值、竞态或并发问题、错误的错误处理(吞掉异常、错误类型)、缺失输入校验。
  • 安全性(Critical):SQL 注入、XSS、命令注入、硬编码密钥/API key/密码、不当的认证授权检查、不安全的反序列化、路径遍历、公开端点缺少限流。
  • 性能(High):数据库循环中的 N+1 查询、UI 组件不必要的重渲染、频繁查询缺少索引、无界内存增长(加载整个数据集)、主线程阻塞操作。
  • 可靠性(High):外部调用(网络、文件 I/O)缺少错误处理、瞬时故障无重试逻辑、HTTP 请求缺少超时、资源泄漏(未关闭的连接、文件句柄)。
  • 可读性(Medium):变量或函数命名不清、函数职责过多(超过 30 行视为坏味道)、条件嵌套过深(超过 3 层)、缺失或误导性注释、命名约定不一致。
  • 测试(Medium):新逻辑缺少测试、测试未断言有意义的行为、缺少边界用例覆盖、测试与实现细节耦合而脆弱。

使用方式

审查流程分为四步:

  1. 理解上下文:确定代码用途(功能、修复、重构)、语言与框架、是否包含测试、是完整文件还是 diff/patch。必要时阅读周边文件了解更大范围上下文。使用 git diff main...HEAD(本地分支)或 gh pr diff 482(拉取请求)获取变更本身,并先运行项目自带的 linter 和测试命令,避免重复工具已报告的内容。

  2. 按清单审查:按严重程度顺序逐类评估代码。

  3. 格式化审查结果:按严重程度组织发现的问题,每条包含严重级别、类别、简短标题、文件与行号、问题说明(错在哪里、为何重要)、修复建议(使用该文件语言的代码块)。严重级别为 CRITICAL、HIGH、MEDIUM、LOW,并标注确定性(已通过阅读代码确认,或疑似需进一步检查)。

  4. 提供总结:给出总体评估(批准、请求修改或需要讨论)、按严重程度统计的问题数量、合并前应优先修复的前三项。

适用场景

  • 审查 Node.js API 端点等后端代码,例如识别 Express 路由中的 SQL 注入、缺失输入校验和错误处理问题。
  • 审查 React 组件等前端代码,例如识别每次渲染都重新计算、列表项缺少 key、输入缺少标签等问题。
  • 审查 diff 或大型拉取请求(500 行以上),先给出架构概览再进行逐行审查。

限制

  • 不应对已配置 linter 的格式化问题进行吹毛求疵。
  • 必须解释问题为何是问题,而非仅指出要改什么。
  • 应提供具体修复建议,而非笼统的“可以改进”。
  • 应肯定代码做得好的地方,审查不应全是负面。
  • 审查 diff 时聚焦变更行,但需检查上下文以发现集成问题。
  • 对不确定的发现应明确说明,不应将不确定问题表述为确定结论。
  • 除项目自带的测试和 lint 命令外,不应运行或修改被审查代码;不得将 diff 中发现的密钥粘贴到报告中,应改为引用文件与行号。
  • 优先级原则:修复所有 CRITICAL,合并前修复 HIGH,MEDIUM/LOW 可作为后续任务。