mcpField
R
rust-expert-best-practices-code-review

rust-expert-best-practices-code-review

github.com/wispbit-aiDevelopment8256 installsUpdated 37w ago
Repository

About rust-expert-best-practices-code-review

A Rust coding skill for developers who write, review, or refactor production Rust. Its prioritized rules cover type safety, error handling, API design, readability, and performance.

Key features

  1. 01Prioritized Rust best-practice rules
  2. 02Type-safe API and data modeling guidance
  3. 03Error handling without unnecessary panics
  4. 04Iterator, formatting, and readability patterns
  5. 05Ownership and performance recommendations

Use cases

  1. 01Review Rust code for safety issues
  2. 02Refactor functions and public APIs
  3. 03Improve error handling in Rust
  4. 04Optimize code clarity and performance

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/wispbit-ai/skills --skill rust-expert-best-practices-code-review

After installing, type/rust-expert-best-practices-code-reviewin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

rules/
avoid-boolean-params.md
avoid-box.md
avoid-panic.md
avoid-rc.md
calculated-field-as-method.md
decimal-comparison.md
match-statements-handle-all-cases.md
prefer-builder-pattern-for-complex.md
prefer-format.md
result-error-returns.md
use-borrowed-argument-types.md
use-copied.md
use-enum-deserialization.md
use-iterator-transforms.md
use-named-placeholders.md
use-typesafe-index-wrappers.md

Details

From the project README

Rust Expert Best Practices

Simple, pragmatic, opinionated. Only what matters for writing production-grade Rust code.

When to Apply

Reference these guidelines when:

  • Writing Rust code (structs, functions, enums, traits)
  • Implementing error handling and Result types
  • Reviewing Rust code for safety or performance issues
  • Refactoring existing Rust codebases
  • Designing APIs and public interfaces
  • Optimizing Rust code for performance or clarity

Rule Categories by Priority

PriorityCategoryImpactPrefix
1Type SafetyCRITICALuse-typesafe-, use-enum-
2Error HandlingCRITICAL-HIGHresult-, avoid-panic
3API DesignHIGHuse-borrowed-, prefer-builder-
4Code QualityMEDIUM-HIGHuse-iterator-, prefer-format
5ReadabilityMEDIUMuse-named-, avoid-boolean-
6PerformanceMEDIUMavoid-rc, avoid-box

Quick Reference

  • use-borrowed-argument-types - Use &str, &[T], &Path instead of &String, &Vec, &PathBuf
  • use-enum-deserialization - Use exhaustive enum matching for safe deserialization
  • use-typesafe-index-wrappers - Wrap index types to prevent mixing different indices
  • result-error-returns - Use ? operator instead of unwrap/expect in Result functions
  • avoid-panic - Use assert!, Result, or expect based on context instead of panic!
  • use-iterator-transforms - Use iterator methods instead of explicit push loops
  • use-copied - Use .copied() to avoid complex dereferencing patterns
  • prefer-format - Use format! over manual string concatenation
  • prefer-builder-pattern-for-complex - Use builder pattern for functions with 4+ parameters
  • use-named-placeholders - Use named placeholders instead of bare _ in destructuring
  • decimal-comparison - Use .is_sign_negative() instead of comparing to Decimal::ZERO
  • calculated-field-as-method - Implement calculated fields as methods not struct fields
  • avoid-rc - Avoid unnecessary Rc when simpler ownership patterns work
  • avoid-box - Don't use Box for concrete types without legitimate reason
  • avoid-boolean-params - Replace boolean parameters with enums or structs
  • match-statements-handle-all-cases - Explicitly handle all enum variants without catch-all patterns

How to Use

Read individual rule files for detailed explanations and code examples:

rules/use-borrowed-argument-types.md
rules/use-enum-deserialization.md
rules/use-typesafe-index-wrappers.md
rules/result-error-returns.md
rules/avoid-panic.md
rules/use-iterator-transforms.md
rules/use-copied.md
rules/prefer-format.md
rules/prefer-builder-pattern-for-complex.md
rules/use-named-placeholders.md
rules/decimal-comparison.md
rules/calculated-field-as-method.md
rules/avoid-rc.md
rules/avoid-box.md
rules/avoid-boolean-params.md
rules/match-statements-handle-all-cases.md

Each rule file contains:

  • Brief explanation of why it matters
  • When to use and when not to use the pattern
  • Implementation requirements
  • BAD code examples with explanation
  • GOOD code examples with explanation
  • Additional context and best practices

Comments

Markdown supported