Code Quality
Use the code-quality scripts for all operations.
Usage
Format check (fast)
./scripts/code-quality.sh fmt
Lint with clippy
./scripts/code-quality.sh clippy
Security audit
./scripts/code-quality.sh audit
Run all quality gates
./scripts/code-quality.sh check
Auto-fix common issues
./scripts/code-quality.sh clippy --fix
Quality Gates
Check Command
Format cargo fmt --all -- --check
Lint cargo clippy --all -- -D warnings
Audit cargo audit
Full ./scripts/quality-gates.sh
Coverage cargo llvm-cov --html --output-dir coverage
Docs cargo doc --no-deps
Rust Quality Dimensions
Dimension Focus Check
Structure Files <500 LOC, module hierarchy find . -name "*.rs" -exec wc -l {} +
Error Handling Custom Error, Result, no unwrap rg "unwrap()" --glob ".rs" --glob "!/tests/*"
Async Patterns async fn, spawn_blocking, no blocking rg "async fn|spawn_blocking" --glob "*.rs"
Testing
90% coverage, integration tests cargo llvm-cov
Documentation Public APIs 100% documented cargo doc --no-deps
Rust-Specific Anti-Patterns
-
Excessive Clone: Use borrowing or Arc
-
Unnecessary Unwrap: Use ? operator
-
Deep Nesting: Extract methods to flatten
-
Large Functions: Split into smaller functions (< 50 LOC)
-
Deadlocks: Release locks before .await
Best Practices Checklist
-
Files <500 LOC
-
Clear module hierarchy
-
Custom Error enum with Result
-
No unwrap() in production code
-
async fn for IO operations
-
spawn_blocking for CPU work
-
90% test coverage
-
Public APIs documented
-
SOLID principles applied
-
No code duplication (DRY)
Dependency Monitoring (ADR-036)
Track duplicate dependency count as a quality metric:
Count duplicate dependency roots (target: < 100)
cargo tree -d | grep -cE "^[a-z]"
Find unused dependencies
cargo install --locked cargo-machete cargo-shear cargo machete cargo shear
Find unused features
cargo install --locked cargo-unused-features cargo unused-features analyze
References
-
ADR-036: Dependency Deduplication
-
ADR-032: Disk Space Optimization
Consolidated from these former skills (preserved in _consolidated/ ):
-
rust-code-quality — Rust-specific quality dimensions, analysis commands, report format
-
clean-code-developer — SOLID principles, refactoring techniques, anti-patterns