← ClaudeAtlas

rust-abstraction-designlisted

Design or review Rust concrete APIs, generics, traits, trait objects, closed enums, lifetimes, typed errors, panic boundaries, and safe wrappers around unsafe code. Use when deciding whether repeated behavior justifies abstraction or selecting static versus dynamic polymorphism and API failure contracts. Do not use when the primary task is crate/module layout or organizing fields, states, functions, and methods around one domain owner; prefer rust-project-architecture or rust-code-structure.
genaptic/skillsets · ★ 1 · Web & Frontend · score 70
Install: claude install-skill genaptic/skillsets
## Outcome Produce the least powerful Rust abstraction that satisfies demonstrated reuse, substitution, extension, lifetime, and failure requirements while keeping behavior understandable and safe. ## Compatibility Portable across Claude Code, Codex, and OpenCode. Honor the target repository's Rust toolchain, edition, MSRV, dependency versions, public API policy, object-safety requirements, and unsafe-code rules. Edition 2024 examples require Rust 1.85 or newer. Optional network research requires authorization; without it, qualify version-sensitive claims. Native-client compatibility remains unverified without a dated exact-SHA report. ## Inputs - Concrete use cases, callers, implementations, extension expectations, and performance constraints. - Existing types, traits, generic bounds, lifetimes, errors, panics, unsafe blocks, and tests. - Public API and compatibility commitments plus repository lint and dependency policy. - Whether implementation families are closed, open, compile-time selected, or runtime selected. ## Safety - Keep code concrete until reuse or variation pressure is demonstrated; do not introduce traits, generics, macros, or code generation speculatively. - Treat public traits, generic bounds, auto traits, error variants, and lifetimes as compatibility contracts. Avoid broad changes without migration evidence. - Keep required `unsafe` operations minimal, document invariants and `# Safety`, and expose a safe API only when those invariants can be