What problem does it solve? Screens that read external data (database, network, sensors) often show blank pages, raw stack traces, or permanent spinners when something goes wrong. This Skill provides ready-to-use patterns so every screen handles loading, error, empty, offline, permission-denied, and partial-data states with friendly Spanish-language feedback. ## Core Features & Use Cases - Composable state components: LoadingState, skeleton lists with shimmer, ErrorState with retry button, EmptyState with mascot illustration, offline and permission-denied screens. - Sealed UiState modeling: A sealed interface (Loading, Loaded, Empty, Error) with Crossfade transitions and PullToRefreshBox integration for pull-to-refresh flows. - Standardized error messages: A mapping table from exceptions (IOException, SQLiteException, TimeoutCancellationException, etc.) to user-friendly Spanish messages without technical jargon. - Use Case: When building a new screen that loads a list from Room or a remote API, apply this Skill to render a skeleton while loading, a retryable error view on failure, and a warm empty state when no data exists. ## Quick Start Apply the edge-cases skill to add loading, error, and empty states with retry to my Compose screen that loads items from the repository.