{
  "format": "palo-semantic-invariants",
  "schemaVersion": "1.0.0",
  "semanticVersion": "3.1.0",
  "invariants": [
    {
      "invariantId": "SEM-01",
      "statement": "Every semantic entity has exactly one stable identifier.",
      "enforcedBy": [
        "SHACL",
        "JSON Schema"
      ]
    },
    {
      "invariantId": "SEM-02",
      "statement": "Every canonical definition has exactly one semantic version.",
      "enforcedBy": [
        "SHACL",
        "generator"
      ]
    },
    {
      "invariantId": "SEM-03",
      "statement": "Released definitions are superseded, never overwritten.",
      "enforcedBy": [
        "release validation",
        "documentation"
      ]
    },
    {
      "invariantId": "SEM-04",
      "statement": "Lifecycle definitions, phase definitions and gate definitions are distinct from runtime instances.",
      "enforcedBy": [
        "OWL",
        "JSON Schema"
      ]
    },
    {
      "invariantId": "SEM-05",
      "statement": "Every gate instance references exactly one versioned gate definition and one case.",
      "enforcedBy": [
        "SHACL",
        "JSON Schema"
      ]
    },
    {
      "invariantId": "SEM-06",
      "statement": "Every consequential gate decision is append-only, digest-bound and attributable.",
      "enforcedBy": [
        "SHACL",
        "JSON Schema"
      ]
    },
    {
      "invariantId": "SEM-07",
      "statement": "An evidence claim references exactly one artifact, one target and one case scope.",
      "enforcedBy": [
        "SHACL",
        "JSON Schema"
      ]
    },
    {
      "invariantId": "SEM-08",
      "statement": "Evidence evaluation is separate from evidence assertion.",
      "enforcedBy": [
        "OWL",
        "SHACL"
      ]
    },
    {
      "invariantId": "SEM-09",
      "statement": "Evidence bundles are manifests of digest-bound records, not duplicate evidence stores.",
      "enforcedBy": [
        "SHACL",
        "JSON Schema"
      ]
    },
    {
      "invariantId": "SEM-10",
      "statement": "Each cross-framework mapping represents one source version and one target version.",
      "enforcedBy": [
        "SHACL",
        "JSON Schema"
      ]
    },
    {
      "invariantId": "SEM-11",
      "statement": "Every assessment and evidence manifest is pinned to an immutable semantic release manifest.",
      "enforcedBy": [
        "SHACL",
        "release validation"
      ]
    },
    {
      "invariantId": "SEM-12",
      "statement": "Delivery status and evidence authority class remain separate properties.",
      "enforcedBy": [
        "semantic spine schema",
        "browser tests"
      ]
    },
    {
      "invariantId": "SEM-13",
      "statement": "Framework guidance does not create legal obligations or deployment authorization.",
      "enforcedBy": [
        "authority boundary",
        "documentation"
      ]
    },
    {
      "invariantId": "SEM-14",
      "statement": "Non-authoritative monitoring signals require accountable human review before changing case state.",
      "enforcedBy": [
        "semantic spine schema",
        "module contract"
      ]
    }
  ],
  "fixtureProfile": {
    "valid": "schemas/fixtures/palo-semantic-records.valid.ttl",
    "invalid": "schemas/fixtures/palo-semantic-records.invalid.ttl"
  }
}
