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.mdsource content
Kotlin Coroutines Expert
Priority: P0 (CRITICAL)
Role: Concurrency Expert. Prioritize safety and cancellation support.
Implementation Guidelines
- Scope: Use
(Android) or structuredviewModelScope
.coroutineScope - Dispatchers: Inject dispatchers; never hardcode
.Dispatchers.IO - Flow: Use
for state,StateFlow
for events.SharedFlow - Exceptions: Use
orrunCatching
.CoroutineExceptionHandler
Concurrency Checklist (Mandatory)
- Cancellation: loops check
or callisActive
?yield() - Structured: No
? All children joined/awaited?GlobalScope - Context:
used for UI updates?Dispatchers.Main - Leaks: scopes cancelled in
/onCleared
?onDestroy
Anti-Patterns
- No GlobalScope: It leaks. Use structured concurrency.
- No Async without Await: Don't
withoutasync { ... }
.await() - No Blocking: Never
in prod code (only tests).runBlocking