code-review-expert

code-review-expert

热门

以资深工程师视角对当前 Git 变更进行专业代码审查,检测 SOLID 违规、安全风险,并提出可操作的改进建议。

3760Star
332Fork
更新于 2026/5/11
SKILL.md
只读
名称
code-review-expert
描述

以资深工程师视角对当前 Git 变更进行专业代码审查,检测 SOLID 违规、安全风险,并提出可操作的改进建议。

代码审查专家

概述

对当前 Git 变更进行结构化审查,重点关注 SOLID 原则、架构、可删除代码及安全风险。默认仅输出审查结果,除非用户要求实施修改。

严重级别

级别 名称 描述 操作
P0 严重 安全漏洞、数据丢失风险、正确性缺陷 必须阻止合并
P1 高 逻辑错误、严重 SOLID 违规、性能回退 应在合并前修复
P2 中 代码异味、可维护性问题、轻微 SOLID 违规 在此 PR 中修复或创建后续任务
P3 低 风格、命名、小建议 可选改进

工作流程

1) 前置上下文

  • 使用 git status -sb、git diff --stat 和 git diff 确定变更范围。
  • 如有需要,使用 rg 或 grep 查找相关模块、用法和契约。
  • 识别入口点、所有权边界和关键路径(认证、支付、数据写入、网络)。

边界情况:

  • 无变更:如果 git diff 为空,告知用户并询问是否要审查暂存变更或特定提交范围。
  • 大差异(超过 500 行):先按文件汇总,然后按模块/功能区域分批审查。
  • 混合关注点:按逻辑功能分组发现,而非仅按文件顺序。

2) SOLID + 架构异味

  • 加载 references/solid-checklist.md 获取具体提示。
  • 检查:
    • 单一职责原则:模块过载,包含不相关的职责。
    • 开闭原则:频繁编辑以添加行为,而非使用扩展点。
    • 里氏替换原则:子类破坏预期或需要类型检查。
    • 接口隔离原则:宽接口包含未使用的方法。
    • 依赖倒置原则:高层逻辑绑定到低层实现。
  • 提出重构时,解释为什么它能改善内聚/耦合,并概述一个最小、安全的分割方案。
  • 如果重构不简单,提出增量计划而非大规模重写。

3) 可删除代码 + 迭代计划

  • 加载 references/removal-plan.md 获取模板。
  • 识别未使用、冗余或通过功能开关关闭的代码。
  • 区分现在安全删除与延迟处理并制定计划。
  • 提供后续计划,包含具体步骤和检查点(测试/指标)。

4) 安全与可靠性扫描

  • 加载 references/security-checklist.md 获取覆盖范围。
  • 检查:
    • XSS、注入(SQL/NoSQL/命令)、SSRF、路径遍历
    • 授权/认证漏洞、缺少租户检查
    • 密钥泄露或 API 密钥出现在日志/环境变量/文件中
    • 速率限制、无限循环、CPU/内存热点
    • 不安全的反序列化、弱加密、不安全默认值
    • 竞态条件:并发访问、检查后执行、TOCTOU、缺少锁
  • 同时指出可利用性和影响。

5) 代码质量扫描

  • 加载 references/code-quality-checklist.md 获取覆盖范围。
  • 检查:
    • 错误处理:吞没异常、过于宽泛的 catch、缺少错误处理、异步错误
    • 性能:N+1 查询、热路径中的 CPU 密集型操作、缺少缓存、无界内存
    • 边界条件:null/undefined 处理、空集合、数值边界、差一错误
  • 标记可能导致静默失败或生产事故的问题。

6) 输出格式

按以下结构组织审查:

## 代码审查摘要

**审查文件**:X 个文件,Y 行变更
**总体评估**:[APPROVE / REQUEST_CHANGES / COMMENT]

---

## 发现

### P0 - 严重
(无或列表)

### P1 - 高
1. **[文件:行号]** 简短标题
  - 问题描述
  - 建议修复

### P2 - 中
2. (编号跨节连续)
  - ...

### P3 - 低
...

---

## 删除/迭代计划
(如适用)

## 额外建议
(可选改进,不阻塞)

内联注释:对特定文件的发现使用此格式:

::code-comment{file="path/to/file.ts" line="42" severity="P1"}
问题描述及建议修复。
::

干净审查:如果未发现问题,明确说明:

  • 检查了哪些内容
  • 未覆盖的领域(例如“未验证数据库迁移”)
  • 残留风险或建议的后续测试

7) 后续步骤确认

呈现发现后,询问用户如何继续:

---

## 后续步骤

我发现了 X 个问题(P0: _, P1: _, P2: _, P3: _)。

**您希望如何处理?**

1. **全部修复** - 我将实施所有建议修复
2. **仅修复 P0/P1** - 处理严重和高优先级问题
3. **修复特定项** - 告诉我修复哪些问题
4. **不做更改** - 审查完成,无需实施

请选择一个选项或提供具体指示。

重要:在用户明确确认之前,不要实施任何更改。这是一个审查优先的工作流程。

资源

references/

文件 用途
solid-checklist.md SOLID 异味提示和重构启发式
security-checklist.md Web/应用安全及运行时风险检查清单
code-quality-checklist.md 错误处理、性能、边界条件
removal-plan.md 删除候选及后续计划模板