using-chrisbanes-skills

star 763

Use when a Kotlin, Android, or Jetpack Compose task is too broad for any single focused skill to obviously apply, especially for general review, refactor, architecture, state, performance, testing, or UI API design work.

chrisbanes By chrisbanes schedule Updated 6/16/2026

name: using-chrisbanes-skills description: Use when a Kotlin, Android, or Jetpack Compose task is too broad for any single focused skill to obviously apply, especially for general review, refactor, architecture, state, performance, testing, or UI API design work.

Using chrisbanes skills

Router only. Use this skill to choose the focused skill or skills for the task, then load those focused skills before giving detailed advice or editing code.

If a request already clearly matches a focused skill, use that skill directly. If several areas affect the work, load each relevant focused skill before acting on that area.

Common routes

Task signal Start with
Broad Compose screen review or refactor compose-state-holder-ui-split, then add state, effects, layout, testing, or performance skills as needed
Local Compose state, bare local var, remember { mutableStateOf(...) }, mutableStateListOf, or @ReadOnlyComposable compose-state-authoring
Deciding whether state belongs locally, hoisted, in a plain state holder, or in a screen state holder compose-state-hoisting
ViewModel, component, controller, navigation, Flow collection, or dependency wiring mixed with UI layout compose-state-holder-ui-split
LaunchedEffect, DisposableEffect, SideEffect, rememberCoroutineScope, rememberUpdatedState, navigation, snackbar, analytics, focus requests, or event Flow collection compose-side-effects
Recomposition, jank, compiler reports, Layout Inspector counts, unstable params, scroll reads, animation reads, or back-writing state across phases compose-recomposition-performance
Known Compose stability or skippability question, compiler classes.txt / composables.txt, collection parameters, or strong skipping compose-stability-diagnostics
Frame-rate state reads from scroll, animation, gestures, layout, or draw; value-form layout/draw modifiers; measurement state back-writing compose-state-deferred-reads
Modifier parameters, root layout placement, hardcoded layout decisions, or modifier chain style compose-modifier-and-layout-style
Reusable Compose component API with variable visual content, primitive content params, optional content params, or boolean shape flags compose-slot-api-pattern
Compose visibility, value, color, size, transition, content swap, or choosing an animation API compose-animations
Keyboard, TV, desktop, D-pad, FocusRequester, focusProperties, key events, or initial focus behavior compose-focus-navigation
Compose UI tests, screenshot tests, previews, semantics, fake image loading, keyboard input, focus assertions, or interaction state tests compose-ui-testing-patterns
Coroutine scope ownership, init { launch }, non-suspending APIs that launch work, runBlocking, or cancellation handling kotlin-coroutines-structured-concurrency
StateFlow, SharedFlow, Channel, stateIn, SharingStarted, .value, one-shot events, sentinel initial values, or expensive update blocks kotlin-flow-state-event-modeling
Kotlin Multiplatform platform APIs, source set boundaries, expect/actual, interfaces for platform services, permissions, files, sensors, native SDKs, or Compose Multiplatform interop kotlin-multiplatform-expect-actual
Single-field domain types, primitive obsession, or choosing @JvmInline value class vs data class kotlin-types-value-class
Polling or shepherding PRs/MRs, triaging review comments, fixing CI failures, or keeping reviews moving shepherd

Combining skills

Install via CLI
npx skills add https://github.com/chrisbanes/skills --skill using-chrisbanes-skills
Repository Details
star Stars 763
call_split Forks 37
navigation Branch main
article Path SKILL.md
More from Creator