What problem does it solve? Jetpack Compose's Strong Skipping Mode (default since Kotlin 2.0.20) changes how composables skip recomposition and auto-remember lambdas, but it leaves sharp edges: unstable params compare by reference, lambdas in non-@Composable scopes like LazyListScope.items are not memoized, and escape-hatch annotations are easily misused. This Skill guides verification, auditing, and correct use of those behaviors. ## Core Features & Use Cases - Verify Strong Skipping is active: Check the Kotlin/Compose compiler plugin version, feature flags, and confirm restartable skippable entries in Compose Compiler reports. - Audit lambda capture sites: Identify unstable literal captures (e.g. listOf(...) in composable params) and lambdas in non-@Composable scopes (LazyListScope.items, Modifier.pointerInput) that strong skipping does not auto-remember. - Apply escape hatches correctly: Decide when @DontMemoize, @NonSkippableComposable, @NonRestartableComposable, and @ReadOnlyComposable are justified, with a full reference table in references/escape-hatches.md. - Use Case: A developer migrating from Kotlin 1.9.x to 2.0.20+ sees a LazyColumn item recomposing on every parent tick; the Skill pinpoints that the items { } block is not a @Composable scope and shows how to hoist a stable callback or use a method reference. ## Quick Start Ask the assistant to check whether strong skipping is active in your Compose project and audit why a specific composable still recomposes despite it.