What problem does it solve? Compose UI tests often become flaky, over-scoped, or assert the wrong thing — full app graphs built to test an error row, screenshot tests for simple text, or fragile pointer simulation for hover states. This Skill provides decision rules and patterns for choosing the right test shape and writing deterministic Compose tests. ## Core Features & Use Cases - Test target selection: A decision table mapping what you need to prove (text, callbacks, focus, visuals, navigation) to the right test shape — plain UI test, screenshot test, or integration test. - Interaction state testing: Patterns for injecting MutableInteractionSource and emitting hover, press, focus, and drag interactions from a test coroutine scope instead of simulating pointer events. - Deterministic screenshot tests: Guidance on faking image loaders, freezing clocks, and fixing state so visual assertions stay stable. - Use Case: When reviewing a PR, you spot a UI test that builds the full DI graph just to verify an error message appears. This Skill tells you to test the plain state-driven composable with state = Error and a semantics assertion instead. ## Quick Start Ask the AI to review or write a Jetpack Compose UI test for a screen using these testing patterns.