What problem does it solve? Compose screens that use collectAsState() keep collecting flows while the app is backgrounded, wasting CPU and battery, and composables that accept Flow parameters block skipping and recompose on every emission. This Skill migrates those patterns to lifecycle-aware collection so upstream work pauses when the UI is not visible. ## Core Features & Use Cases - Lifecycle-aware migration: Replaces every collectAsState() call with collectAsStateWithLifecycle() from androidx.lifecycle:lifecycle-runtime-compose, with guidance on initialValue and minActiveState (STARTED vs RESUMED). - Flow parameter hoisting: Removes the Flow-as-composable-parameter antipattern by collecting at the caller and passing resolved values or lambda providers. - High-frequency stream tuning: Applies .conflate() and .distinctUntilChanged() inside remember() for sensor, location, and websocket streams, plus snapshotFlow for State-to-Flow bridging. - Use Case: A chat screen polls a repository StateFlow and drains battery in the recents tray; apply this Skill to switch to collectAsStateWithLifecycle, conflate the stream, and verify with logcat that upstream work stops when backgrounded. ## Quick Start Ask the assistant to audit this Compose module for collectAsState usages and migrate them to lifecycle-aware collection with proper conflation.