Demos
Demo: shadow evaluation — candidate ALLOW→BLOCK divergence, no production change
core.eve_sdk (an EVE(...) object with govern_* methods). That module is not present in the current repository and is not published on any registry, so these snippets raise ModuleNotFoundError if run. They are kept because they show the intended governance flow. For code that runs today, use the published client: pip install eve-coreguard, then from eve_coreguard import CoreGuardClient and call client.evaluate(...), with offline evidence checking via client.verify_evidence(...) or the standalone verify_decision_record. See the CoreGuard integration guide and the Python SDK reference.Authenticated customers can evaluate candidate policies in shadow — live or by historical replay — and see divergences without changing the authoritative decision. This demo replays a set of past decisions against a stricter candidate policy, surfaces a case where the active policy ALLOWed but the candidate would BLOCK, and confirms the authoritative verdict is unchanged.
Synthetic replay fixtures. No production credentials.
Readiness
- Authenticated shadow-policy evaluation: authenticated pilot-ready (
PILOT_READY). - Policy replay + signed divergence reports: PILOT_READY.
- Python;
hostedandembedded(service)modes.
Setup
# demo_shadow_evaluation.py — synthetic fixtures only
from core.eve_sdk import EVE
IDENT = {"tenant_id": "acme", "principal_id": "agent-1", "session_id": "sess-1"}
production_changes = [] # must remain empty — shadow cannot change production
# Synthetic historical decisions to replay (already-decided; no re-execution of tools).
history = [
{"tool": "loan_approval", "arguments": {"amount": 1000},
"context": {"credit_score": 760, "debt_to_income": 0.15}, "active_action": "ALLOW"},
{"tool": "loan_approval", "arguments": {"amount": 40000},
"context": {"credit_score": 610, "debt_to_income": 0.44}, "active_action": "ALLOW"},
{"tool": "loan_approval", "arguments": {"amount": 90000},
"context": {"credit_score": 590, "debt_to_income": 0.51}, "active_action": "ALLOW"},
]
eve = EVE(policy="lending_v1", mode="embedded")
Code
# Candidate policy is stricter (lower DTI ceiling). Evaluate it in SHADOW.
shadow = eve.shadow(candidate_policy="lending_v1_strict") # non-authoritative
report = shadow.replay(history) # replays decisions; does NOT re-run any tool
# Surface ALLOW (active) -> BLOCK (candidate) divergences.
divergences = [d for d in report.divergences
if d.active_action == "ALLOW" and d.candidate_action == "BLOCK"]
print("ALLOW->BLOCK divergences:", len(divergences))
for d in divergences:
print(" ", d.arguments, "candidate:", d.candidate_action, d.reason_codes)
# The authoritative decision is unchanged: shadow cannot alter the active verdict.
assert report.authoritative_changed is False
assert len(production_changes) == 0, "shadow must not change production"
Expected decision / divergence
| Historical case | Active verdict | Candidate verdict |
|---|---|---|
amount=1000, DTI 0.15 |
ALLOW | ALLOW (agree) |
amount=40000, DTI 0.44 |
ALLOW | BLOCK (divergence) |
amount=90000, DTI 0.51 |
ALLOW | BLOCK (divergence) |
The active policy remains authoritative throughout; the candidate verdicts are modeled, not applied.
Expected evidence
A signed shadow report (v2, jcs-1) with divergence classes and modeled-effect estimates:
{"report": "shadow_v2",
"agreement_permille": 333,
"divergence_by_class": {"allow_to_block": 2},
"critical_regressions": 0,
"authoritative_changed": false,
"certificate": {"signature": "kms-ecdsa-p384-...", "canon": "jcs-1"}}
Rates are carried as integer permille (jcs-1 supported value domain).
Verification command
from core.eve_sdk import verify_evidence
v = verify_evidence("shadow_report", report.certificate, expected_tenant="acme")
assert v["valid"], v.get("reason")
print("verify:", v["valid"]) # -> True
Zero-side-effect assertion
production_changes is empty and report.authoritative_changed is False. Replay reads past
decisions and computes candidate verdicts; it re-runs no tool and never activates a policy. The
active verdict is untouched.
Cleanup
production_changes.clear() # nothing was added; symmetry only
No external state created.
Limitations
- Shadow evaluation is structurally non-authoritative and cannot alter the active verdict; promotion is dry-run only and never activates a production policy.
- Divergence estimates are modeled effects from replay/sample, explicitly not observed production outcomes.
- PILOT_READY, not production.