java-kotlin-migration-assistant

Transform Java Spring codebases into Kotlin while preserving behavior.

14|1|Updated Mar 6, 2026
One-click install
npx skills add https://github.com/Kotlin/kotlin-backend-agent-skills --skill java-kotlin-migration-assistant
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: java-kotlin-migration-assistant
Source: https://github.com/Kotlin/kotlin-backend-agent-skills/tree/main/.agents/skills/java-kotlin-migration-assistant
Command: npx skills add https://github.com/Kotlin/kotlin-backend-agent-skills --skill java-kotlin-migration-assistant

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Migrating Java codebases to Kotlin in Spring applications without changing behavior, public contracts, or binary compatibility, enabling a safer transition path.

Core Features & Use Cases

  • Incremental migration of services, controllers, and domain models to Kotlin while preserving proxies, transactions, and serialization behavior.
  • Guidance on handling Lombok, nullability, and JPA mappings to minimize risk and maintain compatibility.
  • Use Case: Migrate a mixed Java/Kotlin module over several sprints, validating behavior after each step with tests and integration checks.

Quick Start

Analyze the target Java codebase in the Spring project and prepare a Kotlin migration plan describing which classes to translate first, how to preserve behavior, and how to validate it.

Frequently Asked Questions about java-kotlin-migration-assistant

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate Java Spring code to Kotlin without breaking behavior?

Migrate Java Spring code to Kotlin incrementally by translating services, repositories, and entities while preserving proxies, transactions, and serialization. Validate behavior after each step using tests and integration checks to prevent regressions.

What is the best way to handle Lombok removal during a Java to Kotlin migration?

Handling Lombok removal during Java to Kotlin migration requires strict constraints to maintain binary compatibility. The migration imposes specific guidelines to replace Lombok annotations safely while preserving public contracts and behavior.

Can I incrementally migrate a multi-module Spring project to Kotlin?

You can incrementally migrate multi-module Spring projects to Kotlin over several sprints. The process supports mixed Java/Kotlin modules, allowing you to translate classes progressively while maintaining Java-Kotlin interop and validating behavior continuously.

How does nullability handling work when converting Spring entities from Java to Kotlin?

Nullability handling when converting Spring entities from Java to Kotlin involves strict constraints to prevent regressions. The migration enforces specific rules for JPA mappings and nullability to maintain compatibility and preserve behavior across the codebase.

Why do JPA proxy behaviors change when moving to Kotlin and how do I prevent regressions?

JPA proxy behaviors can change when moving to Kotlin due to default final classes and nullability differences. Prevent regressions by applying strict migration constraints for JPA mappings and proxy behavior, ensuring transactions and serialization remain compatible.

Do I need a migration plan before converting my Spring Java codebase to Kotlin?

You need a migration plan before converting your Spring Java codebase to Kotlin to determine which classes to translate first. The plan describes how to preserve behavior and validate it, enabling a safer transition path across multi-module projects.