# rustqual.toml — Tailored configuration for your project # Generated from analysis of 87 file(s), 488 function(s). # # Thresholds are set to your current maximums + 20% headroom. # Tighten them over time as you improve code quality. # ── Function Classification ────────────────────────────────────────────── ignore_functions = ["main", "test_*"] exclude_files = [ "crates/notgraph/tests/*", "scripts/preflight.rs", ] strict_closures = false strict_iterator_chains = false allow_recursion = false strict_error_propagation = false # ── Suppression Health ─────────────────────────────────────────────────── max_suppression_ratio = 0.05 fail_on_warnings = false # ── Complexity Analysis ────────────────────────────────────────────────── [complexity] enabled = true max_cognitive = 72 # current max: 60 max_cyclomatic = 30 # current max: 25 max_nesting_depth = 9 # current max: 7 max_function_lines = 286 # current max: 238 include_nesting_penalty = true detect_magic_numbers = true detect_unsafe = true detect_error_handling = true allowed_magic_numbers = ["0", "1", "-1", "2"] # ── DRY / Duplicate Detection ─────────────────────────────────────────── [duplicates] enabled = true similarity_threshold = 0.85 min_tokens = 30 min_lines = 5 min_statements = 3 ignore_tests = true ignore_trait_impls = true detect_dead_code = false detect_wildcard_imports = true detect_repeated_matches = true # ── Boilerplate Detection ─────────────────────────────────────────────── [boilerplate] enabled = true suggest_crates = true # ── SRP (Single Responsibility) ───────────────────────────────────────── [srp] enabled = true smell_threshold = 0.6 max_fields = 12 max_methods = 20 max_fan_out = 10 lcom4_threshold = 2 weights = [0.4, 0.25, 0.15, 0.2] file_length_baseline = 300 file_length_ceiling = 800 max_independent_clusters = 2 min_cluster_statements = 5 max_parameters = 5 # ── Coupling Analysis ─────────────────────────────────────────────────── [coupling] enabled = true max_instability = 0.8 max_fan_in = 15 max_fan_out = 12 check_sdp = true # ── Test Quality Analysis ────────────────────────────────────────────── [test_quality] enabled = true # coverage_file = "lcov.info" # ── Quality Score Weights ────────────────────────────────────────────── # Must sum to approximately 1.0. [weights] iosp = 0.22 complexity = 0.18 dry = 0.13 srp = 0.18 coupling = 0.09 test_quality = 0.10 architecture = 0.10