{
  "schemaVersion": 3,
  "repository": "Syndical",
  "startedAt": "2026-10-11T11:16:22.228Z",
  "source": {
    "commit": "a6ef69ef8d895cd1cbbaeb95e99bfdf102f3545f",
    "dirty": false,
    "contentSha256": "63163fbc964e5e5d7f19964f156f934de81fa3ff66f3ae5fc6a1ddfda0af8a13",
    "stableDuringRun": true,
    "finishedContentSha256": "63163fbc964e5e5d7f19964f156f934de81fa3ff66f3ae5fc6a1ddfda0af8a13"
  },
  "policy": {
    "id": "syndical-oss-quality-v2",
    "sha256": "0858c4f212e128d9f4895491a0e9ea3c4a42c1beab95088981ff3eccf70833f9",
    "sastRules": [
      {
        "id": "syndical.csharp.tls-validation-always-true",
        "severity": "high",
        "languages": [
          "csharp"
        ],
        "description": "HttpClientHandler certificate callbacks that explicitly accept every certificate."
      },
      {
        "id": "syndical.typescript.tls-verification-disabled",
        "severity": "high",
        "languages": [
          "javascript",
          "typescript"
        ],
        "description": "Explicit rejectUnauthorized:false settings and NODE_TLS_REJECT_UNAUTHORIZED=0 assignments."
      },
      {
        "id": "syndical.typescript.electron-context-isolation-disabled",
        "severity": "high",
        "languages": [
          "javascript",
          "typescript"
        ],
        "description": "BrowserWindow object literals explicitly disabling context isolation."
      },
      {
        "id": "syndical.typescript.electron-node-integration-enabled",
        "severity": "medium",
        "languages": [
          "javascript",
          "typescript"
        ],
        "description": "BrowserWindow object literals explicitly enabling renderer Node integration."
      },
      {
        "id": "syndical.typescript.sensitive-value-console-log",
        "severity": "high",
        "languages": [
          "javascript",
          "typescript"
        ],
        "description": "Direct console arguments named password, token, key or client secret; this is not a dataflow rule."
      }
    ],
    "duplication": {
      "minLines": 5,
      "minTokens": 50,
      "mode": "mild"
    },
    "methodology": {
      "revision": "csharp-source-v1",
      "csharp": {
        "version": "1.0.0",
        "dataRecordReviews": "tools/quality/csharp-data-records.json"
      }
    }
  },
  "tools": [
    {
      "name": "jscpd",
      "version": "5.4.0",
      "license": "MIT"
    },
    {
      "name": "OpenGrep",
      "version": "1.30.0",
      "license": "LGPL-2.1"
    },
    {
      "name": "ESLint",
      "version": "10.12.0",
      "license": "MIT"
    },
    {
      "name": "@eslint/js",
      "version": "10.0.1",
      "license": "MIT"
    },
    {
      "name": "typescript-eslint",
      "version": "8.71.0",
      "license": "MIT"
    },
    {
      "name": "eslint-plugin-react-hooks",
      "version": "7.1.1",
      "license": "MIT"
    },
    {
      "name": "globals",
      "version": "17.13.0",
      "license": "MIT"
    },
    {
      "name": ".NET SDK analyzers",
      "version": "9.0.318",
      "license": "MIT"
    },
    {
      "name": "Microsoft (R) Visual C# Compiler",
      "version": "4.14.0-3.26064.1 (450493a9)",
      "license": "MIT"
    },
    {
      "name": "Syndical C# source syntax",
      "version": "1.0.0",
      "license": "MIT"
    },
    {
      "name": "TypeScript AST",
      "version": "5.9.3",
      "license": "Apache-2.0"
    }
  ],
  "scope": {
    "selectedFiles": 2275,
    "byLanguage": {
      "csharp": 1924,
      "javascript": 13,
      "typescript": 338
    },
    "exclusions": {
      "roots": [
        "apps/",
        "libs/"
      ],
      "extensions": [
        ".cs",
        ".ts",
        ".tsx",
        ".js",
        ".jsx",
        ".mjs"
      ],
      "excludedSegments": [
        "test",
        "tests",
        "fixtures",
        "bin",
        "obj",
        "node_modules",
        "out",
        "dist",
        "resources"
      ],
      "excludedSuffixes": [
        ".test.ts",
        ".test.tsx",
        ".spec.ts",
        ".spec.tsx",
        ".d.ts",
        ".g.cs",
        ".generated.cs"
      ],
      "excludedPrefixes": []
    }
  },
  "measurements": {
    "native": {
      "status": "measured",
      "selectedFiles": 2275,
      "analyzedFiles": 2275,
      "filesWithFindings": 0,
      "totalFindings": 0,
      "errors": []
    },
    "functions": {
      "status": "measured",
      "selectedFiles": 2275,
      "analyzedFiles": 2275,
      "totalFunctions": 29609,
      "compliantFunctions": 29609,
      "violatingFunctions": 0,
      "limits": {
        "maxComplexity": 15,
        "maxFunctionLines": 80,
        "maxParameters": 5
      },
      "instruments": [
        {
          "name": "Syndical C# source syntax",
          "version": "1.0.0",
          "files": 1924,
          "functions": 20063,
          "lengthDefinition": "Nonempty physical source lines including comments and nested bodies; primary constructor header/initializer region union",
          "methodology": "csharp-source-v1",
          "qualifiedCases": 59,
          "sourceSha256": "f42ece50c4ff1a1c5c743e9fb76e28ec3afa527ad19fbbb04d98278db1a45dd7",
          "sdkRuntimeIdentifier": "osx-arm64"
        },
        {
          "name": "TypeScript AST",
          "version": "5.9.3",
          "files": 351,
          "functions": 9546,
          "lengthDefinition": "Nonempty physical lines in the full function span, including comments and nested functions"
        }
      ],
      "executableDeclarations": {
        "total": 1013,
        "compliant": 1013,
        "violating": 0,
        "executable": 592,
        "violatingExecutable": 0,
        "wideRecords": 421,
        "reviewedWideRecords": 421,
        "unreviewedWideRecords": 0
      },
      "errors": []
    },
    "duplication": {
      "status": "measured",
      "selectedFiles": 2275,
      "analyzedFiles": 2275,
      "cloneEligibleFiles": 2221,
      "belowMinimumTokenFiles": 54,
      "totalTokens": 1962360,
      "duplicatedTokens": 0,
      "duplicatedTokenPercent": 0,
      "errors": []
    },
    "sast": {
      "status": "measured",
      "selectedFiles": 2275,
      "analyzedFiles": 2275,
      "ruleCount": 5,
      "qualifiedRules": 5,
      "counts": {
        "critical": 0,
        "high": 0,
        "medium": 0,
        "low": 0,
        "info": 0
      },
      "errors": []
    }
  },
  "limitations": [
    "Scores measure compliance with this named profile; profiles can differ between languages and repositories.",
    "Quality measures configured native warnings and errors, not functional correctness or test effectiveness.",
    "Swift and Python functions are recognized heuristically by Lizard. JavaScript/TypeScript uses the TypeScript syntax tree.",
    "C# uses the pinned Roslyn source syntax inventory across every conditional-symbol assignment; this is not a compiled control-flow or semantic correctness proof.",
    "C# length counts nonempty physical declaration lines including comments and nested code. Primary constructors count only their header and executable initializer regions.",
    "Executable declarations have separate compliance; wide records require exact reviewed data-shape identities. Neither adds synthesized functions to the function denominator.",
    "Security covers only the named qualified rules. Dependencies, secrets, runtime behavior and broader dataflow are not assessed here.",
    "No overall quality or human-superiority claim is supported by this scorecard."
  ],
  "finishedAt": "2026-10-11T11:17:42.754Z",
  "scores": {
    "quality": {
      "status": "measured",
      "value": 100,
      "label": "Quality",
      "explanation": "Percentage of checked production files with no configured analyzer warnings or errors.",
      "numerator": 2275,
      "denominator": 2275,
      "details": {
        "filesWithFindings": 0,
        "totalFindings": 0
      }
    },
    "maintainability": {
      "status": "measured",
      "value": 100,
      "label": "Maintainability",
      "explanation": "The lowest compliance score for actual functions, executable declarations and tokens without detected duplication.",
      "numerator": 29609,
      "denominator": 29609,
      "details": {
        "functionScore": 100,
        "duplicationScore": 100,
        "declarationComponent": {
          "score": 100,
          "total": 1013,
          "compliant": 1013,
          "violating": 0
        },
        "duplicatedTokenPercent": 0,
        "limits": {
          "maxComplexity": 15,
          "maxFunctionLines": 80,
          "maxParameters": 5
        }
      }
    },
    "security": {
      "status": "no-findings",
      "risk": "none",
      "label": "Security checks",
      "counts": {
        "critical": 0,
        "high": 0,
        "medium": 0,
        "low": 0,
        "info": 0
      },
      "ruleCount": 5,
      "explanation": "Highest observed risk in the named, qualified rules. No findings is not a comprehensive security audit."
    }
  },
  "gate": {
    "status": "passed",
    "baselinePresent": true,
    "newFindings": 0,
    "duplicationRegression": false,
    "reasons": []
  },
  "evidenceSha256": "66e6729aed6706b816bdfc414b09a4a531b07715ce0abba5bb9ee6d8337e7d7e"
}
