From spring-boot
Verifies Spring Boot 4.x projects for dependency compatibility, configuration correctness, and migration readiness. Analyzes pom.xml, build.gradle, and application.yml files.
How this skill is triggered — by the user, by Claude, or both
Slash command
/spring-boot:spring-boot-verifyThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Analyzes Spring Boot projects for dependency compatibility, configuration correctness, and migration readiness.
Analyzes Spring Boot projects for dependency compatibility, configuration correctness, and migration readiness.
| Check | Severity | Action |
|---|---|---|
| Spring Boot version < 4.0 | CRITICAL | Upgrade to 4.0.x |
Jackson 2.x (com.fasterxml) | CRITICAL | Migrate to Jackson 3 (tools.jackson) |
javax.* imports | CRITICAL | Migrate to jakarta.* namespace |
@MockBean in tests | ERROR | Replace with @MockitoBean |
| Undertow server | ERROR | Switch to Tomcat or Jetty |
| Java version < 17 | ERROR | Minimum Java 17 required |
| Gradle version < 8.14 | ERROR | Upgrade Gradle (required for Kotlin 2.2/Boot 4) |
spring-boot-starter-web | WARNING | Use spring-boot-starter-webmvc |
| Missing Virtual Threads | INFO | Enable with spring.threads.virtual.enabled=true |
| Check | Severity | Action |
|---|---|---|
Security and() chaining | CRITICAL | Convert to Lambda DSL closures |
antMatchers() usage | ERROR | Replace with requestMatchers() |
authorizeRequests() | ERROR | Replace with authorizeHttpRequests() |
| All actuator endpoints exposed | WARNING | Limit to health, info, metrics |
| 100% trace sampling | WARNING | Use 10% in production |
Critical for Spring Boot 3+: All javax.* packages must migrate to jakarta.*:
| Old Package | New Package |
|---|---|
javax.persistence.* | jakarta.persistence.* |
javax.servlet.* | jakarta.servlet.* |
javax.validation.* | jakarta.validation.* |
javax.inject.* | jakarta.inject.* |
javax.annotation.* | jakarta.annotation.* |
Use Grep to find: import\s+javax\.
| Feature | Configuration | Benefit |
|---|---|---|
| Virtual Threads | spring.threads.virtual.enabled=true | High concurrency without WebFlux |
| JSpecify Null-Safety | Add @NullMarked to package-info | Framework-wide null contracts |
| AOT Compilation | Enabled by default | Faster startup times |
Spring Framework 7 uses JSpecify for null-safety:
@NullMarked // Package or class level - all parameters/returns non-null by default
package com.example.myapp;
import org.jspecify.annotations.Nullable;
public class UserService {
// @Nullable for parameters/returns that can be null
public @Nullable User findById(Long id) { ... }
}
**/pom.xml, **/build.gradle*, **/application.{yml,properties}@MockBean, com.fasterxml, .and(), import javax.)mcp__exa__web_search_exaGenerate verification reports with this structure:
## Spring Boot 4.x Verification Report
### Summary
- **Project**: {name}
- **Boot Version**: {detected version}
- **Issues Found**: {n} Critical, {n} Errors, {n} Warnings
### Critical Issues / Errors / Warnings
[Issue details with code remediation]
javax.* to jakarta.* (required for Boot 3+)com.fasterxml.jackson to tools.jacksonand() method removed, closures required@MockBean to @MockitoBeanspring.threads.virtual.enabled=true for Java 21+spring-boot-security — Deep security configuration verificationspring-boot-testing — Testing patterns and coverage analysisspring-boot-observability — Actuator, metrics, and tracing setupspring-boot-modulith — Module structure verificationdomain-driven-design — DDD architecture patternsnpx claudepluginhub joaquimscosta/arkhe-claude-plugins --plugin spring-bootRuns verification loop for Spring Boot projects: build with Maven/Gradle, static analysis (SpotBugs/PMD/Checkstyle), tests with Jacoco coverage, security scans, and diff review before PRs or releases.
Provides Spring Boot mastery covering auto-configuration, security, Data JPA, Actuator, and TestContainers testing for Java/Kotlin backends.
Runs a verification loop for Spring Boot projects: build, static analysis, tests with coverage, security scans, and diff review before PRs or releases.