Use when asked to review, check or diagnose Spring Boot code: a pull request, diff, module or file before it merges; a slow endpoint or query (N+1, unbounded reads, JPA and Hibernate performance); security, JSpecify null-safety, architecture boundaries or Boot 4 migration risks in existing code; or whether the tests would catch real bugs, proving each finding by running it. Not for Kotlin-only code, non-Spring frameworks, or generic review advice without code context.
98%
Does it follow best practices?
Impact
97%
1.15x2 of 3 eval scenarios. Add 1 more for a full score.
Passed
No findings from the security scan
REVIEW.md at its root, read it first. Check the change against each rule it lists, and follow what it says to report and skip.pom.xml or build.gradle. Boot 4 supports Java 17 and later, so Java 17 and 21 are not findings. Java 26 and 27 targets: ../creating-springboot-projects/references/java-version-policy.md.If you wrote or changed the code under review in this session, tell the user that a review from a fresh context is less biased and offer to run it in a general-purpose subagent, giving it the commits and uncommitted changes to review and telling it to follow this skill (code-reviewer). Continue only if they decline. Otherwise, review inline.
| Focus | Read |
|---|---|
| Spring Boot 4 migration patterns and framework changes | references/spring-boot-4-patterns.md |
| Java 25 language and concurrency adoption | references/java-25-features.md |
| Security | references/security-checklist.md |
| Performance | references/performance-patterns.md |
| JPA and Hibernate 7 | references/jpa-performance.md |
| Architecture boundaries and packaging | references/architecture-patterns.md |
| Domain model shape | references/domain-modeling.md, references/value-objects-patterns.md |
| Null safety | references/jspecify-null-safety.md |
| Tests: what they can catch, what they let through | references/test-review.md |
For a phased upgrade plan rather than a review, use the springboot-migration skill.
For a full review, run them in this order.
../springboot-migration/scripts/scan_migration_issues.py <project> and cite its CRITICAL lines: old starter names, moved imports, old test annotations, Testcontainers 1.x classes. If the script is not there (this skill was copied without springboot-migration), say so in the review and check those four by reading the pom and imports.ApplicationModules.verify()) and cite their failures. If none exist, recommend the spring-boot-team-harness skill, whose CodeRulesTests holds these rules. A review catches a boundary leak once. A failing build catches it every time.Read the matching reference from Step 1 and report against it. Report the affected entry points and how a caller reaches the flaw, not only the rule it breaks.
Check public APIs and method overrides against references/jspecify-null-safety.md.
Follow references/test-review.md:
git checkout -- <file>.For each comment the change adds or edits, keep it only if it states a constraint the code can't show (an external system's behaviour, a limit, an ordering), why the obvious alternative is wrong, or, on a record or DTO field, what its name can't say: when it is null or empty, or a meaning that depends on state. Use the project's comment rule in AGENTS.md if it has one.
@param or @return that repeat the name, notes on what changed, ticket or plan references, and a rule already stated where it is enforced.Report them as one Low finding listing each comment with "delete" or "shorten to: ...". When asked to fix the findings, change only comments, never code.
TestRestTemplate where RestTestClient is available.HttpServiceProxyFactory code where @ImportHttpServices does the same.spring.mvc.apiversion.* does the same.@ConcurrencyLimit or @Retryable that never applies: no @EnableResilientMethods; a class that implements an interface without proxyTargetClass = true; or a call from inside the same class, which skips the proxy.package-info.java where the project uses JSpecify.org.springframework.lang annotations left in code that has moved to JSpecify.Order findings by severity:
## 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
- ...End with the number of findings, or say there are none. Then name what the review could not see, such as modules not read, missing tests, or runtime behavior.
6d5c340
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.