[complexity]
cyclomatic_threshold = 10
cyclomatic_warn = 8
cyclomatic_critical = 15
cognitive_threshold = 10
cognitive_warn = 8
cognitive_critical = 12
max_nesting = 5
warn_nesting = 4
max_lines_per_function = 50
warn_lines_per_function = 40
[satd]
zero_tolerance = true
patterns = [
"TODO",
"FIXME",
"HACK",
"XXX",
"TEMP",
"WORKAROUND",
]
require_issue_links = true
fail_on_unlinked_satd = true
[coverage]
minimum_coverage = 85.0
target_coverage = 95.0
min_line_coverage = 85.0
target_line_coverage = 95.0
min_branch_coverage = 80.0
target_branch_coverage = 90.0
min_function_coverage = 90.0
enforce_on_new_code = true
new_code_coverage = 95.0
[mutation]
minimum_mutation_score = 85.0
target_mutation_score = 90.0
max_mutations_per_file = 1000
timeout_multiplier = 2.0
require_survivor_analysis = true
[documentation]
min_public_items_documented = 90.0
min_private_items_documented = 50.0
require_examples = true
min_example_coverage = 80.0
require_module_docs = true
require_crate_docs = true
require_safety_docs = true
min_safety_doc_lines = 3
[security]
run_cargo_audit = true
deny_vulnerabilities = true
allow_unmaintained = false
run_cargo_deny = true
deny_unmaintained = true
deny_deprecated = true
deny_duplicate_dependencies = true
[rust_specific]
clippy_strictness = "pedantic"
rustfmt_edition = "2021"
max_unsafe_blocks = 0
require_unsafe_justification = true
require_result_handling = true
forbid_unwrap_in_production = true
[testing]
min_unit_tests = 20
min_integration_tests = 10
min_property_tests = 5
proptest_min_iterations = 256
proptest_max_iterations = 10000
require_test_modules = true
require_assertion_messages = true
[tiered_testing]
tier1_timeout_ms = 1000
tier1_tests = ["unit", "focused_property"]
tier2_timeout_ms = 300000
tier2_tests = ["all_property", "integration", "coverage"]
tier3_timeout_ms = 7200000
tier3_tests = ["mutation", "formal_verification", "benchmarks"]
[grading]
a_plus_threshold = 95.0
a_threshold = 90.0
a_minus_threshold = 85.0
b_plus_threshold = 80.0
b_threshold = 70.0
tooling_weight = 25.0
code_quality_weight = 20.0
testing_weight = 20.0
documentation_weight = 15.0
performance_weight = 10.0
community_weight = 10.0