compose-stability-diagnostics
Installation
SKILL.md
Compose stability diagnostics
Core principle
Compose parameter fixes start from evidence. First identify the compiler mode and the parameter comparison behavior, then change the model or call site that is actually defeating skipping.
With Kotlin 2.0.20+ strong skipping is enabled by default. Unstable parameters no longer automatically make restartable composables non-skippable, but unstable parameters compare by instance identity (===) while stable parameters compare by equality (equals). Churny unstable instances can still defeat skipping.
Diagnostic procedure
- Confirm the symptom: recomposition counts, compiler report output, or a suspected churny parameter.
- Identify compiler mode: Kotlin/Compose compiler version and whether strong skipping is enabled.
- Generate or read the Compose compiler reports for the shipped variant.
- For each suspicious parameter, decide whether the problem is stability semantics, instance churn, or a caller-created lambda/derived value.
- Apply the lightest fix that makes the type/call site truthful.
- Re-measure the same interaction or re-read the same report before claiming the issue is fixed.