{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://xenopsychology.com/observatory/observation.schema.json","title":"Xenopsychology Observatory Observation Record","description":"Record-system v0.2.0 contract for versioned observation records. The public frontend exposes only records that separately satisfy public visibility, review approval, and publication gates.","type":"object","additionalProperties":false,"required":["schemaVersion","recordVersion","observationId","status","visibility","systemUnderTest","graphTargets","provenance","protocol","evidence","coding","measures","interpretation","claims","limitations","review","publication","lineage"],"properties":{"schemaVersion":{"const":"0.2.0"},"recordVersion":{"type":"integer","minimum":1},"observationId":{"type":"string","pattern":"^xobs-[a-z0-9][a-z0-9-]{4,}$"},"status":{"enum":["proposed","pilot","observed","replicated-same-system","replicated-cross-context","contested","superseded"]},"visibility":{"enum":["private","internal","public"]},"systemUnderTest":{"type":"object","additionalProperties":false,"required":["label","version"],"properties":{"entityId":{"type":["string","null"],"pattern":"^entity:"},"label":{"type":"string","minLength":1},"provider":{"type":["string","null"]},"model":{"type":["string","null"]},"version":{"type":"string","minLength":1}}},"graphTargets":{"type":"array","items":{"type":"string","pattern":"^(domain|concept|paper|entity):"},"uniqueItems":true},"provenance":{"type":"object","additionalProperties":false,"required":["observedAt","interface","protocolRevision"],"properties":{"observedAt":{"type":"string","format":"date-time"},"interface":{"type":"string","minLength":1},"protocolRevision":{"type":"string","minLength":1},"systemInstructionDisclosure":{"enum":["full","partial","withheld","not-applicable"]},"samplingParameters":{"type":"object"},"tools":{"type":"array","items":{"type":"string"}},"contextNotes":{"type":"string"},"evaluator":{"type":"string"}}},"protocol":{"type":"object","additionalProperties":false,"required":["protocolId","revision","objective","stimulus","repetitions","stoppingRule"],"properties":{"protocolId":{"type":"string","minLength":1},"revision":{"type":"string","minLength":1},"objective":{"type":"string","minLength":1},"stimulus":{"type":"string","minLength":1},"controls":{"type":"array","items":{"type":"string"}},"repetitions":{"type":"integer","minimum":1},"stoppingRule":{"type":"string","minLength":1}}},"evidence":{"type":"object","additionalProperties":false,"required":["completeness","artifacts"],"properties":{"completeness":{"enum":["complete","partial","redacted"]},"redactionNotes":{"type":"array","items":{"type":"string"}},"artifacts":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["id","kind","uri","access","description"],"properties":{"id":{"type":"string","minLength":1},"kind":{"enum":["response","transcript","tool-trace","stimulus","evaluator-notes","dataset","screenshot","other"]},"uri":{"type":"string","minLength":1},"access":{"enum":["public","withheld"]},"mediaType":{"type":["string","null"]},"sizeBytes":{"type":["integer","null"],"minimum":0},"description":{"type":"string","minLength":1},"withheldReason":{"type":["string","null"]}}}}}},"coding":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["dimensionId","outcome","coder"],"properties":{"dimensionId":{"enum":["goal-persistence","instruction-hierarchy-resolution","context-integration","semantic-transfer","memory-continuity","self-model-continuity","uncertainty-calibration","error-recognition-correction","social-model-updating","norm-rule-sensitivity","tool-planning","novel-generalization"]},"outcome":{"enum":["observed","not-observed","indeterminate","protocol-failure"]},"coder":{"type":"string","minLength":1},"notes":{"type":"string"}}}},"measures":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["dimensionId","metric","derivation"],"properties":{"dimensionId":{"enum":["goal-persistence","instruction-hierarchy-resolution","context-integration","semantic-transfer","memory-continuity","self-model-continuity","uncertainty-calibration","error-recognition-correction","social-model-updating","norm-rule-sensitivity","tool-planning","novel-generalization"]},"metric":{"type":"string","minLength":1},"value":{},"unit":{"type":["string","null"]},"derivation":{"type":"string","minLength":1},"comparisonSet":{"type":"string"},"missingDataTreatment":{"type":"string"}}}},"interpretation":{"type":"object","additionalProperties":false,"required":["summary","alternatives","confounds","uncertainty"],"properties":{"summary":{"type":"string"},"alternatives":{"type":"array","items":{"type":"string"}},"confounds":{"type":"array","items":{"type":"string"}},"uncertainty":{"type":"string"}}},"claims":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["class","statement","support"],"properties":{"class":{"enum":["descriptive-observation","derived-behavioral-pattern","comparative-statement","mechanistic-hypothesis","phenomenological-claim"]},"statement":{"type":"string","minLength":1},"support":{"type":"string","minLength":1},"independentSupportRequired":{"type":"boolean"},"independentSupport":{"type":"array","items":{"type":"string"}}}}},"limitations":{"type":"array","items":{"type":"string"}},"review":{"type":"object","additionalProperties":false,"required":["status","reviewers"],"properties":{"status":{"enum":["draft","pending","approved","rejected"]},"reviewers":{"type":"array","items":{"type":"string"}},"reviewedAt":{"type":["string","null"],"format":"date-time"},"notes":{"type":"string"}}},"publication":{"type":"object","additionalProperties":false,"required":["public","redactions"],"properties":{"public":{"type":"boolean"},"publishedAt":{"type":["string","null"],"format":"date-time"},"publicTitle":{"type":["string","null"]},"redactions":{"type":"array","items":{"type":"string"}}}},"lineage":{"type":"object","additionalProperties":false,"required":["supersedesVersion"],"properties":{"supersedesVersion":{"type":["integer","null"],"minimum":1},"correctionOf":{"type":["string","null"]},"note":{"type":"string"}}}},"allOf":[{"if":{"properties":{"visibility":{"const":"public"}}},"then":{"properties":{"review":{"properties":{"status":{"const":"approved"}}},"publication":{"properties":{"public":{"const":true}},"required":["publishedAt"]}}}},{"if":{"properties":{"recordVersion":{"minimum":2}}},"then":{"properties":{"lineage":{"properties":{"supersedesVersion":{"type":"integer","minimum":1}}}}}}]}