Skip to main content

kotlin-java-migration

Migrate Java systems to Kotlin without semantic simplification by inventorying every production object and member, preserving public behavior and compatibility, mapping Java frameworks deliberately, implementing Kotlin-native code, and maintaining a machine-checkable migration ledger. Use for Java-to-Kotlin ports, rewrites, compatibility layers, or migration-completeness work; pair with kotlin-java-migration-testing for proof.

설치로 이동

소스 정보

저장소
full-stack-skills/kotlin-skills
최근 소스 활동
2026년 9월 11일 13:43
감지된 SKILL.md 언어
영어
스타
0
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
6 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
kotlin-java-migration
license
Apache-2.0
description
Migrate Java systems to Kotlin without semantic simplification by inventorying every production object and member, preserving public behavior and compatibility, mapping Java frameworks deliberately, implementing Kotlin-native code, and maintaining a machine-checkable migration ledger. Use for Java-to-Kotlin ports, rewrites, compatibility layers, or migration-completeness work; pair with kotlin-java-migration-testing for proof.
# Java to Kotlin Migration The target is equivalent capability and behavior, not similar-looking code. A compiling Kotlin project is only an intermediate state. ## Non-negotiable completion contract - Every in-scope Java production class, interface, enum, record, annotation, nested type, constructor, method, field-backed contract, and externally visible behavior is recorded. - Every record is `IMPLEMENTED`, `ADAPTED` with evidence, or explicitly out of scope with approved rationale. No silent omission, stub, unfinished marker, or placeholder counts. - Java semantics for values, errors, ordering, state, concurrency, serialization, reflection metadata, resources, and side effects are preserved unless an intentional, documented change is approved. - Kotlin-native design may replace Java mechanics, but it must not reduce capability. - Completion is not declared until `kotlin-java-migration-testing` passes the full source-suite and differential gates. ## Required workflow ### 1. Freeze scope and baselines Record source/target commits, Java/JDK/Gradle/Kotlin versions, modules, generated sources, supported platforms, feature flags, external services, and exclusions. Capture the Java build and test baseline before implementation. ### 2. Build the source ledger Use package/class discovery plus parser or compiler metadata. Track at least: ```text java_key | kind | target_path | target_symbol | status | evidence | notes ``` Method overloads require full signatures. Nested types and default/interface methods are separate rows. Reconcile the ledger in CI so new Java objects cannot appear unnoticed. ### 3. Map architecture and semantics - Maven/Gradle modules become coherent Gradle Kotlin modules, not arbitrary file buckets. - `CompletableFuture`/Reactor map to suspend/Flow only after cancellation, ordering, backpressure, scheduler, and error semantics are specified. - Jackson, reflection, annotations, service loading, proxies, synchronization, thread locals, and checked exceptions need explicit target designs. - Preserve Java-call-site ABI where compatibility is required; otherwise document the Kotlin-first API and adapter boundary. - Keep one Kotlin source file per primary migrated Java object when traceability benefits, but allow idiomatic Kotlin organization when the ledger remains exact. Read [Kotlin migration adapter](references/kotlin-migration-adapter.md) before choosing framework mappings. ### 4. Implement in vertical slices For each slice: migrate contracts, production behavior, source tests, copied assets, differential cases, and Kotlin-specific tests together. Do not finish all production code before beginning parity testing. ### 5. Preserve documentation Translate semantic Javadoc, parameter/return/error contracts, thread-safety notes, lifecycle rules, and compatibility constraints into KDoc. Avoid comments that merely restate syntax. ### 6. Run gates ```bash ./gradlew --no-daemon compileKotlin compileTestKotlin ./gradlew --no-daemon test ./gradlew --no-daemon check ``` Then run the dedicated `<project>-test` module and complete Java/Kotlin differential suite defined by `kotlin-java-migration-testing`. ## Status reporting Report separate denominators for production objects, members, source test methods/cases, assets, differential cases, and Kotlin-only obligations. Never collapse these into one percentage, and never use coverage as the migration-completion percentage.
GitHub에서 보기