{
  "id": "kotlin-compose-ui-quality-accessibility",
  "name": "kotlin-compose-ui-quality-accessibility",
  "version": "0.1.0",
  "type": "skill",
  "provider": "kotlin",
  "harnesses": [
    "codex",
    "claude-code",
    "cursor",
    "gemini",
    "kiro",
    "other"
  ],
  "summary": "Static review of Jetpack Compose UI correctness and accessibility: recomposition stability (@Stable/@Immutable, unstable parameters), correct side-effect API usage, remember/derivedStateOf scoping, state hoisting, and mandatory semantics/contentDescription and touch-target accessibility. Reads source only.",
  "source_type": "original",
  "official_docs": [
    "https://developer.android.com/develop/ui/compose/performance/stability",
    "https://developer.android.com/develop/ui/compose/side-effects",
    "https://developer.android.com/develop/ui/compose/accessibility",
    "https://developer.android.com/develop/ui/compose/state"
  ],
  "security_notes": "Static review only — reads Compose source and sanitized resources; never builds, runs, or renders the UI, never captures a live Layout Inspector or recomposition-count trace, and never invokes a device or emulator. Claims about actual measured recomposition counts or frame timing are flagged as needing profiler/Macrobenchmark verification rather than asserted. Never requests secrets, credentials, or customer data.",
  "last_verified": "2026-07-21",
  "path": "skills/kotlin/kotlin-compose-ui-quality-accessibility",
  "author": "github: VincentChuWaiChow"
}
