[quality_gate]
max_cyclomatic_complexity = 10
max_cognitive_complexity = 10
max_satd_comments = 0
min_test_coverage = 80.0
max_dead_code_percentage = 5.0
[documentation]
required_updates = [
"docs/execution/roadmap.md",
"docs/execution/quality-gates.md",
"CHANGELOG.md"
]
task_id_pattern = "RUCHY-[0-9]{4}"
[commit]
max_lines_changed = 50
max_time_between_commits_minutes = 30
[mcp_server]
enforce_documentation = true
block_on_missing_docs = true
auto_update_roadmap = true
[quality_gates]
cyclomatic_complexity = 10
cognitive_complexity = 15
halstead_effort = 5000
maintainability_index = 70
minimum_coverage = 80
minimum_mutation_score = 75
max_satd_comments = 0
max_duplicate_lines = 20
max_file_length = 500
max_function_length = 50
[test_requirements]
require_unit_tests = true
require_property_tests = true
require_doctests = true
require_examples = true
fuzz_targets = [
"parser",
"lexer",
"transpiler",
]
[performance_benchmarks]
parser_throughput = 100000
type_checking_throughput = 50000
transpilation_throughput = 200000
repl_latency = 15
binary_size = 5242880
[memory_limits]
actor_stack_size = 2097152
mailbox_size = 65536
message_inline_size = 496
[analysis]
enabled_linters = [
"clippy",
"rustfmt",
"cargo-audit",
"cargo-deny",
]
clippy_flags = [
"-W clippy::all",
"-W clippy::pedantic",
"-W clippy::nursery",
"-W clippy::cargo",
"-D warnings",
]
[reporting]
formats = ["json", "html", "markdown"]
output_dir = "target/quality-reports"
generate_dashboard = true
dashboard_port = 8080
[hooks]
pre_commit = [
"cargo fmt --check",
"cargo clippy -- -D warnings",
"cargo test",
"cargo mutants --minimum-test-score 75",
]
pre_push = [
"cargo test --all",
"cargo bench --no-run",
"scripts/coverage.sh",
]
[exceptions]
exclude_patterns = [
"target/**",
".git/**",
"*.generated.rs",
]
allow_todo_in = []