What problem does it solve? Side effects like $effect blocks, fetches, localStorage writes, timers, and IPC listeners scattered inside Svelte components, stores, and reducers cause duplicate ownership, stale responses, and impure reducers. This Skill moves every such side effect into a redux-saga so reducers stay pure and async flows gain proper cancellation and ordering. ## Core Features & Use Cases - Side Effect Migration Recipes: Convert $effect, fetch, store.subscribe, setTimeout/setInterval, and event listeners into typed-redux-saga workers using takeEvery, takeLatest, delay, and selector channels. - Safe Persistence Helpers: Replace direct localStorage calls with safe saga helpers like setLocalStorageJSON, keeping browser APIs out of components and reducers. - Async Action Flows: Use createAsyncAction with success/failure dispatch inside workers so components never handle async results directly. - Use Case: A component debounces search input with setTimeout and fetches results. Migrate it to a takeLatest saga with delay(300) so stale responses are cancelled and the reducer only receives final results. ## Quick Start Migrate the $effect and fetch logic in my Svelte component into a redux-saga worker following the side-effects migration recipes.