What problem does it solve? Setting up dependency injection in Kotlin Multiplatform projects is error-prone: modules end up scattered across layers, ViewModels get registered with the wrong scope, platform-specific bindings leak into commonMain, and missing interface bindings cause runtime failures instead of compile-time errors. This Skill defines a consistent, architecture-aligned way to configure Koin 4.2 across Android, iOS, and Desktop. ## Core Features & Use Cases - Layered module structure: Organizes Koin modules by Clean Architecture layer (application, infrastructure, presentation) inside composition/di, with a single shared initKoin() entry point. - Platform bindings via expect/actual: Declares platformModule as expect/actual so SQLDelight drivers, Ktor engines, Keychain, and Android Context stay out of common code. - Registration rules and anti-patterns: Enforces constructor-reference DSL (singleOf, factoryOf, viewModelOf), explicit interface binding with bind, and graph verification with koin-test checkModules. - Use Case: You add a new Repository, UseCase, and ViewModel to a KMP app. The Skill tells you exactly which module each class goes in, how to bind the implementation to its interface, and how to verify the graph resolves on all platforms before merging. ## Quick Start Ask the AI to register a new Repository, UseCase, and ViewModel with Koin in your Kotlin Multiplatform project following the layered module structure.