code-review-expert

code-review-expert

热门

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

3760Star
332Fork
更新于 2026/5/11
SKILL.md
readonly只读
name
code-review-expert
description

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

代码审查专家

概述

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

严重级别

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

工作流程

1) 前置上下文

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

边界情况:

  • 无变更:如果 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 删除候选及后续计划模板