🚀 快速安装

复制以下命令并运行,立即安装此 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 -sbgit diff --statgit diff 来界定更改范围。
  • 如果需要,使用 rggrep 查找相关模块、使用情况和契约。
  • 识别入口点、所有权边界和关键路径(身份验证、支付、数据写入、网络)。

边界情况:

  • 无更改:如果 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 原始英文文档,方便对照翻译。

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