cmp-upgrade

cmp-upgrade is a skill for Claude Code, Codex from kvdm-co-pilot/create-cmp. It costs 205 tokens per session (1,347 once invoked), scanned A, original, MIT.

A guided upgrade process for Kotlin and Compose Multiplatform projects that changes related dependency versions as a tested set. Kotlin Multiplatform projects share code across platforms such as Android and iOS.

In plain words
What is it for?
Use it to upgrade Kotlin, KSP, Compose Multiplatform, Room, Android Gradle Plugin, Koin, or Ktor versions in a KMP project.
Why use it?
These dependencies often need matching versions, so changing one by hand can break the build. The process previews changes, applies them together, and verifies the result.

Skill for Claude CodeCodex

Part of the create-cmp plugin — 15 skills, 1 agent, 4 hooks, 1 MCP server shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/kvdm-co-pilot/create-cmp/cmp-upgrade
Any agent
npx skills add kvdm-co-pilot/create-cmp --skill cmp-upgrade
Clone the repo
git clone --depth 1 https://github.com/kvdm-co-pilot/create-cmp

Made for: Claude Code, Codex.

Or install create-cmp, the plugin that ships this one along with the rest of its 15 skills, 1 agent, 4 hooks, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for cmp-upgrade

README.md
[![agentmods](https://agentmods.dev/badge/skills/kvdm-co-pilot/create-cmp/cmp-upgrade.svg)](https://agentmods.dev/skills/kvdm-co-pilot/create-cmp/cmp-upgrade)
Your own site
<a href="https://agentmods.dev/skills/kvdm-co-pilot/create-cmp/cmp-upgrade"><img src="https://agentmods.dev/badge/skills/kvdm-co-pilot/create-cmp/cmp-upgrade.svg" alt="Measured on agentmods" height="20"></a>
Per session 205 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,347 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00205 $0.01347
Opus 5 $0.00102 $0.00674
Sonnet 5 $0.00041 $0.00269
Haiku 4.5 $0.00020 $0.00135

Measured 4d ago against content hash 3a599cd3fc31, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

cmp-upgrade scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/cmp-upgrade/SKILL.md · 89 lines

How it starts

The opening of the file, as written. The whole thing — 89 lines — stays where its author put it; the contents beside it link to each section on GitHub.

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

# 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):
node <repo>/bin/create-cmp.mjs verify

(If invoked from the published package: npx create-cmp-cli@latest upgrade ….)

What the engine does when applying:

  • Rewrites only the changed version values in gradle/libs.versions.toml — surgical line edits; comments, formatting, and every unrelated line are preserved byte-for-byte.
  • Adds/updates the gradle.properties flags the set requires (e.g. ksp.useKSP2=true).
  • Updates the Gradle wrapper distributionUrl when the set pins one.
  • Rewrites compileSdk / targetSdk in composeApp/build.gradle.kts when the set pins them (its androidSdk block) — the Android SDK levels are coupled to the set (a newer AGP + newer androidx force a higher compileSdk), so the version set manages them too, not just the catalog.
  • Backs up every touched file as <file>.bak-upgrade before writing and prints the exact mv commands to revert.
  • Versions the project declares that the set doesn't know are left untouched (and warned), so project-specific dependencies survive.

Read the full file on GitHub · 89 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 89 lines · 205 tokens per session scan A 3a599cd3fc31

Subscribe to this mod's changes

cmp-upgrade is a skill published in the GitHub repository kvdm-co-pilot/create-cmp (0 stars, last pushed yesterday), licensed MIT. It adds 205 tokens to every session and 1,347 once invoked, about $0.0010 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

compose-multiplatform

Use when building one shared Compose UI in Kotlin across Android, iOS, and desktop — commonMain @Composables, expect/actual, source-set placement, native interop, multiplatform ViewModel/navigation/Koin. NOT a single-platform native build (that is kotlin-android / swift-ios), and NOT Dart/Flutter cross-platform UI…

ericrisco/rsc-harness · 80 tokens

mapkit

MapKit + CoreLocation for iOS (iOS 17–26 era). SwiftUI Map with MapContentBuilder (Marker / Annotation / MapPolyline / MapPolygon / MapCircle / UserAnnotation), MapCameraPosition & MapCamera with onMapCameraChange, mapStyle / mapControls / selection, MapReader + MapProxy coordinate conversion, and Look Around…

TalissonVitorino/kmp-ios-skills · 246 tokens

navigation

Navigation for Android and Kotlin Multiplatform/iOS apps - all three approaches in one place. (A) Jetpack Navigation Compose (androidx.navigation - NavController, NavHost, composable , type-safe @Serializable routes, nested graphs, bottom nav, deep links, results via SavedStateHandle). (B) Jetpack Navigation 3 / Nav3…

TalissonVitorino/kmp-ios-skills · 177 tokens

kmp-networking

Ktor HTTP client for Kotlin Multiplatform - shared API layer in commonMain with per-target engines (OkHttp/Android engine on Android, Darwin on iOS), kotlinx.serialization, and shared error handling. Use for multiplatform or shared networking. For an Android-only Ktor/OkHttp client use ktor-patterns. For deeper…

TalissonVitorino/kmp-ios-skills · 105 tokens

kmp-repositories

Repository pattern for Kotlin Multiplatform. Shared interfaces with platform-specific implementations, clean data layer architecture.

TalissonVitorino/kmp-ios-skills · 25 tokens

shared-coroutines

Coroutines and Flow in Kotlin Multiplatform shared code - expect/actual dispatchers, iOS main-thread/Darwin constraints, a CoroutineScope shared from commonMain, and exposing StateFlow/Flow to Swift (KMP-NativeCoroutines/SKIE). Use for commonMain/iosMain concurrency. For general, non-multiplatform coroutine and Flow…

TalissonVitorino/kmp-ios-skills · 115 tokens