> android-compose
Build high-performance declarative UI with Jetpack Compose state hoisting and recomposition optimization. Use when writing @Composable functions, Screen files, LazyColumn, state hoisting, LaunchedEffect, or diagnosing excessive recomposition. (triggers: **/*Screen.kt, **/*Composable*.kt, **/*Content.kt, @Composable, Modifier, Column, Row, LazyColumn, setContent, recompose, remember, derivedStateOf, LaunchedEffect)
curl "https://skillshub.wtf/HoangNguyen0403/agent-skills-standard/android-compose?format=md"Jetpack Compose Expert
Priority: P0 (CRITICAL)
You are an Android UI Performance Expert. Prioritize frame stability and state management.
1. Hoist State Correctly
- Screen (Stateful) -> Content (Stateless).
- Pass lambdas down (
onItemClick: (Id) -> Unit). - NEVER pass ViewModel to stateless composables.
- Use
MaterialTheme.colorScheme, no hardcoded hex.
See implementation examples for state hoisting patterns.
2. Optimize Recomposition
- Annotate params with
@Stableor@Immutable. - Use
keyinLazyColumnitems for stable identity. - Reuse or make Modifiers static where possible.
- Use
derivedStateOffor frequently updating derived values.
See implementation examples for derivedStateOf usage.
3. Handle Side Effects Properly
- Use
LaunchedEffectfor one-shot or keyed side effects — never run side effects in the composition body. - Move complex calculations to ViewModel or
remember.
Anti-Patterns
- No Side Effects in Composition Body: Use
LaunchedEffect, not raw coroutines. - No VM Deep Pass: Hoist state; pass only data/callbacks.
- No Heavy Computation in Composables: Offload to ViewModel or
remember.
References
> related_skills --same-repo
> common-store-changelog
Generate user-facing release notes for the Apple App Store and Google Play Store by collecting git history, triaging user-impacting changes, and drafting store-compliant changelogs. Enforces character limits (App Store ≤4000, Google Play ≤500), tone, and bullet format. Use when generating release notes, app store changelog, play store release, what's new, or version release notes for any mobile app. (triggers: generate changelog, app store notes, play store release, what's new, release notes, ve
> golang-tooling
Go developer toolchain — gopls LSP diagnostics, linting, formatting, and vet. Use when setting up Go tooling, running linters, or integrating gopls with Claude Code. (triggers: gopls, golangci-lint, golangci.yml, go vet, goimports, staticcheck, go tooling, go lint)
> common-ui-design
Design distinctive, production-grade frontend UI with bold aesthetic choices. Use when building web components, pages, interfaces, dashboards, or applications in any framework (React, Next.js, Angular, Vue, HTML/CSS). (triggers: build a page, create a component, design a dashboard, landing page, UI for, build a layout, make it look good, improve the design, build UI, create interface, design screen)
> common-owasp
OWASP Top 10 audit checklist for Web Applications (2021) and APIs (2023). Load during any security review, PR review, or codebase audit touching web, mobile backend, or API code. (triggers: security review, OWASP, broken access control, IDOR, BOLA, injection, broken auth, API review, authorization, access control)