What problem does it solve? Jetpack Compose composable bodies can be recomposed, skipped, or abandoned, so running side work directly in composition causes bugs like duplicate network calls, stale callbacks, leaked listeners, and missed Flow events. This Skill provides decision rules and code patterns for placing side work in the correct effect API. ## Core Features & Use Cases - Effect API selection: Decision table mapping each need to the right API: SideEffect, DisposableEffect, LaunchedEffect, rememberCoroutineScope, or snapshotFlow. - Key and stale-capture guidance: Rules for choosing effect keys, plus correct use of rememberUpdatedState and its eager-read trap inside remember blocks. - Flow collection and event patterns: Lifecycle-aware collection of event Flows, snapshotFlow usage, and rememberCoroutineScope for user-triggered suspending work. - Use Case: While reviewing a Compose screen, you notice LaunchedEffect(Unit) collecting a Flow keyed by a changing userId. The Skill identifies the missing key and shows the corrected LaunchedEffect(userId) pattern. ## Quick Start Review this Composable for side-effect mistakes and suggest the correct effect API and keys.