Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when a database schema or data-meaning change needs Parallel Change, including expand, migrate, and contract sequencing for column renames, type or data reinterpretation, large-table backfills, relationship-table changes, enum/status transitions, timezone/default changes, and index or uniqueness changes. This should trigger before framework-specific Flyway implementation guidance when deciding whether a migration needs a compatibility window or whether a simpler migration is sufficient. Part
.claude/skills/jabrena-055-design-parallel-change/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 91% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -11% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -11% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 14% | 0% |
Guide Java Enterprise developers through Parallel Change for database migration scenarios. This is an interactive SKILL.
What is covered in this Skill?
Use Parallel Change as a database migration design pattern, then hand off implementation details to the framework-specific migration skill when needed.
references/055-design-parallel-change.md before applying Parallel Change guidanceRead references/055-design-parallel-change.md, then identify the schema shape, data meaning, application read/write path, rollout window, rollback expectation, and production-data risk affected by the migration.
Recommend Parallel Change when old and new application versions or data interpretations must coexist. Recommend a simpler forward-only migration when the change is additive, small, immediately safe, and does not require a compatibility window.
For Parallel Change, separate expand, migrate, and contract into independently deployable steps. Keep the old shape valid during expand and migrate; contract only after all deployed code and data have moved to the new shape.
Define previous-release fixture checks, row-count expectations, duplicate detection, backfill monitoring, rollback behavior, and cleanup ownership. Prefer production-dialect migration tests and production-like data samples where feasible.
After the strategy is clear, use 313-frameworks-spring-db-migrations-flyway, 413-frameworks-quarkus-db-migrations-flyway, or 513-frameworks-micronaut-db-migrations-flyway for framework-specific Flyway dependencies, configuration, migration locations, and tests.
Report the chosen approach, rejected alternative, expand/migrate/contract sequence or simpler migration, verification evidence, cleanup trigger, tradeoffs, skipped checks, and remaining risks.
For detailed guidance, examples, and constraints, see references/055-design-parallel-change.md.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-16 | pass→pass | 19,359 | 15,083 | -22% | 1 | 1 | 0% | 2,862 | 2,922 | +2% | 0 | 0 | — |
case-03 | fail→pass | 16,403 | 16,659 | +2% | 1 | 1 | 0% | 2,887 | 3,483 | +21% | 0 | 0 | — |
case-04 | fail→pass | 6,704 | 8,037 | +20% | 1 | 1 | 0% | 1,026 | 1,962 | +91% | 0 | 0 | — |
case-01 | pass→pass | 21,822 | 18,836 | -14% | 1 | 1 | 0% | 3,688 | 3,876 | +5% | 0 | 0 | — |
case-02 | fail→pass | 23,274 | 13,656 | -41% | 1 | 1 | 0% | 3,273 | 2,912 | -11% | 0 | 0 | — |
case-05 | fail→pass | 20,664 | 15,878 | -23% | 1 | 1 | 0% | 3,547 | 3,151 | -11% | 0 | 0 | — |
case-06 | fail→pass | 15,585 | 14,513 | -7% | 1 | 1 | 0% | 2,615 | 2,976 | +14% | 0 | 0 | — |
case-07 | fail→pass | 14,342 | 12,564 | -12% | 1 | 1 | 0% | 2,169 | 2,607 | +20% | 0 | 0 | — |
case-08 | pass→pass | 15,310 | 15,136 | -1% | 1 | 1 | 0% | 2,418 | 3,142 | +30% | 0 | 0 | — |
case-09 | pass→pass | 12,033 | 13,804 | +15% | 1 | 1 | 0% | 2,025 | 2,868 | +42% | 0 | 0 | — |
case-10 | pass→pass | 19,406 | 16,432 | -15% | 1 | 1 | 0% | 2,932 | 3,537 | +21% | 0 | 0 | — |
case-11 | fail→pass | 12,531 | 11,471 | -8% | 1 | 1 | 0% | 1,786 | 2,413 | +35% | 0 | 0 | — |
case-12 | pass→pass | 18,904 | 16,967 | -10% | 1 | 1 | 0% | 3,015 | 3,436 | +14% | 0 | 0 | — |
case-13 | fail→fail | 20,938 | 15,157 | -28% | 1 | 1 | 0% | 3,475 | 3,263 | -6% | 0 | 0 | — |
case-14 | fail→fail | 12,937 | 9,224 | -29% | 1 | 1 | 0% | 2,316 | 2,458 | +6% | 0 | 0 | — |
case-15 | fail→fail | 18,059 | 15,750 | -13% | 1 | 1 | 0% | 2,967 | 3,330 | +12% | 0 | 0 | — |
case-17 | fail→pass | 35,560 | 15,935 | -55% | 1 | 1 | 0% | 1,247 | 3,015 | +142% | 0 | 0 | — |
case-18 | fail→pass | 10,047 | 8,917 | -11% | 1 | 1 | 0% | 1,538 | 2,250 | +46% | 0 | 0 | — |
case-19 | pass→pass | 12,750 | 10,426 | -18% | 1 | 1 | 0% | 1,832 | 2,242 | +22% | 0 | 0 | — |
case-20 | pass→pass | 9,152 | 6,165 | -33% | 1 | 1 | 0% | 1,739 | 1,845 | +6% | 0 | 0 | — |
case-21 | pass→pass | 11,293 | 10,912 | -3% | 1 | 1 | 0% | 1,992 | 2,585 | +30% | 0 | 0 | — |
case-22 | pass→pass | 16,586 | 10,969 | -34% | 1 | 1 | 0% | 2,721 | 2,424 | -11% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +41 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.