Skip to content

Commit 596d01c

Browse files
Create purity-assessment.schema.json
1 parent affb5a8 commit 596d01c

1 file changed

Lines changed: 268 additions & 0 deletions

File tree

Lines changed: 268 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,268 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"$id": "https://example.org/schemas/purity-assessment.schema.json",
4+
"title": "Purity Assessment Schema",
5+
"description": "Schema for validating purity assessment outputs in the Epicenter Preservation OS Protocol v0.1.",
6+
"type": "object",
7+
"required": ["purity_assessment"],
8+
"additionalProperties": false,
9+
"properties": {
10+
"purity_assessment": {
11+
"type": "object",
12+
"required": [
13+
"id",
14+
"epicenter_id",
15+
"assessed_at",
16+
"method",
17+
"version",
18+
"signals",
19+
"outputs",
20+
"review",
21+
"downstream_use"
22+
],
23+
"additionalProperties": false,
24+
"properties": {
25+
"id": {
26+
"type": "string",
27+
"minLength": 1
28+
},
29+
"epicenter_id": {
30+
"type": "string",
31+
"minLength": 1
32+
},
33+
"assessed_at": {
34+
"type": "string",
35+
"format": "date-time"
36+
},
37+
"method": {
38+
"type": "string",
39+
"enum": ["manual", "auto", "hybrid"]
40+
},
41+
"version": {
42+
"type": "string",
43+
"pattern": "^0\\.1\\.0$"
44+
},
45+
"assessor": {
46+
"type": "object",
47+
"additionalProperties": false,
48+
"properties": {
49+
"type": {
50+
"type": "string",
51+
"enum": [
52+
"human_review",
53+
"automated_system",
54+
"multi_wing_review",
55+
"hybrid_review"
56+
]
57+
},
58+
"system_id": {
59+
"type": "string"
60+
},
61+
"reviewer_notes": {
62+
"type": "string"
63+
}
64+
}
65+
},
66+
"signals": {
67+
"type": "object",
68+
"required": [
69+
"provenance_evidence_score",
70+
"author_declaration_score",
71+
"structural_originality_score",
72+
"revision_lineage_score",
73+
"citation_transparency_score",
74+
"ai_pattern_risk_score"
75+
],
76+
"additionalProperties": false,
77+
"properties": {
78+
"provenance_evidence_score": {
79+
"$ref": "#/$defs/signal_score"
80+
},
81+
"author_declaration_score": {
82+
"$ref": "#/$defs/signal_score"
83+
},
84+
"structural_originality_score": {
85+
"$ref": "#/$defs/signal_score"
86+
},
87+
"revision_lineage_score": {
88+
"$ref": "#/$defs/signal_score"
89+
},
90+
"citation_transparency_score": {
91+
"$ref": "#/$defs/signal_score"
92+
},
93+
"ai_pattern_risk_score": {
94+
"$ref": "#/$defs/signal_score"
95+
}
96+
}
97+
},
98+
"outputs": {
99+
"type": "object",
100+
"required": [
101+
"origin_purity_score",
102+
"ai_generated_ratio",
103+
"warning_flags"
104+
],
105+
"additionalProperties": false,
106+
"properties": {
107+
"origin_purity_score": {
108+
"$ref": "#/$defs/scored_output"
109+
},
110+
"ai_generated_ratio": {
111+
"$ref": "#/$defs/scored_output"
112+
},
113+
"warning_flags": {
114+
"type": "array",
115+
"items": {
116+
"type": "string",
117+
"enum": [
118+
"missing_provenance",
119+
"high_ai_pattern_similarity",
120+
"declaration_conflict",
121+
"low_confidence_score",
122+
"recursive_synthetic_risk",
123+
"origin_unclear",
124+
"review_required",
125+
"review_recommended",
126+
"royalty_readiness_blocked"
127+
]
128+
},
129+
"uniqueItems": true
130+
}
131+
}
132+
},
133+
"review": {
134+
"type": "object",
135+
"required": ["required", "recommended", "reason"],
136+
"additionalProperties": false,
137+
"properties": {
138+
"required": {
139+
"type": "boolean"
140+
},
141+
"recommended": {
142+
"type": "boolean"
143+
},
144+
"reason": {
145+
"type": "string"
146+
}
147+
}
148+
},
149+
"downstream_use": {
150+
"type": "object",
151+
"required": [
152+
"rag_indexing",
153+
"training_use",
154+
"royalty_readiness",
155+
"collapse_monitoring"
156+
],
157+
"additionalProperties": false,
158+
"properties": {
159+
"rag_indexing": {
160+
"$ref": "#/$defs/downstream_permission"
161+
},
162+
"training_use": {
163+
"$ref": "#/$defs/downstream_permission"
164+
},
165+
"royalty_readiness": {
166+
"type": "object",
167+
"required": ["status", "notes"],
168+
"additionalProperties": false,
169+
"properties": {
170+
"status": {
171+
"type": "string",
172+
"enum": [
173+
"not_ready",
174+
"review_ready",
175+
"ready",
176+
"blocked",
177+
"disputed"
178+
]
179+
},
180+
"notes": {
181+
"type": "string"
182+
}
183+
}
184+
},
185+
"collapse_monitoring": {
186+
"type": "object",
187+
"required": ["include", "notes"],
188+
"additionalProperties": false,
189+
"properties": {
190+
"include": {
191+
"type": "boolean"
192+
},
193+
"notes": {
194+
"type": "string"
195+
}
196+
}
197+
}
198+
}
199+
}
200+
}
201+
}
202+
},
203+
"$defs": {
204+
"signal_score": {
205+
"type": "object",
206+
"required": ["value", "basis"],
207+
"additionalProperties": false,
208+
"properties": {
209+
"value": {
210+
"type": "number",
211+
"minimum": 0,
212+
"maximum": 1
213+
},
214+
"basis": {
215+
"type": "array",
216+
"items": {
217+
"type": "string",
218+
"minLength": 1
219+
},
220+
"minItems": 1,
221+
"uniqueItems": true
222+
}
223+
}
224+
},
225+
"scored_output": {
226+
"type": "object",
227+
"required": ["value", "confidence", "interpretation"],
228+
"additionalProperties": false,
229+
"properties": {
230+
"value": {
231+
"type": "number",
232+
"minimum": 0,
233+
"maximum": 1
234+
},
235+
"confidence": {
236+
"type": "number",
237+
"minimum": 0,
238+
"maximum": 1
239+
},
240+
"interpretation": {
241+
"type": "string",
242+
"minLength": 1
243+
}
244+
}
245+
},
246+
"downstream_permission": {
247+
"type": "object",
248+
"required": ["allowed", "notes"],
249+
"additionalProperties": false,
250+
"properties": {
251+
"allowed": {
252+
"oneOf": [
253+
{
254+
"type": "boolean"
255+
},
256+
{
257+
"type": "string",
258+
"enum": ["conditional", "unknown", "requires_permission"]
259+
}
260+
]
261+
},
262+
"notes": {
263+
"type": "string"
264+
}
265+
}
266+
}
267+
}
268+
}

0 commit comments

Comments
 (0)