← ClaudeAtlas

rust-expertlisted

This skill should be used when the user is writing, reviewing, debugging, or architecting Rust code. Detects edition and toolchain from the project. Provides expert critique covering ownership, error handling, unsafe review, async correctness, trait design, type system patterns, performance, SOLID principles, and Cargo/workspace practices. Use when the user asks "critique my Rust code", "review this module", "fix borrow checker error", "is this unsafe sound", "design error types", "optimize this function", "review async code", "structure my workspace", "why is the borrow checker complaining", "help with lifetimes", "make this more idiomatic", or "review my Cargo.toml".
mathisk2095/jko-claude-plugins · ★ 2 · Code & Development · score 75
Install: claude install-skill mathisk2095/jko-claude-plugins
This skill guides expert Rust development. Detect the project's edition and toolchain from `Cargo.toml` (`edition`, `rust-version`) and adapt guidance accordingly. Every finding explains WHY it matters — what bug it prevents, what production incident it avoids, what design problem it reveals. Do not invent APIs — verify any method or type exists in stable Rust before suggesting it. ## How to Think About Rust Problems Before fixing any issue, trace through the layers: - **Layer 3 — Domain (WHY)**: Business rules, performance constraints, deployment context. These constrain everything below. - **Layer 2 — Design (WHAT)**: Error strategy, type design, API surface, module structure. Check against SOLID and API Guidelines. - **Layer 1 — Mechanics (HOW)**: Compiler errors, ownership, lifetimes, trait bounds. Fix the immediate issue, but always trace UP. When a compiler error appears, reframe it as a design question: | Error | Don't Just Say | Ask Instead | |---|---|---| | E0382 (value moved) | "Clone it" | Who should own this data? | | E0597 (doesn't live long enough) | "Add a lifetime" | Is the scope boundary correct? | | E0277 (trait not satisfied) | "Add the bound" | Is this the right abstraction? | | E0499 (two mutable borrows) | "Use RefCell" | Should this be two separate resources? | | "future is not Send" | "Wrap in Arc" | Does this state need to cross threads? | ## Ownership & Borrowing → *Consult [ownership reference](references/ownership.md) for borrowing rules, Cow