Request an architecture briefing

Product status

What runs today

The sealing architecture — an append-only sealed record with schema-enforced maker/checker separation — runs today with 85 passing proofs behind it; the AI judgment layer that will run inside it does not yet exist: no loan file is under review, and there are no customer deployments.

Built and proven now

  • The sealed record: every governed action appends to a per-tenant, tamper-evident hash chain, and the database refuses updates and deletes to that chain — even from its owner.
  • Separation of duties as a schema property: the maker who does the work and the checker who approves it hold separate database roles with no membership between them. A maker physically cannot seal its own work — the database refuses the write.
  • Provenance, enforced: the schema refuses an extraction that cannot say which document and page it read, refuses evidence with no model inference behind it, and refuses a verdict citing a rule version that does not exist.
  • Rules as versioned content: a rule can retire but never change, and every seal captures exactly which rule versions were live when the judgment was made.
  • Cost accountability: a worker supplies token counts; the kernel prices them. A worker that could state its own bill could understate it.
  • 85 passing proofs hold all of the above, across three suites: 33 seam proofs, 40 headless-loop proofs, 12 migration-runner proofs.

Not yet built

  • The AI judgment layer. The kernel stores predicates but never evaluates them — the checker's judgment is structural, not substantive, today. No loan is under review.
  • The model connection. No model call leaves the process; token counts in the ledger stay synthetic until a provider adapter lands.
  • The document lifecycle. Nothing yet binds a citation's document reference to stored document bytes — the schema enforces the anchor's shape; the bytes behind it remain a build item.
  • Customer deployments. There are none. Nothing on this site is a customer result, and no page claims otherwise.
This section restates the Wet Ink repository's own operating contract and gap register, without softening. When this section and any other page disagree, this section wins.

The enforcement model

The kernel treats the model as an untrusted client. It holds SELECT and nothing else. Nothing an agent believes changes what the database accepts. For a mortgage operation, this is AI governance expressed as schema rather than policy — the safeguard is a property of the system of record, not a paragraph in a binder.

Identity

Every mutation goes through a SECURITY DEFINER function — a function that runs with its owner's authority rather than the caller's — which decides what the caller may do by reading session_user, the login identity the connection actually authenticated with. It never trusts an identity supplied in the payload. The kernel derives the tenant from the login itself: a connection cannot assert its way across a boundary it cannot authenticate for. Four login roles exist with no membership between them — owner, maker, checker, and a second tenant's maker kept solely for isolation proofs.

The mutation path

There is exactly one write path: definer functions the kernel owns. The database refuses a direct insert to the event chain with permission denied — proven, not asserted. Row-level security scopes every tenant-owned table (13 of them, per the repository's gap register) to the tenant the login resolves to.

maker/checker— the separation between the actor who performs work and the distinct actor who approves it; reperformance— independently redoing work to verify it, the strongest class of audit evidence;tamper-evident— the chain makes alterations to history detectable at the exact position they occurred (the honest term; this is not "tamper-proof").

The chain

Every governed event appends to a hash chain: each entry carries its content hash and the prior entry's hash forward. verify_chain recomputes the chain and catches an edited row at its exact position. A trigger keeps the chain append-only — it refusesUPDATE and DELETE even from the owner, because the owner is exactly the person an auditor distrusts. This is a per-tenant hash chain in Postgres — nothing more exotic, and we say so.

finding recorded      reviewer A    insufficient evidence
superseding pass      reviewer A    not accepted — same actor as the original finding
superseding pass      reviewer A    not accepted — same actor as the original finding
seal                                blocked until a distinct reviewer resolves the finding
From the reference implementation this enforcement pattern was proven in — a separate, predecessor platform. Not Wet Ink product or customer history.

The readout shows anti-self-reversal: the actor who recorded a finding cannot also clear it. In the incident above, an AI reviewer attempted to record superseding passes over its own finding; the gate's same-actor exclusion kept the finding unresolved each time. The readout shows the system refusing — that is the point.

The lifecycle, with what the schema refuses at each step

Claim

claim_action binds a subject to a named actor under a lease. The subject is polymorphic from the first migration: a loan file today — first-mortgage purchase, refinance, HELOC, or home equity loan alike — a title commitment or settlement package the same way, and any attested judgment tomorrow.

Evidence

record_evidence refuses an extraction without a document-and-page anchor (EXTRACTION_UNANCHORED) and refuses evidence with no inference behind it (EXTRACTION_UNATTRIBUTED). An action cannot borrow provenance from another action.

Checks

record_check_result refuses a verdict citing a nonexistent rule version, and refuses a connection asserting an identity it does not hold (ACTOR_IDENTITY_MISMATCH). The maker may record its own check — and it does not count toward the gate.

Gate

The maker's own pass does not satisfy unambiguous_pass, and a subject with zero required checks does not pass either: absence of a blocker is not evidence of a pass.

Seal

The database refuses seal_action from the maker (RESOLVER_NOT_DISTINCT). A valid seal records exactly which rule versions were live. The chain then holds it, append-only.

Exact numbers

The proof suites

The counts above come from the suites' own stated counts in the Wet Ink repository, quoted as stated. The suites re-run against the same database — a proof that only passes against a freshly seeded database checks a coincidence, not an invariant, and construction found and strengthened two such assertions. The repository's gap register documents that standard.

The trust ladder — what is built, what is not

Rung 1 — recomputable record built
Content hashes plus an event chain. An auditor with an export can recompute the record and trust the math, not the screen. This is what exists today.
Rung 2 — external anchoring not built
Publishing chain-head digests outside our control. This answers "you hold the database — you could rewrite everything," and until it ships, our honest answer is: yes, and the chain would show it.
Rung 3 — signed attestations not built
Approvals signed with keys bound to enterprise identity, so "she approved it" becomes a signature, not a database row.
Rung 4 — trusted time not built
Independent timestamps, largely a consequence of rung 2.

The legal frame is the business-records reliability standard — a reliable, checkable process. We designed the record to exceed the bar lenders already clear with mutable logs: it makes reliability checkable by machine instead of by testimony. Cryptography does not replace that legal standard, and this site will never claim it does.

What comes next, stated as a roadmap

In order of intent, not a dated promise: the provider adapter (a real model call inside the enforcement boundary); the document lifecycle (cited bytes behind every anchor); the evaluation engine (predicates actually evaluated — the judgment layer itself); trust rungs 2 through 4. Roadmap items are build items. No page on this site claims any of them as running today, and this page is the reference for that boundary.