
                                                            
{
  "version": "1.0.0",
  "timestamp": "2026-04-03T07:19:56.341450+00:00",
  "config": {
    "mode": "full",
    "languages": [
      "javascript",
      "typescript"
    ],
    "baseline_available": false,
    "ai_focus": false
  },
  "files": [
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\e2e\\jest.config.ts",
      "language": "typescript",
      "line_count": 20,
      "token_estimate": 128,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 0,
        "export_count": 1,
        "comment_lines": 1,
        "code_lines": 19,
        "comment_ratio": 0.05,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 7.13,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\e2e\\src\\support\\test-setup.ts",
      "language": "typescript",
      "line_count": 11,
      "token_estimate": 68,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 1,
        "export_count": 0,
        "comment_lines": 2,
        "code_lines": 9,
        "comment_ratio": 0.1818,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 5.4,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\article\\article.controller.ts",
      "language": "typescript",
      "line_count": 244,
      "token_estimate": 1437,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 3,
        "export_count": 1,
        "comment_lines": 85,
        "code_lines": 159,
        "comment_ratio": 0.3484,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 5.87,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\article\\author.mapper.ts",
      "language": "typescript",
      "line_count": 13,
      "token_estimate": 80,
      "functions": [
        {
          "name": "authorMapper",
          "type": "arrow_function",
          "line_start": 3,
          "line_end": 10,
          "metrics": {
            "cyclomatic_complexity": 2,
            "max_nesting_depth": 0,
            "parameter_count": 2,
            "line_count": 8,
            "any_count": 1,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [
            {
              "id": "any-type-usage",
              "severity": "medium",
              "line": 3,
              "description": "Explicit 'any' type \u2014 defeats type safety",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "ast-walk",
                "proof": "Explicit 'any' type -- defeats type safety",
                "impact": "Explicit 'any' type at line 3 defeats TypeScript's type safety",
                "recommendation": "Replace 'any' with a specific type, unknown, or a generic parameter",
                "confidence": 1.0,
                "fix_type": "cataloged_refactor",
                "references": [
                  "https://typescript-eslint.io/rules/no-explicit-any/"
                ]
              }
            }
          ],
          "ai_confidence": 0.35,
          "ai_signals": [
            "High anti-pattern density (1.00)"
          ]
        }
      ],
      "file_metrics": {
        "total_functions": 1,
        "avg_function_length": 8,
        "function_length_stddev": 0.0,
        "import_count": 1,
        "export_count": 1,
        "comment_lines": 0,
        "code_lines": 13,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 6.64,
        "debug_artifacts": [],
        "ai_smell_count": 1,
        "ai_smell_density": 0.076923,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 78.27,
        "mechanical": 78.27,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\auth\\auth.ts",
      "language": "typescript",
      "line_count": 29,
      "token_estimate": 193,
      "functions": [
        {
          "name": "getTokenFromHeaders",
          "type": "arrow_function",
          "line_start": 4,
          "line_end": 12,
          "metrics": {
            "cyclomatic_complexity": 5,
            "max_nesting_depth": 1,
            "parameter_count": 1,
            "line_count": 9,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [],
          "ai_confidence": 0.0,
          "ai_signals": []
        }
      ],
      "file_metrics": {
        "total_functions": 1,
        "avg_function_length": 9,
        "function_length_stddev": 0.0,
        "import_count": 2,
        "export_count": 1,
        "comment_lines": 0,
        "code_lines": 29,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 7.65,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 87.0,
        "mechanical": 87.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\auth\\user-request.d.ts",
      "language": "typescript",
      "line_count": 10,
      "token_estimate": 32,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 0,
        "export_count": 1,
        "comment_lines": 0,
        "code_lines": 10,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 6.33,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\profile\\profile.service.ts",
      "language": "typescript",
      "line_count": 61,
      "token_estimate": 304,
      "functions": [
        {
          "name": "getProfile",
          "type": "arrow_function",
          "line_start": 5,
          "line_end": 20,
          "metrics": {
            "cyclomatic_complexity": 2,
            "max_nesting_depth": 1,
            "parameter_count": 2,
            "line_count": 16,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [],
          "ai_confidence": 0.1808,
          "ai_signals": [
            "Suspiciously uniform function lengths (0.90)"
          ]
        },
        {
          "name": "followUser",
          "type": "arrow_function",
          "line_start": 22,
          "line_end": 40,
          "metrics": {
            "cyclomatic_complexity": 1,
            "max_nesting_depth": 0,
            "parameter_count": 2,
            "line_count": 19,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [],
          "ai_confidence": 0.1808,
          "ai_signals": [
            "Suspiciously uniform function lengths (0.90)"
          ]
        },
        {
          "name": "unfollowUser",
          "type": "arrow_function",
          "line_start": 42,
          "line_end": 60,
          "metrics": {
            "cyclomatic_complexity": 1,
            "max_nesting_depth": 0,
            "parameter_count": 2,
            "line_count": 19,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [],
          "ai_confidence": 0.1808,
          "ai_signals": [
            "Suspiciously uniform function lengths (0.90)"
          ]
        }
      ],
      "file_metrics": {
        "total_functions": 3,
        "avg_function_length": 18,
        "function_length_stddev": 1.73,
        "import_count": 3,
        "export_count": 3,
        "comment_lines": 0,
        "code_lines": 61,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 8.41,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.9038,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 95.77,
        "mechanical": 95.77,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\tag\\tag.model.ts",
      "language": "typescript",
      "line_count": 4,
      "token_estimate": 10,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 0,
        "export_count": 1,
        "comment_lines": 0,
        "code_lines": 4,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 3.5,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\prisma\\seed.ts",
      "language": "typescript",
      "line_count": 67,
      "token_estimate": 447,
      "functions": [
        {
          "name": "generateUser",
          "type": "arrow_function",
          "line_start": 16,
          "line_end": 23,
          "metrics": {
            "cyclomatic_complexity": 1,
            "max_nesting_depth": 0,
            "parameter_count": 0,
            "line_count": 8,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [],
          "ai_confidence": 0.0556,
          "ai_signals": []
        },
        {
          "name": "generateArticle",
          "type": "arrow_function",
          "line_start": 25,
          "line_end": 34,
          "metrics": {
            "cyclomatic_complexity": 1,
            "max_nesting_depth": 0,
            "parameter_count": 1,
            "line_count": 10,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [],
          "ai_confidence": 0.0556,
          "ai_signals": []
        },
        {
          "name": "generateComment",
          "type": "arrow_function",
          "line_start": 36,
          "line_end": 37,
          "metrics": {
            "cyclomatic_complexity": 1,
            "max_nesting_depth": 0,
            "parameter_count": 2,
            "line_count": 2,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [],
          "ai_confidence": 0.0556,
          "ai_signals": []
        },
        {
          "name": "main",
          "type": "arrow_function",
          "line_start": 39,
          "line_end": 57,
          "metrics": {
            "cyclomatic_complexity": 4,
            "max_nesting_depth": 3,
            "parameter_count": 0,
            "line_count": 19,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 1
          },
          "anti_patterns": [],
          "ai_confidence": 0.0556,
          "ai_signals": []
        }
      ],
      "file_metrics": {
        "total_functions": 4,
        "avg_function_length": 9.75,
        "function_length_stddev": 7.04,
        "import_count": 5,
        "export_count": 3,
        "comment_lines": 2,
        "code_lines": 65,
        "comment_ratio": 0.0299,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 7.14,
        "debug_artifacts": [
          "console.error line 54"
        ],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.2778,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 93.88,
        "mechanical": 93.88,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\tests\\services\\profile.service.test.ts",
      "language": "typescript",
      "line_count": 146,
      "token_estimate": 912,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 2,
        "export_count": 0,
        "comment_lines": 19,
        "code_lines": 127,
        "comment_ratio": 0.1301,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 8.15,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\e2e\\src\\server\\server.spec.ts",
      "language": "typescript",
      "line_count": 11,
      "token_estimate": 59,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 1,
        "export_count": 0,
        "comment_lines": 0,
        "code_lines": 11,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 4.95,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\jest.config.ts",
      "language": "typescript",
      "line_count": 16,
      "token_estimate": 106,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 0,
        "export_count": 1,
        "comment_lines": 1,
        "code_lines": 15,
        "comment_ratio": 0.0625,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 7.03,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\article\\article.mapper.ts",
      "language": "typescript",
      "line_count": 17,
      "token_estimate": 130,
      "functions": [
        {
          "name": "articleMapper",
          "type": "arrow_function",
          "line_start": 3,
          "line_end": 14,
          "metrics": {
            "cyclomatic_complexity": 1,
            "max_nesting_depth": 0,
            "parameter_count": 2,
            "line_count": 12,
            "any_count": 1,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [
            {
              "id": "any-type-usage",
              "severity": "medium",
              "line": 3,
              "description": "Explicit 'any' type \u2014 defeats type safety",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "ast-walk",
                "proof": "Explicit 'any' type -- defeats type safety",
                "impact": "Explicit 'any' type at line 3 defeats TypeScript's type safety",
                "recommendation": "Replace 'any' with a specific type, unknown, or a generic parameter",
                "confidence": 1.0,
                "fix_type": "cataloged_refactor",
                "references": [
                  "https://typescript-eslint.io/rules/no-explicit-any/"
                ]
              }
            }
          ],
          "ai_confidence": 0.2917,
          "ai_signals": [
            "High anti-pattern density (0.83)"
          ]
        }
      ],
      "file_metrics": {
        "total_functions": 1,
        "avg_function_length": 12,
        "function_length_stddev": 0.0,
        "import_count": 1,
        "export_count": 1,
        "comment_lines": 0,
        "code_lines": 17,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 6.96,
        "debug_artifacts": [],
        "ai_smell_count": 1,
        "ai_smell_density": 0.058824,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 84.69,
        "mechanical": 84.69,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\article\\comment.model.ts",
      "language": "typescript",
      "line_count": 10,
      "token_estimate": 40,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 1,
        "export_count": 1,
        "comment_lines": 0,
        "code_lines": 10,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 6.36,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\auth\\register-input.model.ts",
      "language": "typescript",
      "line_count": 9,
      "token_estimate": 36,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 0,
        "export_count": 1,
        "comment_lines": 0,
        "code_lines": 9,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 6.57,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\auth\\user.model.ts",
      "language": "typescript",
      "line_count": 18,
      "token_estimate": 93,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 2,
        "export_count": 1,
        "comment_lines": 0,
        "code_lines": 18,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 6.35,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\profile\\profile.utils.ts",
      "language": "typescript",
      "line_count": 14,
      "token_estimate": 94,
      "functions": [
        {
          "name": "profileMapper",
          "type": "arrow_function",
          "line_start": 4,
          "line_end": 11,
          "metrics": {
            "cyclomatic_complexity": 2,
            "max_nesting_depth": 0,
            "parameter_count": 2,
            "line_count": 8,
            "any_count": 1,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [
            {
              "id": "any-type-usage",
              "severity": "medium",
              "line": 4,
              "description": "Explicit 'any' type \u2014 defeats type safety",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "ast-walk",
                "proof": "Explicit 'any' type -- defeats type safety",
                "impact": "Explicit 'any' type at line 4 defeats TypeScript's type safety",
                "recommendation": "Replace 'any' with a specific type, unknown, or a generic parameter",
                "confidence": 1.0,
                "fix_type": "cataloged_refactor",
                "references": [
                  "https://typescript-eslint.io/rules/no-explicit-any/"
                ]
              }
            }
          ],
          "ai_confidence": 0.35,
          "ai_signals": [
            "High anti-pattern density (1.00)"
          ]
        }
      ],
      "file_metrics": {
        "total_functions": 1,
        "avg_function_length": 8,
        "function_length_stddev": 0.0,
        "import_count": 2,
        "export_count": 1,
        "comment_lines": 0,
        "code_lines": 14,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 6.34,
        "debug_artifacts": [],
        "ai_smell_count": 1,
        "ai_smell_density": 0.071429,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 79.64,
        "mechanical": 79.64,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\tag\\tag.service.ts",
      "language": "typescript",
      "line_count": 41,
      "token_estimate": 166,
      "functions": [
        {
          "name": "getTags",
          "type": "arrow_function",
          "line_start": 4,
          "line_end": 38,
          "metrics": {
            "cyclomatic_complexity": 2,
            "max_nesting_depth": 1,
            "parameter_count": 1,
            "line_count": 35,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [],
          "ai_confidence": 0.0,
          "ai_signals": []
        }
      ],
      "file_metrics": {
        "total_functions": 1,
        "avg_function_length": 35,
        "function_length_stddev": 0.0,
        "import_count": 2,
        "export_count": 1,
        "comment_lines": 0,
        "code_lines": 41,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 5.26,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 87.0,
        "mechanical": 87.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\tests\\prisma-mock.ts",
      "language": "typescript",
      "line_count": 18,
      "token_estimate": 105,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 3,
        "export_count": 1,
        "comment_lines": 0,
        "code_lines": 18,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 7.9,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\tests\\services\\tag.service.test.ts",
      "language": "typescript",
      "line_count": 7,
      "token_estimate": 51,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 0,
        "export_count": 0,
        "comment_lines": 1,
        "code_lines": 6,
        "comment_ratio": 0.1429,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 7.18,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\e2e\\src\\support\\global-setup.ts",
      "language": "typescript",
      "line_count": 11,
      "token_estimate": 87,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 0,
        "export_count": 0,
        "comment_lines": 3,
        "code_lines": 8,
        "comment_ratio": 0.2727,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 6.74,
        "debug_artifacts": [
          "console.log line 6"
        ],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 98.0,
        "mechanical": 98.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\jest.preset.js",
      "language": "javascript",
      "line_count": 4,
      "token_estimate": 22,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 0,
        "export_count": 0,
        "comment_lines": 0,
        "code_lines": 4,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 6.57,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\article\\article.model.ts",
      "language": "typescript",
      "line_count": 11,
      "token_estimate": 47,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 1,
        "export_count": 1,
        "comment_lines": 0,
        "code_lines": 11,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 7.0,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\auth\\auth.controller.ts",
      "language": "typescript",
      "line_count": 71,
      "token_estimate": 393,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 3,
        "export_count": 1,
        "comment_lines": 27,
        "code_lines": 44,
        "comment_ratio": 0.3803,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 5.23,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\auth\\registered-user.model.ts",
      "language": "typescript",
      "line_count": 9,
      "token_estimate": 37,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 0,
        "export_count": 1,
        "comment_lines": 0,
        "code_lines": 9,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 6.67,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\profile\\profile.controller.ts",
      "language": "typescript",
      "line_count": 68,
      "token_estimate": 378,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 3,
        "export_count": 1,
        "comment_lines": 21,
        "code_lines": 47,
        "comment_ratio": 0.3088,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 6.07,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\routes.ts",
      "language": "typescript",
      "line_count": 14,
      "token_estimate": 107,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 5,
        "export_count": 1,
        "comment_lines": 0,
        "code_lines": 14,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 8.03,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\main.ts",
      "language": "typescript",
      "line_count": 58,
      "token_estimate": 316,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 5,
        "export_count": 0,
        "comment_lines": 11,
        "code_lines": 47,
        "comment_ratio": 0.1897,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 5.59,
        "debug_artifacts": [
          "console.info line 56"
        ],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 98.0,
        "mechanical": 98.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\tests\\services\\article.service.test.ts",
      "language": "typescript",
      "line_count": 145,
      "token_estimate": 921,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 2,
        "export_count": 0,
        "comment_lines": 18,
        "code_lines": 127,
        "comment_ratio": 0.1241,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 7.7,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\tests\\utils\\profile.utils.test.ts",
      "language": "typescript",
      "line_count": 80,
      "token_estimate": 421,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 1,
        "export_count": 0,
        "comment_lines": 9,
        "code_lines": 71,
        "comment_ratio": 0.1125,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 6.36,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\e2e\\src\\support\\global-teardown.ts",
      "language": "typescript",
      "line_count": 8,
      "token_estimate": 62,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 0,
        "export_count": 0,
        "comment_lines": 3,
        "code_lines": 5,
        "comment_ratio": 0.375,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 6.58,
        "debug_artifacts": [
          "console.log line 6"
        ],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 98.0,
        "mechanical": 98.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\models\\http-exception.model.ts",
      "language": "typescript",
      "line_count": 13,
      "token_estimate": 58,
      "functions": [
        {
          "name": "constructor",
          "type": "method_definition",
          "line_start": 3,
          "line_end": 9,
          "metrics": {
            "cyclomatic_complexity": 1,
            "max_nesting_depth": 0,
            "parameter_count": 2,
            "line_count": 7,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [],
          "ai_confidence": 0.0,
          "ai_signals": []
        }
      ],
      "file_metrics": {
        "total_functions": 1,
        "avg_function_length": 7,
        "function_length_stddev": 0.0,
        "import_count": 0,
        "export_count": 1,
        "comment_lines": 0,
        "code_lines": 13,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 8.38,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\article\\article.service.ts",
      "language": "typescript",
      "line_count": 653,
      "token_estimate": 3182,
      "functions": [
        {
          "name": "buildFindAllQuery",
          "type": "arrow_function",
          "line_start": 8,
          "line_end": 67,
          "metrics": {
            "cyclomatic_complexity": 5,
            "max_nesting_depth": 1,
            "parameter_count": 2,
            "line_count": 60,
            "any_count": 2,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [
            {
              "id": "any-type-usage",
              "severity": "medium",
              "line": 8,
              "description": "Explicit 'any' type \u2014 defeats type safety",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "ast-walk",
                "proof": "Explicit 'any' type -- defeats type safety",
                "impact": "Explicit 'any' type at line 8 defeats TypeScript's type safety",
                "recommendation": "Replace 'any' with a specific type, unknown, or a generic parameter",
                "confidence": 1.0,
                "fix_type": "cataloged_refactor",
                "references": [
                  "https://typescript-eslint.io/rules/no-explicit-any/"
                ]
              }
            },
            {
              "id": "any-type-usage",
              "severity": "medium",
              "line": 9,
              "description": "Explicit 'any' type \u2014 defeats type safety",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "ast-walk",
                "proof": "Explicit 'any' type -- defeats type safety",
                "impact": "Explicit 'any' type at line 9 defeats TypeScript's type safety",
                "recommendation": "Replace 'any' with a specific type, unknown, or a generic parameter",
                "confidence": 1.0,
                "fix_type": "cataloged_refactor",
                "references": [
                  "https://typescript-eslint.io/rules/no-explicit-any/"
                ]
              }
            },
            {
              "id": "function-too-long",
              "severity": "medium",
              "line": 8,
              "description": "Function is 60 lines (> 30 dynamic threshold)",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "metric-threshold",
                "proof": "Function is 60 lines (> 30 dynamic threshold)",
                "impact": "Function buildFindAllQuery is 60 lines \u2014 exceeds 30 dynamic threshold",
                "recommendation": "Decompose into smaller, single-responsibility functions",
                "confidence": 0.85,
                "fix_type": "cataloged_refactor",
                "references": []
              }
            }
          ],
          "ai_confidence": 0.2879,
          "ai_signals": []
        },
        {
          "name": "getArticles",
          "type": "arrow_function",
          "line_start": 69,
          "line_end": 111,
          "metrics": {
            "cyclomatic_complexity": 3,
            "max_nesting_depth": 0,
            "parameter_count": 2,
            "line_count": 43,
            "any_count": 1,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [
            {
              "id": "any-type-usage",
              "severity": "medium",
              "line": 69,
              "description": "Explicit 'any' type \u2014 defeats type safety",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "ast-walk",
                "proof": "Explicit 'any' type -- defeats type safety",
                "impact": "Explicit 'any' type at line 69 defeats TypeScript's type safety",
                "recommendation": "Replace 'any' with a specific type, unknown, or a generic parameter",
                "confidence": 1.0,
                "fix_type": "cataloged_refactor",
                "references": [
                  "https://typescript-eslint.io/rules/no-explicit-any/"
                ]
              }
            },
            {
              "id": "function-too-long",
              "severity": "medium",
              "line": 69,
              "description": "Function is 43 lines (> 37 dynamic threshold)",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "metric-threshold",
                "proof": "Function is 43 lines (> 37 dynamic threshold)",
                "impact": "Function getArticles is 43 lines \u2014 exceeds 37 dynamic threshold",
                "recommendation": "Decompose into smaller, single-responsibility functions",
                "confidence": 0.85,
                "fix_type": "cataloged_refactor",
                "references": []
              }
            }
          ],
          "ai_confidence": 0.2757,
          "ai_signals": []
        },
        {
          "name": "getFeed",
          "type": "arrow_function",
          "line_start": 113,
          "line_end": 160,
          "metrics": {
            "cyclomatic_complexity": 3,
            "max_nesting_depth": 0,
            "parameter_count": 3,
            "line_count": 48,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [
            {
              "id": "function-too-long",
              "severity": "medium",
              "line": 113,
              "description": "Function is 48 lines (> 37 dynamic threshold)",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "metric-threshold",
                "proof": "Function is 48 lines (> 37 dynamic threshold)",
                "impact": "Function getFeed is 48 lines \u2014 exceeds 37 dynamic threshold",
                "recommendation": "Decompose into smaller, single-responsibility functions",
                "confidence": 0.85,
                "fix_type": "cataloged_refactor",
                "references": []
              }
            }
          ],
          "ai_confidence": 0.1859,
          "ai_signals": []
        },
        {
          "name": "createArticle",
          "type": "arrow_function",
          "line_start": 162,
          "line_end": 239,
          "metrics": {
            "cyclomatic_complexity": 6,
            "max_nesting_depth": 1,
            "parameter_count": 2,
            "line_count": 78,
            "any_count": 1,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [
            {
              "id": "any-type-usage",
              "severity": "medium",
              "line": 162,
              "description": "Explicit 'any' type \u2014 defeats type safety",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "ast-walk",
                "proof": "Explicit 'any' type -- defeats type safety",
                "impact": "Explicit 'any' type at line 162 defeats TypeScript's type safety",
                "recommendation": "Replace 'any' with a specific type, unknown, or a generic parameter",
                "confidence": 1.0,
                "fix_type": "cataloged_refactor",
                "references": [
                  "https://typescript-eslint.io/rules/no-explicit-any/"
                ]
              }
            },
            {
              "id": "function-too-long",
              "severity": "medium",
              "line": 162,
              "description": "Function is 78 lines (> 30 dynamic threshold)",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "metric-threshold",
                "proof": "Function is 78 lines (> 30 dynamic threshold)",
                "impact": "Function createArticle is 78 lines \u2014 exceeds 30 dynamic threshold",
                "recommendation": "Decompose into smaller, single-responsibility functions",
                "confidence": 0.85,
                "fix_type": "cataloged_refactor",
                "references": []
              }
            }
          ],
          "ai_confidence": 0.2027,
          "ai_signals": []
        },
        {
          "name": "getArticle",
          "type": "arrow_function",
          "line_start": 241,
          "line_end": 274,
          "metrics": {
            "cyclomatic_complexity": 2,
            "max_nesting_depth": 1,
            "parameter_count": 2,
            "line_count": 34,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [],
          "ai_confidence": 0.1129,
          "ai_signals": []
        },
        {
          "name": "disconnectArticlesTags",
          "type": "arrow_function",
          "line_start": 276,
          "line_end": 287,
          "metrics": {
            "cyclomatic_complexity": 1,
            "max_nesting_depth": 0,
            "parameter_count": 1,
            "line_count": 12,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [],
          "ai_confidence": 0.1129,
          "ai_signals": []
        },
        {
          "name": "updateArticle",
          "type": "arrow_function",
          "line_start": 289,
          "line_end": 383,
          "metrics": {
            "cyclomatic_complexity": 12,
            "max_nesting_depth": 3,
            "parameter_count": 3,
            "line_count": 95,
            "any_count": 1,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [
            {
              "id": "any-type-usage",
              "severity": "medium",
              "line": 289,
              "description": "Explicit 'any' type \u2014 defeats type safety",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "ast-walk",
                "proof": "Explicit 'any' type -- defeats type safety",
                "impact": "Explicit 'any' type at line 289 defeats TypeScript's type safety",
                "recommendation": "Replace 'any' with a specific type, unknown, or a generic parameter",
                "confidence": 1.0,
                "fix_type": "cataloged_refactor",
                "references": [
                  "https://typescript-eslint.io/rules/no-explicit-any/"
                ]
              }
            },
            {
              "id": "function-too-long",
              "severity": "medium",
              "line": 289,
              "description": "Function is 95 lines (> 15 dynamic threshold)",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "metric-threshold",
                "proof": "Function is 95 lines (> 15 dynamic threshold)",
                "impact": "Function updateArticle is 95 lines \u2014 exceeds 15 dynamic threshold",
                "recommendation": "Decompose into smaller, single-responsibility functions",
                "confidence": 0.85,
                "fix_type": "cataloged_refactor",
                "references": []
              }
            }
          ],
          "ai_confidence": 0.1866,
          "ai_signals": []
        },
        {
          "name": "deleteArticle",
          "type": "arrow_function",
          "line_start": 385,
          "line_end": 414,
          "metrics": {
            "cyclomatic_complexity": 3,
            "max_nesting_depth": 1,
            "parameter_count": 2,
            "line_count": 30,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [],
          "ai_confidence": 0.1129,
          "ai_signals": []
        },
        {
          "name": "getCommentsByArticle",
          "type": "arrow_function",
          "line_start": 416,
          "line_end": 471,
          "metrics": {
            "cyclomatic_complexity": 2,
            "max_nesting_depth": 1,
            "parameter_count": 2,
            "line_count": 56,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [
            {
              "id": "function-too-long",
              "severity": "medium",
              "line": 416,
              "description": "Function is 56 lines (> 37 dynamic threshold)",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "metric-threshold",
                "proof": "Function is 56 lines (> 37 dynamic threshold)",
                "impact": "Function getCommentsByArticle is 56 lines \u2014 exceeds 37 dynamic threshold",
                "recommendation": "Decompose into smaller, single-responsibility functions",
                "confidence": 0.85,
                "fix_type": "cataloged_refactor",
                "references": []
              }
            }
          ],
          "ai_confidence": 0.1754,
          "ai_signals": []
        },
        {
          "name": "addComment",
          "type": "arrow_function",
          "line_start": 473,
          "line_end": 525,
          "metrics": {
            "cyclomatic_complexity": 2,
            "max_nesting_depth": 1,
            "parameter_count": 3,
            "line_count": 53,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [
            {
              "id": "function-too-long",
              "severity": "medium",
              "line": 473,
              "description": "Function is 53 lines (> 37 dynamic threshold)",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "metric-threshold",
                "proof": "Function is 53 lines (> 37 dynamic threshold)",
                "impact": "Function addComment is 53 lines \u2014 exceeds 37 dynamic threshold",
                "recommendation": "Decompose into smaller, single-responsibility functions",
                "confidence": 0.85,
                "fix_type": "cataloged_refactor",
                "references": []
              }
            }
          ],
          "ai_confidence": 0.179,
          "ai_signals": []
        },
        {
          "name": "deleteComment",
          "type": "arrow_function",
          "line_start": 527,
          "line_end": 560,
          "metrics": {
            "cyclomatic_complexity": 3,
            "max_nesting_depth": 1,
            "parameter_count": 2,
            "line_count": 34,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [],
          "ai_confidence": 0.1129,
          "ai_signals": []
        },
        {
          "name": "favoriteArticle",
          "type": "arrow_function",
          "line_start": 562,
          "line_end": 606,
          "metrics": {
            "cyclomatic_complexity": 1,
            "max_nesting_depth": 0,
            "parameter_count": 2,
            "line_count": 45,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [
            {
              "id": "function-too-long",
              "severity": "medium",
              "line": 562,
              "description": "Function is 45 lines (> 37 dynamic threshold)",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "metric-threshold",
                "proof": "Function is 45 lines (> 37 dynamic threshold)",
                "impact": "Function favoriteArticle is 45 lines \u2014 exceeds 37 dynamic threshold",
                "recommendation": "Decompose into smaller, single-responsibility functions",
                "confidence": 0.85,
                "fix_type": "cataloged_refactor",
                "references": []
              }
            }
          ],
          "ai_confidence": 0.1907,
          "ai_signals": []
        },
        {
          "name": "unfavoriteArticle",
          "type": "arrow_function",
          "line_start": 608,
          "line_end": 652,
          "metrics": {
            "cyclomatic_complexity": 1,
            "max_nesting_depth": 0,
            "parameter_count": 2,
            "line_count": 45,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [
            {
              "id": "function-too-long",
              "severity": "medium",
              "line": 608,
              "description": "Function is 45 lines (> 37 dynamic threshold)",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "metric-threshold",
                "proof": "Function is 45 lines (> 37 dynamic threshold)",
                "impact": "Function unfavoriteArticle is 45 lines \u2014 exceeds 37 dynamic threshold",
                "recommendation": "Decompose into smaller, single-responsibility functions",
                "confidence": 0.85,
                "fix_type": "cataloged_refactor",
                "references": []
              }
            }
          ],
          "ai_confidence": 0.1907,
          "ai_signals": []
        }
      ],
      "file_metrics": {
        "total_functions": 13,
        "avg_function_length": 48.69,
        "function_length_stddev": 21.2,
        "import_count": 6,
        "export_count": 11,
        "comment_lines": 0,
        "code_lines": 653,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 6.88,
        "debug_artifacts": [],
        "ai_smell_count": 14,
        "ai_smell_density": 0.02144,
        "structural_uniformity": 0.5647,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 74.76,
        "mechanical": 74.76,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\auth\\auth.service.ts",
      "language": "typescript",
      "line_count": 184,
      "token_estimate": 1016,
      "functions": [
        {
          "name": "checkUserUniqueness",
          "type": "arrow_function",
          "line_start": 9,
          "line_end": 36,
          "metrics": {
            "cyclomatic_complexity": 5,
            "max_nesting_depth": 1,
            "parameter_count": 2,
            "line_count": 28,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [],
          "ai_confidence": 0.1329,
          "ai_signals": []
        },
        {
          "name": "createUser",
          "type": "arrow_function",
          "line_start": 38,
          "line_end": 82,
          "metrics": {
            "cyclomatic_complexity": 7,
            "max_nesting_depth": 1,
            "parameter_count": 1,
            "line_count": 45,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [
            {
              "id": "function-too-long",
              "severity": "medium",
              "line": 38,
              "description": "Function is 45 lines (> 30 dynamic threshold)",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "metric-threshold",
                "proof": "Function is 45 lines (> 30 dynamic threshold)",
                "impact": "Function createUser is 45 lines \u2014 exceeds 30 dynamic threshold",
                "recommendation": "Decompose into smaller, single-responsibility functions",
                "confidence": 0.85,
                "fix_type": "cataloged_refactor",
                "references": []
              }
            }
          ],
          "ai_confidence": 0.2107,
          "ai_signals": []
        },
        {
          "name": "login",
          "type": "arrow_function",
          "line_start": 84,
          "line_end": 129,
          "metrics": {
            "cyclomatic_complexity": 5,
            "max_nesting_depth": 2,
            "parameter_count": 1,
            "line_count": 46,
            "any_count": 1,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [
            {
              "id": "any-type-usage",
              "severity": "medium",
              "line": 84,
              "description": "Explicit 'any' type \u2014 defeats type safety",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "ast-walk",
                "proof": "Explicit 'any' type -- defeats type safety",
                "impact": "Explicit 'any' type at line 84 defeats TypeScript's type safety",
                "recommendation": "Replace 'any' with a specific type, unknown, or a generic parameter",
                "confidence": 1.0,
                "fix_type": "cataloged_refactor",
                "references": [
                  "https://typescript-eslint.io/rules/no-explicit-any/"
                ]
              }
            },
            {
              "id": "function-too-long",
              "severity": "medium",
              "line": 84,
              "description": "Function is 46 lines (> 30 dynamic threshold)",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "metric-threshold",
                "proof": "Function is 46 lines (> 30 dynamic threshold)",
                "impact": "Function login is 46 lines \u2014 exceeds 30 dynamic threshold",
                "recommendation": "Decompose into smaller, single-responsibility functions",
                "confidence": 0.85,
                "fix_type": "cataloged_refactor",
                "references": []
              }
            }
          ],
          "ai_confidence": 0.2851,
          "ai_signals": []
        },
        {
          "name": "getCurrentUser",
          "type": "arrow_function",
          "line_start": 131,
          "line_end": 149,
          "metrics": {
            "cyclomatic_complexity": 1,
            "max_nesting_depth": 0,
            "parameter_count": 1,
            "line_count": 19,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [],
          "ai_confidence": 0.1329,
          "ai_signals": []
        },
        {
          "name": "updateUser",
          "type": "arrow_function",
          "line_start": 151,
          "line_end": 183,
          "metrics": {
            "cyclomatic_complexity": 7,
            "max_nesting_depth": 1,
            "parameter_count": 2,
            "line_count": 33,
            "any_count": 1,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [
            {
              "id": "any-type-usage",
              "severity": "medium",
              "line": 151,
              "description": "Explicit 'any' type \u2014 defeats type safety",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "ast-walk",
                "proof": "Explicit 'any' type -- defeats type safety",
                "impact": "Explicit 'any' type at line 151 defeats TypeScript's type safety",
                "recommendation": "Replace 'any' with a specific type, unknown, or a generic parameter",
                "confidence": 1.0,
                "fix_type": "cataloged_refactor",
                "references": [
                  "https://typescript-eslint.io/rules/no-explicit-any/"
                ]
              }
            },
            {
              "id": "function-too-long",
              "severity": "medium",
              "line": 151,
              "description": "Function is 33 lines (> 30 dynamic threshold)",
              "fix_type": "cataloged_refactor",
              "evidence": {
                "detection_method": "metric-threshold",
                "proof": "Function is 33 lines (> 30 dynamic threshold)",
                "impact": "Function updateUser is 33 lines \u2014 exceeds 30 dynamic threshold",
                "recommendation": "Decompose into smaller, single-responsibility functions",
                "confidence": 0.85,
                "fix_type": "cataloged_refactor",
                "references": []
              }
            }
          ],
          "ai_confidence": 0.345,
          "ai_signals": [
            "High anti-pattern density (0.61)"
          ]
        }
      ],
      "file_metrics": {
        "total_functions": 5,
        "avg_function_length": 34.2,
        "function_length_stddev": 11.48,
        "import_count": 7,
        "export_count": 4,
        "comment_lines": 0,
        "code_lines": 184,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 6.83,
        "debug_artifacts": [],
        "ai_smell_count": 5,
        "ai_smell_density": 0.027174,
        "structural_uniformity": 0.6644,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 72.95,
        "mechanical": 72.95,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\auth\\token.utils.ts",
      "language": "typescript",
      "line_count": 9,
      "token_estimate": 53,
      "functions": [
        {
          "name": "generateToken",
          "type": "arrow_function",
          "line_start": 3,
          "line_end": 6,
          "metrics": {
            "cyclomatic_complexity": 2,
            "max_nesting_depth": 0,
            "parameter_count": 1,
            "line_count": 4,
            "any_count": 0,
            "non_null_assertions": 0,
            "useState_count": 0,
            "useEffect_count": 0,
            "try_catch_count": 0
          },
          "anti_patterns": [],
          "ai_confidence": 0.0,
          "ai_signals": []
        }
      ],
      "file_metrics": {
        "total_functions": 1,
        "avg_function_length": 4,
        "function_length_stddev": 0.0,
        "import_count": 1,
        "export_count": 1,
        "comment_lines": 0,
        "code_lines": 9,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 7.67,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 97.5,
        "mechanical": 97.5,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\profile\\profile.model.ts",
      "language": "typescript",
      "line_count": 7,
      "token_estimate": 25,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 0,
        "export_count": 1,
        "comment_lines": 0,
        "code_lines": 7,
        "comment_ratio": 0.0,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 6.4,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\tag\\tag.controller.ts",
      "language": "typescript",
      "line_count": 23,
      "token_estimate": 131,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 3,
        "export_count": 1,
        "comment_lines": 6,
        "code_lines": 17,
        "comment_ratio": 0.2609,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 5.16,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\prisma\\prisma-client.ts",
      "language": "typescript",
      "line_count": 24,
      "token_estimate": 123,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 1,
        "export_count": 1,
        "comment_lines": 2,
        "code_lines": 22,
        "comment_ratio": 0.0833,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 7.46,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    },
    {
      "path": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\tests\\services\\auth.service.test.ts",
      "language": "typescript",
      "line_count": 255,
      "token_estimate": 1597,
      "functions": [],
      "file_metrics": {
        "total_functions": 0,
        "avg_function_length": 0.0,
        "function_length_stddev": 0.0,
        "import_count": 3,
        "export_count": 0,
        "comment_lines": 32,
        "code_lines": 223,
        "comment_ratio": 0.1255,
        "comment_what_ratio": 0.0,
        "naming_avg_length": 6.6,
        "debug_artifacts": [],
        "ai_smell_count": 0,
        "ai_smell_density": 0.0,
        "structural_uniformity": 0.0,
        "ai_debt_score": 0.0,
        "suppressed_findings": 0,
        "unused_imports": 0
      },
      "baseline_comparison": null,
      "health_score": {
        "composite": 100.0,
        "mechanical": 100.0,
        "subjective": 0.0,
        "weights": {
          "mechanical": 1.0,
          "subjective": 0.0
        }
      }
    }
  ],
  "summary": {
    "files_analyzed": 39,
    "files_skipped": 4,
    "skip_reasons": {
      "generated_code": 0,
      "binary": 0,
      "minified": 0,
      "empty": 0,
      "too_large": 0,
      "no_grammar": 0,
      "permission_denied": 0,
      "ignored": 0,
      "parse_error": 4
    },
    "total_functions": 32,
    "total_anti_patterns": 22,
    "anti_patterns_by_severity": {
      "critical": 0,
      "high": 0,
      "medium": 22,
      "low": 0
    },
    "ai_authored_functions": 0,
    "worst_file": "K:\\TrueMend\\benchmarks\\validation\\node-express-realworld-example-app\\src\\app\\routes\\article\\author.mapper.ts",
    "ci_pass": null,
    "threshold_violations": [],
    "health_score": {
      "composite": 96.04,
      "mechanical": 96.04,
      "subjective": 0.0,
      "weights": {
        "mechanical": 1.0,
        "subjective": 0.0
      }
    }
  }
}
