Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
jeffallan avatar

Kotlin Specialist

  • 3.9k installs
  • 10.8k repo stars
  • Updated May 20, 2026
  • jeffallan/claude-skills

A Kotlin implementation skill that generates idiomatic Kotlin 1.9+ code for coroutines, Flow, KMP, Jetpack Compose, Ktor, and DSL design following structured concurrency and null-safety rules.

About

Kotlin Specialist is a senior-level implementation skill for Kotlin 1.9+ projects across Android, server, and multiplatform targets. Developers invoke it when building coroutine-based async pipelines, StateFlow/SharedFlow reactive streams, or Kotlin Multiplatform shared modules with expect/actual declarations. The core workflow moves through architecture analysis, sealed-class data modeling, idiomatic implementation with scope functions, static analysis via detekt and ktlint, inline-class optimization, and multiplatform testing with runTest and Turbine. It enforces structured concurrency rules - banning GlobalScope.launch and runBlocking in production - and mandates null-safety patterns throughout. Output always includes data models, implementation files, coroutine-aware test files, and KDoc for public APIs. Sealed class UiState pattern with Loading, Success, and Error branches enforced exhaustively by the compiler Structured concurrency enforcement: GlobalScope.launch and production runBlocking are explicitly prohibited Flow pipeline guidance covering flowOn(Dispatchers.IO), StateFlow, SharedFlow, and Turbine-based stream testing

  • Sealed class UiState pattern with Loading, Success, and Error branches enforced exhaustively by the compiler
  • Structured concurrency enforcement: GlobalScope.launch and production runBlocking are explicitly prohibited
  • Flow pipeline guidance covering flowOn(Dispatchers.IO), StateFlow, SharedFlow, and Turbine-based stream testing
  • Multiplatform architecture support with expect/actual declarations and platform target separation rules
  • Static analysis gate requiring detekt and ktlint to pass before proceeding to optimization step

Kotlin Specialist by the numbers

  • 3,916 all-time installs (skills.sh)
  • +88 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #5 of 89 Java & JVM skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

kotlin-specialist capabilities & compatibility

Capabilities
coroutine pipeline generation · flow stream implementation · kmp module scaffolding · jetpack compose ui generation · ktor server routing · type safe dsl design · sealed class state modeling · static analysis enforcement
Use cases
api development · frontend · testing · documentation
Runs
Runs locally
Pricing
Free
From the docs

What kotlin-specialist says it does

Use structured concurrency — never GlobalScope
SKILL.md
Run `detekt` and `ktlint`; verify coroutine cancellation handling and null safety
SKILL.md
Write multiplatform tests with coroutine test support (`runTest`, Turbine)
SKILL.md
Block coroutines with `runBlocking` in production code
SKILL.md
npx skills add https://github.com/jeffallan/claude-skills --skill kotlin-specialist

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs3.9k
repo stars10.8k
Security audit3 / 3 scanners passed
Last updatedMay 20, 2026
Repositoryjeffallan/claude-skills

What it does

Generate idiomatic Kotlin code covering coroutines, Flow, KMP shared modules, Jetpack Compose UI, Ktor server routing, and type-safe DSL patterns.

Who is it for?

Kotlin developers building Android apps with Compose, KMP shared libraries, or Ktor REST servers who need pattern-enforced, production-ready code.

Skip if: Java codebases, Groovy DSL Gradle scripts, or projects not using Kotlin coroutines or the Kotlin standard library.

When should I use this skill?

User mentions coroutines, Flow, KMP, Jetpack Compose, Ktor, suspend functions, StateFlow, sealed classes, or Android Kotlin development.

What you get

Developers receive complete, lint-passing Kotlin files including sealed-class models, suspend function implementations, coroutine-safe tests, and KDoc-annotated public APIs.

  • Sealed-class data models
  • Suspend function and Flow implementation files
  • Coroutine-aware test files using runTest and Turbine

By the numbers

  • 6-step core workflow from architecture analysis to multiplatform testing
  • 5 reference documents covering coroutines, KMP, Compose, Ktor, and DSL idioms
  • Version 1.1.0 with Kotlin 1.9+ as baseline

Files

SKILL.mdMarkdownGitHub ↗

Kotlin Specialist

Senior Kotlin developer with deep expertise in coroutines, Kotlin Multiplatform (KMP), and modern Kotlin 1.9+ patterns.

Core Workflow

1. Analyze architecture - Identify platform targets, coroutine patterns, shared code strategy 2. Design models - Create sealed classes, data classes, type hierarchies 3. Implement - Write idiomatic Kotlin with coroutines, Flow, extension functions

  • Checkpoint: Verify coroutine cancellation is handled (parent scope cancelled on teardown) and null safety is enforced before proceeding

4. Validate - Run detekt and ktlint; verify coroutine cancellation handling and null safety

  • If detekt/ktlint fails: Fix all reported issues and re-run both tools before proceeding to step 5

5. Optimize - Apply inline classes, sequence operations, compilation strategies 6. Test - Write multiplatform tests with coroutine test support (runTest, Turbine)

Reference Guide

Load detailed guidance based on context:

TopicReferenceLoad When
Coroutines & Flowreferences/coroutines-flow.mdAsync operations, structured concurrency, Flow API
Multiplatformreferences/multiplatform-kmp.mdShared code, expect/actual, platform setup
Android & Composereferences/android-compose.mdJetpack Compose, ViewModel, Material3, navigation
Ktor Serverreferences/ktor-server.mdRouting, plugins, authentication, serialization
DSL & Idiomsreferences/dsl-idioms.mdType-safe builders, scope functions, delegates

Key Patterns

Sealed Classes for State Modeling

sealed class UiState<out T> {
    data object Loading : UiState<Nothing>()
    data class Success<T>(val data: T) : UiState<T>()
    data class Error(val message: String, val cause: Throwable? = null) : UiState<Nothing>()
}

// Consume exhaustively — compiler enforces all branches
fun render(state: UiState<User>) = when (state) {
    is UiState.Loading  -> showSpinner()
    is UiState.Success  -> showUser(state.data)
    is UiState.Error    -> showError(state.message)
}

Coroutines & Flow

// Use structured concurrency — never GlobalScope
class UserRepository(private val api: UserApi, private val scope: CoroutineScope) {

    fun userUpdates(id: String): Flow<UiState<User>> = flow {
        emit(UiState.Loading)
        try {
            emit(UiState.Success(api.fetchUser(id)))
        } catch (e: IOException) {
            emit(UiState.Error("Network error", e))
        }
    }.flowOn(Dispatchers.IO)

    private val _user = MutableStateFlow<UiState<User>>(UiState.Loading)
    val user: StateFlow<UiState<User>> = _user.asStateFlow()
}

// Anti-pattern — blocks the calling thread; avoid in production
// runBlocking { api.fetchUser(id) }

Null Safety

// Prefer safe calls and elvis operator
val displayName = user?.profile?.name ?: "Anonymous"

// Use let to scope nullable operations
user?.email?.let { email -> sendNotification(email) }

// !! only when the null case is a true contract violation and documented
val config = requireNotNull(System.getenv("APP_CONFIG")) { "APP_CONFIG must be set" }

Scope Functions

// apply — configure an object, returns receiver
val request = HttpRequest().apply {
    url = "https://api.example.com/users"
    headers["Authorization"] = "Bearer $token"
}

// let — transform nullable / introduce a local scope
val length = name?.let { it.trim().length } ?: 0

// also — side-effects without changing the chain
val user = createUser(form).also { logger.info("Created user ${it.id}") }

Constraints

MUST DO

  • Use null safety (?, ?., ?:, !! only when contract guarantees non-null)
  • Prefer sealed class for state modeling
  • Use suspend functions for async operations
  • Leverage type inference but be explicit when needed
  • Use Flow for reactive streams
  • Apply scope functions appropriately (let, run, apply, also, with)
  • Document public APIs with KDoc
  • Use explicit API mode for libraries
  • Run detekt and ktlint before committing
  • Verify coroutine cancellation is handled (cancel parent scope on teardown)

MUST NOT DO

  • Block coroutines with runBlocking in production code
  • Use !! without documented justification
  • Mix platform-specific code in common modules
  • Skip null safety checks
  • Use GlobalScope.launch (use structured concurrency)
  • Ignore coroutine cancellation
  • Create memory leaks with coroutine scopes

Output Templates

When implementing Kotlin features, provide: 1. Data models (sealed classes, data classes) 2. Implementation file (extension functions, suspend functions) 3. Test file with coroutine test support 4. Brief explanation of Kotlin-specific patterns used

Knowledge Reference

Kotlin 1.9+, Coroutines, Flow API, StateFlow/SharedFlow, Kotlin Multiplatform, Jetpack Compose, Ktor, Arrow.kt, kotlinx.serialization, Detekt, ktlint, Gradle Kotlin DSL, JUnit 5, MockK, Turbine

Documentation

Related skills

FAQ

Why is GlobalScope.launch prohibited?

The skill enforces structured concurrency; GlobalScope creates coroutines with no parent scope, making cancellation and lifecycle management impossible to reason about reliably.

When should !! be used?

Only when a null value represents a true contract violation and it is documented with requireNotNull or an explicit comment; the skill flags undocumented !! as a constraint violation.

How are multiplatform tests structured?

Tests use runTest from kotlinx-coroutines-test for suspend functions and Turbine for Flow assertions, and must compile against all declared KMP platform targets.

Is Kotlin Specialist safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Java & JVMbackendfrontendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.