[
  {
    "canonical_id": "actix-blocking-handler",
    "provider": "rust-doctor",
    "category": "framework",
    "default_severity": "warning",
    "tags": [
      "framework",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [
      "actix-web"
    ],
    "framework_requirements": [
      {
        "framework": "actix-web",
        "version": ">=4,<5",
        "required_features": []
      }
    ],
    "description": "Flags blocking calls (`std::thread::sleep`, `std::fs::*`, `std::net::*`) in actix-web handler functions. Web framework handlers run on the async runtime and must not block.",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Use async equivalents (`tokio::time::sleep`, `tokio::fs::*`, `tokio::net::*`) or wrap blocking code in `actix_web::web::block()`.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/actix-blocking-handler"
  },
  {
    "canonical_id": "actix-web-data-lock",
    "provider": "rust-doctor",
    "category": "framework",
    "default_severity": "warning",
    "tags": [
      "framework",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": false,
    "applicable_frameworks": [
      "actix-web"
    ],
    "framework_requirements": [
      {
        "framework": "actix-web",
        "version": ">=4,<5",
        "required_features": []
      }
    ],
    "description": "Detect blocking shared-state locks inside actix-web handlers",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Use an async-aware lock or move short blocking work behind web::block.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/actix-web-data-lock"
  },
  {
    "canonical_id": "await-holding-refcell-ref",
    "provider": "rust-doctor",
    "category": "async",
    "default_severity": "warning",
    "tags": [
      "async",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": false,
    "applicable_frameworks": [
      "tokio",
      "async-std",
      "smol"
    ],
    "framework_requirements": [
      {
        "framework": "tokio",
        "version": "*",
        "required_features": []
      },
      {
        "framework": "async-std",
        "version": "*",
        "required_features": []
      },
      {
        "framework": "smol",
        "version": "*",
        "required_features": []
      }
    ],
    "description": "Detect RefCell borrows retained across an await point",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "End the RefCell borrow before awaiting, then borrow again after resumption.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/await-holding-refcell-ref"
  },
  {
    "canonical_id": "axum-extension-request-state",
    "provider": "rust-doctor",
    "category": "framework",
    "default_severity": "warning",
    "tags": [
      "framework",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": false,
    "applicable_frameworks": [
      "axum"
    ],
    "framework_requirements": [
      {
        "framework": "axum",
        "version": ">=0.7,<0.9",
        "required_features": []
      }
    ],
    "description": "Detect Axum Extension used for application-wide state",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Use State<T> for router-owned application state and reserve Extension for request extensions.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/axum-extension-request-state"
  },
  {
    "canonical_id": "axum-handler-not-async",
    "provider": "rust-doctor",
    "category": "framework",
    "default_severity": "warning",
    "tags": [
      "framework",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [
      "axum"
    ],
    "framework_requirements": [
      {
        "framework": "axum",
        "version": ">=0.7,<0.9",
        "required_features": []
      }
    ],
    "description": "Flags non-async handler functions in axum. Web framework handlers run on the async runtime and must not block.",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Make the handler `async fn` and use async I/O operations.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/axum-handler-not-async"
  },
  {
    "canonical_id": "block-on-in-async",
    "provider": "rust-doctor",
    "category": "async",
    "default_severity": "error",
    "tags": [
      "async",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Flags `Runtime::block_on()` or `futures::executor::block_on()` called inside `async fn`. This blocks the current thread waiting for a future, which can deadlock the runtime if all worker threads are blocked.",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Use `.await` instead of `block_on()`. If you need to call async code from sync context, restructure to avoid nesting runtimes.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/block-on-in-async"
  },
  {
    "canonical_id": "blocking-in-async",
    "provider": "rust-doctor",
    "category": "async",
    "default_severity": "error",
    "tags": [
      "async",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Flags blocking `std` calls inside `async fn`: `std::thread::sleep`, `std::fs::*`, `std::net::*`. These block the async runtime's thread pool, reducing concurrency and potentially causing deadlocks.",
    "limitations": [
      "The rule recognizes known call names but does not follow aliases or interprocedural calls."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Use async equivalents: `tokio::time::sleep`, `tokio::fs::*`, `tokio::net::*`. For CPU-bound work, use `tokio::task::spawn_blocking`.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/blocking-in-async"
  },
  {
    "canonical_id": "blocking-lock-in-async",
    "provider": "rust-doctor",
    "category": "async",
    "default_severity": "warning",
    "tags": [
      "async",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": false,
    "applicable_frameworks": [
      "tokio",
      "async-std",
      "smol"
    ],
    "framework_requirements": [
      {
        "framework": "tokio",
        "version": "*",
        "required_features": []
      },
      {
        "framework": "async-std",
        "version": "*",
        "required_features": []
      },
      {
        "framework": "smol",
        "version": "*",
        "required_features": []
      }
    ],
    "description": "Detect blocking mutex acquisition inside async functions",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Use an async-aware mutex or prove the critical section cannot block.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/blocking-lock-in-async"
  },
  {
    "canonical_id": "box-dyn-error-in-public-api",
    "provider": "rust-doctor",
    "category": "error-handling",
    "default_severity": "warning",
    "tags": [
      "error-handling",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Flags `pub fn` returning `Result<_, Box<dyn Error>>`. This erases error type information, making it impossible for callers to match on specific error variants.",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Define a custom error enum with `thiserror` or return a concrete error type.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/box-dyn-error-in-public-api"
  },
  {
    "canonical_id": "catch-unwind-discarded",
    "provider": "rust-doctor",
    "category": "correctness",
    "default_severity": "warning",
    "tags": [
      "correctness",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "high",
    "default_enabled": false,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Detect panic payloads discarded after catch_unwind",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Inspect the panic payload and restore or report the failed invariant.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/catch-unwind-discarded"
  },
  {
    "canonical_id": "clippy::absurd_extreme_comparisons",
    "provider": "clippy",
    "category": "correctness",
    "default_severity": "error",
    "tags": [
      "type-aware",
      "correctness"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `absurd_extreme_comparisons` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons"
  },
  {
    "canonical_id": "clippy::almost_swapped",
    "provider": "clippy",
    "category": "correctness",
    "default_severity": "error",
    "tags": [
      "type-aware",
      "correctness"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `almost_swapped` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#almost_swapped"
  },
  {
    "canonical_id": "clippy::approx_constant",
    "provider": "clippy",
    "category": "correctness",
    "default_severity": "error",
    "tags": [
      "type-aware",
      "correctness"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `approx_constant` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#approx_constant"
  },
  {
    "canonical_id": "clippy::await_holding_lock",
    "provider": "clippy",
    "category": "async",
    "default_severity": "error",
    "tags": [
      "type-aware",
      "async"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `await_holding_lock` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock"
  },
  {
    "canonical_id": "clippy::await_holding_refcell_ref",
    "provider": "clippy",
    "category": "async",
    "default_severity": "error",
    "tags": [
      "type-aware",
      "async"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `await_holding_refcell_ref` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_refcell_ref"
  },
  {
    "canonical_id": "clippy::bad_bit_mask",
    "provider": "clippy",
    "category": "correctness",
    "default_severity": "error",
    "tags": [
      "type-aware",
      "correctness"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `bad_bit_mask` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#bad_bit_mask"
  },
  {
    "canonical_id": "clippy::box_collection",
    "provider": "clippy",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "performance"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `box_collection` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#box_collection"
  },
  {
    "canonical_id": "clippy::cargo_common_metadata",
    "provider": "clippy",
    "category": "cargo",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "cargo"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `cargo_common_metadata` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#cargo_common_metadata"
  },
  {
    "canonical_id": "clippy::cast_lossless",
    "provider": "clippy",
    "category": "correctness",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "correctness"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `cast_lossless` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless"
  },
  {
    "canonical_id": "clippy::cast_possible_truncation",
    "provider": "clippy",
    "category": "security",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "security"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `cast_possible_truncation` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation"
  },
  {
    "canonical_id": "clippy::cast_possible_wrap",
    "provider": "clippy",
    "category": "correctness",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "correctness"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `cast_possible_wrap` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_wrap"
  },
  {
    "canonical_id": "clippy::cast_ptr_alignment",
    "provider": "clippy",
    "category": "security",
    "default_severity": "error",
    "tags": [
      "type-aware",
      "security"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `cast_ptr_alignment` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment"
  },
  {
    "canonical_id": "clippy::cast_sign_loss",
    "provider": "clippy",
    "category": "correctness",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "correctness"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `cast_sign_loss` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss"
  },
  {
    "canonical_id": "clippy::clone_on_copy",
    "provider": "clippy",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "performance"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `clone_on_copy` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy"
  },
  {
    "canonical_id": "clippy::cloned_instead_of_copied",
    "provider": "clippy",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "performance"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `cloned_instead_of_copied` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#cloned_instead_of_copied"
  },
  {
    "canonical_id": "clippy::cmp_owned",
    "provider": "clippy",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "performance"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `cmp_owned` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned"
  },
  {
    "canonical_id": "clippy::cognitive_complexity",
    "provider": "clippy",
    "category": "architecture",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "architecture"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `cognitive_complexity` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#cognitive_complexity"
  },
  {
    "canonical_id": "clippy::dbg_macro",
    "provider": "clippy",
    "category": "style",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "style"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `dbg_macro` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#dbg_macro"
  },
  {
    "canonical_id": "clippy::eq_op",
    "provider": "clippy",
    "category": "correctness",
    "default_severity": "error",
    "tags": [
      "type-aware",
      "correctness"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `eq_op` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#eq_op"
  },
  {
    "canonical_id": "clippy::exit",
    "provider": "clippy",
    "category": "error-handling",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "error-handling"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `exit` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#exit"
  },
  {
    "canonical_id": "clippy::expect_used",
    "provider": "clippy",
    "category": "error-handling",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "error-handling"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `expect_used` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#expect_used"
  },
  {
    "canonical_id": "clippy::float_cmp",
    "provider": "clippy",
    "category": "correctness",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "correctness"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `float_cmp` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp"
  },
  {
    "canonical_id": "clippy::fn_params_excessive_bools",
    "provider": "clippy",
    "category": "architecture",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "architecture"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `fn_params_excessive_bools` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#fn_params_excessive_bools"
  },
  {
    "canonical_id": "clippy::fn_to_numeric_cast",
    "provider": "clippy",
    "category": "security",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "security"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `fn_to_numeric_cast` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#fn_to_numeric_cast"
  },
  {
    "canonical_id": "clippy::indexing_slicing",
    "provider": "clippy",
    "category": "error-handling",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "error-handling"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `indexing_slicing` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#indexing_slicing"
  },
  {
    "canonical_id": "clippy::inefficient_to_string",
    "provider": "clippy",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "performance"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `inefficient_to_string` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#inefficient_to_string"
  },
  {
    "canonical_id": "clippy::invalid_regex",
    "provider": "clippy",
    "category": "correctness",
    "default_severity": "error",
    "tags": [
      "type-aware",
      "correctness"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `invalid_regex` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#invalid_regex"
  },
  {
    "canonical_id": "clippy::large_enum_variant",
    "provider": "clippy",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "performance"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `large_enum_variant` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant"
  },
  {
    "canonical_id": "clippy::large_futures",
    "provider": "clippy",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "performance"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `large_futures` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#large_futures"
  },
  {
    "canonical_id": "clippy::large_stack_arrays",
    "provider": "clippy",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "performance"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `large_stack_arrays` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#large_stack_arrays"
  },
  {
    "canonical_id": "clippy::let_underscore_must_use",
    "provider": "clippy",
    "category": "error-handling",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "error-handling"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `let_underscore_must_use` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_must_use"
  },
  {
    "canonical_id": "clippy::manual_ok_or",
    "provider": "clippy",
    "category": "error-handling",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "error-handling"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `manual_ok_or` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_or"
  },
  {
    "canonical_id": "clippy::map_unwrap_or",
    "provider": "clippy",
    "category": "error-handling",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "error-handling"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `map_unwrap_or` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or"
  },
  {
    "canonical_id": "clippy::match_overlapping_arm",
    "provider": "clippy",
    "category": "correctness",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "correctness"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `match_overlapping_arm` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#match_overlapping_arm"
  },
  {
    "canonical_id": "clippy::mem_forget",
    "provider": "clippy",
    "category": "security",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "security"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `mem_forget` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#mem_forget"
  },
  {
    "canonical_id": "clippy::missing_errors_doc",
    "provider": "clippy",
    "category": "style",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "style"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `missing_errors_doc` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc"
  },
  {
    "canonical_id": "clippy::missing_panics_doc",
    "provider": "clippy",
    "category": "style",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "style"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `missing_panics_doc` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#missing_panics_doc"
  },
  {
    "canonical_id": "clippy::module_name_repetitions",
    "provider": "clippy",
    "category": "architecture",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "architecture"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `module_name_repetitions` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#module_name_repetitions"
  },
  {
    "canonical_id": "clippy::multiple_crate_versions",
    "provider": "clippy",
    "category": "cargo",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "cargo"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `multiple_crate_versions` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#multiple_crate_versions"
  },
  {
    "canonical_id": "clippy::multiple_unsafe_ops_per_block",
    "provider": "clippy",
    "category": "security",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "security"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `multiple_unsafe_ops_per_block` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#multiple_unsafe_ops_per_block"
  },
  {
    "canonical_id": "clippy::needless_collect",
    "provider": "clippy",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "performance"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `needless_collect` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#needless_collect"
  },
  {
    "canonical_id": "clippy::negative_feature_names",
    "provider": "clippy",
    "category": "cargo",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "cargo"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `negative_feature_names` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#negative_feature_names"
  },
  {
    "canonical_id": "clippy::option_if_let_else",
    "provider": "clippy",
    "category": "error-handling",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "error-handling"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `option_if_let_else` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else"
  },
  {
    "canonical_id": "clippy::or_fun_call",
    "provider": "clippy",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "performance"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `or_fun_call` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call"
  },
  {
    "canonical_id": "clippy::panic",
    "provider": "clippy",
    "category": "error-handling",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "error-handling"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `panic` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#panic"
  },
  {
    "canonical_id": "clippy::panic_in_result_fn",
    "provider": "clippy",
    "category": "error-handling",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "error-handling"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `panic_in_result_fn` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#panic_in_result_fn"
  },
  {
    "canonical_id": "clippy::print_stderr",
    "provider": "clippy",
    "category": "style",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "style"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `print_stderr` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#print_stderr"
  },
  {
    "canonical_id": "clippy::print_stdout",
    "provider": "clippy",
    "category": "style",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "style"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `print_stdout` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#print_stdout"
  },
  {
    "canonical_id": "clippy::question_mark",
    "provider": "clippy",
    "category": "error-handling",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "error-handling"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `question_mark` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#question_mark"
  },
  {
    "canonical_id": "clippy::redundant_async_block",
    "provider": "clippy",
    "category": "async",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "async"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `redundant_async_block` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#redundant_async_block"
  },
  {
    "canonical_id": "clippy::redundant_clone",
    "provider": "clippy",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "performance"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `redundant_clone` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#redundant_clone"
  },
  {
    "canonical_id": "clippy::redundant_feature_names",
    "provider": "clippy",
    "category": "cargo",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "cargo"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `redundant_feature_names` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#redundant_feature_names"
  },
  {
    "canonical_id": "clippy::result_large_err",
    "provider": "clippy",
    "category": "error-handling",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "error-handling"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `result_large_err` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err"
  },
  {
    "canonical_id": "clippy::result_unit_err",
    "provider": "clippy",
    "category": "error-handling",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "error-handling"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `result_unit_err` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err"
  },
  {
    "canonical_id": "clippy::single_char_pattern",
    "provider": "clippy",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "performance"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `single_char_pattern` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern"
  },
  {
    "canonical_id": "clippy::struct_excessive_bools",
    "provider": "clippy",
    "category": "architecture",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "architecture"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `struct_excessive_bools` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#struct_excessive_bools"
  },
  {
    "canonical_id": "clippy::suboptimal_flops",
    "provider": "clippy",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "performance"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `suboptimal_flops` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#suboptimal_flops"
  },
  {
    "canonical_id": "clippy::todo",
    "provider": "clippy",
    "category": "style",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "style"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `todo` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#todo"
  },
  {
    "canonical_id": "clippy::too_many_arguments",
    "provider": "clippy",
    "category": "architecture",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "architecture"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `too_many_arguments` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments"
  },
  {
    "canonical_id": "clippy::too_many_lines",
    "provider": "clippy",
    "category": "architecture",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "architecture"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `too_many_lines` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#too_many_lines"
  },
  {
    "canonical_id": "clippy::transmute_ptr_to_ref",
    "provider": "clippy",
    "category": "security",
    "default_severity": "error",
    "tags": [
      "type-aware",
      "security"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `transmute_ptr_to_ref` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref"
  },
  {
    "canonical_id": "clippy::trivially_copy_pass_by_ref",
    "provider": "clippy",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "performance"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `trivially_copy_pass_by_ref` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref"
  },
  {
    "canonical_id": "clippy::type_complexity",
    "provider": "clippy",
    "category": "architecture",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "architecture"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `type_complexity` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity"
  },
  {
    "canonical_id": "clippy::undocumented_unsafe_blocks",
    "provider": "clippy",
    "category": "security",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "security"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `undocumented_unsafe_blocks` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#undocumented_unsafe_blocks"
  },
  {
    "canonical_id": "clippy::unimplemented",
    "provider": "clippy",
    "category": "style",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "style"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `unimplemented` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#unimplemented"
  },
  {
    "canonical_id": "clippy::unnecessary_to_owned",
    "provider": "clippy",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "performance"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `unnecessary_to_owned` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned"
  },
  {
    "canonical_id": "clippy::unreachable",
    "provider": "clippy",
    "category": "style",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "style"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `unreachable` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#unreachable"
  },
  {
    "canonical_id": "clippy::unused_async",
    "provider": "clippy",
    "category": "async",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "async"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `unused_async` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#unused_async"
  },
  {
    "canonical_id": "clippy::unwrap_in_result",
    "provider": "clippy",
    "category": "error-handling",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "error-handling"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `unwrap_in_result` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_in_result"
  },
  {
    "canonical_id": "clippy::unwrap_used",
    "provider": "clippy",
    "category": "error-handling",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "error-handling"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `unwrap_used` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used"
  },
  {
    "canonical_id": "clippy::useless_vec",
    "provider": "clippy",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "performance"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `useless_vec` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec"
  },
  {
    "canonical_id": "clippy::wildcard_dependencies",
    "provider": "clippy",
    "category": "cargo",
    "default_severity": "error",
    "tags": [
      "type-aware",
      "cargo"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `wildcard_dependencies` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_dependencies"
  },
  {
    "canonical_id": "clippy::wildcard_imports",
    "provider": "clippy",
    "category": "style",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "style"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `wildcard_imports` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_imports"
  },
  {
    "canonical_id": "clippy::wrong_self_convention",
    "provider": "clippy",
    "category": "correctness",
    "default_severity": "warning",
    "tags": [
      "type-aware",
      "correctness"
    ],
    "analyzer": "clippy",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Clippy `wrong_self_convention` diagnostic",
    "limitations": [
      "Compiler-aware evidence is unavailable when the package cannot complete Clippy analysis."
    ],
    "fix_capability": "rustc-suggestion",
    "fix_guidance": "Apply the rustc suggestion when its applicability permits it.",
    "documentation_url": "https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention"
  },
  {
    "canonical_id": "collect-then-iterate",
    "provider": "rust-doctor",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "heuristic",
      "performance"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Flags `.collect::<Vec<_>>()` immediately followed by `.iter()`. This allocates a temporary vector unnecessarily since the original iterator could be used directly.",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Remove the `.collect()` and chain the iterator operations directly.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/collect-then-iterate"
  },
  {
    "canonical_id": "command-shell-interpolation",
    "provider": "rust-doctor",
    "category": "security",
    "default_severity": "warning",
    "tags": [
      "heuristic",
      "security"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": false,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Detect dynamic input passed through a command shell",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Invoke the program directly and pass untrusted values as individual arguments.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/command-shell-interpolation"
  },
  {
    "canonical_id": "compiler-error",
    "provider": "rustc",
    "category": "correctness",
    "default_severity": "error",
    "tags": [
      "correctness",
      "external"
    ],
    "analyzer": "project",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Finding reported by rustc",
    "limitations": [
      "Project-level evidence does not identify a precise source span."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Follow the originating analyzer guidance.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/external"
  },
  {
    "canonical_id": "compiler-ice",
    "provider": "rustc",
    "category": "correctness",
    "default_severity": "error",
    "tags": [
      "correctness",
      "external"
    ],
    "analyzer": "project",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Finding reported by rustc",
    "limitations": [
      "Project-level evidence does not identify a precise source span."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Follow the originating analyzer guidance.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/external"
  },
  {
    "canonical_id": "deny-advisory",
    "provider": "cargo-deny",
    "category": "dependencies",
    "default_severity": "error",
    "tags": [
      "dependencies",
      "external"
    ],
    "analyzer": "dependency",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Finding reported by cargo-deny",
    "limitations": [
      "Evidence depends on the originating external analyzer and its local data being available."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Follow the originating analyzer guidance.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/external"
  },
  {
    "canonical_id": "deny-ban",
    "provider": "cargo-deny",
    "category": "cargo",
    "default_severity": "error",
    "tags": [
      "cargo",
      "external"
    ],
    "analyzer": "dependency",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Finding reported by cargo-deny",
    "limitations": [
      "Evidence depends on the originating external analyzer and its local data being available."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Follow the originating analyzer guidance.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/external"
  },
  {
    "canonical_id": "deny-license",
    "provider": "cargo-deny",
    "category": "cargo",
    "default_severity": "warning",
    "tags": [
      "cargo",
      "external"
    ],
    "analyzer": "dependency",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Finding reported by cargo-deny",
    "limitations": [
      "Evidence depends on the originating external analyzer and its local data being available."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Follow the originating analyzer guidance.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/external"
  },
  {
    "canonical_id": "deny-source",
    "provider": "cargo-deny",
    "category": "cargo",
    "default_severity": "warning",
    "tags": [
      "cargo",
      "external"
    ],
    "analyzer": "dependency",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Finding reported by cargo-deny",
    "limitations": [
      "Evidence depends on the originating external analyzer and its local data being available."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Follow the originating analyzer guidance.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/external"
  },
  {
    "canonical_id": "deny-unknown",
    "provider": "cargo-deny",
    "category": "dependencies",
    "default_severity": "warning",
    "tags": [
      "dependencies",
      "external"
    ],
    "analyzer": "dependency",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Finding reported by cargo-deny",
    "limitations": [
      "Evidence depends on the originating external analyzer and its local data being available."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Follow the originating analyzer guidance.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/external"
  },
  {
    "canonical_id": "excessive-clone",
    "provider": "rust-doctor",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "heuristic",
      "performance"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Flags `.clone()` calls that may indicate unnecessary heap allocations. Each clone copies the entire value, which is expensive for `String`, `Vec`, and other heap-allocated types.",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Use references (`&T`) or `Cow<T>` instead of cloning. Consider restructuring ownership to avoid the clone.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/excessive-clone"
  },
  {
    "canonical_id": "hardcoded-secrets",
    "provider": "rust-doctor",
    "category": "security",
    "default_severity": "error",
    "tags": [
      "heuristic",
      "security"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Flags string literals assigned to secret-named variables (`api_key`, `password`, `token`, `secret`, …) when the value also looks like a real secret — matching a known key shape (AWS, GitHub, Stripe, JWT) or exceeding a Shannon-entropy threshold. Test code and placeholder values are ignored. Hardcoded secrets can be extracted from compiled binaries or version control.",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Use environment variables, a secrets manager, or config files excluded from version control.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/hardcoded-secrets"
  },
  {
    "canonical_id": "high-cyclomatic-complexity",
    "provider": "rust-doctor",
    "category": "architecture",
    "default_severity": "warning",
    "tags": [
      "architecture",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Function has high cyclomatic complexity — consider refactoring into smaller functions",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Extract complex branches into helper functions, use early returns, simplify match arms",
    "documentation_url": "https://rust-doctor.vercel.app/rules/high-cyclomatic-complexity"
  },
  {
    "canonical_id": "insecure-http-client",
    "provider": "rust-doctor",
    "category": "security",
    "default_severity": "warning",
    "tags": [
      "heuristic",
      "security"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": false,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Detect non-local plain HTTP transport literals",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Use HTTPS or document and narrowly suppress a trusted local transport.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/insecure-http-client"
  },
  {
    "canonical_id": "large-enum-variant",
    "provider": "rust-doctor",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "heuristic",
      "performance"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Flags enums where variants have significantly different sizes (>3x field count disparity). The enum's size equals its largest variant, wasting memory for smaller variants.",
    "limitations": [
      "The rule counts fields rather than calculating each variant's concrete byte layout."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Box the large variant's data: `LargeVariant(Box<LargeData>)`.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/large-enum-variant"
  },
  {
    "canonical_id": "low-coverage",
    "provider": "cargo-llvm-cov",
    "category": "correctness",
    "default_severity": "warning",
    "tags": [
      "correctness",
      "external"
    ],
    "analyzer": "project",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Finding reported by cargo-llvm-cov",
    "limitations": [
      "Project-level evidence does not identify a precise source span."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Follow the originating analyzer guidance.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/external"
  },
  {
    "canonical_id": "mem-forget-resource",
    "provider": "rust-doctor",
    "category": "correctness",
    "default_severity": "warning",
    "tags": [
      "correctness",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "high",
    "default_enabled": false,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Detect resource guards passed to mem::forget",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Release the guard explicitly or transfer ownership through a documented resource API.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/mem-forget-resource"
  },
  {
    "canonical_id": "missing-msrv",
    "provider": "rust-doctor",
    "category": "cargo",
    "default_severity": "warning",
    "tags": [
      "cargo",
      "external"
    ],
    "analyzer": "project",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Finding reported by rust-doctor",
    "limitations": [
      "Project-level evidence does not identify a precise source span."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Follow the originating analyzer guidance.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/external"
  },
  {
    "canonical_id": "msrv-incompatible",
    "provider": "rust-doctor",
    "category": "cargo",
    "default_severity": "error",
    "tags": [
      "cargo",
      "external"
    ],
    "analyzer": "project",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Finding reported by rust-doctor",
    "limitations": [
      "Project-level evidence does not identify a precise source span."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Follow the originating analyzer guidance.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/external"
  },
  {
    "canonical_id": "msrv-outdated",
    "provider": "rust-doctor",
    "category": "cargo",
    "default_severity": "warning",
    "tags": [
      "cargo",
      "external"
    ],
    "analyzer": "project",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Finding reported by rust-doctor",
    "limitations": [
      "Project-level evidence does not identify a precise source span."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Follow the originating analyzer guidance.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/external"
  },
  {
    "canonical_id": "panic-in-library",
    "provider": "rust-doctor",
    "category": "error-handling",
    "default_severity": "error",
    "tags": [
      "error-handling",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Flags `panic!()`, `todo!()`, and `unimplemented!()` macros in library code. Libraries should return errors rather than panicking, since callers cannot recover from a panic across crate boundaries.",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Return `Result<T, E>` or `Option<T>` instead of panicking.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/panic-in-library"
  },
  {
    "canonical_id": "process-exit-in-library",
    "provider": "rust-doctor",
    "category": "correctness",
    "default_severity": "warning",
    "tags": [
      "correctness",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "high",
    "default_enabled": false,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Detect process termination from library source",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Return a typed error and let the binary boundary decide whether to exit.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/process-exit-in-library"
  },
  {
    "canonical_id": "regex-created-in-loop",
    "provider": "rust-doctor",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "heuristic",
      "performance"
    ],
    "analyzer": "syn-ast",
    "confidence": "high",
    "default_enabled": false,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Detect regular expressions compiled inside loops",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Compile the expression once outside the loop or store it in LazyLock.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/regex-created-in-loop"
  },
  {
    "canonical_id": "result-unit-error",
    "provider": "rust-doctor",
    "category": "error-handling",
    "default_severity": "warning",
    "tags": [
      "error-handling",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Flags `pub fn` returning `Result<_, ()>`. A unit error carries no information about what went wrong.",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Use a meaningful error type that describes the failure.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/result-unit-error"
  },
  {
    "canonical_id": "semver-violation",
    "provider": "cargo-semver-checks",
    "category": "correctness",
    "default_severity": "error",
    "tags": [
      "correctness",
      "external"
    ],
    "analyzer": "dependency",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Finding reported by cargo-semver-checks",
    "limitations": [
      "Evidence depends on the originating external analyzer and its local data being available."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Follow the originating analyzer guidance.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/external"
  },
  {
    "canonical_id": "skipped-pass",
    "provider": "rust-doctor",
    "category": "cargo",
    "default_severity": "info",
    "tags": [
      "cargo",
      "external"
    ],
    "analyzer": "project",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Finding reported by rust-doctor",
    "limitations": [
      "Project-level evidence does not identify a precise source span."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Follow the originating analyzer guidance.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/external"
  },
  {
    "canonical_id": "spawn-in-drop",
    "provider": "rust-doctor",
    "category": "async",
    "default_severity": "warning",
    "tags": [
      "async",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "high",
    "default_enabled": false,
    "applicable_frameworks": [
      "tokio"
    ],
    "framework_requirements": [
      {
        "framework": "tokio",
        "version": "*",
        "required_features": []
      }
    ],
    "description": "Detect Tokio task spawning from Drop implementations",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Expose an explicit async shutdown method and keep Drop synchronous.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/spawn-in-drop"
  },
  {
    "canonical_id": "sql-injection-risk",
    "provider": "rust-doctor",
    "category": "security",
    "default_severity": "error",
    "tags": [
      "heuristic",
      "security"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Flags `format!()` output passed to `.query()`, `.execute()`, or `.raw()` methods. String interpolation in SQL queries enables SQL injection attacks.",
    "limitations": [
      "String-built queries are heuristic evidence; the rule cannot prove that interpolated data is untrusted."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Use parameterized queries (`$1`, `?`) provided by your database library (sqlx, diesel, sea-orm).",
    "documentation_url": "https://rust-doctor.vercel.app/rules/sql-injection-risk"
  },
  {
    "canonical_id": "string-from-literal",
    "provider": "rust-doctor",
    "category": "performance",
    "default_severity": "info",
    "tags": [
      "heuristic",
      "performance"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": false,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Flags `String::from(\"literal\")` and `\"literal\".to_string()`. These allocate on the heap when a `&str` reference might suffice.",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Use `&str` for function parameters and constants. Owned `String` is correct for struct fields, HashMap keys, error messages, and APIs requiring ownership.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/string-from-literal"
  },
  {
    "canonical_id": "temporary-cstring-pointer",
    "provider": "rust-doctor",
    "category": "security",
    "default_severity": "warning",
    "tags": [
      "heuristic",
      "security"
    ],
    "analyzer": "syn-ast",
    "confidence": "high",
    "default_enabled": false,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Detect raw pointers borrowed from temporary CString values",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Bind the CString so its owner outlives every use of the raw pointer.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/temporary-cstring-pointer"
  },
  {
    "canonical_id": "tokio-main-missing",
    "provider": "rust-doctor",
    "category": "framework",
    "default_severity": "error",
    "tags": [
      "framework",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [
      "tokio",
      "async-std",
      "smol"
    ],
    "framework_requirements": [
      {
        "framework": "tokio",
        "version": ">=1,<2",
        "required_features": [
          "macros",
          "rt"
        ]
      },
      {
        "framework": "async-std",
        "version": ">=1,<2",
        "required_features": [
          "attributes"
        ]
      },
      {
        "framework": "smol",
        "version": ">=1,<3",
        "required_features": []
      }
    ],
    "description": "Flags `async fn main()` without `#[tokio::main]` (or equivalent runtime attribute). Without it, the async runtime is not initialized and the program won't compile or will panic.",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Add `#[tokio::main]` above `async fn main()`.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/tokio-main-missing"
  },
  {
    "canonical_id": "tokio-spawn-without-move",
    "provider": "rust-doctor",
    "category": "framework",
    "default_severity": "error",
    "tags": [
      "framework",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [
      "tokio"
    ],
    "framework_requirements": [
      {
        "framework": "tokio",
        "version": ">=1,<2",
        "required_features": [
          "rt"
        ]
      }
    ],
    "description": "Flags `tokio::spawn(async { ... })` without the `move` keyword. Without `move`, the spawned task borrows from the enclosing scope, which often fails to compile due to lifetime requirements ('static bound on spawn).",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Use `tokio::spawn(async move { ... })`.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/tokio-spawn-without-move"
  },
  {
    "canonical_id": "tokio-unbounded-channel",
    "provider": "rust-doctor",
    "category": "framework",
    "default_severity": "warning",
    "tags": [
      "framework",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": false,
    "applicable_frameworks": [
      "tokio"
    ],
    "framework_requirements": [
      {
        "framework": "tokio",
        "version": ">=1,<2",
        "required_features": [
          "sync"
        ]
      }
    ],
    "description": "Detect Tokio unbounded channels without backpressure",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Choose a bounded mpsc channel and make the producer handle backpressure.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/tokio-unbounded-channel"
  },
  {
    "canonical_id": "unbounded-collect",
    "provider": "rust-doctor",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "heuristic",
      "performance"
    ],
    "analyzer": "syn-ast",
    "confidence": "low",
    "default_enabled": false,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Detect input-like iterators collected without an explicit bound",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Apply a validated take limit or stream the input without collecting it all.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/unbounded-collect"
  },
  {
    "canonical_id": "uncovered-file",
    "provider": "cargo-llvm-cov",
    "category": "correctness",
    "default_severity": "warning",
    "tags": [
      "correctness",
      "external"
    ],
    "analyzer": "project",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Finding reported by cargo-llvm-cov",
    "limitations": [
      "Project-level evidence does not identify a precise source span."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Follow the originating analyzer guidance.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/external"
  },
  {
    "canonical_id": "unknown-rustc-level",
    "provider": "rustc",
    "category": "correctness",
    "default_severity": "info",
    "tags": [
      "correctness",
      "external"
    ],
    "analyzer": "project",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Finding reported by rustc",
    "limitations": [
      "Project-level evidence does not identify a precise source span."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Follow the originating analyzer guidance.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/external"
  },
  {
    "canonical_id": "unnecessary-allocation",
    "provider": "rust-doctor",
    "category": "performance",
    "default_severity": "warning",
    "tags": [
      "heuristic",
      "performance"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Flags `Vec::new()` or `String::new()` inside loops. Each iteration allocates a new buffer, which is expensive.",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Move the allocation outside the loop and use `.clear()` to reuse it.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/unnecessary-allocation"
  },
  {
    "canonical_id": "unsafe-block-audit",
    "provider": "rust-doctor",
    "category": "security",
    "default_severity": "warning",
    "tags": [
      "heuristic",
      "security"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Flags `unsafe {}` blocks and `unsafe fn` declarations. Unsafe code bypasses Rust's memory safety guarantees and must be carefully audited.",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Verify the safety invariants are documented and correct. Consider safe abstractions or crates like `zerocopy` to eliminate unsafe.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/unsafe-block-audit"
  },
  {
    "canonical_id": "unsafe-dependency",
    "provider": "cargo-geiger",
    "category": "security",
    "default_severity": "warning",
    "tags": [
      "security",
      "external"
    ],
    "analyzer": "dependency",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Finding reported by cargo-geiger",
    "limitations": [
      "Evidence depends on the originating external analyzer and its local data being available."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Follow the originating analyzer guidance.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/external"
  },
  {
    "canonical_id": "unused-dependency",
    "provider": "cargo-machete",
    "category": "dependencies",
    "default_severity": "warning",
    "tags": [
      "dependencies",
      "external"
    ],
    "analyzer": "dependency",
    "confidence": "high",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Finding reported by cargo-machete",
    "limitations": [
      "Evidence depends on the originating external analyzer and its local data being available."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Follow the originating analyzer guidance.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/external"
  },
  {
    "canonical_id": "unwrap-in-production",
    "provider": "rust-doctor",
    "category": "error-handling",
    "default_severity": "warning",
    "tags": [
      "error-handling",
      "heuristic"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": true,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Flags `.unwrap()` and `.expect()` calls outside of test code. These calls panic at runtime if the value is `None` or `Err`, crashing your application.",
    "limitations": [
      "Syntactic matching cannot distinguish a provably infallible unwrap from a risky one."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Use the `?` operator to propagate errors, or handle them with `match`, `if let`, `.unwrap_or()`, or `.unwrap_or_else()`.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/unwrap-in-production"
  },
  {
    "canonical_id": "weak-crypto-hash",
    "provider": "rust-doctor",
    "category": "security",
    "default_severity": "warning",
    "tags": [
      "heuristic",
      "security"
    ],
    "analyzer": "syn-ast",
    "confidence": "medium",
    "default_enabled": false,
    "applicable_frameworks": [],
    "framework_requirements": [],
    "description": "Detect weak digests applied directly to secret-like values",
    "limitations": [
      "Syntactic analysis does not have rustc name resolution or inferred type information."
    ],
    "fix_capability": "guidance",
    "fix_guidance": "Use a security-appropriate primitive and keep password hashing deliberately slow.",
    "documentation_url": "https://rust-doctor.vercel.app/rules/weak-crypto-hash"
  }
]
