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.
231 lines
6.4 KiB
JSON
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"
|
|
]
|
|
}
|
|
}
|