using-strong-skipping-correctly

Verify Strong Skipping activation and audit lambda captures in Kotlin 2.0+ Compose projects.

472|16|Updated Apr 29, 2026
One-click install
npx skills add https://github.com/skydoves/compose-performance-skills --skill using-strong-skipping-correctly
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: using-strong-skipping-correctly
Source: https://github.com/skydoves/compose-performance-skills/tree/main/recomposition/using-strong-skipping-correctly
Command: npx skills add https://github.com/skydoves/compose-performance-skills --skill using-strong-skipping-correctly

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Jetpack Compose's Strong Skipping Mode changes the way restartable composables are memoized and how capturing lambdas are remembered. This skill helps engineers reason about when composables skip, when they don't, and how to audit lambda captures and escape hatches to ensure correct behavior.

Core Features & Use Cases

  • Verify that Strong Skipping is active for the project and identify any opt-out flags or legacy settings.
  • Audit lambda capture sites inside @Composable scopes to ensure captures are stable or hoisted with remember.
  • Identify gaps where strong skipping does not memoize, such as LazyListScope.items, Modifier.pointerInput, object expressions, and non-@Composable scopes.
  • Apply escape hatches like @DontMemoize, @NonSkippableComposable, @NonRestartableComposable, and @ReadOnlyComposable with proper rationale.
  • Prove behavior at runtime using @TraceRecomposition and CI stability checks to guard against regressions.

Quick Start

Verify your Kotlin / Compose plugin version and perform an initial audit on a sample composable to confirm strong skipping behavior.

Frequently Asked Questions about using-strong-skipping-correctly

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How does Strong Skipping Mode change lambda memoization in Jetpack Compose?

Strong Skipping Mode in Jetpack Compose modifies how restartable composables are memoized and how capturing lambdas are remembered, changing when composables skip or recompose. It requires auditing lambda captures to ensure they are stable or hoisted with remember.

How do I verify that Strong Skipping is active in my Kotlin 2.0 Compose project?

To verify Strong Skipping is active, check your Kotlin and Compose plugin versions and inspect the project configuration for any opt-out flags or legacy settings. Perform an initial audit on a sample composable to confirm the expected skipping behavior.

Where does Strong Skipping fail to memoize lambdas in Android Compose?

Strong Skipping does not memoize lambdas in gaps such as LazyListScope.items, Modifier.pointerInput, object expressions, and non-@Composable scopes. Engineers must identify these sites and apply escape hatches or hoist state to ensure correct recomposition behavior.

What escape hatches can I use to control composable memoization in Compose?

You can apply escape hatches like @DontMemoize, @NonSkippableComposable, @NonRestartableComposable, and @ReadOnlyComposable to control composable memoization. Use these annotations with proper rationale to prevent unwanted skipping or enforce recomposition where needed.

How do I validate Compose recomposition behavior at runtime and catch regressions in CI?

Validate recomposition behavior at runtime using @TraceRecomposition to observe when composables skip or restart. Establish CI stability checks to guard against regressions, ensuring any unintended changes to memoization or lambda captures are caught by CI.