Skip to main content

Verdict vocabulary

Every Trinitite-governed call — whether it routes through the Chat, Proxy, MCP Gateway, or CLI Firewall — returns exactly one of three outcomes. This is the contract your client code branches on.

The three outcomes

OutcomeMeaningWhat you receive
passedThe output is fully compliant with the active policy.The original output, unchanged, plus a receipt.
correctedA policy violation was detected and surgically repaired.An RFC 6902 JSON Patch describing the fix, plus the patched output and a receipt.
blockedA critical violation that could not be safely corrected.A 403-style refusal with a full forensic record. Do not use the original output.
{
"verdict": "corrected",
"guardian": "pii-redactor",
"policy_hash": "sha256:7f3a…",
"correction_diff": [
{ "op": "replace", "path": "/choices/0/message/content", "value": "Customer SSN: [REDACTED]" }
],
"receipt": {
"ledger_id": "led_01J9X…",
"latency_ms": 187,
"determinism_mode": "batch_invariant",
"chain_hash": "e3b0c4…"
}
}

correction_diff

When verdict is corrected, the response carries correction_diff: an RFC 6902 JSON Patch array. Each operation is typed by op:

opEffect
addInsert a value at the path.
removeRemove the value at the path.
replaceReplace the value at the path.
moveMove a value from one path to another.
copyCopy a value from one path to another.
testAssert a value before proceeding (used internally).

Apply the patch with any RFC 6902 library (fast-json-patch, jsonpatch, etc.). Trinitite already applies the patch to the returned output — the correction_diff is provided so you can audit, log, or replay the exact transformation.

Receipt fields

Every verdict — passed, corrected, or blocked — is hashed, signed, and Merkle-chained into the Glass Box Ledger. The receipt travels with the response:

FieldDescription
ledger_idThe ledger entry ID. Resolvable via the Logs and Public Verification endpoints.
latency_msEnd-to-end governance latency for this call.
policy_hashHash of the active policy at decision time. Proves which rules produced the verdict.
determinism_modeThe kernel mode that produced the verdict — batch_invariant by default.
chain_hashThe Merkle chain hash linking this verdict to the prior one.

Determinism guarantee

Under batch_invariant determinism, the same (input, guardian_version, policy_hash) triple always produces the same verdict, the same correction_diff, and the same chain_hash — byte-for-byte, across batches, across nodes, across restarts. This is what makes Trinitite verdicts replayable and auditable: a past decision can be re-executed bit-exactly and the resulting receipt will match.

See Architecture for the geometric model behind corrected, and Observability for the production correction_diff telemetry.


Chat endpoint — submit a conversation and a Guardian; receive a verdict. → Errors, rate limits & conventions — the error envelope and shared headers. → Webhooks — receive verdict events as they happen.