From chrisbanes-skills
Investigates Jetpack Compose recomposition performance across three axes: parameter stability, State read phase, and cross-phase back-writing. Routes to focused skills for deeper fixes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/chrisbanes-skills:compose-recomposition-performanceThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Router only — deep fixes live in focused skills below.
Router only — deep fixes live in focused skills below.
State is read — is frame-rate State read during composition vs layout/draw?onSizeChanged (layout phase) writing state read by a sibling in composition.Axes 2 and 3 often overlap (a sibling reading measured size in composition is both a deferred-read violation and a layout → composition back-write). Axis 1 is independent.
| Primary suspicion | Next skill |
|---|---|
Skipping, unstable params, compiler/composables.txt churn | compose-stability-diagnostics |
Frame-rate State read phase (composition vs layout/draw) | compose-state-deferred-reads |
putAll / map rebuild / cross-row height(state) during composition | compose-state-deferred-reads — § back-writing |
| Focus-driven side work in composable body | compose-side-effects — snapshotFlow |
| Evidence for multiple axes | Apply matching skills in parallel |
These changes often do not reduce recomposition count:
| Attempt | Why it fails |
|---|---|
remember(index) { isFirstRow(index) } instead of inline when (index) | Same inputs; no skipping benefit |
| Identity cache for read-only derived maps | Can serve stale overlays; remember(keys) is enough |
mutableIntStateOf + layout modifier on both measured and sibling rows | Sibling still reads size in composition unless measure-only |
Forcing Exactly(1) on both rows in focus-move tests | One row often correctly recomposes 0 times |
| Hoisting without stabilizing lambda captures | New lambda instance each frame still defeats skipping |
compose-state-authoring — authoring mutableState* safely.3plugins reuse this skill
First indexed Jun 4, 2026
npx claudepluginhub chrisbanes/skills --plugin chrisbanes-skillsDiagnoses parameter stability and skippability issues in Jetpack Compose, using compiler reports and strong skipping analysis to fix recomposition bottlenecks.
Audits Jetpack Compose runtime performance via code review and profiling. Diagnoses slow rendering, janky scrolling, and excessive recompositions.
Diagnoses and fixes Jetpack Compose performance problems including stability, recomposition, lazy layouts, modifiers, side effects, and build configuration. 26 skills for diagnosing and fixing specific issues.