What problem does it solve? Jetpack Compose developers often wrap values in derivedStateOf without knowing whether it helps, causing either wasted snapshot subscriptions or missed recomposition optimizations. This Skill applies the "input frequency must exceed output frequency" rule to decide correctly and fixes the silent capture-by-initial-value bug. ## Core Features & Use Cases - Frequency-based decision rule: Compares input update rate against output change rate to determine whether derivedStateOf filters anything or is pure overhead. - Pitfall detection and fixes: Enforces the mandatory remember { derivedStateOf { } } wrapper, adds captured non-state variables as remember keys, and routes one-shot side effects to snapshotFlow inside LaunchedEffect. - Use Case: A scroll-driven FAB (firstVisibleItemIndex > 0) recomposes on every scrolled item; this Skill rewrites it with remember { derivedStateOf { } } so the composable only recomposes when the boolean flips, then verifies the drop in Layout Inspector. ## Quick Start Ask the AI to review your Compose code and decide whether a specific value should use derivedStateOf, remember with keys, a direct read, or snapshotFlow.