What problem does it solve? Kotlin codebases often accumulate dangerous coroutine anti-patterns: classes storing CoroutineScope as properties, init blocks launching fire-and-forget work, runBlocking bridging suspend APIs, and catch blocks silently swallowing CancellationException. These bugs cause silent work loss, uncancellable background loops, and broken structured concurrency that are extremely hard to diagnose in production. ## Core Features & Use Cases - Anti-pattern Detection: Identifies stored CoroutineScope properties, init-block launches, fire-and-forget public APIs on repositories and managers, DI-bound singletons launching from constructors, and Initializer classes that launch instead of register. - Cancellation Safety Review: Catches runCatching and broad catch (Exception/Throwable) blocks around suspend calls that swallow CancellationException, with concrete fix patterns like ensureActive() and conditional rethrow. - runBlocking Remediation: Flags runBlocking in suspend-capable code and tests (recommending runTest), while documenting legitimate carve-outs like ContentProvider members. - Use Case: During code review of an Android repository class with private val scope: CoroutineScope and fun refresh() { scope.launch { ... } }, apply this Skill to refactor it into a clean suspend fun refresh() API where the ViewModel's viewModelScope owns the lifecycle. ## Quick Start Review this Kotlin repository class for coroutine structured-concurrency violations and refactor any stored scopes or fire-and-forget launches into suspend APIs.