rust-review
Audits Rust code for unsafe blocks, ownership issues, and Cargo dependency risks. Use when reviewing Rust code or before merging Rust changes.
How do I install this agent skill?
npx skills add https://github.com/athola/claude-night-market --skill rust-reviewIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill is a comprehensive Rust code auditing tool designed to detect safety violations, concurrency issues, and idiomatic slop. It relies on standard Rust diagnostic tools and internal verification scripts to ensure audit findings are grounded in the source code. No malicious patterns or security risks were identified.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
- Runlayerpass
6 files scanned · No issues
- ZeroLeakspass
Score: 93/100 · 2 sections analyzed
What does this agent skill do?
Rust Review Workflow
Expert-level Rust code audits with focus on safety, correctness, and idiomatic patterns.
Quick Start
/rust-review
Verification: Run the command with --help flag to verify availability.
When To Use
- Reviewing Rust code changes
- Auditing unsafe blocks
- Analyzing concurrency patterns
- Dependency security review
- Performance optimization review
When NOT To Use
- General code review without Rust - use unified-review
- Performance profiling - use parseltongue:python-performance pattern
Required TodoWrite Items
rust-review:ownership-analysisrust-review:error-handlingrust-review:concurrencyrust-review:unsafe-auditrust-review:cargo-depsrust-review:native-modelingrust-review:idiomatic-elisionrust-review:coercion-paramsrust-review:conversion-traitsrust-review:numeric-cast-safetyrust-review:mutable-static-auditrust-review:match-wildcardrust-review:transmute-auditrust-review:float-equalityrust-review:mem-forget-auditrust-review:repr-packed-auditrust-review:evidence-logrust-review:findings-verified
Progressive Loading
Load modules as needed based on review scope:
Quick Review (ownership and errors):
- See
modules/ownership-analysis.mdfor borrowing and lifetime analysis - See
modules/error-handling.mdfor Result/Option patterns
Concurrency Focus:
- See
modules/concurrency-patterns.mdfor async and sync primitives
Safety Audit:
- See
modules/unsafe-audit.mdfor unsafe block documentation - See
modules/mutable-static-audit.mdforstatic mutglobals and their thread-safe replacements - See
modules/numeric-cast-safety.mdfor truncating and precision-losingascasts - See
modules/match-wildcard.mdfor catch-all arms that defeat enum exhaustiveness - See
modules/transmute-audit.mdformem::transmute/transmute_copycalls that reinterpret bytes with no layout check - See
modules/repr-packed-audit.mdfor#[repr(packed)]layouts whose field borrows become unaligned references
Correctness Audit:
- See
modules/float-equality.mdfor==/!=against float literals - See
modules/mem-forget-audit.mdformem::forgetleaks and no-opdrop(&x)reference drops
Dependency Review:
- See
modules/cargo-dependencies.mdfor vulnerability scanning
Idiomatic Patterns:
- See
modules/builtin-preference.mdfor conversion traits and builtin preference - See
modules/native-type-modeling.mdfor enums-over-primitives, newtype, type-state, and derived ordering - See
modules/idiomatic-elision.mdfor lifetime elision, expression-oriented returns, and explicit-> ()unit returns - See
modules/coercion-params.mdfor&String/&Vec<T>/&PathBufparameters that defeat deref coercion (prefer&str/&[T]/&Path) - See
modules/conversion-traits.mdforimpl Intothat should beimpl From, and discardedtry_into().unwrap()conversion errors
Core Workflow
- Ownership Analysis: Check borrowing, lifetimes, clone patterns
- Error Handling: Verify Result/Option usage, propagation
- Concurrency: Review async patterns, sync primitives
- Unsafe Audit: Document invariants, FFI contracts
- Dependencies: Scan for vulnerabilities, updates
- Evidence Log: Record commands and findings
Rust Quality Checklist
Safety
- All unsafe blocks documented with SAFETY comments
- FFI boundaries properly wrapped
- Memory safety invariants maintained
- No
static mutglobals; shared state usesOnceLock/LazyLock, atomics, or aMutex/RwLock - No
mem::transmute/transmute_copy; bytes converted withfrom_le_bytes/from_bits/bytemuckor pointers with.cast() -
#[repr(packed)]fields copied out before borrowing (no unaligned references) - No
mem::forgetleaks (useManuallyDrop/scope) and no no-opdrop(&x)reference drops -
mlock/munlockcalls: RLIMIT verified, page-aligned, ENOMEM handled
Correctness
- Error handling complete
- Concurrency patterns sound
- Lossy
ascasts (length truncation,as u8/i8,as f32) replaced withTryFrom/From - Enum matches exhaustive; no
_ => unreachable!()/panic!/{}catch-alls - Floats compared with a tolerance, not exact
==/!=against a float literal - Tests cover critical paths
Performance
- No unnecessary allocations
- Borrowing preferred over cloning
- Async properly non-blocking
Idioms
- Standard traits implemented
- Conversion traits preferred over helper functions
- Stringly-typed values and boolean flags modeled as enums
- Domain invariants encoded with newtypes (private field + validating constructor) or type-state where warranted
- Comparison/ordering traits derived, not hand-written
- Lifetimes elided where elision rules apply;
'_in paths - Trailing
returndropped in favor of the tail expression - Explicit
-> ()unit returns dropped (default is elided) - Parameters take
&str/&[T]/&Path, not&String/&Vec<T>/&PathBuf(deref coercion accepts both, so the slice is more general) - Conversions implement
From/TryFrom, notInto/TryInto; a fallible conversion's error is propagated, notunwrap()ped - Error types well-designed
- Documentation complete
Output Format
## Summary
Rust audit findings
## Ownership Analysis
[borrowing and lifetime issues]
## Error Handling
[error patterns and issues]
## Concurrency
[async and sync patterns]
## Unsafe Audit
### [U1] file:line
- Invariants: [documented]
- Anchor: `verbatim source text at file:line`
- Risk: [assessment]
- Recommendation: [action]
## Native Type Modeling
[stringly-typed comparisons, boolean blindness, newtype/type-state notes]
## Idiomatic Elision
[needless lifetimes, trailing returns, explicit `-> ()` unit returns]
## Coercion Params
[`&String`/`&Vec<T>`/`&PathBuf` params that should be borrowed slices]
## Conversion Traits
[`impl Into` over `impl From`; discarded `try_into().unwrap()` errors]
## Numeric Cast Safety
[length-truncating, byte-narrowing, and f32 precision-losing `as` casts]
## Mutable Static Audit
[`static mut` globals and their thread-safe replacements]
## Match Wildcard
[catch-all `_ =>` arms that defeat enum exhaustiveness]
## Transmute Audit
[`mem::transmute`/`transmute_copy` calls and their typed replacements]
## Float Equality
[exact `==`/`!=` comparisons against float literals]
## Mem Forget Audit
[`mem::forget` leaks and no-op `drop(&x)` reference drops]
## Repr Packed Audit
[`#[repr(packed)]` layouts whose field borrows become unaligned]
## Dependencies
[cargo audit results]
## Recommendation
Approve / Approve with actions / Block
Verification: Run the command with --help flag to verify availability.
Verify Findings Are Grounded (rust-review:findings-verified)
Write findings to .review/findings.json, run the citation verifier
(Skill(imbue:review-core) Step 5), and drop or label UNVERIFIED any
the verifier rejects.
Exit Criteria
- All unsafe blocks audited
- Concurrency patterns verified
- Dependencies scanned
- Evidence logged
- Action items assigned
- Every reported finding carries a
Location+ verbatimAnchorconfirmed bycitation_verifier.py(exit0), or unverified findings were dropped or labeledUNVERIFIED
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/athola/claude-night-market/rust-review">View rust-review on skillZs</a>