What problem does it solve? Compose UI tests often become flaky, over-scoped, or assert the wrong thing—spinning up full DI graphs to check a text label, simulating pointer events to trigger hover states, or screenshotting content that semantics could verify. This Skill provides decision rules and code 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 coroutine scope instead of fragile pointer simulation. - Deterministic screenshot tests: Guidance on faking image loaders, freezing clocks, and fixing state so visual assertions stay stable. - Use Case: While reviewing a pull request, you notice a test builds the full ViewModel and repository graph just to verify an error row renders. Apply this Skill to rewrite it as a plain UI test passing state = Error directly, then assert with semantics. ## Quick Start Ask the AI to review or write a Jetpack Compose UI test for a specific composable using these testing patterns.