What problem does it solve?
Jetpack Compose code often mixes state ownership, effect lifecycles, and app wiring into composables, causing recomposition bugs, leaked listeners, and untestable screens. This Skill provides a structured review procedure that places every state value at its lowest responsible owner and matches every side effect to the correct lifecycle-aware API.
Core Features & Use Cases
- State ownership placement: Decides between local
remember state, hoisted state, plain UI state holders, and screen-level holders like ViewModel, with a three-seam screen boundary pattern separating wiring, runtime objects, and previewable content composables.
- Effect API selection: Chooses between
LaunchedEffect, DisposableEffect, SideEffect, rememberCoroutineScope, snapshotFlow, and rememberUpdatedState based on lifecycle semantics, with correct keying and cleanup rules.
- Use Case: When reviewing a screen that collects a Flow, shows a snackbar, and requests focus, use this Skill to verify each effect is keyed by the right semantic input, registrations are paired with
onDispose, and the content composable receives only immutable state and callbacks.
Quick Start
Review this Compose screen for state ownership and effect lifecycle issues, and tell me where each state value and side effect should live.