Teaches AI agents to write idiomatic Kotlin (data classes, val, scope fns, Kotest) AND to make the right stack choices on JVM: Kotlin 2.3 + JDK 21 + Gradle Kotlin DSL, Ktor for HTTP, kotlinx-coroutines, DJL for ML inference, JavaCV for vision, Koog for AI agent orchestration.
95
95%
Does it follow best practices?
Impact
95%
1.23xAverage score across 10 eval scenarios
Passed
No known issues
?, Not OptionalString?, User?, List<String>? — is the idiom for "this value may be absent"Optional<T> is the Java workaround for a language without nullable types. Kotlin has them. Use them.Optional<String> from a Kotlin API forces callers to interop with Java's wrapper for no benefit; return String? and let ?. / ?: do the work?. for safe navigation: user?.profile?.email?: for fallback: name ?: "anonymous"?.let { … } to run a block only when the value is present!! is reserved for cases where null would be a bug and you want a clear NPE — never use it to silence the compilerT? and let the type system protect you!! or platform types — that's how NullPointerExceptions smuggle into Kotlin code@JvmName and clear nullability so the Java side sees the contract tooT? from the start — no caveatOptional<T> return type for T? on a stable public API is a binary- and source-breaking change. Route it through a deprecation cycle (@Deprecated + ReplaceWith), not an in-place swap. Use the kotlin-api-review skill when the type is library surface