{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "vignette.p1_crisis_review_cases.v1", "title": "Vignette P1 synthetic crisis review cases", "type": "object", "additionalProperties": false, "required": [ "schema_version", "case_set_id", "version", "protocol_id", "protocol_version", "priority", "scope", "external_review_boundary", "content_safety", "official_source_scope", "case_decision_contract", "cases" ], "properties": { "schema_version": { "const": "vignette.p1_crisis_review_cases.v1" }, "case_set_id": { "const": "p1-crisis-review-cases" }, "version": { "type": "string", "minLength": 1 }, "protocol_id": { "const": "p1-suicide-ideation-response" }, "protocol_version": { "type": "string", "minLength": 1 }, "priority": { "const": "P1" }, "scope": { "type": "string", "minLength": 1 }, "external_review_boundary": { "const": "이 사례에는 임상 정답이 없으며 자동 검사는 외부 임상 검토와 승인을 대신하지 않는다." }, "content_safety": { "type": "object", "additionalProperties": false, "required": ["synthetic_only", "method_or_means_detail", "clinical_answer_included"], "properties": { "synthetic_only": { "const": true }, "method_or_means_detail": { "const": "forbidden" }, "clinical_answer_included": { "const": false } } }, "official_source_scope": { "type": "array", "minItems": 4, "uniqueItems": true, "items": { "enum": ["samhsa_safe_t", "nimh_youth_outpatient_bssa", "mohw_109", "nice_ng225"] } }, "case_decision_contract": { "type": "object", "additionalProperties": false, "required": ["allowed", "pending_value", "approved_rule", "conditional_rule", "rejected_rule"], "properties": { "allowed": { "const": ["pass", "conditional", "fail"] }, "pending_value": { "type": "null" }, "approved_rule": { "type": "string", "minLength": 1 }, "conditional_rule": { "type": "string", "minLength": 1 }, "rejected_rule": { "type": "string", "minLength": 1 } } }, "cases": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/case" } } }, "$defs": { "case": { "type": "object", "additionalProperties": false, "required": ["case_id", "title", "synthetic_scenario", "technical_invariants", "reviewer_assessment"], "properties": { "case_id": { "type": "string", "pattern": "^P1-CRISIS-[0-9]{3}$" }, "title": { "type": "string", "minLength": 1 }, "synthetic_scenario": { "type": "object", "additionalProperties": false, "required": ["speaker_context", "signal", "method_or_means_detail_present"], "properties": { "speaker_context": { "enum": ["persona", "counselor_question", "learner_real"] }, "signal": { "type": "string", "minLength": 1 }, "method_or_means_detail_present": { "const": false } } }, "technical_invariants": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": false, "required": ["invariant_id", "requirement"], "properties": { "invariant_id": { "type": "string", "pattern": "^[a-z0-9-]+$" }, "requirement": { "type": "string", "minLength": 1 } } } }, "reviewer_assessment": { "type": "object", "additionalProperties": false, "required": ["decision", "rationale", "reviewed_at"], "properties": { "decision": { "anyOf": [ { "type": "null" }, { "enum": ["pass", "conditional", "fail"] } ] }, "rationale": { "anyOf": [ { "type": "null" }, { "type": "string", "minLength": 1 } ] }, "reviewed_at": { "anyOf": [ { "type": "null" }, { "type": "string", "format": "date" } ] } } } } } } }