Claude Code Plugins

Community-maintained marketplace

Feedback

Kotlin coroutines - structured concurrency, Flows, exception handling

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name kotlin-coroutines
description Kotlin coroutines - structured concurrency, Flows, exception handling
version 1.0.0
sasmp_version 1.3.0
bonded_agent 03-kotlin-coroutines
bond_type PRIMARY_BOND
execution [object Object]
parameters [object Object]
logging [object Object]

Kotlin Coroutines Skill

Master asynchronous programming with structured concurrency.

Topics Covered

Structured Concurrency

// ✅ Structured - cancellation propagates
class Repository(private val scope: CoroutineScope) {
    suspend fun load() = withContext(Dispatchers.IO) { fetch() }
}

// ❌ Avoid GlobalScope
GlobalScope.launch { /* leaks */ }

Exception Handling

suspend fun loadData() = supervisorScope {
    val a = async { fetchA() }
    val b = async { fetchB() }
    Result(a.awaitOrNull(), b.awaitOrNull())
}

// Never swallow CancellationException
catch (e: Exception) {
    if (e is CancellationException) throw e
}

Testing

@Test
fun test() = runTest {
    val vm = ViewModel(testDispatcher)
    vm.load()
    advanceUntilIdle()
    assertThat(vm.state.value.data).isNotNull()
}

Troubleshooting

Issue Resolution
Coroutine leak Use structured scopes, not GlobalScope
Test hangs Inject TestDispatcher, use advanceUntilIdle()

Usage

Skill("kotlin-coroutines")