mcpField
C
code-reviewer

code-reviewer

github.com/a-pavithraa测试与质量8086 次安装2 天前更新
代码仓库

关于 code-reviewer

code-reviewer 是面向 Spring Boot 4 Java 项目的结构化代码审查技能,要求先了解代码上下文,再按需检查并以文件路径和行号呈现具体发现。

主要功能

  1. 01确认审查范围与版本
  2. 02按需加载参考资料
  3. 03检查构建配置与 API
  4. 04审查架构、数据和安全
  5. 05发现项附文件路径与行号

适用场景

  1. 01审查 Spring Boot 4 拉取请求
  2. 02检查安全与性能问题
  3. 03评估迁移遗留问题
  4. 04审查架构边界

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/a-pavithraa/springboot-skills-marketplace --skill code-reviewer

安装后在 Claude Code 中输入/code-reviewer确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
architecture-patterns.md
domain-modeling.md
java-25-features.md
jspecify-null-safety.md
performance-patterns.md
security-checklist.md
spring-boot-4-patterns.md
value-objects-patterns.md

详细介绍

Spring Boot 4 审查员(Java 17+)

目的

使用此技能,对任意受支持的 Java 版本上的 Spring Boot 4 代码进行结构化审查(最低要求为 17;在全新创建的 Boot 4 项目中,21 LTS 和 25 较为常见)。审查发现应以实际代码库为依据,并且只针对适用的重点领域查阅参考文件。

重要规则

  • 没有代码上下文时,切勿进行审查。如果未提供任何代码,请索要文件、差异或相关模块。
  • 发现问题时,务必注明文件路径和行号。
  • 以 Spring Boot 4 为目标版本。阅读项目的 pom.xml / build.gradle,确定实际使用的 Java 版本(Boot 4 支持 17、21 和 25)。不要将 Java 17 或 21 标记为“过旧”——它们都是有效的 Boot 4 基准版本。
  • 在建议采用虚拟线程、改写为响应式架构或进行架构变更前,先分析工作负载。
  • 对于新编写的 Boot 4 代码,优先采用 JSpecify 作为空安全基准;但在标记每个旧版注解前,先确认代码库是否仍处于迁移过程中。
  • 如果某项结论取决于框架行为,优先参考 Spring 和 Java 的官方指南。

工作流

第 1 步:确认范围

收集准确审查所需的最少上下文:

  1. 范围:单个文件、模块、PR 还是整个代码库。
  2. 目标版本:必要时从构建文件确认 Java 和 Spring Boot 版本。
  3. 重点领域:迁移、架构、数据访问、安全、性能、空安全或全部领域。
  4. 测试背景:用户是只需要审查发现,还是也需要修复建议和测试影响分析。
第 2 步:只加载与审查相关的参考资料

按需加载参考资料:

重点领域阅读内容
Spring Boot 4 迁移模式和框架差异references/spring-boot-4-patterns.md
Java 25 语言特性和并发采用情况references/java-25-features.md
安全审查references/security-checklist.md
性能审查references/performance-patterns.md
架构边界和打包方式references/architecture-patterns.md
领域模型结构references/domain-modeling.md
值对象密集型设计references/value-objects-patterns.md
空安全检查references/jspecify-null-safety.md

必要时转交给其他技能:

  • 深入处理仓库、查询和关系时,使用 spring-data-jpa。
  • 制定分阶段升级计划或执行升级时,使用 springboot-migration。
第 3 步:执行审查流程

只执行与请求相符的审查流程。进行完整审查时,按以下顺序执行。

流程 A:构建和配置
  • 在 pom.xml 或 build.gradle 中核实 Java 和 Spring Boot 版本。
  • 检查 starter 名称和迁移遗留项。
  • 扫描 Jackson 3 迁移问题、过时的测试注解和版本漂移。
流程 B:API 正确性
  • 检查控制器和服务的边界。
  • 检查验证和错误处理。
  • 检查公共 API 和方法重写中的可空性。
流程 C:架构和打包方式
  • 识别当前使用的架构风格。
  • 验证包结构是否与该风格一致。
  • 标记边界泄漏,例如控制器直接访问仓库,或领域代码中出现基础设施类型。
流程 D:数据访问
  • 检查仓库的位置和聚合边界。
  • 检查 N+1 查询、缺少分页、投影不匹配和事务误用。
流程 E:安全
  • 检查身份验证和授权。
  • 检查输入验证和不安全的查询模式。
  • 检查密钥处理和敏感信息日志记录。
流程 F:性能和弹性
  • 检查缓存策略、无界读取、异步用法和远程调用行为。
  • 只有在代码和工作负载确有需要时,才评估虚拟线程的使用。
  • 检查超时、重试和连接池假设。

发现问题的快速提示

将这些提示用作审查线索,而不是代码证据的替代品。

Spring Boot 4 和迁移
  • 旧版 starter 名称
  • 旧版 Mockito 测试注解
  • 在 Boot 4 代码库中沿用 Jackson 2 假设
  • 使用 TestRestTemplate,而不是 RestTestClient
  • 手动编写 HttpServiceProxyFactory 样板代码,而不是使用 @ImportHttpServices
  • 使用自定义 API 版本控制,而不是原生的 spring.mvc.apiversion.*
  • 使用 @ConcurrencyLimit 或原生 @Retryable,却未使用 @EnableResilientMethods
空安全
  • 项目使用 JSpecify 时缺少 package-info.java
  • 代码已迁移到 JSpecify,但仍有 org.springframework.lang 注解
  • 覆盖方法缺少复制的空值性注解
架构
  • 控制器直接调用存储库
  • 在 API 中暴露 JPA 实体
  • Modulith 边界泄漏
  • 业务逻辑集中在控制器中
性能
  • 在循环中遍历实体
  • 缺少分页
  • 忽略读密集型路径上的投影机会
  • 没有工作负载证据就建议使用虚拟线程
安全
  • 特权操作缺少授权
  • 存在 SQL 或 NoSQL 注入风险
  • 源代码或日志中包含机密信息
  • 不安全地暴露错误信息

报告格式

按严重性排序列出发现,并使用以下模板:

## Critical
- **[Category]**: Issue summary
  - **File**: `path/to/File.java:123`
  - **Impact**: What can fail, leak, or regress
  - **Fix**: Specific change to make

## High
- ...

## Medium
- ...

## Low
- ...

如果没有发现问题,请明确说明,并指出任何仍存在的盲点,例如尚未审查的模块、缺少的测试或不可用的运行时上下文。

常见审查模式

快速 PR 审查
  1. 阅读有更改的文件。
  2. 加载 references/spring-boot-4-patterns.md 和 references/java-25-features.md。
  3. 如果差异涉及相关领域,再添加 references/security-checklist.md 或 references/performance-patterns.md。
  4. 仅报告附有文件和行号引用的具体发现。
安全审查
  1. 阅读 references/security-checklist.md。
  2. 重点检查控制器、服务入口、安全配置和持久化边界。
  3. 报告可利用性和受影响的入口,而不只是指出违反的规则。
架构审查
  1. 阅读 references/architecture-patterns.md。
  2. 如果代码体现出丰富领域模型方案,再添加 references/domain-modeling.md 或 references/value-objects-patterns.md。
  3. 根据当前架构风格,报告边界不匹配和耦合问题。
迁移审查
  1. 阅读 references/spring-boot-4-patterns.md 和 references/java-25-features.md。
  2. 重点检查迁移遗留问题、过时 API 和不完整的采用情况。
  3. 如果用户需要的是分阶段升级计划而非审查,请使用 springboot-migration。

不适用此技能的情况

  • 以 Kotlin 为主的代码库
  • Micronaut 或 Quarkus 等非 Spring Java 框架
  • 缺少代码上下文的通用审查指导
  • 仅涉及前端的更改

评论

支持 Markdown