core/demos/proof_carrying_promotion/schema.json
Shay 8c40ee3f20 feat(demo): ADR-0218 PR D — proof-carrying coherence promotion demo
Local deterministic public evidence for the ratified PCCP capability:
proposer submits claim + proof candidate + status/confidence garbage; CORE
ignores proposer authority, fresh-reads curator-certified store state,
recomputes the proof under the pinned engine, and promotes/refuses only
through VaultStore.apply_certified_promotion. The trace proves the decision.

- demos/proof_carrying_promotion/{schema.json,authority.py,run_demo.py}:
  closed recursive schema (output fields unsuppliable at the root), the REAL
  decider (teaching.proof_promotion.certify_promotion) and the REAL owner —
  no demo-local promotion reimplementation. The local arena is rebuilt via
  VaultStore.from_dict over dict-literal metadata: demos/ is scanned by
  INV-21/INV-24/INV-29, and the demo adds no vault writer, no recall site,
  and no status-transition site (proven in tests with the invariants' own
  detectors).
- 8 fixtures + pinned expected artifacts: entailed-promotes,
  proposer-status-ignored, non-coherent-premise, uncertified-reading,
  tampered-certificate (fails byte replay), stale-premise-status (same
  honest certificate digest as the promoting run — live state is what
  differs), non-sequitur, invalid-state-smuggling (rejected before
  evaluation, authority_evaluated=false, null digest).
- Hardened runner per the #688/#690 pattern: default out/ dir, unsafe
  output roots refused, --write-expected explicit, double-run byte-identity
  enforced per fixture, scenario pass/fail summary.
- tests/test_proof_carrying_promotion_demo.py (26): expected-artifact
  conformance, tamper detection, proposer-garbage decision-invariance (incl.
  on the promotable setup), refused-cases-mutate-nothing, REFUTED-never-
  demotes, trace-hash folds certificate digest, forbidden-import/call scan
  (incl. uuid/random/time), INV-21/INV-29 allowlists pinned unchanged, no
  named-company/strategy terms.

No runtime turn integration; promotion remains SPECULATIVE->COHERENT only;
README carries the full honesty ledger.
2026-06-11 17:33:08 -07:00

231 lines
6.4 KiB
JSON

{
"name": "proof_carrying_coherence_promotion",
"title": "CORE proof-carrying coherence promotion demo",
"description": "Submit one model-style promotion proposal to CORE's local deterministic proof-carrying promotion authority (ADR-0218). The proposer contributes data only: any attached proof, status, confidence, or certificate text is recorded as ignored and never read by the decision path. CORE builds a local store arena from the fixture's curator-declared entries, fresh-reads certified readings and epistemic statuses, recomputes the entailment proof under the pinned deductive engine via teaching.proof_promotion.certify_promotion, and mutates only through VaultStore.apply_certified_promotion after independent replay re-verification. Output is promoted | refused | invalid plus a deterministic trace artifact whose hash covers the certificate digest.",
"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}$"
},
"proof": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"status": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"confidence": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"certificate": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"trace_hash": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
}
},
"required": ["lane", "model_family", "proposal_id"],
"additionalProperties": false
},
"store": {
"type": "object",
"properties": {
"entries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"entry_id": {
"type": "string",
"pattern": "^[A-Za-z0-9._-]{1,64}$"
},
"propositional_form": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"epistemic_status": {
"type": "string",
"enum": ["coherent", "contested", "speculative", "falsified"]
},
"reading_certified": {
"type": "boolean"
}
},
"required": [
"entry_id",
"propositional_form",
"epistemic_status",
"reading_certified"
],
"additionalProperties": false
}
},
"claim_entry": {
"type": "string",
"pattern": "^[A-Za-z0-9._-]{1,64}$"
},
"premise_entries": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9._-]{1,64}$"
}
}
},
"required": ["entries", "claim_entry", "premise_entries"],
"additionalProperties": false
},
"sabotage": {
"type": "object",
"properties": {
"tamper_claim_form": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"restate": {
"type": "object",
"properties": {
"entry_id": {
"type": "string",
"pattern": "^[A-Za-z0-9._-]{1,64}$"
},
"epistemic_status": {
"type": "string",
"enum": ["coherent", "contested", "speculative", "falsified"]
}
},
"required": ["entry_id", "epistemic_status"],
"additionalProperties": false
}
},
"required": [],
"additionalProperties": false
}
},
"required": ["request_id", "scenario_id", "proposer", "store"],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"status": {
"type": "string",
"enum": ["promoted", "refused", "invalid"]
},
"request_id": {
"type": ["string", "null"]
},
"scenario_id": {
"type": ["string", "null"]
},
"authority_path": {
"type": "array",
"items": {
"type": "string"
}
},
"decision_reason": {
"type": "string"
},
"promoted": {
"type": "boolean"
},
"claim_entry_id": {
"type": ["string", "null"]
},
"claim_entry_index": {
"type": ["integer", "null"]
},
"before_status": {
"type": ["string", "null"]
},
"after_status": {
"type": ["string", "null"]
},
"premise_entry_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"premise_entry_indices": {
"type": "array",
"items": {
"type": "integer"
}
},
"certificate_digest": {
"type": ["string", "null"]
},
"engine_pin": {
"type": ["string", "null"]
},
"trace_hash": {
"type": "string"
},
"trace_summary": {
"type": "object"
},
"proposer_ignored_fields": {
"type": "array",
"items": {
"type": "string"
}
},
"refusal_reason": {
"type": ["string", "null"]
},
"invalid_reason": {
"type": ["string", "null"]
}
},
"required": [
"tool",
"status",
"request_id",
"scenario_id",
"authority_path",
"decision_reason",
"promoted",
"certificate_digest",
"engine_pin",
"trace_hash",
"trace_summary",
"proposer_ignored_fields"
]
}
}