$npx -y skills add a-pavithraa/springboot-skills-marketplace --skill springboot-migrationMigrates Spring Boot applications to Boot 4 with Java 25, including related Spring Modulith 2 and Testcontainers 2 upgrade work. Use when the task is a concrete upgrade, dependency transition, starter rename, test-annotation migration, or phased migration plan. Do not use for gre
| 1 | # Spring Boot Migration |
| 2 | |
| 3 | ## Purpose |
| 4 | |
| 5 | 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. |
| 6 | |
| 7 | ## Critical rules |
| 8 | |
| 9 | - Never migrate blindly. Scan the codebase first. |
| 10 | - Never apply every migration at once. Follow phased upgrades. |
| 11 | - Treat Java 25, Spring Boot 4, Spring Modulith 2, and Testcontainers 2 as the intended target stack for this skill unless the user asks for a narrower target. |
| 12 | - Verify after each phase and stop when failures appear. |
| 13 | |
| 14 | ## Workflow |
| 15 | |
| 16 | ### Step 1: Scan the project |
| 17 | |
| 18 | Use the migration scanner before planning or editing: |
| 19 | |
| 20 | ```bash |
| 21 | python3 <SKILL_DIR>/scripts/scan_migration_issues.py /path/to/project |
| 22 | ``` |
| 23 | |
| 24 | Use the scan output to identify: |
| 25 | |
| 26 | - current Spring Boot version |
| 27 | - starter rename work |
| 28 | - annotation and import migrations |
| 29 | - configuration changes |
| 30 | - Spring Modulith compatibility |
| 31 | - Testcontainers compatibility |
| 32 | |
| 33 | ### Step 2: Identify which migrations apply |
| 34 | |
| 35 | Load only the references that match the codebase: |
| 36 | |
| 37 | | Migration | Trigger | Read | |
| 38 | |-----------|---------|------| |
| 39 | | Spring Boot 4.0 | Boot 3.x to 4.x upgrade | `references/spring-boot-4-migration.md` | |
| 40 | | Spring Modulith 2.0 | Existing Modulith 1.x usage | `references/spring-modulith-2-migration.md` | |
| 41 | | Testcontainers 2.x | Existing Testcontainers 1.x usage | `references/testcontainers-2-migration.md` | |
| 42 | | Cross-cutting scenarios and pitfalls | Mixed upgrade planning | `references/migration-overview.md` | |
| 43 | |
| 44 | ### Step 3: Plan the migration in phases |
| 45 | |
| 46 | Use the reference guides to plan and execute in this order. |
| 47 | |
| 48 | #### Phase 1: Dependencies |
| 49 | |
| 50 | - update `pom.xml` or `build.gradle` |
| 51 | - rename starters where required |
| 52 | - add or remove dependencies needed by the target stack |
| 53 | - align version properties |
| 54 | |
| 55 | #### Phase 2: Source-code changes |
| 56 | |
| 57 | - update imports and package names |
| 58 | - migrate test annotations |
| 59 | - fix Jackson 3 issues |
| 60 | - fix Testcontainers API changes where relevant |
| 61 | |
| 62 | #### Phase 3: Configuration |
| 63 | |
| 64 | - update `application.properties` or `application.yml` |
| 65 | - apply Boot 4 defaults intentionally |
| 66 | - update Spring Modulith event-store configuration if relevant |
| 67 | |
| 68 | #### Phase 4: Verification |
| 69 | |
| 70 | - run unit tests |
| 71 | - run integration tests |
| 72 | - run container-based tests where present |
| 73 | - check for deprecations and startup failures |
| 74 | |
| 75 | ### Step 4: Use the right migration order for mixed upgrades |
| 76 | |
| 77 | When multiple ecosystems are involved, use this order: |
| 78 | |
| 79 | 1. Spring Boot 4 |
| 80 | 2. Spring Modulith 2 |
| 81 | 3. Testcontainers 2 |
| 82 | |
| 83 | Read `references/migration-overview.md` before deviating from this sequence. |
| 84 | |
| 85 | ### Step 5: Report progress after each phase |
| 86 | |
| 87 | After each phase, report: |
| 88 | |
| 89 | - what changed |
| 90 | - what remains |
| 91 | - what failed, if anything |
| 92 | - whether it is safe to continue |
| 93 | |
| 94 | ## Reference loading guide |
| 95 | |
| 96 | - Spring Boot 4 migration details: `references/spring-boot-4-migration.md` |
| 97 | - Spring Modulith 2 migration details: `references/spring-modulith-2-migration.md` |
| 98 | - Testcontainers 2 migration details: `references/testcontainers-2-migration.md` |
| 99 | - Mixed scenarios and common issues: `references/migration-overview.md` |
| 100 | |
| 101 | ## Available script |
| 102 | |
| 103 | - `scripts/scan_migration_issues.py` |
| 104 | |
| 105 | ## Output format |
| 106 | |
| 107 | When planning or reporting the migration, return: |
| 108 | |
| 109 | ```markdown |
| 110 | ## Migration scope |
| 111 | - Current versions: |
| 112 | - Target versions: |
| 113 | |
| 114 | ## Planned phases |
| 115 | 1. ... |
| 116 | 2. ... |
| 117 | 3. ... |
| 118 | |
| 119 | ## Files expected to change |
| 120 | - `path/to/file` |
| 121 | |
| 122 | ## Verification |
| 123 | - Tests or checks to run |
| 124 | ``` |
| 125 | |
| 126 | ## When not to use this skill |
| 127 | |
| 128 | - Creating a new Spring Boot project from scratch |
| 129 | - Broad architecture advice without an actual migration task |
| 130 | - JPA-specific implementation work that belongs in `spring-data-jpa` |