What problem does it solve? Rust codebases drift into god modules, scattered type buckets, and over-widened visibility as they grow. This Skill applies a consistent set of rules for module layout, visibility levels, re-export facades, and crate boundaries so reorganizations stay deliberate and behavior-preserving. ## Core Features & Use Cases - Module layout guidance: Enforces the sibling-file pattern for new code while matching existing mod.rs conventions during edits, and splits modules only when size coincides with distinct domain concepts. - Visibility discipline: Widens visibility one rung at a time (private, pub(super), pub(in path), pub(crate), pub) with each widening justified by a named consumer. - Facade and crate boundaries: Keeps public APIs flat behind re-export facades, co-locates tightly coupled types, and reserves new crates for real boundaries like compile-time firewalls. - Use Case: When a 600-line billing.rs mixes invoices, payments, and refunds, use this Skill to split it by domain concept, keep the facade so callers see no path change, and verify the build and tests still pass. ## Quick Start Use the sd-rust-modules skill to split my oversized billing module into cohesive submodules without changing the public API.