[quality_gate]
# Zero tolerance settings
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 documentation patterns
required_updates = [
    "docs/execution/roadmap.md",
    "docs/execution/quality-gates.md",
    "CHANGELOG.md"
]

# Task ID format enforcement
task_id_pattern = "RUCHY-[0-9]{4}"

[commit]
# Micro-commit enforcement
max_lines_changed = 50
max_time_between_commits_minutes = 30

[mcp_server]
# MCP quality proxy configuration
enforce_documentation = true
block_on_missing_docs = true
auto_update_roadmap = true

[quality_gates]
# Complexity thresholds from CLAUDE.md
cyclomatic_complexity = 10
cognitive_complexity = 15
halstead_effort = 5000
maintainability_index = 70

# Code coverage requirements
minimum_coverage = 80
minimum_mutation_score = 75

# Code quality
max_satd_comments = 0  # No TODO/FIXME/HACK comments allowed
max_duplicate_lines = 20
max_file_length = 500
max_function_length = 50

[test_requirements]
# Every public function must have tests
require_unit_tests = true
require_property_tests = true
require_doctests = true
require_examples = true

# Fuzzing requirements
fuzz_targets = [
    "parser",
    "lexer",
    "transpiler",
]

[performance_benchmarks]
# Performance requirements from CLAUDE.md
parser_throughput = 100000  # LOC/sec
type_checking_throughput = 50000  # LOC/sec
transpilation_throughput = 200000  # LOC/sec
repl_latency = 15  # milliseconds
binary_size = 5242880  # 5MB in bytes

[memory_limits]
# Actor system constraints
actor_stack_size = 2097152  # 2MB
mailbox_size = 65536  # 64KB
message_inline_size = 496  # bytes

[analysis]
# Static analysis tools to run
enabled_linters = [
    "clippy",
    "rustfmt",
    "cargo-audit",
    "cargo-deny",
]

# Clippy configuration
clippy_flags = [
    "-W clippy::all",
    "-W clippy::pedantic",
    "-W clippy::nursery",
    "-W clippy::cargo",
    "-D warnings",
]

[reporting]
# Output formats for quality reports
formats = ["json", "html", "markdown"]
output_dir = "target/quality-reports"

# Dashboard settings
generate_dashboard = true
dashboard_port = 8080

[hooks]
# Pre-commit hooks
pre_commit = [
    "cargo fmt --check",
    "cargo clippy -- -D warnings",
    "cargo test",
    "cargo mutants --minimum-test-score 75",
]

# Pre-push hooks
pre_push = [
    "cargo test --all",
    "cargo bench --no-run",
    "scripts/coverage.sh",
]

[exceptions]
# Files/patterns to exclude from analysis
exclude_patterns = [
    "target/**",
    ".git/**",
    "*.generated.rs",
]

# Temporary exceptions (should be removed)
allow_todo_in = []  # No exceptions allowed per requirements