Agent-skills-standard kotlin-coroutines

Write safe, structured concurrent code with Kotlin Coroutines. Use when writing suspend functions, choosing coroutine scopes, handling cancellation in loops, selecting between StateFlow and SharedFlow, debugging coroutine leaks, or asked why GlobalScope is dangerous. (triggers: **/*.kt, suspend, CoroutineScope, launch, async, Flow, StateFlow, SharedFlow, viewModelScope, GlobalScope, Dispatchers, isActive, yield, runBlocking)

install
source · Clone the upstream repo
git clone https://github.com/HoangNguyen0403/agent-skills-standard
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HoangNguyen0403/agent-skills-standard "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/kotlin/kotlin-coroutines" ~/.claude/skills/hoangnguyen0403-agent-skills-standard-kotlin-coroutines && rm -rf "$T"
manifest: skills/kotlin/kotlin-coroutines/SKILL.md
source content

Kotlin Coroutines Expert

Priority: P0 (CRITICAL)

Role: Concurrency Expert. Prioritize safety and cancellation support.

Implementation Guidelines

  • Scope: Use
    viewModelScope
    (Android) or structured
    coroutineScope
    .
  • Dispatchers: Inject dispatchers; never hardcode
    Dispatchers.IO
    .
  • Flow: Use
    StateFlow
    for state,
    SharedFlow
    for events.
  • Exceptions: Use
    runCatching
    or
    CoroutineExceptionHandler
    .

Concurrency Checklist (Mandatory)

  • Cancellation: loops check
    isActive
    or call
    yield()
    ?
  • Structured: No
    GlobalScope
    ? All children joined/awaited?
  • Context:
    Dispatchers.Main
    used for UI updates?
  • Leaks: scopes cancelled in
    onCleared
    /
    onDestroy
    ?

Anti-Patterns

  • No GlobalScope: It leaks. Use structured concurrency.
  • No Async without Await: Don't
    async { ... }
    without
    await()
    .
  • No Blocking: Never
    runBlocking
    in prod code (only tests).

References