{
  "schemaVersion": 2,
  "repository": "Syndical.site",
  "startedAt": "2026-10-03T15:57:02.836Z",
  "source": {
    "commit": "013f14f35db52a74f2a50d7c0c5ed5d8da22f3d0",
    "dirty": false,
    "contentSha256": "2d49df9e087a861298ac5fda720ebe8f6e9c6cfe641e61d1a1636c0c6e0112d5",
    "stableDuringRun": true,
    "finishedContentSha256": "2d49df9e087a861298ac5fda720ebe8f6e9c6cfe641e61d1a1636c0c6e0112d5"
  },
  "policy": {
    "id": "syndical-site-quality-v1",
    "sha256": "f1d1ba016b895e1a8351efc63fe6d4cf82a65bd1274e04e144d1935ac80f6921",
    "sastRules": [
      {
        "id": "syndical-site-credential-console",
        "severity": "high",
        "languages": [
          "typescript",
          "javascript"
        ],
        "description": "Credential-shaped values passed directly to browser console methods"
      },
      {
        "id": "syndical-site-python-shell",
        "severity": "medium",
        "languages": [
          "python"
        ],
        "description": "Explicit shell=True subprocess calls require review"
      }
    ],
    "duplication": {
      "minLines": 5,
      "minTokens": 50,
      "mode": "mild"
    }
  },
  "tools": [
    {
      "name": "Lizard",
      "version": "1.24.0",
      "license": "MIT"
    },
    {
      "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": "ruff",
      "version": "0.16.10",
      "license": "MIT"
    },
    {
      "name": "TypeScript AST",
      "version": "5.9.3",
      "license": "Apache-2.0"
    }
  ],
  "scope": {
    "selectedFiles": 67,
    "byLanguage": {
      "javascript": 5,
      "python": 8,
      "typescript": 54
    },
    "exclusions": {
      "roots": [
        "app/",
        "components/",
        "icons/",
        "illustrations/",
        "lib/",
        "providers/",
        "infra/",
        "next.config.ts",
        "postcss.config.mjs"
      ],
      "extensions": [
        ".ts",
        ".tsx",
        ".js",
        ".mjs",
        ".py"
      ],
      "excludedSegments": [
        "test",
        "tests",
        "fixtures",
        "node_modules",
        "dist",
        "__pycache__"
      ],
      "excludedSuffixes": [
        ".test.ts",
        ".test.tsx",
        ".test.mjs",
        ".d.ts"
      ],
      "excludedPrefixes": [
        "infra/test_"
      ]
    }
  },
  "measurements": {
    "native": {
      "status": "measured",
      "selectedFiles": 67,
      "analyzedFiles": 67,
      "filesWithFindings": 0,
      "totalFindings": 0,
      "errors": []
    },
    "functions": {
      "status": "measured",
      "selectedFiles": 67,
      "analyzedFiles": 67,
      "totalFunctions": 303,
      "compliantFunctions": 303,
      "violatingFunctions": 0,
      "limits": {
        "maxComplexity": 15,
        "maxFunctionLines": 80,
        "maxParameters": 5
      },
      "instruments": [
        {
          "name": "Lizard",
          "version": "1.24.0",
          "files": 8,
          "functions": 70,
          "excludedSyntheticUnits": 0,
          "lengthDefinition": "Non-comment source lines recognized by Lizard"
        },
        {
          "name": "TypeScript AST",
          "version": "5.9.3",
          "files": 59,
          "functions": 233,
          "lengthDefinition": "Nonempty physical lines in the full function span, including comments and nested functions"
        }
      ],
      "errors": []
    },
    "duplication": {
      "status": "measured",
      "selectedFiles": 67,
      "analyzedFiles": 67,
      "cloneEligibleFiles": 62,
      "belowMinimumTokenFiles": 5,
      "totalTokens": 39077,
      "duplicatedTokens": 0,
      "duplicatedTokenPercent": 0,
      "errors": []
    },
    "sast": {
      "status": "measured",
      "selectedFiles": 67,
      "analyzedFiles": 67,
      "ruleCount": 2,
      "qualifiedRules": 2,
      "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.",
    "C#, Swift and Python functions are recognized heuristically by Lizard; their detection is not compiler-proven complete. JavaScript/TypeScript uses the TypeScript syntax tree.",
    "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-03T15:57:13.764Z",
  "scores": {
    "quality": {
      "status": "measured",
      "value": 100,
      "label": "Quality",
      "explanation": "Percentage of checked production files with no configured analyzer warnings or errors.",
      "numerator": 67,
      "denominator": 67,
      "details": {
        "filesWithFindings": 0,
        "totalFindings": 0
      }
    },
    "maintainability": {
      "status": "measured",
      "value": 100,
      "label": "Maintainability",
      "explanation": "The lower of functions within all published limits and tokens without detected duplication.",
      "numerator": 303,
      "denominator": 303,
      "details": {
        "functionScore": 100,
        "duplicationScore": 100,
        "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": 2,
      "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": "bacac947c7084328908406c2bea17d06402413a2c20aebd2720f9706664014f5"
}
