What problem does it solve? Kotlin Android codebases often leak exceptions to the UI, use nullable states, or rely on generic error handling that makes ViewModels inconsistent and hard to maintain. This Skill provides consistent patterns for modeling UI states and operation results with sealed classes and Result. ## Core Features & Use Cases - UI State Modeling: Define sealed interfaces for screen states (Loading, Loaded, Error, Empty) consumed by Jetpack Compose with exhaustive when expressions. - Typed Operation Results: Choose between Result<T> for simple success/failure and sealed classes for errors requiring differentiated UI handling. - Exception Mapping: Convert SQLiteException, IOException, and other throwables into user-friendly messages before they reach the UI layer. - Use Case: When building a ViewModel for a form screen in a Hilt-based Android app, apply these patterns to expose a StateFlow of sealed UI states and map repository results into specific error cases like invalid dates or overly long notes. ## Quick Start Apply the sealed-results patterns to design the UiState sealed interface and repository result types for my Kotlin ViewModel.