rust-quality-checker

Rust Quality Checker Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "rust-quality-checker" with this command: npx skills add matteocervelli/llms/matteocervelli-llms-rust-quality-checker

Rust Quality Checker Skill

Purpose

This skill provides comprehensive Rust code quality validation including formatting (rustfmt), linting (clippy), compilation checks (cargo check), testing (cargo test), security analysis (cargo audit), and best practices validation. Ensures code meets Rust idioms and project standards.

When to Use

  • Validating Rust code quality before commit

  • Running pre-commit quality checks

  • CI/CD quality gate validation

  • Code review preparation

  • Ensuring idiomatic Rust code

  • Security vulnerability detection

  • Performance optimization validation

Quality Check Workflow

  1. Environment Setup

Verify Rust Toolchain:

Check Rust version

rustc --version

Check Cargo version

cargo --version

Check rustfmt

rustfmt --version

Check clippy

cargo clippy --version

Install/Update Components:

Update Rust toolchain

rustup update

Install rustfmt (if not present)

rustup component add rustfmt

Install clippy (if not present)

rustup component add clippy

Install cargo-audit for security checks

cargo install cargo-audit

Install cargo-tarpaulin for coverage

cargo install cargo-tarpaulin

Deliverable: Rust toolchain ready

  1. Code Formatting Check (rustfmt)

Check Formatting:

Check if code is formatted

cargo fmt -- --check

Check with edition

cargo fmt --edition 2021 -- --check

Check specific files

rustfmt --check src/main.rs

Check with verbose output

cargo fmt --verbose -- --check

Auto-Format Code:

Format all code

cargo fmt

Format with specific edition

cargo fmt --edition 2021

Format specific file

rustfmt src/main.rs

Configuration (rustfmt.toml):

rustfmt.toml

edition = "2021" max_width = 100 hard_tabs = false tab_spaces = 4 newline_style = "Unix" use_small_heuristics = "Default" reorder_imports = true reorder_modules = true remove_nested_parens = true fn_single_line = false where_single_line = false imports_granularity = "Crate" group_imports = "StdExternalCrate"

Deliverable: Formatting validation report

  1. Compilation Check (cargo check)

Fast Compilation Check:

Basic check

cargo check

Check with all features

cargo check --all-features

Check workspace

cargo check --workspace

Check specific package

cargo check --package my-package

Check with verbose output

cargo check --verbose

Full Compilation:

Build project

cargo build

Build in release mode

cargo build --release

Build with all features

cargo build --all-features

Build all targets

cargo build --all-targets

Deliverable: Compilation status report

  1. Linting (clippy)

Run Clippy:

Basic clippy check

cargo clippy

Deny all warnings

cargo clippy -- -D warnings

Pedantic mode (strictest)

cargo clippy -- -W clippy::pedantic

All clippy lints

cargo clippy -- -W clippy::all

Nursery lints (unstable but useful)

cargo clippy -- -W clippy::nursery

Check workspace

cargo clippy --workspace

Clippy with Auto-Fix:

Fix clippy suggestions

cargo clippy --fix

Fix with deny warnings

cargo clippy --fix -- -D warnings

Configuration (clippy.toml or .clippy.toml):

clippy.toml

msrv = "1.70" # Minimum Supported Rust Version

Allow certain lints

allow = [ "clippy::module_name_repetitions", ]

Warn on these

warn = [ "clippy::all", "clippy::pedantic", "clippy::cargo", ]

Deny these

deny = [ "clippy::unwrap_used", "clippy::expect_used", "clippy::panic", ]

Deliverable: Clippy lint report

  1. Testing (cargo test)

Run Tests:

Run all tests

cargo test

Run with verbose output

cargo test -- --nocapture

Run specific test

cargo test test_name

Run tests in specific module

cargo test module::test_name

Run doc tests only

cargo test --doc

Run with all features

cargo test --all-features

Test with Coverage:

Install tarpaulin

cargo install cargo-tarpaulin

Generate coverage

cargo tarpaulin --out Html --out Xml

Coverage with threshold

cargo tarpaulin --fail-under 80

Coverage for workspace

cargo tarpaulin --workspace

Deliverable: Test execution and coverage report

  1. Security Analysis (cargo audit)

Dependency Security Check:

Install cargo-audit

cargo install cargo-audit

Run security audit

cargo audit

Audit with JSON output

cargo audit --json

Audit and fix vulnerabilities

cargo audit fix

Check for yanked crates

cargo audit --deny yanked

Update Dependencies:

Install cargo-outdated

cargo install cargo-outdated

Check for outdated dependencies

cargo outdated

Update dependencies

cargo update

Update specific dependency

cargo update -p dependency-name

Deliverable: Security audit report

  1. Dependency Analysis

Check Dependency Tree:

Show dependency tree

cargo tree

Show dependencies for specific package

cargo tree --package my-package

Show duplicates

cargo tree --duplicates

Show dependencies with specific features

cargo tree --features feature-name

Invert tree (show reverse dependencies)

cargo tree --invert

Check Unused Dependencies:

Install cargo-udeps

cargo install cargo-udeps

Find unused dependencies

cargo +nightly udeps

Deliverable: Dependency analysis report

  1. Code Quality Checks

Check for Unsafe Code:

Find unsafe blocks

grep -r "unsafe" src/

Count unsafe blocks

grep -r "unsafe" src/ | wc -l

Use cargo-geiger for unsafe usage report

cargo install cargo-geiger cargo geiger

Check Documentation:

Build documentation

cargo doc

Check for missing docs

cargo rustdoc -- -D missing_docs

Check documentation tests

cargo test --doc

Deliverable: Code quality assessment

  1. Performance Analysis

Benchmark Tests:

Run benchmarks

cargo bench

Run specific benchmark

cargo bench benchmark_name

Use criterion for better benchmarks

Add to Cargo.toml:

[dev-dependencies]

criterion = "0.5"

cargo bench

Performance Profiling:

Build with release mode

cargo build --release

Use flamegraph

cargo install flamegraph cargo flamegraph

Use perf (Linux)

perf record --call-graph dwarf ./target/release/binary perf report

Deliverable: Performance analysis report

  1. Comprehensive Quality Check

Run All Checks:

#!/bin/bash

scripts/quality-check.sh

set -e # Exit on first error

echo "=== Rust Quality Checks ==="

echo "1. Code Formatting (rustfmt)..." cargo fmt -- --check

echo "2. Compilation Check..." cargo check --workspace

echo "3. Linting (clippy)..." cargo clippy --workspace -- -D warnings

echo "4. Testing..." cargo test --workspace

echo "5. Documentation Check..." cargo doc --no-deps --document-private-items

echo "6. Security Audit..." cargo audit

echo "7. Unused Dependencies..." cargo +nightly udeps || true # Don't fail build

echo "=== All Quality Checks Passed ✅ ==="

Makefile Integration:

Makefile

.PHONY: check fmt lint test quality

check: cargo check --workspace

fmt: cargo fmt

fmt-check: cargo fmt -- --check

lint: cargo clippy --workspace -- -D warnings

test: cargo test --workspace

quality: fmt-check check lint test @echo "All quality checks passed ✅"

Deliverable: Comprehensive quality report

Quality Standards

Code Formatting

  • All code formatted with rustfmt

  • Consistent use of Rust style guide

  • Proper module organization

  • Imports properly grouped

  • Line length ≤ 100 characters

Compilation

  • Code compiles without errors

  • No compiler warnings

  • All features compile

  • Documentation builds

  • All targets build

Linting

  • No clippy warnings (with -D warnings)

  • Pedantic lints addressed

  • No unwrap/expect in production code

  • Proper error handling

  • No panic! in library code

Testing

  • All tests passing

  • Coverage ≥ 80%

  • Doc tests passing

  • Integration tests passing

  • No ignored tests (without reason)

Security

  • No known vulnerabilities

  • Dependencies up to date

  • No yanked crates

  • Minimal unsafe code

  • Unsafe code documented

Code Quality

  • Idiomatic Rust code

  • Proper lifetime annotations

  • Efficient error handling

  • Documentation complete

  • Examples provided

Quality Check Matrix

Check Tool Threshold Auto-Fix

Formatting rustfmt Must pass Yes

Compilation cargo check 0 errors No

Linting clippy 0 warnings Partial

Testing cargo test All pass No

Coverage tarpaulin ≥ 80% No

Security cargo audit 0 critical Partial

Unsafe code cargo geiger Minimize No

Pre-commit Integration

Setup Git Hooks:

#!/bin/bash

.git/hooks/pre-commit

echo "Running Rust quality checks..."

Format check

if ! cargo fmt -- --check; then echo "❌ Code not formatted. Run: cargo fmt" exit 1 fi

Clippy

if ! cargo clippy -- -D warnings; then echo "❌ Clippy warnings found" exit 1 fi

Tests

if ! cargo test --quiet; then echo "❌ Tests failed" exit 1 fi

echo "✅ All pre-commit checks passed"

Make hook executable:

chmod +x .git/hooks/pre-commit

Deliverable: Pre-commit hooks configured

CI/CD Integration

GitHub Actions Example:

.github/workflows/rust-quality.yml

name: Rust Quality Checks

on: [push, pull_request]

env: CARGO_TERM_COLOR: always

jobs: quality: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3

  - name: Install Rust toolchain
    uses: actions-rs/toolchain@v1
    with:
      profile: minimal
      toolchain: stable
      components: rustfmt, clippy
      override: true

  - name: Cache cargo registry
    uses: actions/cache@v3
    with:
      path: ~/.cargo/registry
      key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}

  - name: Check formatting
    run: cargo fmt -- --check

  - name: Check compilation
    run: cargo check --workspace

  - name: Run clippy
    run: cargo clippy --workspace -- -D warnings

  - name: Run tests
    run: cargo test --workspace --verbose

  - name: Check documentation
    run: cargo doc --no-deps --document-private-items

  - name: Security audit
    run: |
      cargo install cargo-audit
      cargo audit

  - name: Generate coverage
    run: |
      cargo install cargo-tarpaulin
      cargo tarpaulin --out Xml --fail-under 80

  - name: Upload coverage
    uses: codecov/codecov-action@v3
    with:
      files: ./cobertura.xml

Deliverable: CI/CD quality pipeline

Quality Check Troubleshooting

rustfmt Formatting Failures

Check what would change

cargo fmt -- --check

Apply formatting

cargo fmt

Check specific file

rustfmt --check src/main.rs

Compilation Errors

Check with verbose output

cargo check --verbose

Clean and rebuild

cargo clean cargo check

Check dependencies

cargo tree

Clippy Warnings

Show detailed warnings

cargo clippy -- -W clippy::all

Auto-fix suggestions

cargo clippy --fix

Ignore specific warning (last resort)

#[allow(clippy::warning_name)]

Test Failures

Run with verbose output

cargo test -- --nocapture

Run specific test

cargo test test_name -- --exact

Show test output

cargo test -- --show-output

Quality Report Template

Rust Quality Check Report

Summary

  • Status: ✅ All checks passed
  • Date: 2024-01-15
  • Project: my-rust-project

Checks Performed

Formatting (rustfmt)

  • Status: ✅ PASS
  • Files Checked: 42
  • Issues: 0

Compilation (cargo check)

  • Status: ✅ PASS
  • Workspace: All packages compile
  • Warnings: 0

Linting (clippy)

  • Status: ✅ PASS
  • Warnings: 0
  • Pedantic: Enabled

Testing (cargo test)

  • Status: ✅ PASS
  • Tests: 156 passed
  • Doc Tests: 23 passed

Coverage (tarpaulin)

  • Status: ✅ PASS
  • Coverage: 87% (target: 80%)

Security (cargo audit)

  • Status: ✅ PASS
  • Vulnerabilities: 0
  • Yanked Crates: 0

Documentation

  • Status: ✅ PASS
  • Docs Build: Success
  • Missing Docs: 0

Details

All Rust quality checks passed successfully. Code is well-formatted, compiles cleanly, passes all lints, has good test coverage, and is secure.

Recommendations

  • Continue maintaining high test coverage
  • Keep dependencies updated
  • Document all public APIs
  • Minimize unsafe code usage

Integration with Code Quality Specialist

Input: Rust codebase quality check request Process: Run all Rust quality tools and analyze results Output: Comprehensive quality report with pass/fail status Next Step: Report to code-quality-specialist for consolidation

Best Practices

Development

  • Run cargo fmt on save (IDE integration)

  • Enable clippy in IDE for real-time feedback

  • Use cargo watch for continuous checking

  • Fix warnings immediately

Pre-Commit

  • Run full quality check script

  • Ensure all tests pass

  • Verify no clippy warnings

  • Check documentation builds

CI/CD

  • Run quality checks on every PR

  • Fail build on warnings

  • Generate coverage reports

  • Track quality metrics over time

  • Cache dependencies for speed

Code Review

  • Verify quality checks passed

  • Review clippy suggestions

  • Check test coverage

  • Validate unsafe code usage

Supporting Resources

Success Metrics

  • All code formatted with rustfmt

  • Compilation passes with no warnings

  • Zero clippy warnings

  • All tests passing

  • Coverage ≥ 80%

  • No security vulnerabilities

  • Documentation complete

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

api-test-generator

No summary provided by upstream source.

Repository SourceNeeds Review
General

doc-fetcher

No summary provided by upstream source.

Repository SourceNeeds Review
General

coverage-analyzer

No summary provided by upstream source.

Repository SourceNeeds Review
General

documentation-updater

No summary provided by upstream source.

Repository SourceNeeds Review