Use when upgrading an existing Spring Boot application, for example from Boot 3.x to Boot 4 or to the latest Spring Boot and Java: dependency transitions and starter renames, test annotations such as @MockBean to @MockitoBean, Jackson 3 issues, Spring Modulith 2 or Testcontainers 2 upgrades, code that stops compiling after a version bump, or planning a phased migration. Not for greenfield project creation or isolated repository design.
94%
Does it follow best practices?
Impact
97%
1.05x2 of 3 eval scenarios. Add 1 more for a full score.
Passed
No findings from the security scan
Use this skill for phased upgrade work on existing Spring Boot applications. This skill adds value through the migration scanner, the Boot 4 / Modulith 2 / Testcontainers 2 reference guides, and a strict migration order that avoids mixing too many changes at once.
../creating-springboot-projects/references/java-version-policy.md.Use the migration scanner before planning or editing. It reads pom.xml, build.gradle, or build.gradle.kts (whichever the project has) plus Java sources, properties files, and Flyway migrations:
python3 "${CLAUDE_SKILL_DIR}/scripts/scan_migration_issues.py" /path/to/project${CLAUDE_SKILL_DIR} is this skill's folder. Codex doesn't set it, so there use the folder this SKILL.md is in.
Use the scan output to identify:
StableValue, StructuredTaskScope) that break on a newer JDKLoad only the references that match the codebase:
| Migration | Trigger | Read |
|---|---|---|
| Spring Boot 4.0 | Boot 3.x to 4.x upgrade | references/spring-boot-4-migration.md |
| Spring Modulith 2.0 | Existing Modulith 1.x usage | references/spring-modulith-2-migration.md |
| Testcontainers 2.x | Existing Testcontainers 1.x usage | references/testcontainers-2-migration.md |
| Cross-cutting scenarios and pitfalls | Mixed upgrade planning | references/migration-overview.md |
Use the reference guides to plan and execute in this order.
pom.xml or build.gradleapplication.properties or application.ymlrun the scanner again with --check; it exits with 1 while any CRITICAL issue remains (a missing modular starter, for example, compiles but fails at startup):
python3 "${CLAUDE_SKILL_DIR}/scripts/scan_migration_issues.py" /path/to/project --checkrun unit tests
run integration tests
run container-based tests where present
check for deprecations and startup failures
When multiple ecosystems are involved, use this order:
Read references/migration-overview.md before deviating from this sequence.
After each phase, report:
references/spring-boot-4-migration.mdreferences/spring-modulith-2-migration.mdreferences/testcontainers-2-migration.mdreferences/migration-overview.mdscripts/scan_migration_issues.py: --check exits with 1 while CRITICAL issues remain. It skips build output and hidden directories, including project-level skill installs.When planning or reporting the migration, return:
## Migration scope
- Current versions:
- Target versions:
## Planned phases
1. ...
2. ...
3. ...
## Files expected to change
- `path/to/file`
## Verification
- Tests or checks to run6d5c340
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.