Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
athola avatar

Rust Review

  • 111 installs
  • 325 repo stars
  • Updated August 2, 2026
  • athola/claude-night-market

Rust Review is an agent skill that detects Rust async slop—async functions without awaits, blocking I/O on async runtimes, and spawn-heavy defaults—in code review.

About

Rust Review (Async Slop module) is a detection-oriented agent skill for solo builders shipping Rust backends and CLIs. It targets the high-frequency async patterns agents default to—marking synchronous work as async, calling blocking filesystem or sleep APIs on a Tokio runtime, and leaning on tokio::spawn where a straight sequential flow is faster and easier to reason about. The skill walks pattern-by-pattern with slop versus idiomatic examples and steers you toward cargo clippy with clippy::async_yields_async as the primary signal, plus grep-based heuristics when CI clippy is not handy. It fits a pre-merge or pre-release review pass on crates that use async Rust, especially code partially authored by LLMs. Use it alongside your normal test and security checks; it does not replace full audit tools but narrows review time onto contagious async signatures and runtime-blocking calls that slip past casual diff reads.

  • Flags async fn bodies with no .await and suggests stripping async coloring
  • Detects blocking I/O (std::fs, thread::sleep) inside async contexts
  • Documents tokio::spawn overuse and structural async anti-patterns
  • Preferred detection: cargo clippy -W clippy::async_yields_async
  • File-level rg heuristics when clippy is unavailable, with manual follow-up

Rust Review by the numbers

  • 111 all-time installs (skills.sh)
  • Ranked #64 of 121 Rust skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/athola/claude-night-market --skill rust-review

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs111
repo stars325
Security audit3 / 3 scanners passed
Last updatedAugust 2, 2026
Repositoryathola/claude-night-market

What it does

Review Rust services for async slop—unnecessary async, blocking I/O on the runtime, and spawn-heavy patterns—before you merge or release.

Who is it for?

Best when you're reviewing Tokio/async Rust crates or services after agent-generated changes.

Skip if: Greenfield projects with no async code, teams that only need generic language-agnostic review, or Rust embedded/no-std codebases.

When should I use this skill?

Reviewing Rust async code, before merge, or when auditing agent-generated Tokio services

What you get

You get a focused review checklist and clippy commands that surface fixable async anti-patterns before merge.

  • List of async slop patterns matched per file or function
  • Suggested signature and I/O fixes (sync vs async, spawn vs inline)

By the numbers

  • Module estimated_tokens: 500 in skill frontmatter
  • Primary lint: clippy::async_yields_async via cargo clippy --all-targets

Files

SKILL.mdMarkdownGitHub ↗

Table of Contents

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

1. rust-review:ownership-analysis 2. rust-review:error-handling 3. rust-review:concurrency 4. rust-review:unsafe-audit 5. rust-review:cargo-deps 6. rust-review:native-modeling 7. rust-review:idiomatic-elision 8. rust-review:coercion-params 9. rust-review:conversion-traits 10. rust-review:numeric-cast-safety 11. rust-review:mutable-static-audit 12. rust-review:match-wildcard 13. rust-review:transmute-audit 14. rust-review:float-equality 15. rust-review:mem-forget-audit 16. rust-review:repr-packed-audit 17. rust-review:evidence-log 18. rust-review:findings-verified

Progressive Loading

Load modules as needed based on review scope:

Quick Review (ownership and errors):

  • See modules/ownership-analysis.md for borrowing and lifetime analysis
  • See modules/error-handling.md for Result/Option patterns

Concurrency Focus:

  • See modules/concurrency-patterns.md for async and sync primitives

Safety Audit:

  • See modules/unsafe-audit.md for unsafe block documentation
  • See modules/mutable-static-audit.md for static mut globals and

their thread-safe replacements

  • See modules/numeric-cast-safety.md for truncating and

precision-losing as casts

  • See modules/match-wildcard.md for catch-all arms that defeat enum

exhaustiveness

  • See modules/transmute-audit.md for mem::transmute/transmute_copy

calls that reinterpret bytes with no layout check

  • See modules/repr-packed-audit.md for #[repr(packed)] layouts whose

field borrows become unaligned references

Correctness Audit:

  • See modules/float-equality.md for ==/!= against float literals
  • See modules/mem-forget-audit.md for mem::forget leaks and no-op

drop(&x) reference drops

Dependency Review:

  • See modules/cargo-dependencies.md for vulnerability scanning

Idiomatic Patterns:

  • See modules/builtin-preference.md for conversion traits and builtin preference
  • See modules/native-type-modeling.md for enums-over-primitives,

newtype, type-state, and derived ordering

  • See modules/idiomatic-elision.md for lifetime elision,

expression-oriented returns, and explicit -> () unit returns

  • See modules/coercion-params.md for &String/&Vec<T>/&PathBuf

parameters that defeat deref coercion (prefer &str/&[T]/&Path)

  • See modules/conversion-traits.md for impl Into that should be

impl From, and discarded try_into().unwrap() conversion errors

Core Workflow

1. Ownership Analysis: Check borrowing, lifetimes, clone patterns 2. Error Handling: Verify Result/Option usage, propagation 3. Concurrency: Review async patterns, sync primitives 4. Unsafe Audit: Document invariants, FFI contracts 5. Dependencies: Scan for vulnerabilities, updates 6. 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 mut globals; shared state uses OnceLock/LazyLock,

atomics, or a Mutex/RwLock

  • [ ] No mem::transmute/transmute_copy; bytes converted with

from_le_bytes/from_bits/bytemuck or pointers with .cast()

  • [ ] #[repr(packed)] fields copied out before borrowing (no unaligned

references)

  • [ ] No mem::forget leaks (use ManuallyDrop/scope) and no no-op

drop(&x) reference drops

  • [ ] mlock/munlock calls: RLIMIT verified, page-aligned,

ENOMEM handled

Correctness

  • [ ] Error handling complete
  • [ ] Concurrency patterns sound
  • [ ] Lossy as casts (length truncation, as u8/i8, as f32)

replaced with TryFrom/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 return dropped 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, not Into/TryInto; a

fallible conversion's error is propagated, not unwrap()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)

Every finding must cite a real location and a verbatim anchor. Write findings to .review/findings.json and confirm each citation resolves:

python plugins/imbue/scripts/citation_verifier.py \
  --findings .review/findings.json --repo-root .

Drop or label UNVERIFIED any finding the verifier fails (exit 1); only verified findings enter the report. See Skill(imbue:review-core) Step 5 and Skill(imbue:structured-output) for the schema.

Exit Criteria

  • All unsafe blocks audited
  • Concurrency patterns verified
  • Dependencies scanned
  • Evidence logged
  • Action items assigned
  • Every reported finding carries a Location + verbatim Anchor confirmed by citation_verifier.py (exit 0), or unverified findings were dropped or labeled UNVERIFIED

Related skills

How it compares

Narrow async-structure linter guidance for Rust review, not a full cargo-audit or security scanner.

FAQ

Who is rust-review for?

Developers and small teams shipping async Rust who want a structured pass for LLM-typical async mistakes before merge.

When should I use rust-review?

During Ship → review on Rust PRs and pre-release branches, especially after Codex or Claude edits async services or CLI tools.

Is rust-review safe to install?

The skill describes read/grep/clippy workflows; confirm trust via the Security Audits panel on this Prism page before installing from any marketplace.

Rustbackendtesting

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.