What problem does it solve? Choosing and implementing navigation in a Kotlin Multiplatform Compose project is error-prone: Navigation 3 is stable on Android but its multiplatform pieces may still be in alpha, ViewModels often get coupled to NavController, and routes defined as raw Strings lose type safety. This Skill provides a decision framework and implementation rules for clean, testable navigation across Android, iOS, and Desktop. ## Core Features & Use Cases - Framework Decision Guide: Choose between Navigation 3 (androidx.navigation3) and Navigation 2 Compose Multiplatform (org.jetbrains.androidx.navigation:navigation-compose) based on verified library maturity for your target platforms. - Type-Safe Routes: Define destinations as @Serializable data classes/objects in presentation/navigation/routes instead of loose Strings. - Decoupled ViewModels: ViewModels emit NavigationEvent objects through a Channel/SharedFlow; only the NavHost/NavDisplay container translates events into real navigation calls. - Use Case: When adding a new feature with a list screen and a detail screen, use this Skill to define HomeRoute and DetailRoute, wire the ViewModel's navigation events, and pick the correct navigation library for your iOS/Desktop targets. ## Quick Start Ask the assistant to define the navigation for a new feature with a list screen and a detail screen in your Compose Multiplatform project, choosing between Navigation 3 and Navigation 2 based on current library stability.