code-reviewlisted
Install: claude install-skill cnzeropro/ai-playbook
# 代码审查
此 skill 用于全面审查 Java 代码,确保代码质量、安全性和可维护性。
## 何时使用
- 审查代码质量
- 分析代码安全性
- 审计代码规范符合性
- 检查代码最佳实践
- 评估代码可维护性
## 适用范围
### 适用对象(本规则适用于)
**技术栈**
- Java 8 / 11 / 17 / 21(按项目版本评估语法使用是否得当,见 `feature-coding-standard`)
- Spring Boot / Spring MVC
- 持久层:MyBatis / MyBatis-Plus、Spring Data JPA / Hibernate
- Lombok、Hutool / Guava 等常用工具库
**代码对象**
- Controller / Service / ServiceImpl / Mapper(Repository)/ Mapper XML
- 实体类(PO/DTO/Param/VO)、工具类、配置类
- 枚举、常量、自定义异常
**审查场景**
- 提交前代码审查(PR review)
- 安全审计
- 规范符合性检查(以 `feature-coding-standard`、`method-ordering`、`db-design-standard` 为检查依据)
- 重构前的代码健康度评估
### 不适用(边界)
- 非 Java 项目(前端、Python、Go 等)
- 数据库表设计与 SQL 脚本审查(参见 `db-design-standard` skill)
- 编码规范与命名约定本身(参见 `feature-coding-standard` skill)
- 接口方法排序检查(参见 `method-ordering` skill)
- 运行时故障排查(线上问题定位、JVM 调优)
## 核心工作流
1. **阅读代码**:先理解业务场景与调用链,避免脱离上下文提建议
2. **逐项检查**:按“一、审查维度”逐项核对��安全 → 框架 → 质量 → 性能 → 持久层 → 日志)
3. **规范比对**:结合项目实际技术栈,参照 `feature-coding-standard` 等 skill 判断符合性
4. **输出报告**:按“二、审查输出格式”组织结果,严重问题优先
## 一、审查维度
### 1. 安全
#### SQL 注入防护
- 检查是否使用参数化查询
- 验证 MyBatis Mapper XML 中是否使用 `${}`(危险)而非 `#{}`(安全)
- 检查 JPA/MyBatis 查询是否正确处理用户输入
**示例:**
```java
// ❌ 危险:字符串拼接 SQL
String sql = "SELECT * FROM users WHERE name = '" + name + "'";
// ✅ 安全:参数化查询
@Select("SELECT * FROM users WHERE name = #{name}")
User findByName(@Param("name") String name);
```
#### XSS 防护
- 检查输出到前端的用户输入是否经过转义
- 验证是否使用 Spring 的 `@ResponseBody` 或模板引擎的自动转义
#### 敏感信息泄露
- 检查是否在日志中输出密码、token 等敏感信息
- 验证异常信息是否暴露内部实现细节(如 SQL、