What problem does it solve? Async Rust defects — blocked executors, detached tasks, locks held across await points, and cancellation-unsafe state — are invisible to the compiler and to happy-path tests. This Skill provides a structured discipline for writing, restructuring, and debugging async and multithreaded Rust so these failure modes are caught by design rather than in production. ## Core Features & Use Cases - Blocking audit and routing: Detects blocking work inside async code and routes it correctly — synchronous I/O to spawn_blocking, CPU-bound work to a rayon compute pool, long-lived blocking loops to dedicated threads. - Send/'static and spawn hygiene: Resolves Send and 'static bound errors structurally, and ensures every spawned task has an owner with a join or abort path at shutdown. - Cancellation-safety review: Walks every .await point to verify shared state is never left half-mutated when futures are dropped by races, timeouts, or shutdown. - Use Case: You hit a "future cannot be sent between threads safely" error when spawning a task that holds an Rc across an await. The Skill guides you to scope the non-Send value so it drops before the await, or switch shared state to Arc and std::sync::Mutex. ## Quick Start Ask the AI to review your async Rust function for blocking calls, Send bound issues, lock-across-await problems, and cancellation safety using the sd-rust-async skill.