🚀 快速安装

复制以下命令并运行,立即安装此 Skill:

npx skills add https://github.com/sanyuan0704/code-review-expert --skill code-review-expert

💡 提示:需要 Node.js 和 NPM

代码审查专家

概述

对当前的 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 获取具体提示。
  • 检查是否存在:
    • 单一职责原则 (SRP):模块承担了过多不相关的职责。
    • 开闭原则 (OCP):频繁编辑以添加行为,而不是通过扩展点添加。
    • 里氏替换原则 (LSP):子类破坏了预期行为或需要进行类型检查。
    • 接口隔离原则 (ISP):接口过于庞大,包含未使用的方法。
    • 依赖倒置原则 (DIP):高层逻辑直接依赖于低层实现。
  • 当你提出重构建议时,解释其为何能改善内聚性/耦合度,并概述一个最小、安全的拆分方案。
  • 如果重构比较复杂,建议一个渐进式计划,而不是一次大规模重写。

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

  • 加载 references/removal-plan.md 获取模板。
  • 识别未使用、冗余或被特性开关关闭的代码。
  • 区分 现在可以安全删除 和 需要计划后延迟删除 的代码。
  • 提供一个包含具体步骤和检查点(测试/指标)的后续计划。

4) 安全与可靠性扫描

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

5) 代码质量扫描

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

6) 输出格式

按以下结构组织你的审查结果:

## 代码审查摘要

**审查文件**:X 个文件,Y 行更改
**总体评估**:[通过 / 请求更改 / 评论]

---

## 发现的问题

### 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 用于删除候选代码和后续计划的模板

📄 原始文档

完整文档(英文):

https://skills.sh/sanyuan0704/code-review-expert/code-review-expert

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。