skills/kotlin-java-library/SKILL.md
Helps agents design and review Kotlin library APIs for Java consumers. Use when building Kotlin code intended for Java callers, shaping JVM signatures with @JvmName, @JvmOverloads, @JvmStatic, @JvmField, @Throws, @JvmRecord, nullability, records, and backward/binary compatibility rules.
npx skillsauth add alexandru/skills kotlin-java-libraryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
references/kotlin-java-library.md before changing public Kotlin APIs for Java consumers.@JvmOverloads, @JvmStatic, @JvmField, @JvmName) to shape the Java surface.@file:JvmName, and use @file:JvmMultifileClass when splitting across files.fun interface for Java callbacks; avoid function types that return Unit.@Throws and return defensive copies for read-only collections.scripts/verify-examples.java when changing the reference or public API patterns.@PublishedApi members as public.jbang skills/kotlin-java-library/scripts/verify-examples.java; if it fails, fix the sample or document why it cannot be tested.@JvmOverloads for Java-callable optional parameters, and provide explicit overloads when behavior differs.@JvmStatic for companion/object members meant to be static in Java.const val for compile-time constants and @JvmField only for immutable non-const fields you want exposed as fields.@JvmName to resolve signature clashes or to provide a stable Java name.@JvmRecord only for new Java-record value carriers targeting JVM 16+; do not retrofit it onto published classes.Nothing in public generic signatures; it becomes raw types in Java.references/kotlin-java-library.md for interop details, examples, and testing prompts.development
Scala auto-derivation with Kindlings for Circe and PureConfig. Use when replacing circe-generic/circe-generic-extras or PureConfig generic derivation with Kindlings while keeping normal Circe JSON APIs and PureConfig loading/writing APIs.
development
Simplifies code for clarity without changing behavior. Use when code is working but overly complex, deeply nested, duplicated, or unclear.
tools
JSpecify nullness annotations for Java APIs and tooling. Use when adopting or migrating JSpecify annotations, designing null-safe Java signatures, fixing generic bounds and type-use placement, or interpreting Kotlin interop, annotation-processor, and tool-conformance behavior.
development
Helps agents write and review Scala Cats Effect Resource code. Use for preventing resource leaks and use-after-release bugs, modeling disposable values with Resource, designing Resource-returning factories and constructor-injected services, wrapping Java AutoCloseable values, composing resources, and handling cancellation-safe release.