Use this skill to push frequently-changing Jetpack Compose state reads (scroll position, animation values, drag offsets) out of the Composition phase and down into Layout or Draw using lambda-based modifiers like Modifier.offset { }, Modifier.layout { }, Modifier.graphicsLayer { }, Modifier.drawBehind { }, and Modifier.drawWithCache { }. Covers the three-phase model (Composition, Layout, Draw), why a state read at phase N invalidates phase N and every phase below, the modifier-phase cheat sheet, and lambda providers (() -> T) for hoisting hot values across composables. Use when the developer mentions every-frame work, scroll jank, animation jank, dropped frames, animated alpha or offset, "the whole subtree recomposes on scroll", Modifier.alpha(state.value), Modifier.offset(x.dp), or graphicsLayer.
$npx -y skills add skydoves/compose-performance-skills --skill deferring-state-readsInstalls into the current project.
Run `npx skills use "https://github.com/skydoves/compose-performance-skills" --skill "skydoves/compose-performance-skills/deferring-state-reads"` and follow the generated skill instructions now. Read its complete output, redirecting it to a temporary file first if necessary. Resolve relative paths from the supporting-files directory it provides.
Use the skills in "https://github.com/skydoves/compose-performance-skills" that are relevant to the current task. Run `npx skills add "https://github.com/skydoves/compose-performance-skills"` and select the relevant skills, then follow their instructions.