What problem does it solve? Migrating RxJava code to Kotlin coroutines and flows is error-prone: types like BehaviorSubject have ambiguous mappings, retry semantics differ between the two models, and hot versus cold stream behavior can silently change. This Skill provides a structured, incremental migration process that classifies code complexity first and forces explicit decisions before any code is rewritten. ## Core Features & Use Cases - Complexity Assessment: Classifies RxJava chains as Simple or Complex based on operator count, schedulers, error recovery, and backpressure, so trivial cases map directly while risky ones trigger user prompts. - Type, Scheduler, and Operator Mapping: Provides explicit tables mapping Single, Maybe, Completable, Subject variants, and Schedulers to suspend functions, Flow, StateFlow, SharedFlow, and CoroutineDispatchers, plus a full operator reference in migration-map.md. - Incremental Interop Strategy: Uses kotlinx-coroutines-rx3 bridges (await, asFlow, asObservable) at layer boundaries so migration proceeds leaf-first from data sources up to ViewModels. - Use Case: A developer asks to migrate a repository class using flatMap, retryWhen, and a BehaviorSubject. The Skill flags it as Complex, asks about retry policy and StateFlow versus SharedFlow semantics, then produces correct Flow code using retryWhen and MutableStateFlow. ## Quick Start Migrate this RxJava repository class to Kotlin coroutines and flows, asking me about any ambiguous mappings before writing code.