What problem does it solve? Structuring the Presentation layer in Kotlin Multiplatform apps with Compose Multiplatform is error-prone: ViewModels leak platform APIs, state becomes mutable and inconsistent, and Composables end up holding business logic. This Skill enforces a consistent, unidirectional MVVM architecture that compiles identically on Android, iOS, and Desktop. ## Core Features & Use Cases - ViewModel scaffolding: Creates ViewModels extending androidx.lifecycle.ViewModel in commonMain, exposing immutable StateFlow<UiState> and launching coroutines only via viewModelScope. - UiState/UiEvent modeling: Decides between direct public functions for simple actions and a sealed interface UiEvent with a single onEvent handler for forms or multi-action screens. - Composable wiring: Connects screens using collectAsStateWithLifecycle() and Koin-injected ViewModels, keeping Presentation decoupled from Infrastructure. - Use Case: When adding a new Login screen to a KMP app, use this Skill to generate LoginUiState, LoginUiEvent, LoginViewModel calling the LoginUseCase, and the LoginScreen Composable following the unidirectional data flow. ## Quick Start Ask the AI to create the ViewModel, UiState, and screen for a new feature following the mvvm-compose-kmp pattern, providing the feature name and the UseCases it needs.