← Files EvalDossierARCHIVED FILE

schemas/evaluation-attestation.schema.json

11.3 KB · Oct 2, 2026 · 00:29 UTC

↓ Download file

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/evaluation-attestation.schema.json",
  "title": "EvalDossier evaluation attestation 0.1",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "protocolVersion",
    "schemaVersion",
    "attestationId",
    "issuedAt",
    "evaluator",
    "bindings",
    "mode",
    "coverage",
    "overallAssessment",
    "obligationVerdict",
    "assessments",
    "ignoredInputs",
    "errors",
    "limitations",
    "economicAction",
    "signatureContext",
    "proof"
  ],
  "properties": {
    "protocolVersion": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/protocolVersion" },
    "schemaVersion": { "const": "evaldossier.evaluation-attestation/0.1" },
    "attestationId": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/identifier" },
    "issuedAt": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/timestamp" },
    "evaluator": {
      "type": "object",
      "additionalProperties": false,
      "required": ["evaluatorId", "keyId", "softwareVersion"],
      "properties": {
        "evaluatorId": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/identifier" },
        "keyId": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/keyId" },
        "softwareVersion": { "type": "string", "minLength": 1, "maxLength": 64 }
      }
    },
    "bindings": {
      "type": "object",
      "additionalProperties": false,
      "required": ["manifestDigest", "profileDigest", "requestDigest", "evidenceBundleDigest"],
      "properties": {
        "manifestDigest": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/digest" },
        "profileDigest": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/digest" },
        "requestDigest": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/digest" },
        "evidenceBundleDigest": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/digest" }
      }
    },
    "mode": { "enum": ["NATIVE_EVALUATION", "UPSTREAM_NORMALIZATION"] },
    "coverage": {
      "description": "Coverage records which criteria were assessed; it does not imply that their predicates were established.",
      "type": "object",
      "additionalProperties": false,
      "required": ["status", "assessedCriterionIds", "unassessedCriterionIds"],
      "properties": {
        "status": { "enum": ["COMPLETE", "PARTIAL", "UNKNOWN"] },
        "assessedCriterionIds": {
          "type": "array",
          "maxItems": 128,
          "uniqueItems": true,
          "items": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/identifier" }
        },
        "unassessedCriterionIds": {
          "type": "array",
          "maxItems": 128,
          "uniqueItems": true,
          "items": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/identifier" }
        }
      },
      "allOf": [
        {
          "if": { "properties": { "status": { "const": "COMPLETE" } }, "required": ["status"] },
          "then": { "properties": { "unassessedCriterionIds": { "maxItems": 0 } } }
        },
        {
          "if": { "properties": { "status": { "const": "PARTIAL" } }, "required": ["status"] },
          "then": { "properties": { "assessedCriterionIds": { "minItems": 1 }, "unassessedCriterionIds": { "minItems": 1 } } }
        },
        {
          "if": { "properties": { "status": { "const": "UNKNOWN" } }, "required": ["status"] },
          "then": { "properties": { "assessedCriterionIds": { "maxItems": 0 } } }
        }
      ]
    },
    "overallAssessment": {
      "type": "object",
      "additionalProperties": false,
      "required": ["assessment", "basis", "reasonCode"],
      "properties": {
        "assessment": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/assessment" },
        "basis": {
          "oneOf": [
            { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/resultBasis" },
            { "const": "MIXED" }
          ]
        },
        "reasonCode": { "type": "string", "pattern": "^[A-Z][A-Z0-9_]{2,127}$" },
        "upstreamMapping": { "$ref": "#/$defs/upstreamMapping" }
      }
    },
    "obligationVerdict": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/obligationVerdict" },
    "assessments": {
      "type": "array",
      "minItems": 1,
      "maxItems": 128,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "assessmentId",
          "criterionId",
          "statement",
          "basis",
          "assessment",
          "predicateStatus",
          "reasonCode",
          "evidenceArtifactIds",
          "limitations"
        ],
        "properties": {
          "assessmentId": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/identifier" },
          "criterionId": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/identifier" },
          "statement": { "type": "string", "minLength": 1, "maxLength": 1000 },
          "basis": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/resultBasis" },
          "assessment": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/assessment" },
          "predicateStatus": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/predicateStatus" },
          "reasonCode": { "type": "string", "pattern": "^[A-Z][A-Z0-9_]{2,127}$" },
          "evidenceArtifactIds": {
            "type": "array",
            "uniqueItems": true,
            "items": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/identifier" }
          },
          "confidence": {
            "type": "object",
            "additionalProperties": false,
            "required": ["value", "scale", "calibration"],
            "properties": {
              "value": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/decimalUnitInterval" },
              "scale": { "const": "0_TO_1" },
              "calibration": { "enum": ["UPSTREAM_REPORTED_UNVERIFIED", "CALIBRATED", "NOT_APPLICABLE"] }
            }
          },
          "upstreamMapping": { "$ref": "#/$defs/upstreamMapping" },
          "limitations": {
            "type": "array",
            "maxItems": 16,
            "items": { "type": "string", "minLength": 1, "maxLength": 1000 }
          }
        },
        "allOf": [
          {
            "if": {
              "properties": { "basis": { "enum": ["MODEL_JUDGMENT", "HEURISTIC", "SELF_ASSERTION"] } },
              "required": ["basis"]
            },
            "then": { "properties": { "predicateStatus": { "const": "UNDETERMINED" } } }
          },
          {
            "if": { "properties": { "assessment": { "const": "INCONCLUSIVE" } }, "required": ["assessment"] },
            "then": { "properties": { "predicateStatus": { "const": "UNDETERMINED" } } }
          },
          {
            "if": { "properties": { "predicateStatus": { "const": "ESTABLISHED_TRUE" } }, "required": ["predicateStatus"] },
            "then": { "properties": { "assessment": { "const": "AFFIRMED" } } }
          },
          {
            "if": { "properties": { "predicateStatus": { "const": "ESTABLISHED_FALSE" } }, "required": ["predicateStatus"] },
            "then": { "properties": { "assessment": { "const": "REJECTED" } } }
          }
        ]
      }
    },
    "ignoredInputs": {
      "type": "array",
      "maxItems": 32,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["pointer", "reason"],
        "properties": {
          "pointer": { "type": "string", "pattern": "^/", "maxLength": 500 },
          "reason": { "type": "string", "minLength": 1, "maxLength": 500 }
        }
      }
    },
    "errors": {
      "type": "array",
      "maxItems": 32,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["code", "message", "retryable"],
        "properties": {
          "code": { "type": "string", "pattern": "^[A-Z][A-Z0-9_]{2,127}$" },
          "message": { "type": "string", "minLength": 1, "maxLength": 500 },
          "retryable": { "type": "boolean" }
        }
      }
    },
    "limitations": {
      "type": "array",
      "maxItems": 32,
      "items": { "type": "string", "minLength": 1, "maxLength": 1000 }
    },
    "economicAction": { "const": "OUT_OF_SCOPE" },
    "signatureContext": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/signatureContext" },
    "proof": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/proof" }
  },
  "$defs": {
    "upstreamMapping": {
      "type": "object",
      "additionalProperties": false,
      "required": ["sourceArtifactId", "nativePointer", "nativeValue", "mappingPolicyId"],
      "properties": {
        "sourceArtifactId": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/identifier" },
        "nativePointer": { "type": "string", "pattern": "^/", "maxLength": 500 },
        "nativeValue": { "type": ["string", "boolean", "integer", "null"] },
        "mappingPolicyId": { "$ref": "https://raw.githubusercontent.com/miguel-herrero-systems/evaldossier/v0.1.0/schemas/common.schema.json#/$defs/identifier" }
      }
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "overallAssessment": {
            "properties": { "basis": { "enum": ["MODEL_JUDGMENT", "HEURISTIC", "SELF_ASSERTION"] } },
            "required": ["basis"]
          }
        },
        "required": ["overallAssessment"]
      },
      "then": { "properties": { "obligationVerdict": { "const": "INCONCLUSIVE" } } }
    },
    {
      "if": {
        "properties": {
          "overallAssessment": {
            "properties": { "assessment": { "const": "INCONCLUSIVE" } },
            "required": ["assessment"]
          }
        },
        "required": ["overallAssessment"]
      },
      "then": { "properties": { "obligationVerdict": { "const": "INCONCLUSIVE" } } }
    }
  ]
}

SHA-256: f94e2bf6b935e67731638447f8c791a1c1e2529951c37c4a41b45cac41c9cabd