Kotlin best practices
Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/kotlin-best-practices
Core patterns for robust Kotlin code including scope functions and backing properties. Use when writing idiomatic Kotlin, choosing between scope functions (let/apply/run/also/with), encapsulating mutable state with backing properties, or exposing read-only collection interfaces. (triggers: **/*.kt, apply, let, run, also, with, runCatching, backing property, MutableList, internal, private set)From its SKILL.md
npx -y skills add ComeOnOliver/skillshub --skill kotlin-best-practicesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
1.8 KB, 326 tokens by cl100k_base, as published. Nobody here has run it
Kotlin Best Practices
Priority: P1 (HIGH)
Engineering standards for clean, maintainable Kotlin systems.
Implementation Guidelines
- Scope Functions:
apply: Object configuration (returns object).also: Side effects / validation / logging (returns object).let: Null checks (?.let) or mapping (returns result).run: Object configuration and mapping (returns result).with: Grouping multiple method calls on an object (returns result).
- Backing Properties: Use
_state(private mutable, e.g.,private val _state = MutableStateFlow(initial)) exposed asval state = _state.asStateFlow()(public read-only). Pattern:_propprivate,proppublic. - Collections: Expose
List/Map(read-only) publicly; keepMutableListinternal. - Error Handling: Use
runCatchingfor simple error handling over try/catch blocks. - Visibility: Default to
privateorinternal. Minimizepublicsurface area. - Top-Level: Prefer top-level functions/constants over implementation-less
objectsingletons.
Anti-Patterns
- No Deep Scope Nesting: Limit let/apply nesting to 2 levels; deeper destroys readability.
- No Public var: Use private set or backing properties for encapsulation.
- No Global Mutable State: Avoid mutable top-level variables.
References
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.