{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://sosec.io/static/research/cis-controls-v8-1-cas-findings-schema-july-2026-v2.json",
  "title": "SOSEC CIS Controls v8.1 CAS findings ledger v2",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema",
    "schema_name",
    "artifact_version",
    "framework",
    "cutoff",
    "generated_at",
    "provenance_classes",
    "source_set",
    "method",
    "findings"
  ],
  "properties": {
    "schema": {
      "type": "string",
      "const": "https://sosec.io/static/research/cis-controls-v8-1-cas-findings-schema-july-2026-v2.json"
    },
    "schema_name": {
      "type": "string",
      "const": "sosec.cis-controls-v8.1.cas-findings-ledger.v2"
    },
    "artifact_version": {
      "type": "string",
      "const": "2.0.0"
    },
    "framework": {
      "type": "object",
      "required": [
        "name",
        "edition",
        "controls",
        "safeguards"
      ]
    },
    "cutoff": {
      "type": "string",
      "format": "date"
    },
    "generated_at": {
      "type": "string",
      "format": "date-time"
    },
    "provenance_classes": {
      "type": "object",
      "required": [
        "cis_official",
        "sosec_analysis",
        "example_local_solution"
      ]
    },
    "source_set": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "retrieval_window_utc",
        "navigator",
        "cas_control_pages",
        "cas_page_byte_changes_since_2026_07_27",
        "cas_safeguard_h2_count",
        "cas_metrics_h3_count"
      ],
      "properties": {
        "retrieval_window_utc": {
          "type": "object",
          "required": [
            "started_at",
            "ended_at"
          ]
        },
        "navigator": {
          "type": "object",
          "required": [
            "url",
            "retrieved_at",
            "bytes",
            "sha256",
            "structured_comparison"
          ]
        },
        "cas_control_pages": {
          "type": "array",
          "minItems": 18,
          "maxItems": 18,
          "items": {
            "type": "object",
            "required": [
              "control",
              "url",
              "retrieved_at",
              "bytes",
              "sha256"
            ]
          }
        },
        "cas_page_byte_changes_since_2026_07_27": {
          "const": 0
        },
        "cas_safeguard_h2_count": {
          "const": 153
        },
        "cas_metrics_h3_count": {
          "const": 153
        }
      }
    },
    "method": {
      "type": "object",
      "required": [
        "finding_count",
        "inclusion",
        "evidence_boundary",
        "metric_parser_correction"
      ]
    },
    "findings": {
      "type": "array",
      "minItems": 40,
      "maxItems": 40,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "finding_id",
          "safeguard_ids",
          "safeguard_titles",
          "source",
          "official_fact",
          "sosec_analysis",
          "example_local_response",
          "reproduction"
        ],
        "properties": {
          "finding_id": {
            "type": "string",
            "pattern": "^CAS-2026-07-31-[0-9]{3}$"
          },
          "safeguard_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[0-9]+\\.[0-9]+$"
            }
          },
          "safeguard_titles": {
            "type": "array"
          },
          "source": {
            "type": "object",
            "required": [
              "publisher",
              "surface",
              "url",
              "retrieved_at",
              "snapshot_sha256",
              "locator"
            ]
          },
          "official_fact": {
            "type": "object",
            "required": [
              "provenance",
              "records"
            ],
            "properties": {
              "provenance": {
                "const": "cis_official"
              },
              "records": {
                "type": "array"
              }
            }
          },
          "sosec_analysis": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "provenance",
              "type",
              "finding_en",
              "finding_zh",
              "impact_en",
              "impact_zh",
              "confidence",
              "status"
            ],
            "properties": {
              "provenance": {
                "const": "sosec_analysis"
              },
              "type": {
                "type": "string"
              },
              "finding_en": {
                "type": "string",
                "minLength": 1
              },
              "finding_zh": {
                "type": "string",
                "minLength": 1
              },
              "impact_en": {
                "type": "string",
                "minLength": 1
              },
              "impact_zh": {
                "type": "string",
                "minLength": 1
              },
              "confidence": {
                "type": "object",
                "required": [
                  "level",
                  "reason"
                ]
              },
              "status": {
                "type": "string"
              }
            }
          },
          "example_local_response": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "provenance",
              "proposal_en",
              "proposal_zh",
              "normative",
              "owner_must_confirm"
            ],
            "properties": {
              "provenance": {
                "const": "example_local_solution"
              },
              "proposal_en": {
                "type": "string",
                "minLength": 1
              },
              "proposal_zh": {
                "type": "string",
                "minLength": 1
              },
              "normative": {
                "const": false
              },
              "owner_must_confirm": {
                "const": true
              }
            }
          },
          "reproduction": {
            "type": "object",
            "required": [
              "steps",
              "expected"
            ]
          }
        }
      }
    }
  }
}
