Agent Skills: Kotlin Language Patterns

Write idiomatic Kotlin 1.9+ with null safety, sealed classes, and expression syntax. Use when working with Kotlin null safety, data classes, sealed interfaces, extension functions, or migrating Java code to Kotlin. (triggers: **/*.kt, **/*.kts, val, var, ?., ?:, !!, data class, sealed, when, extension, lazy, lateinit, object)

UncategorizedID: hoangnguyen0403/agent-skills-standard/kotlin-language

Install this agent skill to your local

pnpm dlx add-skill https://github.com/HoangNguyen0403/agent-skills-standard/tree/HEAD/skills/kotlin/kotlin-language

Skill Files

Browse the full folder contents for kotlin-language.

Download Skill

Loading file tree…

skills/kotlin/kotlin-language/SKILL.md

Skill Metadata

Name
kotlin-language
Description
Write idiomatic Kotlin 1.9+ with null safety, sealed classes, and expression syntax. Use when working with Kotlin null safety, data classes, sealed interfaces, extension functions, or migrating Java code to Kotlin.

Kotlin Language Patterns

Priority: P0 (CRITICAL)

Implementation Guidelines

  • Immutability: Use val by default. Only use var if mutation required locally.
  • Null Safety: Use ? for nullable types. Use safe call ?. and Elvis ?: over !!.
  • Expressions: Prefer expression bodies fun foo() = ... for one-liners. Use if/try as expressions.
  • Classes: Use data class for DTOs. Use sealed interface/class for state hierarchies (e.g., Success, Error, Loading). Access members as computed property rather than function.
  • Extension Functions: Prefer over utility classes (StringUtil). Keep private/internal if module-specific.
  • Named Arguments: Use for clarity, especially with booleans or multiple same-type params.
  • String Templates: Use "$var" over concatenation. Use "" for multiline strings (SQL/JSON).

Anti-Patterns

  • No !! Operator: Never use in production; prefer safe calls or requireNotNull.
  • No Java-isms: Use properties not get/set; prefer top-level functions over companion object statics.
  • No Lateinit Abuse: Prefer nullable types or lazy delegates instead.
  • No Silenced Errors: Never swallow exceptions without logging or handling.

References