TrueMend analyzed 488 files and 9,131 functions across your codebase. We found 848 quality issues — 66% of which can be fixed automatically at zero cost.
TrueMend performed an automated code quality audit of 488 source files containing 9,131 functions across 135,419 lines of code. This report summarizes the findings and quantifies the engineering effort required to address them.
Technical debt compounds. Industry research shows unaddressed code quality issues grow at approximately 23% annually as surrounding code adapts to work around problems, making them progressively harder to resolve.
The following breakdown compares the engineering cost of manual remediation against TrueMend-assisted remediation for each fix category.
| Fix Type | Count | Manual (per fix) | TrueMend (per fix) | Manual Total | TrueMend Total | Savings |
|---|---|---|---|---|---|---|
| Deterministic | 558 | 25 min | 0 min | 232 hrs | 0 hrs | 232 hrs |
| Cataloged Refactor | 288 | 90 min | 5 min | 432 hrs | 24 hrs | 408 hrs |
| Structural Rewrite | 2 | 4 hrs | 4 hrs | 8 hrs | 8 hrs | 0 hrs |
| Total | 848 | 672 hrs | 32 hrs | 640 hrs | ||
Every TrueMend audit follows a standardized, reproducible process. Findings are generated by deterministic AST analysis, regex line-scan, and semantic Python analysis — not opinion.
309 anti-patterns across 17 spec files using ast-grep (Rust AST), regex line-scan, and semantic Python analysis. 14 language grammars, 2 framework-specific pattern sets (Flutter, React/Next.js).
Mechanical health score (0-100) computed from anti-pattern density, severity weights, and function-level metrics. Optional LLM-powered subjective review across 40 dimensions with blind review mode.
Three-tier fix classification ensures every finding has a clear, cost-appropriate remediation path.
8 project-level detectors: naming consistency, flat directories, orphaned files, dead code blocks, single-use abstractions, signature variance, passthrough files, duplicate clusters.
13-check assessment with PASS/FAIL/WARN verdicts and blocker identification.
Per-author attribution from git history: commits, debt introduced/fixed, test discipline, commit message quality.
Technical debt in CAD at $125/hr blended consulting rate with empirical calibration from actual fix times.
This report was prepared exclusively for Acme Corp in connection with the TrueMend engagement. It contains proprietary analysis and recommendations. Distribution, reproduction, or disclosure to third parties without written authorization is prohibited.
Security posture aggregates findings from anti-pattern detection, semantic boundary analysis, configuration scanning, and subjective dimension scoring. Findings include hardcoded secrets, XSS vectors, CSRF vulnerabilities, unvalidated input, and authorization gaps.
| Severity | Source | Pattern | Description | Location |
|---|---|---|---|---|
| CRITICAL | semantic_detector | eval-usage | eval() executes arbitrary code. | known_bad.py:9 |
| CRITICAL | semantic_detector | exec-usage | exec() executes arbitrary code. | known_bad.py:10 |
| CRITICAL | semantic_detector | eval-usage | eval() executes arbitrary code. | python_directives.py:9 |
| CRITICAL | semantic_detector | eval-usage | eval() executes arbitrary code. | python_directives.py:12 |
| MEDIUM | semantic_detector | environ-no-default | os.environ["X"] raises KeyError if the variable is missing. | truemend_mcp.py:91 |
Assesses whether the codebase is ready for production deployment across 13 checks spanning security, testing, code quality, and structural health.
| Status | Check | Details | Blocker |
|---|---|---|---|
| FAIL | Critical findings | 3 critical-severity anti-patterns detected | Yes |
| FAIL | High-severity findings | 45 high-severity findings (threshold: 10) | Yes |
| FAIL | Empty catch blocks | 8 empty catch blocks (threshold: 5) | Yes |
| FAIL | Security issues | 4 critical, 0 high security findings | Yes |
| WARN | Unused imports | 504 unused imports (threshold: 100) | No |
| WARN | Orphaned files | 68 orphaned files (27,200 lines) | No |
| WARN | Duplicate clusters | 531 duplicate clusters (1269 functions) | No |
| WARN | Function length violations | 91 functions exceed 50 lines | No |
| WARN | Debug artifacts | 3 debug print statements | No |
| PASS | Health score | Health score 94.2 (above 80 threshold) | No |
| PASS | Dead code blocks | 2 dead code blocks | No |
| PASS | Hardcoded secrets | No hardcoded secrets detected | Yes |
| SKIP | Test coverage | Test gap data not available | Yes |
Dead exports are symbols (functions, classes, constants) that are defined and exported but never imported or called within the codebase. Removing them reduces bundle size, decreases cognitive load, and eliminates potential attack surface.
| File | Symbol | Line | Severity | Description |
|---|---|---|---|---|
| K:\TrueMend\cli.py | configure_logging | 60 | MEDIUM | Public symbol 'configure_logging' is defined but never imported by any other file in the p |
| K:\TrueMend\src\analysis_pipeline.py | scan_files_for_duplicates | 151 | MEDIUM | Public symbol 'scan_files_for_duplicates' is defined but never imported by any other file |
| K:\TrueMend\src\languages\swift.py | get_function_range | 216 | MEDIUM | Public symbol 'get_function_range' is defined but never imported by any other file in the |
| K:\TrueMend\src\languages\swift.py | count_lines | 222 | MEDIUM | Public symbol 'count_lines' is defined but never imported by any other file in the project |
| K:\TrueMend\src\triage.py | TriageResult | 21 | MEDIUM | Public symbol 'TriageResult' is defined but never imported by any other file in the projec |
| K:\TrueMend\src\anti_patterns.py | count_suppressions | 215 | MEDIUM | Public symbol 'count_suppressions' is defined but never imported by any other file in the |
| K:\TrueMend\src\fixes\patch_engine.py | PatchResult | 46 | MEDIUM | Public symbol 'PatchResult' is defined but never imported by any other file in the project |
| K:\TrueMend\src\fixes\patch_engine.py | PatchReport | 58 | MEDIUM | Public symbol 'PatchReport' is defined but never imported by any other file in the project |
| K:\TrueMend\src\fixes\patch_engine.py | Transform | 75 | MEDIUM | Public symbol 'Transform' is defined but never imported by any other file in the project |
| K:\TrueMend\src\fixes\patch_engine.py | register_transform | 86 | MEDIUM | Public symbol 'register_transform' is defined but never imported by any other file in the |
| K:\TrueMend\src\fixes\patch_engine.py | transform_remove_unused_imports | 675 | MEDIUM | Public symbol 'transform_remove_unused_imports' is defined but never imported by any other |
| K:\TrueMend\src\fixes\patch_engine.py | apply_and_write | 710 | MEDIUM | Public symbol 'apply_and_write' is defined but never imported by any other file in the pro |
| K:\TrueMend\src\reporting\html_ux_report.py | generate_ux_html_report | 48 | MEDIUM | Public symbol 'generate_ux_html_report' is defined but never imported by any other file in |
| K:\TrueMend\src\reporting\reporter.py | QualityReport | 23 | MEDIUM | Public symbol 'QualityReport' is defined but never imported by any other file in the proje |
| K:\TrueMend\src\reporting\reporter.py | generate_roi_report | 90 | MEDIUM | Public symbol 'generate_roi_report' is defined but never imported by any other file in the |
| K:\TrueMend\src\types.py | project_root | 52 | MEDIUM | Public symbol 'project_root' is defined but never imported by any other file in the projec |
| K:\TrueMend\src\types.py | MetricsData | 212 | MEDIUM | Public symbol 'MetricsData' is defined but never imported by any other file in the project |
| K:\TrueMend\src\types.py | AntiPatternData | 238 | MEDIUM | Public symbol 'AntiPatternData' is defined but never imported by any other file in the pro |
| K:\TrueMend\src\types.py | FunctionData | 249 | MEDIUM | Public symbol 'FunctionData' is defined but never imported by any other file in the projec |
| K:\TrueMend\src\types.py | FileMetricsData | 264 | MEDIUM | Public symbol 'FileMetricsData' is defined but never imported by any other file in the pro |
| K:\TrueMend\src\types.py | HealthScoreWeightsData | 286 | MEDIUM | Public symbol 'HealthScoreWeightsData' is defined but never imported by any other file in |
| K:\TrueMend\src\types.py | HealthScoreData | 293 | MEDIUM | Public symbol 'HealthScoreData' is defined but never imported by any other file in the pro |
| K:\TrueMend\src\types.py | UxFindingData | 302 | MEDIUM | Public symbol 'UxFindingData' is defined but never imported by any other file in the proje |
| K:\TrueMend\src\types.py | UxQualityData | 317 | MEDIUM | Public symbol 'UxQualityData' is defined but never imported by any other file in the proje |
| K:\TrueMend\src\types.py | SummaryData | 345 | MEDIUM | Public symbol 'SummaryData' is defined but never imported by any other file in the project |
| K:\TrueMend\src\types.py | AnalysisConfig | 361 | MEDIUM | Public symbol 'AnalysisConfig' is defined but never imported by any other file in the proj |
| K:\TrueMend\src\types.py | FeatureRiskData | 429 | MEDIUM | Public symbol 'FeatureRiskData' is defined but never imported by any other file in the pro |
| K:\TrueMend\src\types.py | ComplexityForecastData | 439 | MEDIUM | Public symbol 'ComplexityForecastData' is defined but never imported by any other file in |
| K:\TrueMend\src\types.py | RecommendedDecompositionData | 449 | MEDIUM | Public symbol 'RecommendedDecompositionData' is defined but never imported by any other fi |
| K:\TrueMend\src\types.py | PredictionOutputData | 458 | MEDIUM | Public symbol 'PredictionOutputData' is defined but never imported by any other file in th |
Structural analysis detects naming inconsistencies, flat directory sprawl, orphaned files, dead code, passthrough functions, and signature issues across the codebase. Scan completed in 442ms.
| Category | Finding | File |
|---|---|---|
| Naming Issues | 7 files violate PascalCase | |
| Naming Issues | 2 files violate SCREAMING_SNAKE | |
| Naming Issues | 3 files violate snake_case | |
| Flat Directories | 208 files (threshold: 20) | |
| Flat Directories | 88 files (threshold: 20) | |
| Flat Directories | 38 files (threshold: 20) | |
| Single-Use Modules | Only imported by server\api\license\activate.ts | |
| Single-Use Modules | Only imported by server\api\license\activate.ts | |
| Single-Use Modules | Only imported by src\cli_commands.py | |
| Orphaned Files | zero importers, not an entry point | |
| Orphaned Files | zero importers, not an entry point | |
| Orphaned Files | zero importers, not an entry point |
Duplicate detection identifies functions with identical or near-identical logic across multiple files. Consolidating duplicates reduces maintenance burden and prevents divergent bug fixes.
| Function | Copies | Similarity | Found In |
|---|---|---|---|
| compute_comment_what_ratio | 10 | 92% | java.py, swift.py, kotlin.py, typescript.py +6 |
| count_comment_lines | 9 | 100% | java.py, swift.py, kotlin.py, typescript.py +5 |
| _try_semantic_runtime | 5 | 100% | subjective_review.py, subjective_review.py, subjective_review.py, subjective_review.py +1 |
| run_next_batch | 4 | 98% | engine.py, engine.py, workflow.py, workflow.py |
| _extract_raw_imports | 3 | 100% | single_use_detector.py, coupling_detector.py, structural_base.py |
| _extract_dart_imports | 3 | 100% | single_use_detector.py, coupling_detector.py, structural_base.py |
| _is_external_dart_import | 3 | 100% | single_use_detector.py, coupling_detector.py, structural_base.py |
| _serialize_profile | 3 | 93% | learning.py, rule_inheritance.py, dashboard.py |
| get_function_name | 3 | 100% | java.py, ruby.py, go.py |
| scan_files_for_structure | 2 | 100% | analysis_pipeline.py, mcp_tools.py |
| _resolve_call_name | 2 | 98% | comment_checker.py, concurrency_detector.py |
| detect_single_use_files | 2 | 100% | single_use_detector.py, single_use_detector.py |
| _detect_dart_package | 2 | 100% | single_use_detector.py, structural_base.py |
| _resolve_dart_package_import | 2 | 100% | single_use_detector.py, structural_base.py |
| _try_extensions | 2 | 97% | single_use_detector.py, coupling_detector.py |
Each dimension is scored 0-100 via semantic analysis of code style, naming, error handling, design coherence, and other qualitative attributes that complement the quantitative anti-pattern detection.
TrueMend analyzed 488 source files containing 9131 functions. The majority of findings are deterministic fixes that can be applied automatically with no risk.
Detailed breakdown of files with detected anti-patterns.
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| python_unused_import (53) | MEDIUM | DETERMINISTIC | Lines: 18, 24, 84, 91, 105 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| cmd_log: deep-nesting (1) | HIGH | CATALOGED | Line: 1073 |
| _print_audit_text: deep-nesting (1) | HIGH | CATALOGED | Line: 2568 |
| cmd_audit: python-broad-except (14) | MEDIUM | CATALOGED | Lines: 2034, 2044, 2064, 2125, 2150, 2168, 2186, 2204, 2232, 2250 ... +4 more |
| python_unused_import (10) | MEDIUM | DETERMINISTIC | Lines: 21, 1348, 1370, 1539, 1758, 1828, 2100 |
| dispatch_subcommand: function-too-long (1) | MEDIUM | CATALOGED | Line: 53 |
| cmd_resolve: function-too-long (1) | MEDIUM | CATALOGED | Line: 469 |
| cmd_zone: function-too-long (1) | MEDIUM | CATALOGED | Line: 1028 |
| cmd_log: function-too-long (1) | MEDIUM | CATALOGED | Line: 1073 |
| cmd_move: function-too-long (1) | MEDIUM | CATALOGED | Line: 1146 |
| _definitions_status: function-too-long (1) | MEDIUM | CATALOGED | Line: 1637 |
| _definitions_subscribe: function-too-long (1) | MEDIUM | CATALOGED | Line: 1681 |
| _license_activate: function-too-long (1) | MEDIUM | CATALOGED | Line: 1756 |
| _license_remove: function-too-long (1) | MEDIUM | CATALOGED | Line: 1897 |
| cmd_audit: function-too-long (1) | MEDIUM | CATALOGED | Line: 1974 |
| _build_pdf_data: function-too-long (1) | MEDIUM | CATALOGED | Line: 2448 |
| _print_audit_text: function-too-long (1) | MEDIUM | CATALOGED | Line: 2568 |
| _print_readiness_section: function-too-long (1) | MEDIUM | CATALOGED | Line: 2699 |
| _triage_status_or_start: function-too-long (1) | MEDIUM | CATALOGED | Line: 2990 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| _run_full_audit: deep-nesting (1) | HIGH | CATALOGED | Line: 1213 |
| _run_full_audit: python-broad-except (9) | MEDIUM | CATALOGED | Lines: 1248, 1265, 1298, 1315, 1333, 1342, 1382, 1486, 1701 |
| _infer_src_test_dirs: python-broad-except (1) | MEDIUM | CATALOGED | Line: 224 |
| _infer_src_test_dirs: function-too-long (1) | MEDIUM | CATALOGED | Line: 204 |
| _build_summary_review: function-too-long (1) | MEDIUM | CATALOGED | Line: 320 |
| _register_analyze_tool: function-too-long (1) | MEDIUM | CATALOGED | Line: 563 |
| _register_review_tool: function-too-long (1) | MEDIUM | CATALOGED | Line: 631 |
| _run_improve_pipeline: python-broad-except (1) | MEDIUM | CATALOGED | Line: 772 |
| _run_improve_pipeline: function-too-long (1) | MEDIUM | CATALOGED | Line: 743 |
| _build_status_response: python-broad-except (1) | MEDIUM | CATALOGED | Line: 888 |
| _run_dashboard_with_timeout: function-too-long (1) | MEDIUM | CATALOGED | Line: 1098 |
| _register_audit_tool: function-too-long (1) | MEDIUM | CATALOGED | Line: 1156 |
| _run_full_audit: function-too-long (1) | MEDIUM | CATALOGED | Line: 1213 |
| _compute_security_posture: python-broad-except (1) | MEDIUM | CATALOGED | Line: 1868 |
| _compute_security_posture: function-too-long (1) | MEDIUM | CATALOGED | Line: 1798 |
| _run_next: function-too-long (1) | MEDIUM | CATALOGED | Line: 2032 |
| _register_loop_tool: function-too-long (1) | MEDIUM | CATALOGED | Line: 2118 |
| _register_clusters_tool: function-too-long (1) | MEDIUM | CATALOGED | Line: 2158 |
| _run_triage: function-too-long (1) | MEDIUM | CATALOGED | Line: 2301 |
| _register_review_prepare_tool: function-too-long (1) | MEDIUM | CATALOGED | Line: 2434 |
| _register_review_ingest_tool: function-too-long (1) | MEDIUM | CATALOGED | Line: 2476 |
| _register_team_tool: function-too-long (1) | MEDIUM | CATALOGED | Line: 2521 |
| python_unused_import (1) | MEDIUM | DETERMINISTIC | Line: 2136 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| generate_html_report: function-too-long (1) | MEDIUM | CATALOGED | Line: 41 |
| _industry_comparison: function-too-long (1) | MEDIUM | CATALOGED | Line: 167 |
| _svg_pie_segments: function-too-long (1) | MEDIUM | CATALOGED | Line: 324 |
| _stakeholder_overview: function-too-long (1) | MEDIUM | CATALOGED | Line: 370 |
| _legal_page: function-too-long (1) | MEDIUM | CATALOGED | Line: 661 |
| _scoring_mode_badge: function-too-long (1) | MEDIUM | CATALOGED | Line: 773 |
| _cover: function-too-long (1) | MEDIUM | CATALOGED | Line: 817 |
| _worst_code_sample: python-broad-except (1) | MEDIUM | CATALOGED | Line: 909 |
| _worst_code_sample: function-too-long (1) | MEDIUM | CATALOGED | Line: 879 |
| _dim_bars: function-too-long (1) | MEDIUM | CATALOGED | Line: 940 |
| _exec_summary: function-too-long (1) | MEDIUM | CATALOGED | Line: 986 |
| _roadmap: function-too-long (1) | MEDIUM | CATALOGED | Line: 1223 |
| _security_posture_page: function-too-long (1) | MEDIUM | CATALOGED | Line: 1307 |
| _production_readiness_page: function-too-long (1) | MEDIUM | CATALOGED | Line: 1423 |
| _dead_exports_page: function-too-long (1) | MEDIUM | CATALOGED | Line: 1536 |
| _test_health_page: function-too-long (1) | MEDIUM | CATALOGED | Line: 1591 |
| _migration_page: function-too-long (1) | MEDIUM | CATALOGED | Line: 1665 |
| _traceability_page: function-too-long (1) | MEDIUM | CATALOGED | Line: 1772 |
| _team_section_page: function-too-long (1) | MEDIUM | CATALOGED | Line: 1911 |
| _structural_analysis_page: function-too-long (1) | MEDIUM | CATALOGED | Line: 2119 |
| _structural_detail_rows: function-too-long (1) | MEDIUM | CATALOGED | Line: 2188 |
| _structural_finding_fields: function-too-long (1) | MEDIUM | CATALOGED | Line: 2227 |
| _duplicate_clusters_page: function-too-long (1) | MEDIUM | CATALOGED | Line: 2275 |
| _ux_supplement: function-too-long (1) | MEDIUM | CATALOGED | Line: 2449 |
| _methodology: function-too-long (1) | MEDIUM | CATALOGED | Line: 2563 |
| python_unused_import (1) | MEDIUM | DETERMINISTIC | Line: 14 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| _collect_file_sources: deep-nesting (2) | HIGH | CATALOGED | Lines: 1190, 1301 |
| _compute_design_trace: deep-nesting (1) | HIGH | CATALOGED | Line: 898 |
| _collect_file_sources: function-too-long (2) | MEDIUM | CATALOGED | Lines: 1190, 1301 |
| _parse_blame_porcelain: function-too-long (1) | MEDIUM | CATALOGED | Line: 341 |
| _compute_bus_factor: function-too-long (1) | MEDIUM | CATALOGED | Line: 417 |
| _compute_test_trace: function-too-long (1) | MEDIUM | CATALOGED | Line: 586 |
| _search_test_files: function-too-long (1) | MEDIUM | CATALOGED | Line: 628 |
| _compute_ai_trace: function-too-long (1) | MEDIUM | CATALOGED | Line: 701 |
| _compute_blast_radius: function-too-long (1) | MEDIUM | CATALOGED | Line: 778 |
| _count_transitive_importers: function-too-long (1) | MEDIUM | CATALOGED | Line: 827 |
| _compute_design_trace: function-too-long (1) | MEDIUM | CATALOGED | Line: 898 |
| _compute_review_trace: function-too-long (1) | MEDIUM | CATALOGED | Line: 1019 |
| _score_finding: function-too-long (1) | MEDIUM | CATALOGED | Line: 1104 |
| trace_findings: function-too-long (1) | MEDIUM | CATALOGED | Line: 1236 |
| _run_analysis: function-too-long (1) | MEDIUM | CATALOGED | Line: 1356 |
| _trace_single_finding: function-too-long (1) | MEDIUM | CATALOGED | Line: 1396 |
| _build_report: function-too-long (1) | MEDIUM | CATALOGED | Line: 1569 |
| _compute_layer_coverage: function-too-long (1) | MEDIUM | CATALOGED | Line: 1612 |
| _compute_red_flags: function-too-long (1) | MEDIUM | CATALOGED | Line: 1671 |
| format_trace_report: function-too-long (1) | MEDIUM | CATALOGED | Line: 1744 |
| _trace_detail_line: function-too-long (1) | MEDIUM | CATALOGED | Line: 1806 |
| _serialize_finding: function-too-long (1) | MEDIUM | CATALOGED | Line: 1871 |
| python_unused_import (1) | MEDIUM | DETERMINISTIC | Line: 9 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| calculateDiscount: debugger-statement (1) | HIGH | DETERMINISTIC | Line: 36 |
| handleRequest: deep-nesting (1) | HIGH | CATALOGED | Line: 52 |
| syncAllData: try-catch-rethrow (3) | MEDIUM | DETERMINISTIC | Lines: 95, 103, 111 |
| syncAllData: any-type-usage (3) | MEDIUM | CATALOGED | Lines: 85, 86, 87 |
| typescript_unused_import (2) | MEDIUM | DETERMINISTIC | Lines: 7, 9 |
| fetchUserData: try-catch-rethrow (1) | MEDIUM | DETERMINISTIC | Line: 13 |
| isAuthenticated: any-type-usage (1) | MEDIUM | CATALOGED | Line: 42 |
| handleRequest: try-catch-rethrow (1) | MEDIUM | DETERMINISTIC | Line: 62 |
| handleRequest: function-too-long (1) | MEDIUM | CATALOGED | Line: 52 |
| processPayment: console-log-production (3) | LOW | DETERMINISTIC | Lines: 24, 26, 28 |
| syncAllData: console-log-production (2) | LOW | DETERMINISTIC | Lines: 89, 118 |
| isAuthenticated: double-negation (1) | LOW | DETERMINISTIC | Line: 43 |
| getConfig: redundant-return-await (1) | LOW | DETERMINISTIC | Line: 48 |
| handleRequest: console-log-production (1) | LOW | DETERMINISTIC | Line: 64 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| run_benchmark: function-too-long (1) | MEDIUM | CATALOGED | Line: 238 |
| python_unused_import (1) | MEDIUM | DETERMINISTIC | Line: 21 |
| run_benchmark: python-print-production (12) | LOW | DETERMINISTIC | Lines: 265, 266, 273, 278, 279, 280, 290, 296, 298, 305 ... +2 more |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| _try_type_safety: deep-nesting (1) | HIGH | CATALOGED | Line: 1145 |
| _try_except_patterns: deep-nesting (1) | HIGH | CATALOGED | Line: 1318 |
| _try_semantic_runtime: python-broad-except (1) | MEDIUM | CATALOGED | Line: 580 |
| _try_semantic_concurrency: python-broad-except (1) | MEDIUM | CATALOGED | Line: 590 |
| _try_semantic_error: python-broad-except (1) | MEDIUM | CATALOGED | Line: 600 |
| _try_semantic_completeness: python-broad-except (1) | MEDIUM | CATALOGED | Line: 610 |
| _try_semantic_quality: python-broad-except (1) | MEDIUM | CATALOGED | Line: 620 |
| _score_from_mechanical: function-too-long (1) | MEDIUM | CATALOGED | Line: 702 |
| run_subjective_review: function-too-long (1) | MEDIUM | CATALOGED | Line: 988 |
| _score_all_dimensions: function-too-long (1) | MEDIUM | CATALOGED | Line: 1421 |
| check_scoring_integrity: function-too-long (1) | MEDIUM | CATALOGED | Line: 1610 |
| python_unused_import (1) | MEDIUM | DETERMINISTIC | Line: 18 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| _find_block_duplicates: deep-nesting (1) | HIGH | CATALOGED | Line: 627 |
| _extract_python_body: function-too-long (1) | MEDIUM | CATALOGED | Line: 258 |
| _extract_bodies_with_regex: function-too-long (1) | MEDIUM | CATALOGED | Line: 333 |
| _find_candidates_lsh: function-too-long (1) | MEDIUM | CATALOGED | Line: 445 |
| _legacy_pairwise: function-too-long (1) | MEDIUM | CATALOGED | Line: 511 |
| _find_block_duplicates: function-too-long (1) | MEDIUM | CATALOGED | Line: 627 |
| _merge_overlapping_blocks: function-too-long (1) | MEDIUM | CATALOGED | Line: 693 |
| _cluster_verified: function-too-long (1) | MEDIUM | CATALOGED | Line: 852 |
| _cluster_blocks: function-too-long (1) | MEDIUM | CATALOGED | Line: 908 |
| detect_duplicates_text: function-too-long (1) | MEDIUM | CATALOGED | Line: 969 |
| text_fingerprints_for_file: function-too-long (1) | MEDIUM | CATALOGED | Line: 1120 |
| python_unused_import (1) | MEDIUM | DETERMINISTIC | Line: 18 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| detect_test_quality: deep-nesting (1) | HIGH | CATALOGED | Line: 49 |
| _get_try_import_info: deep-nesting (1) | HIGH | CATALOGED | Line: 407 |
| _handler_sets_none: deep-nesting (1) | HIGH | CATALOGED | Line: 437 |
| _get_toplevel_imports: deep-nesting (1) | HIGH | CATALOGED | Line: 527 |
| detect_dependency_fragility: deep-nesting (1) | HIGH | CATALOGED | Line: 551 |
| detect_test_quality: function-too-long (1) | MEDIUM | CATALOGED | Line: 49 |
| detect_assertion_density: function-too-long (1) | MEDIUM | CATALOGED | Line: 222 |
| detect_boundary_validation: function-too-long (1) | MEDIUM | CATALOGED | Line: 310 |
| detect_import_health: function-too-long (1) | MEDIUM | CATALOGED | Line: 461 |
| detect_dependency_fragility: function-too-long (1) | MEDIUM | CATALOGED | Line: 551 |
| python_unused_import (1) | MEDIUM | DETERMINISTIC | Line: 6 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| python_unused_import (8) | MEDIUM | DETERMINISTIC | Lines: 7, 8, 9, 11, 13 |
| _make_file: function-too-long (1) | MEDIUM | CATALOGED | Line: 26 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| mutable_default: python-eval (1) | CRITICAL | STRUCTURAL | Line: 9 |
| mutable_default: python-exec (1) | CRITICAL | STRUCTURAL | Line: 10 |
| mutable_default: python-breakpoint (1) | HIGH | DETERMINISTIC | Line: 8 |
| mutable_default: python-mutable-default (1) | HIGH | DETERMINISTIC | Line: 6 |
| mutable_default: python-bare-except (1) | HIGH | CATALOGED | Line: 13 |
| mutable_default: python-broad-except (1) | MEDIUM | CATALOGED | Line: 17 |
| mutable_default: python-type-ignore-bare (1) | MEDIUM | CATALOGED | Line: 19 |
| python_unused_import (1) | MEDIUM | DETERMINISTIC | Line: 2 |
| mutable_default: python-print-production (1) | LOW | DETERMINISTIC | Line: 7 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| _handler_has_error_not_exception: deep-nesting (1) | HIGH | CATALOGED | Line: 83 |
| detect_error_transparency: deep-nesting (1) | HIGH | CATALOGED | Line: 152 |
| detect_graceful_degradation: deep-nesting (1) | HIGH | CATALOGED | Line: 350 |
| _is_guarded_use: deep-nesting (1) | HIGH | CATALOGED | Line: 497 |
| detect_error_transparency: function-too-long (1) | MEDIUM | CATALOGED | Line: 152 |
| detect_logging_quality: function-too-long (1) | MEDIUM | CATALOGED | Line: 262 |
| detect_graceful_degradation: function-too-long (1) | MEDIUM | CATALOGED | Line: 350 |
| _is_guarded_use: function-too-long (1) | MEDIUM | CATALOGED | Line: 497 |
| python_unused_import (1) | MEDIUM | DETERMINISTIC | Line: 6 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| calculateTax: debugger-statement (1) | HIGH | DETERMINISTIC | Line: 26 |
| getData: try-catch-rethrow (1) | MEDIUM | DETERMINISTIC | Line: 7 |
| rethrowLoad: try-catch-rethrow (1) | MEDIUM | DETERMINISTIC | Line: 51 |
| typescript_unused_import (1) | MEDIUM | DETERMINISTIC | Line: 3 |
| processOrder: console-log-production (2) | LOW | DETERMINISTIC | Lines: 18, 20 |
| isActive: double-negation (1) | LOW | DETERMINISTIC | Line: 32 |
| loadConfig: redundant-return-await (1) | LOW | DETERMINISTIC | Line: 37 |
| rethrowLoad: redundant-return-await (1) | LOW | DETERMINISTIC | Line: 52 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| python_unused_import (8) | MEDIUM | DETERMINISTIC | Lines: 4, 12, 13 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| run_structural_analysis: function-too-long (1) | MEDIUM | CATALOGED | Line: 55 |
| _run_naming: python-broad-except (1) | MEDIUM | CATALOGED | Line: 206 |
| _run_flat_dirs: python-broad-except (1) | MEDIUM | CATALOGED | Line: 220 |
| _run_single_use: python-broad-except (1) | MEDIUM | CATALOGED | Line: 231 |
| _run_orphaned: python-broad-except (1) | MEDIUM | CATALOGED | Line: 242 |
| _run_signatures: python-broad-except (1) | MEDIUM | CATALOGED | Line: 257 |
| _run_passthroughs: python-broad-except (1) | MEDIUM | CATALOGED | Line: 267 |
| _run_dead_code: python-broad-except (1) | MEDIUM | CATALOGED | Line: 282 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| python_unused_import (8) | MEDIUM | DETERMINISTIC | Lines: 264, 265, 266, 267, 268, 269, 270, 271 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| badEmptyCommentOnly: dart_empty_catch_multiline (1) | HIGH | CATALOGED | Line: 14 |
| badBlankBody: dart_empty_catch_multiline (1) | HIGH | CATALOGED | Line: 22 |
| badMultipleComments: dart_empty_catch_multiline (1) | HIGH | CATALOGED | Line: 30 |
| singleLineEmpty: dart_empty_catch (1) | HIGH | CATALOGED | Line: 38 |
| onTypeCatch: dart_empty_catch_multiline (1) | HIGH | CATALOGED | Line: 44 |
| onTypeOnly: dart_empty_catch_multiline (1) | HIGH | CATALOGED | Line: 52 |
| closingBraceCatch: dart_empty_catch (1) | HIGH | CATALOGED | Line: 60 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| python_unused_import (4) | MEDIUM | DETERMINISTIC | Lines: 9, 13, 15 |
| _make_trace: function-too-long (1) | MEDIUM | CATALOGED | Line: 46 |
| test_page_renders_with_data: function-too-long (1) | MEDIUM | CATALOGED | Line: 425 |
| test_serialize_includes_design_and_review: function-too-long (1) | MEDIUM | CATALOGED | Line: 480 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| _detect_project_name: deep-nesting (1) | HIGH | CATALOGED | Line: 318 |
| python_unused_import (2) | MEDIUM | DETERMINISTIC | Lines: 14, 15 |
| _safe_run_detectors: python-broad-except (1) | MEDIUM | CATALOGED | Line: 263 |
| prepare_review_packet: function-too-long (1) | MEDIUM | CATALOGED | Line: 273 |
| validate_ingest_input: function-too-long (1) | MEDIUM | CATALOGED | Line: 377 |
| ingest_review_results: function-too-long (1) | MEDIUM | CATALOGED | Line: 497 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| python_unused_import (5) | MEDIUM | DETERMINISTIC | Lines: 14, 17, 30, 1442 |
| _parse_and_find_functions: function-too-long (1) | MEDIUM | CATALOGED | Line: 550 |
| _find_source_files_in_dir: function-too-long (1) | MEDIUM | CATALOGED | Line: 867 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| deeplyNested: deep-nesting (1) | HIGH | CATALOGED | Line: 3 |
| deeplyNested: dart_avoid_dynamic (1) | MEDIUM | CATALOGED | Line: 3 |
| deeplyNested: dart_print_call (4) | LOW | DETERMINISTIC | Lines: 12, 15, 18, 22 |
| shallowFunction: dart_print_call (1) | LOW | DETERMINISTIC | Line: 32 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| _find_function_node: deep-nesting (1) | HIGH | CATALOGED | Line: 53 |
| python_unused_import (6) | MEDIUM | DETERMINISTIC | Lines: 9, 10, 12, 14, 17 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| detect_feature_completeness: function-too-long (1) | MEDIUM | CATALOGED | Line: 103 |
| detect_api_contract_drift: function-too-long (1) | MEDIUM | CATALOGED | Line: 367 |
| detect_config_consistency: function-too-long (1) | MEDIUM | CATALOGED | Line: 426 |
| detect_serialization_fidelity: function-too-long (1) | MEDIUM | CATALOGED | Line: 517 |
| detect_dead_exports: function-too-long (1) | MEDIUM | CATALOGED | Line: 605 |
| python_unused_import (1) | MEDIUM | DETERMINISTIC | Line: 14 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| processData: dart_empty_catch_multiline (1) | HIGH | CATALOGED | Line: 12 |
| processData: dart_avoid_dynamic (1) | MEDIUM | CATALOGED | Line: 6 |
| dart_unused_import (1) | MEDIUM | DETERMINISTIC | Line: 1 |
| processData: dart_print_call (1) | LOW | DETERMINISTIC | Line: 7 |
| processData: dart_debugPrint_call (1) | LOW | DETERMINISTIC | Line: 8 |
| processData: dart_string_concat (1) | LOW | DETERMINISTIC | Line: 17 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| _function_has_list_dict_mutation_outside_with: deep-nesting (1) | HIGH | CATALOGED | Line: 77 |
| detect_thread_safety: deep-nesting (1) | HIGH | CATALOGED | Line: 140 |
| _function_has_begin_or_begin_nested: deep-nesting (1) | HIGH | CATALOGED | Line: 359 |
| _function_has_list_dict_mutation_outside_with: function-too-long (1) | MEDIUM | CATALOGED | Line: 77 |
| detect_thread_safety: function-too-long (1) | MEDIUM | CATALOGED | Line: 140 |
| detect_transaction_boundary: function-too-long (1) | MEDIUM | CATALOGED | Line: 374 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| python_unused_import (6) | MEDIUM | DETERMINISTIC | Lines: 9, 10, 11, 17, 27 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| detect_runtime_resilience: function-too-long (1) | MEDIUM | CATALOGED | Line: 56 |
| detect_null_safety: function-too-long (1) | MEDIUM | CATALOGED | Line: 160 |
| detect_resource_lifecycle: function-too-long (1) | MEDIUM | CATALOGED | Line: 256 |
| detect_timeout_discipline: function-too-long (1) | MEDIUM | CATALOGED | Line: 352 |
| detect_memory_pressure: function-too-long (1) | MEDIUM | CATALOGED | Line: 440 |
| python_unused_import (1) | MEDIUM | DETERMINISTIC | Line: 10 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| python_unused_import (6) | MEDIUM | DETERMINISTIC | Lines: 4, 5, 10 |
| Pattern | Severity | Fix Type | Lines |
|---|---|---|---|
| python_unused_import (5) | MEDIUM | DETERMINISTIC | Lines: 29, 30, 31, 32, 33 |
truemend analyze --detail for the complete list.Each finding includes function metrics, evidence, and recommended remediation.
Fixes are classified into three tiers by execution method. Phase 1 is immediate and automated. Phase 2 requires constrained LLM assistance. Phase 3 requires human architectural judgment. The Quick Wins summary at the top shows where to start.
Start here. These 558 deterministic fixes can be applied immediately with truemend fix at zero cost and zero risk.