What problem does it solve? Building infinite-scroll lists in Android with Paging 3 involves subtle pitfalls — misplaced cachedIn calls, PagingData embedded in UiState, missing item keys, and untestable paging flows — that cause scroll jumps, cache leaks, and broken UI state. ## Core Features & Use Cases - PagingSource and Pager setup: Defines per-endpoint PagingSource implementations with correct LoadResult handling, PagingConfig tuning, and the dual-flow ViewModel rule separating Flow<PagingData> from StateFlow<UiState>. - Compose integration: Wires LazyPagingItems into LazyColumn with itemKey, itemContentType, and loadState-driven loading and error footers. - Offline-first and testing: Implements RemoteMediator with Room transactions for offline-first lists, dynamic filters via flatMapLatest, and unit tests using TestPager and asSnapshot. - Use Case: You are adding an infinite-scroll repository search screen to a Compose app. Use this Skill to scaffold the PagingSource, ViewModel paging flow with debounced query filters, LazyColumn UI with stable keys, and ViewModel tests that scroll to index 30 via asSnapshot. ## Quick Start Use the paging skill to implement an infinite-scroll list in my Compose app backed by a Retrofit endpoint, including the ViewModel paging flow and LazyColumn UI.