← ClaudeAtlas

cmp-upgradelisted

Migrate an existing Kotlin/Compose Multiplatform (CMP/KMP) project to the next PROVEN-GREEN dependency version set. Use this when the user wants to upgrade Kotlin, KSP, Compose Multiplatform, Room, AGP, Koin, or Ktor versions in a KMP project, bump their KMP dependencies, or asks "upgrade kotlin/compose/KMP versions", "bump my KMP dependencies", "update my version catalog", "my build broke after updating kotlin", "kotlin and ksp version mismatch", "migrate to the latest CMP", or "is my libs.versions.toml up to date". Diffs the project's gradle/libs.versions.toml against a CI-verified version set, applies surgical in-place edits with backups, guards the kotlin↔ksp lockstep, and can prove the result with the green-build gate. Works on ANY project with a Gradle version catalog — not just create-cmp-scaffolded ones.
kvdm-co-pilot/create-cmp · ★ 0 · Web & Frontend · score 72
Install: claude install-skill kvdm-co-pilot/create-cmp
# cmp-upgrade — move a KMP project to a proven-green version set Your job: turn "upgrade my KMP versions" (or "my build broke after a version bump") into a project sitting on a **proven-green** version set — one that is known to build on Android + iOS — without hand-editing versions one at a time. You wrap the engine's `upgrade` command (exposed on the CLI as the `upgrade` subcommand). **Do not hand-edit `libs.versions.toml` yourself** when the engine can do it — the engine diffs, guards the lockstep, writes surgically, and backs up. > **Why this exists.** The recurring pain of KMP is that **Kotlin / KSP / Compose / Room / AGP move > in lockstep or the build dies**. Upgrading "just Kotlin" is how projects break: `ksp` must always > be `<kotlin>-<kspVersion>` (e.g. kotlin `2.2.20` ↔ ksp `2.2.20-2.0.4`), Room on iOS needs > `ksp.useKSP2=true`, and AGP pins a minimum Gradle wrapper. A proven-green *set* moves all of them > together — one command instead of a day of dependency archaeology. ## The workflow: diff → apply → verify ```bash # 1. DIFF (safe, writes nothing) — show what the upgrade would change: node <repo>/bin/create-cmp.mjs upgrade --dry-run # (add --target-dir <dir> when not running from the project root, # --set <id> to target a specific registry set instead of the latest) # 2. APPLY — after the user has seen and accepted the diff: node <repo>/bin/create-cmp.mjs upgrade --yes # 3. VERIFY — prove the build is green (or chain it: upgrade --yes --verify):