Skip to content

Governance · Guardrails · Lineage

Governance you can replay

We build the control plane between your models and your business: guardrails that enforce policy before side effects, a hash-chained ledger that records every decision, and idempotency and replay so any output can be reproduced and defended in front of an auditor.

Guardrail plane

Guardrails that run before side effects

Guardrails are a plane, not a prompt. Each check is a separately versioned component with its own tests, thresholds and ledger entry — so you can prove which policy was in force when a decision was made.

  1. 01 · Request

    • Identity + entitlement
    • Idempotency key

    Authenticated actor, scoped tool permissions, request canonicalized and keyed.

  2. 02 · Pre-inference

    • PII redaction
    • Jailbreak classifier
    • Policy match

    Inputs are cleaned and classified before any model sees them.

  3. 03 · Inference

    • Pinned model + prompt version

    The model runs against a context bundle addressed by hash.

  4. 04 · Post-inference

    • Grounding check
    • Toxicity filter
    • Confidence floor

    Outputs are checked against sources and calibrated thresholds.

  5. 05 · Commit gates

    • Spend gate
    • Refusal / escalation

    Side effects above limits or below confidence route to a human.

  6. 06 · Ledger

    • Verdicts + hash appended

    Every verdict is written to the decision record before the action returns.

  • Pre-inference

    Policy checks before a token is spent

    Requests are matched against versioned policy-as-code (OPA/Rego or Cedar) keyed on actor, intent and data class. No matching allow rule, no inference — and the denial is ledgered with the policy version that produced it.

  • Post-inference

    Output validation against rules and sources

    Outputs must parse against a JSON schema, every factual claim must resolve to a retrieved chunk ID, and domain rules run last — for example, adverse-action reason codes on any credit decline.

  • Data protection

    PII redaction at the boundary

    Checksum-validated detectors (SSN, PAN, MRN) plus an NER model tokenize sensitive spans into a vault before inference. The model, the prompt cache and the logs only ever see tokens.

  • Adversarial

    Jailbreak and injection classifiers

    A fine-tuned classifier scores user prompts and retrieved documents for role-override and indirect-injection patterns. Above threshold, the input is quarantined; a red-team corpus runs as a regression suite on every classifier update.

  • Refusal logic

    Refusals as policy outcomes

    A refusal carries a reason code, a user-safe message and an escalation route, and is written to the ledger like any other decision — so refusal rates can be monitored and audited, not guessed at.

  • Calibration

    Confidence floors

    Scores are temperature-calibrated on held-out data. Below the per-use-case floor (0.72 in the ledger sample) the decision escalates to a named reviewer instead of executing.

  • Side effects

    Spend and action gates

    Tool calls with monetary or irreversible effects check per-actor budgets and per-action limits at commit time. Over the limit, the action waits for a second approver whose attestation is ledgered.

Auditing

Audit evidence as a by-product of running

If evidence has to be reconstructed after the fact, it isn't evidence. We design systems so that the audit trail is written at decision time, sealed, and exportable without engineering help.

  • Storage

    Immutable, append-only ledger

    Ledger segments land in WORM object storage — S3 Object Lock in compliance mode, Azure immutable blob policies or GCS bucket lock — and the chain tip is periodically anchored to a separate account the application cannot write to.

  • Evidence

    Evidence packs on demand

    One call assembles a decision's record, its context bundle by hash, guardrail verdicts, reviewer attestation and replay transcript, sealed with a SHA-256 manifest.

  • Accountability

    Reviewer attestations

    Reviewers sign the exact ledger hash they approved or overrode with a KMS-held key bound to their identity, so an approval can never be re-attached to a different record.

  • Export

    Audit export formats

    JSON Lines for evidence tooling, CSV for auditors' workpapers, Parquet for your lakehouse. Every export states the chain tip it was verified against, so recipients can re-verify independently.

Evidence pack · one per decision
evidence/dcn_c08df8f4ac20/
├── record.json           # ledger entry, prevHash and ledgerHash
├── context.bundle.json   # retrieved chunks, addressed by contextHash
├── guardrails.json       # each verdict + pinned policy version
├── model.json            # model id, prompt template hash, parameters
├── attestation.sig       # reviewer signature over ledgerHash
├── replay.log            # deterministic replay transcript
└── manifest.sha256       # digest of every file above

Decision lineage & ledgering

Every output knows where it came from

At commit time each decision records what it saw, which checks it passed, who reviewed it and which decision it built on. Those parent links form a lineage graph you can walk in either direction: upstream to explain an output, downstream to find everything a bad input touched.

Context hash
SHA-256 of the exact retrieved bundle the model saw — replay reloads by hash, not by re-running retrieval.
Model & prompt version
Pinned model identifier, prompt template hash and decoding parameters.
Guardrail verdicts
Every check that ran, its result and the policy version that produced it.
Parent decision
The upstream decision whose output this one consumed — the edge that builds the lineage graph.
Reviewer
The human who attested, when a floor, flag or spend gate required one.
Idempotency key
SHA-256 of the canonical request, so retries resolve to the same entry.

Chain intact240 recordstip 8,442,109

Synthetic demo data
Matches any substring of the decision ID, actor, model, context hash, ledger hash or parent ID.

240 records

Synthetic decision ledger, 240 records, sorted by height descending. Select a decision ID to open lineage and replay.
Context hashLedger hashParent
2026-09-24 16:01:43Z#8,442,109foia-redaction-agentfederalxgb-risk-v129597…855c2 · passexecuted0.924a.okaforfaae…9583
2026-09-24 16:00:55Z#8,442,108fraud-triage-agentfintechbedrock/llama-4-70b-ftd678…d1e43 · passescalated0.624j.lindqvist0f89…aa6croot
2026-09-24 16:00:00Z#8,442,107meter-anomaly-agentenergyclaude-opus-5-5f3bb…8fd24 · blockedrejected0.831m.reyesd48f…e927root
2026-09-24 15:59:04Z#8,442,106credit-limit-agentfintechclaude-sonnet-52d7b…ac883 · passescalated0.616j.lindqvist4678…f567root
2026-09-24 15:58:02Z#8,442,105contract-clause-agentfederalbedrock/llama-4-70b-ftfd99…2d704 · blockedrejected0.581m.reyesa1b4…4502
2026-09-24 15:57:49Z#8,442,104foia-redaction-agenthealthcarebedrock/llama-4-70b-ft81a3…b0783 · passexecuted0.769—d359…9677
2026-09-24 15:56:21Z#8,442,103dispatch-optimizerenergyclaude-sonnet-5baa8…f4152 · passrouted0.884—5fb7…f6edroot
2026-09-24 15:55:56Z#8,442,102credit-limit-agentfintechbedrock/llama-4-70b-ft34be…a4f34 · passescalated0.622r.haddad0c73…55ff

Open any decision to walk its lineage graph and replay it. Full explorer and mechanism notes →

Find out what your AI decided last quarter

If you can't answer that question for a single decision today, start with a Systems Assessment. We map every decision path, score its evidence trail against your regime, and hand you a ranked remediation plan.

Idempotency

Exactly-once decisions, even when everything retries

Agents retry. Gateways time out. Queues redeliver. Without an idempotency key, a retried “raise this credit limit” executes twice. We derive the key from the request itself — SHA-256 of the canonical {actor, intent, inputs} — so a duplicate resolves to the ledger entry that already exists and returns its recorded outcome.

Try it: submit the request, submit it again, then change the account or the amount. Same inputs, same key, one execution. Any change to the inputs produces a new key and a new entry. The store here is synthetic and lives only in this page.

Intent · adjust_credit_limit

Idempotency key = SHA-256(canonical request)

{"actor":"credit-limit-agent","inputs":{"account":"ACCT-2231","limitUsd":12000},"intent":"adjust_credit_limit"}

eeba88dd4b924679e1e8437dccea122648a97b8ffaa3295c391b76d4cabcab08new key

  1. 01 (pending)Canonicalize {actor, intent, inputs}
  2. 02 (pending)SHA-256 → idempotency key
  3. 03 (pending)Look up key in idempotency store
  4. 04 (pending)Execute once, or return the recorded outcome

Requests

0

Executions

0

Deduplicated

0

Ledger entries (synthetic)

Empty. Submit the request to execute it once and append an entry.

Attempt log

No attempts yet.

Readiness mapping

Mapped to the frameworks your auditors use

A readiness mapping, not a certification. We map each mechanism to the control objectives it supports so assessors start from evidence rather than interviews. Your auditor determines applicability and sufficiency.

Readiness mapping of Earp Strategic mechanisms to SOC 2 Trust Services Criteria, ISO/IEC 42001 clauses and Annex A, NIST AI RMF functions and EU AI Act articles. Indicative references, not a certification.
MechanismSOC 2 (TSC)ISO/IEC 42001NIST AI RMFEU AI Act
Hash-chained decision ledgerAppend-only, tamper-evident record of every decision and its inputsCC7.2, CC4.19.1; Annex A.6 (event logging)GOVERN 1 · MEASURE 3Art. 12 record-keeping
Deterministic replayRe-derive any output from recorded, hash-addressed inputsCC7.3, CC7.4, PI1.39.1, 10.2MEASURE 2 · MANAGE 4Art. 12; Art. 15 accuracy & robustness
Guardrail plane (pre-/post-inference)Policy checks, classifiers and thresholds enforced before side effectsCC3.2, CC7.26.1, 8.3MANAGE 1 · MANAGE 2Art. 9 risk management; Art. 15
PII redaction & PHI minimum-necessarySensitive fields removed or tokenized before inference and loggingC1.1; Privacy criteriaAnnex A.7 (data for AI systems)MAP 4 · MEASURE 2Art. 10 data governance
Human review & reviewer attestationsNamed reviewer signs the ledger hash they approved or overrodeCC1.3, CC7.35.3; Annex A.3 (roles & responsibilities)GOVERN 2 · MANAGE 2Art. 14 human oversight
Idempotency keysEach business intent executes exactly once, even under retriesPI1.2, PI1.38.1MANAGE 2Art. 15 robustness
Eval-gated model & prompt promotionGolden-set and guardrail regression suites block unsafe changesCC8.18.1; Annex A.6 (verification & validation)MEASURE 1 · MEASURE 2Art. 15; Art. 17 quality management
Evidence packs & audit exportPer-decision bundle with signed manifest; JSONL, CSV and Parquet exportCC2.1, CC4.17.5, 9.2GOVERN 1 · GOVERN 4Art. 11 technical documentation; Art. 12
Risk tiering & impact assessmentEach use case classified, with controls scaled to its tierCC3.26.1, 8.4 (AI system impact assessment)MAP 1 · MAP 5Art. 9
Drift & SPC monitoringControl charts on quality, refusal and guardrail-hit rates with alertingCC7.2, CC4.19.1MEASURE 3 · MANAGE 4Art. 72 post-market monitoring; Art. 15

References are indicative: SOC 2 Trust Services Criteria (2017, revised points of focus), ISO/IEC 42001:2023 clauses and Annex A control areas, NIST AI RMF 1.0 functions and categories, and Regulation (EU) 2024/1689 articles for high-risk systems. Obligations under the EU AI Act depend on your role and your system's risk classification.

Book a Systems Assessment

Two weeks, fixed scope. We map every model, prompt, data flow and decision path you run today, score them against your compliance regime, and hand you a ranked remediation plan with named mechanisms — not a slide deck.