core/demos/epistemic_truth_state/schema.json
Shay 4c64328884 fix(demo): harden epistemic truth-state authority — sealed corpus + entailment-decided inference
Two-pass hardening of the #690 demo so no epistemic state is proposer-mintable:

Pass 1 (sealed corpus, from the reconciliation pass):
- evidence items are references only (evidence_id + content_sha256) resolved
  against a committed content-addressed corpus (evidence_corpus.json)
- support derived from committed subject/predicate match; independence from
  distinct provenance_root values; proposer support/independence labels are
  rejected by the closed schema
- evidence-strength taxonomy (substrate-capability vs interface-contract) in
  PUBLIC-DEMO-ROADMAP / DEMO-PACKAGING-CHECKLIST; position-paper refinements

Pass 2 (entailment-decided inference, closes a live false-status hazard):
- the merged inferred leg required only that premise IDs resolve — a claim
  with no support citing one unrelated record as a premise was assigned
  'inferred' (empirically confirmed). inferred is now decided by
  generate.proof_chain.entail (sound+complete ROBDD) over resolved corpus
  premises, cross-checked against the independent truth-table oracle
  (evals.deductive_logic.oracle, no shared code); proof keys + oracle verdict
  in the trace; disagreement => defensive refusal; refutation => contradicted
- committed adversarial scenario unrelated-premise-still-undetermined proves
  the attack now lands on undetermined
- corpus seal (corpus_sha256) pinned into every evaluated trace; scope
  refusals no longer consult the corpus; corpus cache hands out copies;
  claim subject/predicate constrained to atom-compatible snake_case
- .gitignore: private packet dir, agent worktrees, tooling artifacts

Validation: 30 demo tests; 96 across all three demo suites; 7/7 scenarios
double-run byte-identical; 61 architectural invariants green.
2026-06-11 21:25:08 -07:00

178 lines
5.1 KiB
JSON

{
"name": "core.epistemic_truth_state.review",
"title": "CORE epistemic truth-state authority demo",
"description": "Submit one model-style claim proposal to CORE's local deterministic epistemic-state authority. CORE validates a closed payload, resolves sealed evidence references by content hash, ignores any proposer-supplied proposed_state and trace hash, decides the bounded-inference leg with the sound-and-complete ROBDD entailment engine cross-checked against an independent truth-table oracle, assigns a typed epistemic state drawn from the canonical core.epistemic_state taxonomy, derives normative clearance, builds an evidence ledger, and returns assigned | refused | invalid plus a deterministic trace artifact. The proposer cannot set the assigned state, status, clearance, evidence ledger, authority path, trace hash, support labels, or independence labels — and cannot mint inferred by citing records that merely exist, because inferred requires an actual entailment proof.",
"inputSchema": {
"type": "object",
"properties": {
"request_id": {
"type": "string",
"pattern": "^[A-Za-z0-9._-]{1,64}$"
},
"scenario_id": {
"type": "string",
"pattern": "^[a-z0-9._-]{1,64}$"
},
"proposer": {
"type": "object",
"properties": {
"lane": {
"type": "string",
"enum": ["frontier_fixture", "local_fixture"]
},
"model_family": {
"type": "string",
"enum": ["model_style_proposer"]
},
"proposal_id": {
"type": "string",
"pattern": "^[A-Za-z0-9._-]{1,64}$"
},
"proposed_state": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"trace_hash": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
}
},
"required": ["lane", "model_family", "proposal_id"],
"additionalProperties": false
},
"claim": {
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"domain": {
"type": "string",
"pattern": "^[a-z0-9._-]{1,64}$"
},
"subject": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"pattern": "^[a-z][a-z0-9_]*$"
},
"predicate": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"pattern": "^[a-z][a-z0-9_]*$"
}
},
"required": ["text", "domain", "subject", "predicate"],
"additionalProperties": false
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"properties": {
"evidence_id": {
"type": "string",
"pattern": "^[A-Za-z0-9._-]{1,64}$"
},
"content_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
}
},
"required": ["evidence_id", "content_sha256"],
"additionalProperties": false
}
},
"inference": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": ["bounded_deductive", "bounded_arithmetic"]
},
"premise_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9._-]{1,64}$"
}
}
},
"required": ["premise_ids"],
"additionalProperties": false
}
},
"required": ["request_id", "scenario_id", "proposer", "claim"],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": ["assigned", "refused", "invalid"]
},
"request_id": {
"type": ["string", "null"]
},
"scenario_id": {
"type": ["string", "null"]
},
"authority_path": {
"type": "array",
"items": {
"type": "string"
}
},
"decision_reason": {
"type": "string"
},
"assigned_state": {
"type": ["string", "null"]
},
"normative_clearance": {
"type": ["string", "null"]
},
"evidence_ledger": {
"type": "array",
"items": {
"type": "string"
}
},
"trace_hash": {
"type": "string"
},
"trace_summary": {
"type": "object"
},
"inference_basis": {
"type": ["array", "null"]
},
"question": {
"type": ["string", "null"]
},
"refusal_reason": {
"type": ["string", "null"]
},
"invalid_reason": {
"type": ["string", "null"]
}
},
"required": [
"status",
"request_id",
"scenario_id",
"authority_path",
"decision_reason",
"assigned_state",
"normative_clearance",
"evidence_ledger",
"trace_hash",
"trace_summary"
]
}
}