Skip to content
Back to skills

Migrate

ASecurity

Diff a library's public API between two versions and find what breaks in this codebase. Usage:/kotlin-lib:migrate group:artifact from-version to-version

  • 13 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 19, 2026
ai-agentsgokotlinapi

Works with

  • api

Security analysis

A100/100

Scanned September 19, 2026

npx -y skills add aoreshkov/kotlin-lib-mcp --skill migrate --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Migrate?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Migrate
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aoreshkov-migrate/badge)](https://www.skillsdirectory.com/skills/aoreshkov-migrate)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
description: Diff a library's public API between two versions and find what breaks in this codebase. Usage:/kotlin-lib:migrate group:artifact from-version to-version
disable-model-invocation: true
---

# Upgrade impact report

Arguments: `$ARGUMENTS` — `group:artifact` plus the two versions to compare. If the target
version is missing, use `get_latest_version`. If the source version is missing, read the one the
project currently depends on from `gradle/libs.versions.toml`, the build script, or `pom.xml`.

Steps:

1. `fetch_library` **both** coordinates: `group:artifact:<from>` and `group:artifact:<to>`.
2. `list_packages` on both. Packages that appear or disappear are the loudest signal — report
   them first.
3. `list_declarations` (public) per shared package on both versions. Page through with
   `maxResults`/`offset`; do not truncate silently — if you stopped early, say where.
4. Classify every difference:
   - **Removed** — gone in the new version. Breaking.
   - **Changed** — same FQ name, different signature (`get_api_signature` on both). Breaking if
     the parameter list, receiver, nullability or generics moved.
   - **Added** — new surface. Worth mentioning only where it replaces something removed.
5. For each removed or changed symbol, search the workspace for real usages (Grep on the simple
   name, then confirm the import). A break nobody calls is a footnote, not a task.
6. `get_kdoc` on the replacement candidates — deprecation notices and `@since`/`@see` tags in the
   new version usually name the intended migration path. `search_source` on the old name in the
   new version often finds the renamed symbol directly.
7. `get_dependencies` on both, so a transitive bump that comes along for the ride is not a
   surprise.

Report as:

- **Verdict line** — how many breaking changes actually touch this codebase.
- **Table**: symbol · what changed · files affected · suggested replacement.
- **Notes**: API additions worth adopting, dependency-tree changes, packages added/removed.
- **What you did not check** — pages you stopped short of, packages skipped, anything only
  reachable through reflection or a service loader, which this diff cannot see.

Do not edit any code as part of this report. Land the analysis first; the user decides what to
change.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.