| Task signal | Start with |
|---|---|
| Broad Compose screen review, local or hoisted UI state, screen state holders, effect APIs, navigation effects, snackbar, analytics, focus requests, or event Flow collection where Compose APIs, a composable screen, or an explicit greenfield Compose request is evidenced | compose-state-and-effects |
Recomposition, jank, compiler reports, skippability, unstable parameters, frame-rate State reads, back-writing, or @ReadOnlyComposable | compose-performance |
| Modifier parameters, root layout placement, variable visual content, primitive content parameters, optional content, or Boolean shape flags | compose-component-design |
| 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 launch APIs, runBlocking, cancellation, StateFlow, SharedFlow, Channel, stateIn, or one-shot events | kotlin-concurrency-and-flow |
Kotlin branching, when expressions, guard conditions, sealed type exhaustiveness, smart casts, nullable branching, or complex if/else chains | kotlin-control-flow |
| Kotlin function placement, member versus top-level or extension functions, factories, single-field domain types, value classes, Kotlin Multiplatform source sets, expect/actual, or platform services | kotlin-api-design |
| Planned Gradle execution, a compact Gradle workflow ledger, repeated Gradle failure fingerprints, or a Gradle-centered build, check, warning-cleanup, or failure workflow, including a diagnosis that should stop before another run | gradle-run |
| One ready GitHub issue or in-chat task needs repository-aware planning before a separate implementation session | to-plan |
| Polling or shepherding PRs/MRs, triaging review comments, fixing CI failures, or keeping reviews moving | shepherd |
compose-state-and-effects, then add kotlin-concurrency-and-flow when event delivery semantics matter.compose-performance.compose-animations; add compose-state-and-effects for ownership changes and compose-performance for frame-rate values.compose-component-design.compose-focus-navigation first, then compose-ui-testing-patterns for test shape.kotlin-control-flow.kotlin-concurrency-and-flow with kotlin-control-flow. Do not add compose-state-and-effects unless Compose APIs or state/effect ownership are present or explicitly requested as new code.gradle-run.compose-state-and-effects first and adds another skill only for an evidenced concern.compose-component-design plus compose-animations, not the state cluster by default.kotlin-control-flow and does not route through API design.kotlin-concurrency-and-flow and
kotlin-control-flow, not the Compose
state cluster; mentioning a hypothetical UI collector is not Compose
evidence.compose-state-and-effects and
kotlin-concurrency-and-flow even
though the composable does not exist yet.gradle-run, stops the rerun loop, and
names focused source inspection before any fix or command.Start with one job and grow from there.