SKILL.md
readonly只读
name
code-review-expert
description
以资深工程师视角对当前 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 |
删除候选及后续计划模板 |






