What problem does it solve? Migrating RxJava code to Kotlin coroutines and flows is error-prone: type mappings are ambiguous, retry semantics differ subtly, and hot streams lose behavior when converted naively. This Skill provides a structured, incremental migration process that classifies complexity first and forces explicit decisions on ambiguous mappings. ## Core Features & Use Cases - Complexity Assessment: Classifies RxJava chains as Simple or Complex before writing any code, so tricky cases (retryWhen, Flowable backpressure, shared Subjects) get a strategy and user confirmation instead of blind conversion. - Type, Scheduler, and Operator Mapping: Maps Single/Maybe/Completable/Observable/Flowable to suspend functions and Flow, schedulers to dispatchers, and includes a full operator reference table in migration-map.md. - Incremental Interop: Uses kotlinx-coroutines-rx3 bridges (await, asFlow, asObservable) at layer boundaries so migration proceeds leaf-first, layer by layer, with commits after each layer. - Use Case: A developer asks to migrate a repository class using BehaviorSubject and retryWhen. The Skill flags both as Complex, asks whether StateFlow or SharedFlow(replay=1) fits, and rewrites the retry policy using Flow's retryWhen with correct cause/attempt semantics. ## Quick Start Ask the assistant to migrate a specific RxJava class or chain to Kotlin coroutines and flows, and confirm the return types of any APIs it calls.