{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://training.lockedinlabs.ai/templates/lockedin-production-commission-manifest.schema.json",
  "title": "LockedIn FDE Production Project Review Evidence Manifest",
  "description": "Privacy-minimized evidence pointers for one exact production-bearing FDE project review. Raw client source and secrets are prohibited. The schema identifier and commissionId field remain for compatibility.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema",
    "version",
    "commissionId",
    "missionClass",
    "candidateRef",
    "authorization",
    "requirements",
    "repository",
    "deployment",
    "evidence",
    "aiAssistance",
    "submittedAt"
  ],
  "properties": {
    "schema": {
      "const": "lockedin.training.production-commission-manifest/v1"
    },
    "version": {
      "const": "1.0.0"
    },
    "commissionId": {
      "type": "string",
      "pattern": "^pc_[A-Za-z0-9_-]{22,64}$"
    },
    "missionClass": {
      "enum": [
        "cohort-venture",
        "sponsor-clean-room",
        "supervised-client"
      ]
    },
    "candidateRef": {
      "type": "string",
      "pattern": "^sub_[A-Za-z0-9_-]{22,64}$"
    },
    "authorization": {
      "type": "object",
      "additionalProperties": false,
      "required": ["reference", "digest", "dataClassification", "retentionUntil"],
      "properties": {
        "reference": { "$ref": "#/$defs/opaqueRef" },
        "digest": { "$ref": "#/$defs/sha256" },
        "dataClassification": {
          "enum": ["public", "internal", "confidential", "restricted"]
        },
        "retentionUntil": { "type": "string", "format": "date" }
      }
    },
    "requirements": {
      "type": "object",
      "additionalProperties": false,
      "required": ["setId", "version", "digest", "acceptanceCount"],
      "properties": {
        "setId": { "$ref": "#/$defs/shortCode" },
        "version": { "$ref": "#/$defs/semver" },
        "digest": { "$ref": "#/$defs/sha256" },
        "acceptanceCount": {
          "type": "integer",
          "minimum": 1,
          "maximum": 200
        }
      }
    },
    "repository": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "provider",
        "owner",
        "name",
        "visibility",
        "defaultBranch",
        "commitSha",
        "pullRequests",
        "checks"
      ],
      "properties": {
        "provider": { "const": "github" },
        "owner": { "$ref": "#/$defs/githubName" },
        "name": { "$ref": "#/$defs/githubName" },
        "visibility": { "enum": ["public", "private"] },
        "defaultBranch": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255,
          "pattern": "^[^\\s~^:?*\\[\\]\\\\]+$"
        },
        "commitSha": { "$ref": "#/$defs/gitSha" },
        "pullRequests": {
          "type": "array",
          "maxItems": 50,
          "uniqueItems": true,
          "items": { "$ref": "#/$defs/httpsUri" }
        },
        "checks": {
          "type": "array",
          "maxItems": 100,
          "uniqueItems": true,
          "items": { "$ref": "#/$defs/evidencePointer" }
        }
      }
    },
    "deployment": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "environment",
        "environmentRef",
        "deploymentRef",
        "deployedAt",
        "sourceCommitSha",
        "artifactDigest",
        "intendedUseAttested",
        "rollbackEvidence"
      ],
      "properties": {
        "environment": { "const": "production" },
        "environmentRef": { "$ref": "#/$defs/opaqueRef" },
        "deploymentRef": { "$ref": "#/$defs/opaqueRef" },
        "serviceUri": {
          "oneOf": [
            { "$ref": "#/$defs/httpsUri" },
            { "type": "null" }
          ]
        },
        "deployedAt": { "$ref": "#/$defs/dateTime" },
        "sourceCommitSha": { "$ref": "#/$defs/gitSha" },
        "artifactDigest": { "$ref": "#/$defs/sha256" },
        "intendedUseAttested": { "const": true },
        "rollbackEvidence": { "$ref": "#/$defs/evidencePointer" }
      }
    },
    "evidence": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "requirements",
        "architecture",
        "verification",
        "security",
        "release",
        "operations",
        "adoption",
        "transfer",
        "afterAction"
      ],
      "properties": {
        "requirements": { "$ref": "#/$defs/evidenceList" },
        "architecture": { "$ref": "#/$defs/evidenceList" },
        "verification": { "$ref": "#/$defs/evidenceList" },
        "security": { "$ref": "#/$defs/evidenceList" },
        "release": { "$ref": "#/$defs/evidenceList" },
        "operations": { "$ref": "#/$defs/evidenceList" },
        "adoption": { "$ref": "#/$defs/evidenceList" },
        "transfer": { "$ref": "#/$defs/evidenceList" },
        "afterAction": { "$ref": "#/$defs/evidenceList" }
      }
    },
    "aiAssistance": {
      "type": "object",
      "additionalProperties": false,
      "required": ["used", "disclosureRef", "humanVerificationRef"],
      "properties": {
        "used": { "type": "boolean" },
        "disclosureRef": {
          "oneOf": [
            { "$ref": "#/$defs/evidencePointer" },
            { "type": "null" }
          ]
        },
        "humanVerificationRef": {
          "oneOf": [
            { "$ref": "#/$defs/evidencePointer" },
            { "type": "null" }
          ]
        }
      }
    },
    "visualization": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "renderer",
        "version",
        "rendererRevision",
        "archiveSha256",
        "irSha256",
        "previewPngSha256",
        "validationReceipt",
        "visualReview"
      ],
      "properties": {
        "renderer": { "const": "archify" },
        "version": { "const": "2.15.0" },
        "rendererRevision": {
          "const": "e1ac748f19cf805e44bf74fb93c796662152e273"
        },
        "archiveSha256": {
          "const": "sha256:156f0d3cd6ba11706344683e3d94e6b6b44b5732bd3c8c81b75c267c3f5d04c4"
        },
        "irSha256": { "$ref": "#/$defs/sha256" },
        "previewPngSha256": { "$ref": "#/$defs/sha256" },
        "validationReceipt": { "$ref": "#/$defs/evidencePointer" },
        "visualReview": { "enum": ["pending", "accepted", "rejected"] }
      }
    },
    "submittedAt": { "$ref": "#/$defs/dateTime" }
  },
  "$defs": {
    "sha256": {
      "type": "string",
      "pattern": "^sha256:[0-9a-f]{64}$"
    },
    "gitSha": {
      "type": "string",
      "pattern": "^[0-9a-f]{40}$"
    },
    "semver": {
      "type": "string",
      "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$"
    },
    "shortCode": {
      "type": "string",
      "minLength": 3,
      "maxLength": 80,
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._/-]*$"
    },
    "opaqueRef": {
      "type": "string",
      "pattern": "^[a-z]{2,8}_[A-Za-z0-9_-]{22,64}$"
    },
    "githubName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[A-Za-z0-9_.-]+$"
    },
    "httpsUri": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://"
    },
    "dateTime": {
      "type": "string",
      "format": "date-time"
    },
    "evidencePointer": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "evidenceRef",
        "digest",
        "collector",
        "observedAt",
        "classification",
        "requirements",
        "controlRefs"
      ],
      "properties": {
        "evidenceRef": { "$ref": "#/$defs/opaqueRef" },
        "digest": { "$ref": "#/$defs/sha256" },
        "approvedUri": {
          "oneOf": [
            { "$ref": "#/$defs/httpsUri" },
            { "type": "null" }
          ]
        },
        "collector": { "$ref": "#/$defs/shortCode" },
        "observedAt": { "$ref": "#/$defs/dateTime" },
        "classification": {
          "enum": ["public", "internal", "confidential", "restricted"]
        },
        "requirements": {
          "type": "array",
          "minItems": 1,
          "maxItems": 50,
          "uniqueItems": true,
          "items": { "$ref": "#/$defs/shortCode" }
        },
        "controlRefs": {
          "type": "array",
          "maxItems": 50,
          "uniqueItems": true,
          "items": { "$ref": "#/$defs/shortCode" }
        }
      }
    },
    "evidenceList": {
      "type": "array",
      "minItems": 1,
      "maxItems": 100,
      "items": { "$ref": "#/$defs/evidencePointer" }
    }
  }
}
