Agent Skills: clippy-advanced - Advanced Clippy Configuration

|

UncategorizedID: laurigates/claude-plugins/clippy-advanced

Install this agent skill to your local

pnpm dlx add-skill https://github.com/laurigates/claude-plugins/tree/HEAD/rust-plugin/skills/clippy-advanced

Skill Files

Browse the full folder contents for clippy-advanced.

Download Skill

Loading file tree…

rust-plugin/skills/clippy-advanced/SKILL.md

Skill Metadata

Name
clippy-advanced
Description
|

clippy-advanced - Advanced Clippy Configuration

Advanced Clippy configuration for comprehensive Rust linting, including custom rules, lint categories, disallowed methods, and IDE integration.

When to Use This Skill

| Use this skill when... | Use another tool instead when... | |------------------------|----------------------------------| | Configuring Clippy lint rules | Formatting code (use rustfmt) | | Setting up CI linting for Rust | Building/compiling (use cargo build) | | Customizing clippy.toml | Running tests (use cargo test) | | Enforcing code standards | Managing dependencies (use cargo add) |

Installation

# Clippy is included with rustup
rustup component add clippy

# Verify installation
cargo clippy --version

# Update clippy with rust toolchain
rustup update

Basic Usage

# Run clippy on current project
cargo clippy

# Run on all targets (lib, bins, tests, examples, benches)
cargo clippy --all-targets

# Run with all features enabled
cargo clippy --all-features

# Run on workspace
cargo clippy --workspace --all-targets --all-features

# Show detailed lint explanations
cargo clippy -- -W clippy::all -A clippy::pedantic

# Treat warnings as errors
cargo clippy -- -D warnings

Lint Categories

| Category | Purpose | Default | |----------|---------|---------| | clippy::correctness | Likely bugs | Deny | | clippy::complexity | Overly complex code | Warn | | clippy::perf | Performance issues | Warn | | clippy::style | Code style | Warn | | clippy::suspicious | Code that looks wrong | Warn | | clippy::pedantic | Opinionated style | Off | | clippy::restriction | Opt-in constraints | Off | | clippy::nursery | Experimental | Off | | clippy::cargo | Cargo.toml issues | Off |

Recommended Cargo.toml Configuration

[workspace.lints.clippy]
# Deny correctness issues (likely bugs)
correctness = "deny"
complexity = "warn"
perf = "warn"
style = "warn"
suspicious = "warn"

# Enable pedantic but allow some noisy lints
pedantic = "warn"
must_use_candidate = "allow"
missing_errors_doc = "allow"

# Enable some restriction lints selectively
clone_on_ref_ptr = "warn"
dbg_macro = "warn"
print_stdout = "warn"
todo = "warn"
unimplemented = "warn"
unwrap_used = "warn"

# Enable nursery lints (experimental)
use_self = "warn"

clippy.toml Essential Settings

Create clippy.toml in project root for thresholds and disallowed items:

cognitive-complexity-threshold = 15
too-many-lines-threshold = 100
too-many-arguments-threshold = 5

disallowed-methods = [
  { path = "std::env::var", reason = "Use std::env::var_os for better Unicode handling" },
  { path = "std::process::exit", reason = "Use Result propagation instead" },
]

disallowed-names = ["foo", "bar", "baz"]

Lint Suppression

// Function-level
#[allow(clippy::too_many_arguments)]
fn complex_function(a: i32, b: i32, c: i32, d: i32, e: i32, f: i32) {}

// Module-level (src/lib.rs)
#![warn(clippy::all)]
#![warn(clippy::pedantic)]
#![deny(clippy::unwrap_used)]
#![allow(clippy::module_name_repetitions)]

// Inline
#[allow(clippy::cast_possible_truncation)]
let x = value as u8;

Agentic Optimizations

| Context | Command | |---------|---------| | CI strict | cargo clippy --workspace --all-targets -- -D warnings | | JSON output | cargo clippy --message-format=json | | Compact errors | cargo clippy --message-format=short | | Quick check | cargo clippy --message-format=short -- -D warnings | | Pedantic check | cargo clippy -- -W clippy::pedantic -D clippy::correctness |

Quick Reference

Command-Line Flags

| Flag | Description | |------|-------------| | --all-targets | Check lib, bins, tests, examples, benches | | --all-features | Enable all features | | --workspace | Check entire workspace | | --message-format=json | JSON output for tooling | | --message-format=short | Compact error format | | -- -D warnings | Treat warnings as errors | | -- -W clippy::pedantic | Enable pedantic lints | | -- -A clippy::lint_name | Allow specific lint |

Lint Levels

| Level | Attribute | Effect | |-------|-----------|--------| | Allow | #[allow(...)] | Suppress lint | | Warn | #[warn(...)] | Show warning | | Deny | #[deny(...)] | Compile error |

References

For detailed configuration examples, CI integration, IDE setup, and best practices, see REFERENCE.md.