JSON Schema - Project Contract

Runtime schema for approved project instructions, criteria, evidence policy, decision policy, and calibration requirements.

JSON876 lines22.8 KBSHA-256 d926d9c48a6c...schemaruntime validation
{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "$id": "https://autoqa.example/schemas/project-contract.schema.json",
 "title": "AutoQA Project Evaluation Contract",
 "type": "object",
 "additionalProperties": false,
 "required": [
 "documentType",
 "schemaVersion",
 "contractId",
 "contractVersion",
 "projectName",
 "status",
 "createdAt",
 "instructionDocuments",
 "sourcePolicy",
 "criteria",
 "decisionTargets",
 "decisionPolicy",
 "humanReviewPolicy",
 "feedbackPolicy",
 "securityPolicy",
 "auditPolicy"
 ],
 "properties": {
 "documentType": {
 "const": "project_contract"
 },
 "schemaVersion": {
 "$ref": "common.schema.json#/$defs/SemVer"
 },
 "contractId": {
 "$ref": "common.schema.json#/$defs/Identifier"
 },
 "contractVersion": {
 "$ref": "common.schema.json#/$defs/SemVer"
 },
 "projectName": {
 "type": "string",
 "minLength": 1
 },
 "description": {
 "type": "string"
 },
 "status": {
 "type": "string",
 "enum": [
 "draft",
 "approved",
 "deprecated",
 "retired"
 ]
 },
 "createdAt": {
 "$ref": "common.schema.json#/$defs/DateTime"
 },
 "effectiveFrom": {
 "$ref": "common.schema.json#/$defs/DateTime"
 },
 "supersedesContractVersion": {
 "$ref": "common.schema.json#/$defs/SemVer"
 },
 "owners": {
 "type": "array",
 "minItems": 1,
 "items": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "actorId",
 "role"
 ],
 "properties": {
 "actorId": {
 "$ref": "common.schema.json#/$defs/Identifier"
 },
 "role": {
 "type": "string",
 "enum": [
 "project_owner",
 "rubric_owner",
 "domain_expert",
 "qa_owner"
 ]
 }
 }
 }
 },
 "instructionDocuments": {
 "type": "array",
 "minItems": 1,
 "items": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "instructionId",
 "title",
 "authority",
 "content",
 "contentHash"
 ],
 "properties": {
 "instructionId": {
 "$ref": "common.schema.json#/$defs/Identifier"
 },
 "title": {
 "type": "string",
 "minLength": 1
 },
 "authority": {
 "type": "string",
 "enum": [
 "primary",
 "supplemental",
 "example",
 "historical"
 ]
 },
 "content": {
 "type": "string",
 "minLength": 1
 },
 "contentHash": {
 "$ref": "common.schema.json#/$defs/ContentHash"
 },
 "precedenceRank": {
 "type": "integer",
 "minimum": 1
 }
 }
 }
 },
 "sourcePolicy": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "worldMode",
 "parametricKnowledgePolicy",
 "externalRetrievalAllowed",
 "defaultCitationRequirement",
 "evidenceClasses",
 "conflictPolicy",
 "snapshotRequired"
 ],
 "properties": {
 "worldMode": {
 "type": "string",
 "enum": [
 "closed_world",
 "open_world",
 "hybrid"
 ]
 },
 "parametricKnowledgePolicy": {
 "type": "string",
 "enum": [
 "never_evidence",
 "common_knowledge_only",
 "allowed_with_verification"
 ]
 },
 "externalRetrievalAllowed": {
 "type": "boolean"
 },
 "defaultCitationRequirement": {
 "type": "string",
 "enum": [
 "none",
 "material_claims",
 "all_verifiable_claims",
 "project_defined"
 ]
 },
 "snapshotRequired": {
 "type": "boolean"
 },
 "conflictPolicy": {
 "type": "string",
 "minLength": 1
 },
 "freshnessRules": {
 "type": "array",
 "items": {
 "type": "string"
 }
 },
 "evidenceClasses": {
 "type": "array",
 "minItems": 1,
 "items": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "classId",
 "name",
 "permitted",
 "authorityRank"
 ],
 "properties": {
 "classId": {
 "$ref": "common.schema.json#/$defs/Identifier"
 },
 "name": {
 "type": "string",
 "minLength": 1
 },
 "description": {
 "type": "string"
 },
 "permitted": {
 "type": "boolean"
 },
 "authorityRank": {
 "type": "integer",
 "minimum": 0
 }
 }
 }
 }
 }
 },
 "criteria": {
 "type": "array",
 "minItems": 1,
 "items": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "criterionId",
 "name",
 "requirement",
 "intent",
 "criterionType",
 "scope",
 "subjectivity",
 "instructionRefs",
 "applicability",
 "proofPolicy",
 "evidencePolicy",
 "anchors",
 "dependencies",
 "precedence",
 "defaultSeverity",
 "defaultDecisionEffect",
 "tags"
 ],
 "properties": {
 "criterionId": {
 "$ref": "common.schema.json#/$defs/Identifier"
 },
 "name": {
 "type": "string",
 "minLength": 1
 },
 "requirement": {
 "type": "string",
 "minLength": 1
 },
 "intent": {
 "type": "string",
 "minLength": 1
 },
 "criterionType": {
 "type": "string",
 "enum": [
 "required_presence",
 "prohibited_presence",
 "conditional",
 "factual",
 "grounding",
 "inferential_warrant",
 "comparative",
 "completeness",
 "holistic_quality",
 "mechanically_verifiable",
 "annotation_fidelity"
 ]
 },
 "scope": {
 "type": "string",
 "enum": [
 "attempt",
 "claim",
 "citation",
 "annotation",
 "global",
 "batch"
 ]
 },
 "subjectivity": {
 "type": "string",
 "enum": [
 "objective",
 "bounded_judgment",
 "holistic_expert"
 ]
 },
 "instructionRefs": {
 "type": "array",
 "minItems": 1,
 "items": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "instructionId",
 "locator"
 ],
 "properties": {
 "instructionId": {
 "$ref": "common.schema.json#/$defs/Identifier"
 },
 "locator": {
 "type": "string",
 "minLength": 1
 },
 "quotedText": {
 "type": "string"
 }
 }
 }
 },
 "applicability": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "ruleText",
 "condition"
 ],
 "properties": {
 "ruleText": {
 "type": "string",
 "minLength": 1
 },
 "condition": {
 "$ref": "common.schema.json#/$defs/Condition"
 }
 }
 },
 "proofPolicy": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "positiveProofRequired",
 "positiveProofStandard",
 "failureCondition",
 "passOnNoViolation",
 "allowPartialCredit",
 "allowCompensation"
 ],
 "properties": {
 "positiveProofRequired": {
 "type": "boolean"
 },
 "positiveProofStandard": {
 "type": "string",
 "minLength": 1
 },
 "failureCondition": {
 "type": "string",
 "minLength": 1
 },
 "omissionCondition": {
 "type": "string"
 },
 "passOnNoViolation": {
 "type": "boolean"
 },
 "allowPartialCredit": {
 "type": "boolean"
 },
 "allowCompensation": {
 "type": "boolean"
 }
 }
 },
 "evidencePolicy": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "allowedEvidenceClassIds",
 "minimumAuthorityRank",
 "citationRequired",
 "externalVerificationMode",
 "deterministicValidatorIds"
 ],
 "properties": {
 "allowedEvidenceClassIds": {
 "type": "array",
 "uniqueItems": true,
 "items": {
 "$ref": "common.schema.json#/$defs/Identifier"
 }
 },
 "minimumAuthorityRank": {
 "type": "integer",
 "minimum": 0
 },
 "citationRequired": {
 "type": "boolean"
 },
 "externalVerificationMode": {
 "type": "string",
 "enum": [
 "forbidden",
 "optional",
 "required"
 ]
 },
 "deterministicValidatorIds": {
 "type": "array",
 "uniqueItems": true,
 "items": {
 "$ref": "common.schema.json#/$defs/Identifier"
 }
 }
 }
 },
 "anchors": {
 "type": "array",
 "items": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "anchorId",
 "label",
 "example",
 "expectedVerdict"
 ],
 "properties": {
 "anchorId": {
 "$ref": "common.schema.json#/$defs/Identifier"
 },
 "label": {
 "type": "string",
 "minLength": 1
 },
 "description": {
 "type": "string"
 },
 "example": {
 "type": "string",
 "minLength": 1
 },
 "expectedVerdict": {
 "$ref": "common.schema.json#/$defs/CriterionVerdict"
 },
 "notes": {
 "type": "string"
 }
 }
 }
 },
 "validAlternatives": {
 "type": "array",
 "items": {
 "type": "string"
 }
 },
 "exceptions": {
 "type": "array",
 "items": {
 "type": "string"
 }
 },
 "dependencies": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "requiredBeforeCriterionIds",
 "impliesCriterionIds"
 ],
 "properties": {
 "requiredBeforeCriterionIds": {
 "type": "array",
 "uniqueItems": true,
 "items": {
 "$ref": "common.schema.json#/$defs/Identifier"
 }
 },
 "impliesCriterionIds": {
 "type": "array",
 "uniqueItems": true,
 "items": {
 "$ref": "common.schema.json#/$defs/Identifier"
 }
 }
 }
 },
 "precedence": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "overridesCriterionIds",
 "overriddenByCriterionIds"
 ],
 "properties": {
 "overridesCriterionIds": {
 "type": "array",
 "uniqueItems": true,
 "items": {
 "$ref": "common.schema.json#/$defs/Identifier"
 }
 },
 "overriddenByCriterionIds": {
 "type": "array",
 "uniqueItems": true,
 "items": {
 "$ref": "common.schema.json#/$defs/Identifier"
 }
 }
 }
 },
 "defaultSeverity": {
 "$ref": "common.schema.json#/$defs/Severity"
 },
 "defaultDecisionEffect": {
 "type": "string",
 "enum": [
 "none",
 "accept_with_note",
 "rework",
 "reject",
 "escalate"
 ]
 },
 "tags": {
 "type": "array",
 "uniqueItems": true,
 "items": {
 "type": "string"
 }
 }
 }
 }
 },
 "decisionPolicy": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "policyVersion",
 "allowedActions",
 "rules",
 "defaultAction",
 "tieBreakOrder",
 "confidencePolicy"
 ],
 "properties": {
 "policyVersion": {
 "$ref": "common.schema.json#/$defs/SemVer"
 },
 "allowedActions": {
 "type": "array",
 "minItems": 1,
 "uniqueItems": true,
 "items": {
 "$ref": "common.schema.json#/$defs/OperationalAction"
 }
 },
 "rules": {
 "type": "array",
 "minItems": 1,
 "items": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "target",
 "ruleId",
 "priority",
 "description",
 "match",
 "action",
 "terminal"
 ],
 "properties": {
 "ruleId": {
 "$ref": "common.schema.json#/$defs/Identifier"
 },
 "priority": {
 "type": "integer",
 "minimum": 1
 },
 "description": {
 "type": "string",
 "minLength": 1
 },
 "match": {
 "type": "object",
 "additionalProperties": false,
 "properties": {
 "criterionIds": {
 "type": "array",
 "uniqueItems": true,
 "items": {
 "type": "string"
 }
 },
 "criterionTags": {
 "type": "array",
 "uniqueItems": true,
 "items": {
 "type": "string"
 }
 },
 "verdicts": {
 "type": "array",
 "uniqueItems": true,
 "items": {
 "$ref": "common.schema.json#/$defs/CriterionVerdict"
 }
 },
 "severities": {
 "type": "array",
 "uniqueItems": true,
 "items": {
 "$ref": "common.schema.json#/$defs/Severity"
 }
 },
 "decisionEffects": {
 "type": "array",
 "uniqueItems": true,
 "items": {
 "type": "string",
 "enum": [
 "none",
 "accept_with_note",
 "rework",
 "reject",
 "escalate"
 ]
 }
 },
 "minimumCalibratedConfidence": {
 "type": "number",
 "minimum": 0,
 "maximum": 1
 },
 "hasUnresolvedFindings": {
 "type": "boolean"
 },
 "annotationDisagreementTypes": {
 "type": "array",
 "items": {
 "type": "string"
 }
 }
 },
 "minProperties": 1
 },
 "action": {
 "$ref": "common.schema.json#/$defs/OperationalAction"
 },
 "terminal": {
 "type": "boolean"
 },
 "explanationTemplate": {
 "type": "string"
 },
 "target": {
 "$ref": "common.schema.json#/$defs/DecisionTarget"
 }
 }
 }
 },
 "defaultAction": {
 "$ref": "common.schema.json#/$defs/OperationalAction"
 },
 "tieBreakOrder": {
 "type": "array",
 "minItems": 1,
 "uniqueItems": true,
 "items": {
 "$ref": "common.schema.json#/$defs/OperationalAction"
 }
 },
 "confidencePolicy": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "requiresCalibrationForActions",
 "uncalibratedAction"
 ],
 "properties": {
 "requiresCalibrationForActions": {
 "type": "array",
 "uniqueItems": true,
 "items": {
 "$ref": "common.schema.json#/$defs/OperationalAction"
 }
 },
 "uncalibratedAction": {
 "$ref": "common.schema.json#/$defs/OperationalAction"
 },
 "minimumCalibrationCasesPerSlice": {
 "type": "integer",
 "minimum": 1
 }
 }
 }
 }
 },
 "humanReviewPolicy": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "maxInteractionsPerCase",
 "onlyAskIfDecisionChanging",
 "hideProvisionalDecision",
 "requireAmbiguityOption",
 "allowedQuestionTypes"
 ],
 "properties": {
 "maxInteractionsPerCase": {
 "type": "integer",
 "minimum": 0,
 "maximum": 1
 },
 "onlyAskIfDecisionChanging": {
 "type": "boolean"
 },
 "hideProvisionalDecision": {
 "type": "boolean"
 },
 "requireAmbiguityOption": {
 "type": "boolean"
 },
 "allowedQuestionTypes": {
 "type": "array",
 "uniqueItems": true,
 "items": {
 "type": "string",
 "enum": [
 "applicability",
 "instruction_precedence",
 "evidence_authority",
 "inference_permission",
 "severity",
 "valid_alternative",
 "rubric_ambiguity",
 "domain_expertise"
 ]
 }
 },
 "expertiseRoutingRules": {
 "type": "array",
 "items": {
 "type": "string"
 }
 }
 }
 },
 "feedbackPolicy": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "audiences",
 "maxItemsPerAudience",
 "includeValidatedStrengths",
 "validateRepairs",
 "priorityOrder"
 ],
 "properties": {
 "audiences": {
 "type": "array",
 "uniqueItems": true,
 "items": {
 "type": "string",
 "enum": [
 "attempter",
 "reviewer",
 "project_owner"
 ]
 }
 },
 "maxItemsPerAudience": {
 "type": "integer",
 "minimum": 1
 },
 "includeValidatedStrengths": {
 "type": "boolean"
 },
 "validateRepairs": {
 "type": "boolean"
 },
 "priorityOrder": {
 "type": "array",
 "minItems": 1,
 "uniqueItems": true,
 "items": {
 "type": "string",
 "enum": [
 "decisive",
 "critical",
 "major",
 "minor",
 "strength"
 ]
 }
 }
 }
 },
 "securityPolicy": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "treatCandidateContentAsUntrusted",
 "ignoreEmbeddedEvaluatorInstructions",
 "requireStructuredOutputs",
 "allowCandidateToOverrideRubric"
 ],
 "properties": {
 "treatCandidateContentAsUntrusted": {
 "type": "boolean"
 },
 "ignoreEmbeddedEvaluatorInstructions": {
 "type": "boolean"
 },
 "requireStructuredOutputs": {
 "type": "boolean"
 },
 "allowCandidateToOverrideRubric": {
 "type": "boolean"
 },
 "redactionRules": {
 "type": "array",
 "items": {
 "type": "string"
 }
 }
 }
 },
 "auditPolicy": {
 "type": "object",
 "additionalProperties": false,
 "required": [
 "retainExactSourceSnapshots",
 "retainPromptVersions",
 "retainModelRunMetadata",
 "retainHumanResolutions",
 "replayRequired"
 ],
 "properties": {
 "retainExactSourceSnapshots": {
 "type": "boolean"
 },
 "retainPromptVersions": {
 "type": "boolean"
 },
 "retainModelRunMetadata": {
 "type": "boolean"
 },
 "retainHumanResolutions": {
 "type": "boolean"
 },
 "replayRequired": {
 "type": "boolean"
 },
 "retentionDays": {
 "type": "integer",
 "minimum": 1
 }
 }
 },
 "metadata": {
 "type": "object",
 "additionalProperties": true
 },
 "decisionTargets": {
 "type": "array",
 "minItems": 1,
 "uniqueItems": true,
 "items": {
 "$ref": "common.schema.json#/$defs/DecisionTarget"
 }
 }
 }
}