Design partners wanted
Product · Assurance

Prove your AI workflows followed the rules.
Every run, re-performable.

Pramaan re-checks recorded AI workflow runs against your declared business controls and issues a signed, tamper-evident verdict — that any auditor can independently re-perform.

Model risk & second-line validators Internal audit Engineering teams in banks
pramaan · verify live
$ pramaan verify --pack lending-v2.1 --run abc123f
Loading control pack lending-v2.1 (14 rules)…

✓ maker-checker-separation PASS · 12ms
✓ approval-before-action PASS · 8ms
✓ authority-limit-amount PASS · 11ms
✓ policy-version-match PASS · 6ms
✓ region-data-residency PASS · 9ms
✓ evidence-freshness PASS · 7ms
✓ contact-hour-rule PASS · 5ms
… 7 more rules checked

✓ PASS — 14 / 14 rules
sig ed25519:9a1c4f · sha256:a3f4c…b7e2 · 58ms
How it works

Three steps. One signed, re-performable verdict.

OTel captures what the AI did. emit() adds who approved what. State probes check the system of record. The same run + same pack always produces the identical verdict.

01 · Capture

Record every AI action and human decision

OTel traces capture what the AI did — model calls, tool invocations, retrieved documents. emit() SDKs record the human layer: who approved, who escalated, what business decisions were made. State probes check against your system of record.

OTel / OTLP Langfuse 3 & 4 emit() SDK Opik LiteLLM Legacy logs
02 · Verify

Re-perform the run against your control pack

The same run against the same versioned control pack always produces an identical result — byte for byte. This is not monitoring. An auditor can re-run the check independently, without access to your production systems, and reach the same verdict.

lending-v2.1.json 17 rule types Deterministic No outbound calls
03 · Attest

Issue a signed, tamper-evident verdict

Ed25519 signatures in in-toto/DSSE format. Each report is linked to the previous one via hash chain. Tampering at any point in the chain is visible. Export for audit, committee review, or CI/CD gate.

Ed25519 in-toto/DSSE Hash-chained PAdES / DSC CI exit codes
Core capabilities

Seven capabilities that make AI workflows auditable

Designed to close the gap between what an AI workflow says it does and what an auditor can independently verify it did.

Controls as code

Versioned control packs for lending, KYC, collections, support and fraud triage. 17 rule types covering every key BFSI obligation. Packs live in version control alongside your models — every change is diffed, reviewed, and approved before it affects a verdict.

Maker-checker separation Approval before action Authority limits by amount Correct policy & model version Region & data residency Evidence freshness Contact-hour rules 10 more rule types

Lending pack complete and ready for validation. KYC, collections, support and fraud packs are drafts — awaiting bank review before production use.

Re-performance, not monitoring

The same run against the same pack always produces the identical result, byte for byte. An auditor can re-run the check without access to your systems.

# Six months later, same run, same verdict
$ pramaan verify \
  --pack lending-v2.1 \
  --run  abc123f
✓ PASS — 14/14 · identical to original

Signed, hash-chained evidence

Ed25519 signatures in in-toto/DSSE format. Each report is linked to the previous one. Tampering is visible at any point in the chain.

report sha256:a3f4c…
prev   sha256:b7e2d…
sig    ed25519:9a1c…
format in-toto/DSSE

Honest verdicts

Four possible outcomes. No ambiguity. Missing evidence is never counted as a pass. This matters when preparing for regulatory examination.

PASS FAIL NOT APPLICABLE INDETERMINATE

Indeterminate = evidence present but inconclusive. Missing evidence never silently passes.

CI/CD gate

Pass, hold or block a release automatically via exit codes. Control checks run before deployment — not after the model is in production.

$ pramaan verify --pack lending-v2.1
✓ PASS (14/14 rules) · exit 0

$ pramaan verify --pack lending-v2.1
✗ FAIL (maker-checker)   · exit 1

Mutation testing

Inject violations — the same person acting as maker and checker — to prove your controls actually catch them. Run mutation tests in CI to prevent control regressions.

A control that passes on clean data but misses injected violations is not a control. Mutation testing is how you know the difference.

Replay

Re-run recorded workflows after a model update or prompt change. Receive a signed comparison report showing exactly which verdicts changed and why.

Current replay runs against a local simulator. Live LLM provider replay is on the roadmap.

Tamper-evidence

Tampering shows. Anywhere in the chain.

Each report is linked to the previous via SHA-256. Modify any block and every subsequent link breaks. Click "Tamper block 2" to see it.

Block #1 · run_a1b2c3
✓ PASS
a3f4c7d8e1b2…09f2
SHA-256 of this block
—
prev hash
›
Block #2 · run_d4e5f6
✓ PASS
b7e2d0f4a9c1…3a8e
SHA-256 of this block
a3f4c7d8e1b2…09f2
prev hash ← links to block #1
›
Block #3 · run_g7h8i9
✓ PASS
c9d1a3f7b2e4…7c1d
SHA-256 of this block
b7e2d0f4a9c1…3a8e
prev hash ← links to block #2
Governance workspace

A control plane for all three lines of defence

Every control, every approval and every conclusion is made by the right person — and the audit trail proves it.

First line · Business & engineering

Own the control packs

Propose changes. Submit runs for verification. "My work" queue shows open items and pending attestations.

lending-v2.2 draftPENDING REVIEW
run_j1k2l3 · verifyCOMPLETE
kyc-v0.8 draftDRAFT
Second line · Risk & compliance

Review before approving

Pack changes require diff-first review. Nobody approves their own work. Oversee validation engagements and sign conclusions.

lending-v2.2 diffNEEDS REVIEW
Engagement Q4-2026IN PROGRESS
Conclusion Q3-2026SIGNED
Third line · Internal audit

Independent re-performance

Re-perform any run without access to production systems. Read-only view of all verdicts, hash-chain intact.

Audit sample #12RE-PERFORMED
Audit sample #13VERIFIED
Audit sample #14IN QUEUE

Validation engagements

Define population window. Record findings. Track remediation. Run re-tests. Issue signed conclusion. Each engagement produces a committee-ready PDF with PAdES legal digital signatures via DSC certificates.

Retirement without breaking the record

When someone leaves, access ends immediately. Every verdict they signed continues to verify — the hash chain is intact, the signature remains valid. The audit trail outlives the employee.

@media(max-width:640px){[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important}}
Integrations

Fits where your AI stack already runs

OTel captures what the AI did. emit() adds who approved what. Both feed the same deterministic verification engine.

AI layer · what it did
OpenTelemetry (OTLP)files + receiver
Langfuse 3 & 4 (self-hosted)
Opik adapter
LiteLLM adapter
Legacy log import
Human layer · who approved
emit() · Python SDK
emit() · Java SDK
emit() · TypeScript SDK
State probes (system of record)

Records approvals, escalations and business decisions that OTel cannot see

Verify + Attest
Pramaan engine (no outbound calls)
Signed report (in-toto/DSSE)
CI gate (exit codes)
Committee PDF (PAdES/DSC)
Re-performable by anyone

"Tested with Langfuse 3 and 4 (self-hosted)" means exactly that. We have not tested against Langfuse Cloud or claimed Langfuse certification.

Security & trust

Deterministic and auditable by design

No outbound network calls

The verification engine makes zero outbound calls during a run. Verdicts cannot be influenced by external state.

PII redacted at ingest

Customer-held salt. PII is removed before reaching the verification engine. You control the redaction key.

Per-client data isolation

Runs, packs and verdicts are isolated at the storage layer. No cross-tenant data access is architecturally possible.

Strict browser security policy

CSP, HSTS and frame-ancestors restrictions enforced on all workspace endpoints.

Deterministic verification

Same run + same pack = identical verdict. Always. The verification function has no hidden state.

Open-source core

The verification engine's core logic is open source. Auditors can read exactly how verdicts are computed.

What we are not claiming yet
  • Customer deployments, bank acceptance or regulator endorsement. None exist yet. We are looking for design partners.
  • KYC, collections, support and fraud control packs are drafts awaiting bank review. Lending is the only completed pack.
  • Replay against live LLM providers. So far verified only against a local simulator.
  • Langfuse Cloud or Opik Cloud verification. Not yet tested against hosted services.
Ready to see it?

A 12-minute demo. No slides.

We show you the control pack, a clean PASS, inject a same-actor maker-checker violation to get BLOCK, demonstrate that tampering is detected in the hash chain, then re-perform the run from scratch.

Book a 12-minute demo
1. Load lending-v2.1 pack · show 14 rules · run clean workflow
   → PASS 14/14 · sig ed25519:9a1c…
2. Inject same-actor maker-checker violation
   → FAIL maker-checker-separation · exit 1
3. Tamper report hash · show chain break
   → INVALID sig · prev hash mismatch
4. Re-perform original run independently
   → PASS 14/14 · identical to original · bit-for-bit

Looking for design partners — banks and NBFCs with a validation or audit team ready to run a pilot. Talk to us →