SuperAPI AI 工具集

code-review

编程与开发

查看项目

更新于 10-13 17:18

技能介绍

用途

code-review 是一个专家级代码审查技能,聚焦于代码质量、安全漏洞和可维护性。它分析代码变更,并提供按优先级排序、可落地的反馈。

适用时机

  • 在编写或修改代码后,确保达到质量标准
  • 在合并 Pull Request 或部署变更之前
  • 进行安全审计或漏洞评估时
  • 为项目建立代码质量标准时
  • 审查代码以寻找性能优化点时
  • 确保代码遵循项目约定与最佳实践时

主要能力

  • 分析代码变更:审查 git diff 和被修改的文件,理解改动了什么
  • 安全审计:识别暴露的密钥、API key 以及安全漏洞
  • 质量评估:评估代码可读性、可维护性与最佳实践
  • 性能审查:识别潜在性能问题和优化机会
  • 标准合规:确保代码遵循项目约定与风格指南
  • 优先级反馈:按严重程度(Critical、Warnings、Suggestions)组织审查结果

使用方式

基础代码审查

可以用自然语言下达指令,例如:

  • “审查本分支最近的代码变更”
  • “检查这个文件的安全问题和代码质量”

审查指定文件

  • “审查 src/auth.js 的安全漏洞”
  • “审查这个 pull request 中的变更”

审查流程

1. 分析变更

被调用时:

  • 获取最近变更:运行 git diff 查看改动
git diff $(git merge-base HEAD main)..HEAD
  • 聚焦被修改的文件:优先处理有实际改动的文件
  • 结合上下文:从提交信息或对话中理解变更目的

2. 审查检查清单

对每个文件检查:

代码质量:

  • 代码简洁可读
  • 函数和变量命名良好
  • 无重复代码
  • 恰当的错误处理
  • 良好的测试覆盖
  • 已考虑性能因素

安全性:

  • 无暴露的密钥或 API key
  • 已实现输入校验
  • 恰当的身份认证/授权
  • 安全处理用户输入
  • 无 SQL 注入或 XSS 漏洞

可维护性:

  • 代码风格一致
  • 注释适当(不过度)
  • 函数/方法结构清晰
  • 关注点分离得当
  • 无不必要的复杂度

最佳实践:

  • 遵循框架/库约定
  • 恰当使用设计模式
  • 算法与数据结构高效
  • 恰当使用 async/await 或 promises
  • 恰当的资源清理

3. 组织反馈

反馈分三个优先级:

Critical Issues(必须修复):

  • 安全漏洞
  • 会导致失败的 bug
  • 会破坏现有功能的代码
  • 会影响用户的性能问题

Warnings(应当修复):

  • 影响可维护性的代码质量问题
  • 潜在 bug 或边界情况
  • 性能优化点
  • 缺失的错误处理
  • 不完整的测试覆盖

Suggestions(可以考虑改进):

  • 代码风格改进
  • 重构机会
  • 文档增强
  • 最佳实践建议
  • 次要优化

4. 提供具体示例

对每个发现的问题给出:

  • Location:文件路径和行号
  • Issue:问题的清晰描述
  • Impact:为什么这很重要
  • Fix:展示如何修复的具体代码示例
  • Rationale:解释该修复为何更好

示例

示例 1:发现安全问题

输入:审查 src/api/auth.js

输出:

## Code Review: src/api/auth.js

### Critical Issues

**1. Exposed API Key**
- **Location**: `src/api/auth.js:23`
- **Issue**: Hardcoded API key in source code
- **Code**:
  ```javascript
  const API_KEY = "sk_live_1234567890abcdef"; // ❌ Exposed secret
  • Fix: Use environment variables

    const API_KEY = process.env.API_KEY; // ✅ Secure
    
  • Impact: This exposes your API key in version control, allowing unauthorized access

Warnings

2. Missing Input Validation

  • Location: src/api/auth.js:45
  • Issue: No validation on user input before processing
  • Recommendation: Add input validation before authentication

### 示例 2:代码质量审查

输入:审查最近的变更

输出:

Code Review Summary

Files Reviewed: 5 Critical Issues: 0 Warnings: 3 Suggestions: 5

Warnings

1. Duplicated Code

  • Files: src/utils/format.js:12-25 and src/utils/display.js:8-21
  • Issue: Same formatting logic duplicated
  • Fix: Extract to shared utility function

2. Missing Error Handling

  • Location: src/api/users.js:34
  • Issue: No try/catch for async operation
  • Fix: Add proper error handling

Suggestions

1. Improve Variable Naming

  • Location: src/components/List.jsx:15
  • Current: const d = data.map(...)
  • Suggested: const formattedItems = data.map(...)

## 参考文件

进行完整审查时,可按需加载参考文件:

- references/review_checklist.md —— 覆盖安全、代码质量、性能、测试、文档和最佳实践的详细检查清单
- references/CODE_ANALYSIS.template.md —— 包含安全、性能和可维护性章节的代码分析报告模板

进行深入审查时,加载 references/review_checklist.md 并使用对应的检查清单章节。

## 最佳实践

### 审查关注点

- 安全优先:始终先检查安全漏洞
- 上下文很重要:审查前先理解变更目的
- 建设性:提供可执行的反馈,而不只是批评
- 排优先级:聚焦必须修复的关键问题
- 解释原因:帮助开发者理解建议背后的理由

### 审查准则

- 具体:指向确切的行并提供代码示例
- 平衡:既肯定好代码,也指出问题
- 务实:考虑变更的上下文与紧迫性
- 有教育意义:帮助开发者学习与提升
- 一致:在所有审查中应用相同标准

### 常见检查模式

安全性:

- 硬编码的密钥或凭据
- SQL 注入漏洞
- XSS 漏洞
- 缺失的身份认证/授权
- 不安全的随机数生成

代码质量:

- 代码重复
- 未定义常量的魔法数字
- 过深的嵌套条件
- 职责过多的函数
- 糟糕的错误信息

性能:

- N+1 查询问题
- 缺失索引
- 低效算法
- 不必要的重渲染(React)
- 内存泄漏

## 相关使用场景

- 提交前代码审查
- Pull Request 审查
- 安全审计
- 代码质量评估
- 新团队成员入职
- 建立编码标准