What problem does it solve?
This Skill helps engineers write correct, idiomatic Kotlin for coroutine-driven asynchronous systems, reducing concurrency bugs, improper cancellation handling, and inconsistent dispatcher usage across a codebase.
Core Features & Use Cases
- Coroutine correctness & structured concurrency: guidance on using scoped CoroutineScope, SupervisorJob, avoiding GlobalScope, using isActive checks, and always propagating CancellationException.
- Reactive streams & testing: patterns for Cold Flow, StateFlow, and testing approaches using runTest and Turbine to validate stream behavior and cancellation.
- Project conventions & tooling: recommendations for Gradle Kotlin DSL dependency management, Koin-based injection of CoroutineDispatcher, and enforced static checks using detekt and ktlint.
- Spovishun-specific rules: dispatcher restrictions (only data/db/DatabaseFactory.kt may use Dispatchers.IO), TelegramBot SupervisorJob scope, and never hardcode Dispatchers.IO inside classes.
Quick Start
Ask the Kotlin Specialist to implement a suspend repository method that returns a Flow of user updates, injects a CoroutineDispatcher via Koin, and follows the project's dispatcher and cancellation rules.