# Example debtmap configuration file
# Copy this to .debtmap.toml and adjust thresholds as needed
[thresholds]
# Basic complexity thresholds
complexity = 10
duplication = 50
max_file_length = 500
max_function_length = 100
# Minimum thresholds for debt analysis
minimum_debt_score = 1.0
minimum_cyclomatic_complexity = 2
minimum_cognitive_complexity = 3
minimum_risk_score = 1.0
# Validation thresholds for 'debtmap validate' command
[thresholds.validation]
# Maximum allowed average complexity (default: 10.0)
max_average_complexity = 10.0
# Maximum allowed high complexity function count (default: 100)
max_high_complexity_count = 100
# Maximum allowed technical debt items (default: 2000)
max_debt_items = 2500
# Maximum allowed total debt score (default: 10000)
max_total_debt_score = 20000
# Maximum allowed codebase risk score (default: 7.0)
max_codebase_risk_score = 7.0
# Maximum allowed high-risk function count (default: 50)
max_high_risk_functions = 50
# Minimum required code coverage percentage (default: 0.0 - no minimum)
min_coverage_percentage = 60.0
# Scoring weights for priority calculation (must sum to 1.0)
[scoring]
coverage = 0.40 # Weight for test coverage gaps (40%)
complexity = 0.30 # Weight for code complexity (30%)
semantic = 0.05 # Weight for semantic importance (5%)
dependency = 0.15 # Weight for dependency criticality (15%)
security = 0.05 # Weight for security issues (5%)
organization = 0.05 # Weight for code organization issues (5%)
# Rebalanced scoring algorithm (Spec 136)
# Prioritizes code quality (complexity + coverage) over file size
[scoring_rebalanced]
# Use a preset: "balanced", "quality-focused", "test-coverage", "size-focused"
preset = "balanced"
# Or define custom weights (comment out preset above to use these)
# complexity_weight = 1.0 # Cyclomatic + cognitive complexity (default: 1.0)
# coverage_weight = 1.0 # Test coverage gaps (default: 1.0)
# structural_weight = 0.8 # God objects, architectural issues (default: 0.8)
# size_weight = 0.3 # File size - reduced from legacy ~1.5 (default: 0.3)
# smell_weight = 0.6 # Code smells (long functions, nesting) (default: 0.6)
# Available presets:
# - "balanced": Default (complexity: 1.0, coverage: 1.0, size: 0.3)
# - "quality-focused": Emphasize quality over size (complexity: 1.2, coverage: 1.1, size: 0.2)
# - "test-coverage": Prioritize test gaps (coverage: 1.3)
# - "size-focused": Legacy behavior for compatibility (size: 1.5)
# External API detection configuration
[external_api]
domains = [
"api.github.com",
"api.openai.com",
"*.amazonaws.com"
]
keywords = [
"http_client",
"fetch",
"request",
"api_call"
]
# Languages to analyze
[languages]
enabled = ["rust", "python", "javascript", "typescript"]
# Patterns to ignore during analysis
[ignore]
patterns = [
"target/**",
"node_modules/**",
"*.generated.rs",
"*.pb.rs"
]
# Default output format
[output]
default_format = "terminal"