dsubstrate

Ship the audit document, not the dashboard.

Every company is shipping AI agents that take real action — billing, support, code, infra. The problem is when those agents need a SOC 2 or HIPAA audit. Today that takes 6 months: agent does something, engineering scrapes logs, compliance writes PDFs, an auditor reads the PDFs and writes their own report.

dsubstrate replaces the middle of that loop. Every meaningful decision an agent makes lands in a Postgres row with a structured prediction and a verifier. Three independent AI models — Claude, Codex, Gemini — sign each decision with confidence and rationale. Disagreement stays in the database, not collapsed to a vote. At audit time, four NIST-OSCAL JSON documents come out and pass NIST's own schema validation. The auditor ingests the JSON directly. No PDF.

The 4-document audit bundle

This is a real bundle, generated from a synthetic ACME SOC 2 CC6.1 quarterly access review prediction. Every file validates against NIST's published 1.1.2 JSON schemas.

How it works


   ┌────────────────┐       ┌────────────────┐       ┌────────────────┐
   │   AI agent     │──────▶│ Identity layer │──────▶│   dsubstrate   │
   │  (any LLM,     │       │ (Fabriq, Okta, │       │                │
   │   tool-using)  │       │  audit log)    │       │  decisions ───┐│
   └────────────────┘       └────────────────┘       │  signatures   ││
                                                     │  residuals    ││
                                                     │  failures     ││
                                                     └───────┬───────┘│
                                                             │        │
                                                  emit + validate     │
                                                             ▼        │
                                              ┌─────────────────────┐ │
                                              │  OSCAL 1.1.2 JSON   │ │
                                              │  Catalog + Profile  │◀┘
                                              │  + SSP + AR         │
                                              └──────────┬──────────┘
                                                         ▼
                                                   3PAO assessor
                                                  (no translation)
  

What ACME's 3 AI signers said about the synthetic prediction

SignerVerdictConfidenceWhy
Claudeinconclusive0.95verifier_fn not implemented; unfalsifiable here
Codexinconclusive0.93no Okta/IAM artifacts provided
Geminifail1.00predicted date (2026-01-31) is in the past — invalid prediction

dsubstrate refused to rubber-stamp the synthetic claim. Gemini caught a date-validity issue the other two missed; that minority verdict is preserved in the audit trail forever, queryable via SELECT validated_correct FROM decision_signatures. This is the substrate's "disagreement-is-data" primitive.

Why now

Status today