Compliance you can prove, not just claim.

The rules keep moving, the frameworks overlap, and proving what your AI actually did lands on people who already have a day job. Brutor answers from the one place the AI actually runs, the request path: every decision the gateway makes is sealed as signed evidence, each AI System’s obligations are worked out from what you declare about it, and the evidence exports in a form your auditor can check without trusting us.

This is the Compliance console on a live system: the Brutor Demo System, a loan pre-screening agent that is high risk under the EU AI Act, and the fraud-screening agent it depends on. Pick a framework at the top and every page shows that framework’s view of the same sealed evidence.

Brutor Admin Console, Compliance, Overview with the EU AI Act framework selected. Tabs: Overview, Frameworks, Systems, Obligations, Evidence Ledger, Human Oversight, Transparency, Reports, Incidents. Four tiles: witness health, latest head self-witnessed, no unwitnessed heads; record lag, median seal delay 0.0 seconds, max 2.9 seconds, 13,293 records; capture gaps 0; frameworks 2 of 11 enabled. Below, EU AI Act readiness per AI System for the last 30 days, noting composite classification. Brutor Demo Fraud Screener: evaluated high (declared minimal, via Brutor Demo System), profile declared and sealed, 3 obligations in force, 22 upcoming with the next on 2026-12-02, recomputed 5 of 14 met, head grade self-witnessed, latest daily report ready. Brutor Demo System: high, provider and deployer, declared and sealed, 3 in force, 22 upcoming, recomputed 9 of 16 met, self-witnessed, daily report ready.
Readiness per AI System under the EU AI Act, as the console shows it. Counts, never verdicts: <b>9 of 16 met</b>, not “compliant”, and the head grade says <b>self-witnessed</b> because the demo’s witness runs on the same machine. The honest numbers are the point.

two kinds of ai compliance

Two problems arrive under the same name.

01

The rules that now cover AI

GDPR, HIPAA, SOC 2, DORA, NIS2 and most sector rules were written before AI, but cover it too. Your existing obligations simply acquired a new surface: every prompt, every tool call, every agent action.

same obligations, new surface
02

The rules written for AI

The EU AI Act, ISO/IEC 42001, the NIST AI RMF, Colorado’s AI Act. Depending on your role and risk tier: classify each AI System, keep automatic logs, keep a human in the loop, tell people they are talking to an AI.

new obligations, a new unit of account

The second kind changes what you account for: the unit is no longer the model or the app but the AI System, with an owner, a purpose, a risk tier and a role. In Brutor it is a real object, which is why the same registry answers “what AI are we running?”, “who is accountable for it?” and “which rules apply to it, from when?”.


how it works

One evidence log. Every framework is data over it.

The frameworks word it differently, but they keep asking an AI System the same three questions: what did it do, who was in the loop, and can you prove the record is honest? So Brutor builds one evidence substrate on published standards, and reads every framework from it. Adding a jurisdiction is a catalog entry, not a new product.

The Brutor compliance evidence layers, with every layer highlighted. At the top, every governed verdict at the gateway (executed, errored, blocked, denied, awaiting a human, resolved, expired) across MCP tool calls, A2A sends, skill runs, model calls, approvals, run stops, contract promotions, portal AI notices and declarations. A standards-based core that knows no framework: 1, a sealed action record (RFC 8785 canonical JSON, COSE_Sign1 signature, RFC 9995 hash envelope, SCITT RFC 9943); 2, one Merkle log per tenant (RFC 6962) with signed tree heads; 3, independent witnesses (RFC 9943 receipts, RFC 3161 timestamps) with a grade that never goes up; 4, portable evidence bundles. Frameworks are data over the same log: 5, a shared resolver library producing statements as n of m with four bases (recomputed, judged, indicator, declared); 6, dated obligations and Evidence Reports for the EU AI Act, ISO/IEC 42001, SOC 2, HIPAA, GDPR, DORA, NIS2, NIST AI RMF, Colorado, Korea and Brazil. At the bottom: it can serve as evidence toward an obligation, never compliant, never certified.

01 / declare

Say which rules you answer to, and what each system is.

Enable the frameworks you are audited against, then give each AI System its compliance profile: who operates it, where, what data it touches, whether it talks to people or decides about them, and the facts each framework needs, such as the EU AI Act risk tier and your role. Every save is sealed as a declaration, so “what did you say this system was, and when?” has an answer.

Eleven frameworks, honestly labeled. The EU AI Act, ISO/IEC 42001, SOC 2, HIPAA and GDPR catalogs are checked against the published instruments. DORA, NIS2, the NIST AI RMF, Colorado, Korea and Brazil are there too, flagged in amber until they are, with a note to verify before relying on them. Each carries its retention floor and its incident deadlines.

Risk travels along dependencies. The demo’s fraud screener is declared minimal risk on its own. It contributes to a credit decision, so it is evaluated at high, the tier of the system that depends on it, and the console says why.

Brutor Admin Console, Compliance, Frameworks. A table of eleven frameworks with kind, jurisdiction, catalog version, retention floor, deadline rules, number of obligations and an enabled switch. EU AI Act, regulation, EU, catalog 2026-09, 183 days retention, deadlines death 10 days, standard 15 days, widespread 2 days, 30 obligations, on. ISO/IEC 42001:2023, standard, global, 15 obligations, off. SOC 2, attestation, US, 365 days, 10 obligations, off. HIPAA Security Rule, regulation, US, 2190 days, standard 60 days, 7 obligations, off. GDPR, regulation, EU, standard 72 hours, 8 obligations, on. DORA, NIS2 and NIST AI RMF each carry an amber note: not checked against the published instrument, verify against the published instrument before relying on this.
The framework registry: eleven catalogs as data, each with its retention floor and incident deadlines. The amber notes are the ones not yet checked against the published text, and the console will not let you forget it.
Brutor Admin Console, Compliance, Profiles. Two AI Systems, both with sealed profiles: Brutor Demo Fraud Screener, provider and deployer, minimal; Brutor Demo System, provider and deployer, high; frameworks eu-ai-act and gdpr. On the right, the compliance profile of the Brutor Demo System, declared by admin with a sealed declaration hash. Core: operator role builder, jurisdictions EU and SE, provider and deployer Borealis Consumer Finance, put into service 23 September 2026; sensitivity: personal data and financial data; behavior: interacts with natural persons, automated decisions about persons, two-phase actions; oversight assignment underwriter on duty. EU AI Act facts: regulated role provider and deployer, risk tier high. Below, documentation for the Brutor Demo System: an EU AI Act Annex IV template rendered from the contract, register, profile, bindings and evidence pointers, with two sealed exports for contract v4 and v1.
One system’s compliance profile: the neutral core every framework reads, plus the EU AI Act facts. Below it, the Annex IV technical documentation skeleton, rendered from what the platform holds and sealed on every export.

02 / seal

Every decision sealed as signed evidence, refusals included.

Each time the gateway decides (a tool call executed, a model call blocked by a guardrail, an action held for a human, a run stopped), it writes a sealed action record: canonical JSON, signed with standard COSE, naming the AI System, the contract version in force, the verdict and the effect. A log that only keeps successes cannot prove its gates ever fired, so refusals are sealed too.

Nothing personal enters the record. No user id, no API key, no session, no secrets, no health data: content appears only as digests. That one rule is what keeps the evidence erasable under GDPR and safe under HIPAA.

Framework tags ride along. The compliance tags you already use (such as eu_ai_act.high or a SOC 2 criterion) are stamped on the record as it is written, so each framework’s view filters the same log.

The Brutor compliance evidence layers, with the verdicts and the sealed action record highlighted. At the top, every governed verdict at the gateway (executed, errored, blocked, denied, awaiting a human, resolved, expired) across MCP tool calls, A2A sends, skill runs, model calls, approvals, run stops, contract promotions, portal AI notices and declarations. A standards-based core that knows no framework: 1, a sealed action record (RFC 8785 canonical JSON, COSE_Sign1 signature, RFC 9995 hash envelope, SCITT RFC 9943); 2, one Merkle log per tenant (RFC 6962) with signed tree heads; 3, independent witnesses (RFC 9943 receipts, RFC 3161 timestamps) with a grade that never goes up; 4, portable evidence bundles. Frameworks are data over the same log: 5, a shared resolver library producing statements as n of m with four bases (recomputed, judged, indicator, declared); 6, dated obligations and Evidence Reports for the EU AI Act, ISO/IEC 42001, SOC 2, HIPAA, GDPR, DORA, NIS2, NIST AI RMF, Colorado, Korea and Brazil. At the bottom: it can serve as evidence toward an obligation, never compliant, never certified.
Brutor Admin Console, Compliance, Evidence Ledger. Filters for system, verdict, kind, surface, run id and date window. A distribution strip: 23,640 sealed, 135 human-disposed, 2 systems; executed 12,806, planned 10,029, awaiting human 302, expired 250, errored 111, recorded 59, resolved 44, blocked 30, epoch boundary 9. A table of records, newest first, each with timestamp, verdict (executed or planned), kind decide, surface (mcp, llm, a2a), the effect (applications_set_recommendation, inference_completion, screening.fraud_sanctions, skills__run_script, bureau_get_report), system Brutor Demo System, chain relation (root or confirms) and sequence number.
The Evidence Ledger for the demo: twenty-three thousand sealed records in the verdict strip, including the 250 approvals that expired with nobody deciding and the 30 calls a guardrail blocked. Every one is on the record.

03 / prove

Proof anyone can check, without trusting us.

A signature proves who signed a record. It does not prove the signer kept every record, or did not quietly rewrite history. So every record is appended to one append-only Merkle log per tenant, the same structure Certificate Transparency uses, and its checkpoints are registered with independent witnesses.

Built on published standards, not a vendor format. RFC 8785, COSE (RFC 9052), SCITT (RFC 9943) and its receipts (RFC 9942), RFC 6962 logs and RFC 3161 timestamps. An auditor can check integrity with any COSE or SCITT library, the brutor-verify command line tool, or a verifier page that runs in the browser.

Grades never go up. A checkpoint is standalone until an independently operated witness countersigns it. A witness you run yourself makes it self-witnessed, never witnessed, which is exactly what the demo shows. Portable evidence bundles package the records, their proofs and receipts for a regulator, and list what is missing rather than leaving it out.

The Brutor compliance evidence layers, with the tenant log and its witnesses highlighted. At the top, every governed verdict at the gateway (executed, errored, blocked, denied, awaiting a human, resolved, expired) across MCP tool calls, A2A sends, skill runs, model calls, approvals, run stops, contract promotions, portal AI notices and declarations. A standards-based core that knows no framework: 1, a sealed action record (RFC 8785 canonical JSON, COSE_Sign1 signature, RFC 9995 hash envelope, SCITT RFC 9943); 2, one Merkle log per tenant (RFC 6962) with signed tree heads; 3, independent witnesses (RFC 9943 receipts, RFC 3161 timestamps) with a grade that never goes up; 4, portable evidence bundles. Frameworks are data over the same log: 5, a shared resolver library producing statements as n of m with four bases (recomputed, judged, indicator, declared); 6, dated obligations and Evidence Reports for the EU AI Act, ISO/IEC 42001, SOC 2, HIPAA, GDPR, DORA, NIS2, NIST AI RMF, Colorado, Korea and Brazil. At the bottom: it can serve as evidence toward an obligation, never compliant, never certified.
A sealed record dialog in the Evidence Ledger: record id, verdict executed and a Verify button. Log position: log id, sequence 23935, tree size 23936, key id, and the chain relation confirms with its parent record id. Inclusion proof: leaf index, tree size, root, leaf hash and the audit path of hashes. The Signed Statement in base64 with a Copy button. A green result: Recomputed, consistent. Statement signature recomputed under the producer key, effect mode confirmed; one informational finding that does not gate the result.
One record, opened: its place in the log, the inclusion proof, the signed statement to copy out, and <b>Verify</b>, which recomputes the id and the signature and runs the published semantic rules.
Brutor Admin Console, Evidence Ledger, Tenant log. Tree size 23,905, root, key id, latest head self-witnessed with 295 heads and 296 receipts, unwitnessed backlog none. Witnesses: brutor-witness (this deployment, same operator), scitt, platform, same operator, witnessed. A table of the latest 10 of 295 tree heads, each with size, root, issued time, grade self-witnessed and a receipt SCITT witnessed.
The demo’s tenant log: every tree head countersigned, and every one graded <b>self-witnessed</b>, because the witness runs on the same deployment. Add an independent witness and the grade can go up; nothing else can raise it.
The evidence programme on docs.brutor.ai

04 / obligations

Which rules apply, from when, and what the evidence says.

Brutor works out each system’s obligations from its declared profile, dated against the instrument, and shows each obligation against evidence statements: “every governed action produced a sealed record, 57 of 60”, never a rounded percentage. Each statement names its basis and states its own limit, what it does not show.

Four bases, never blended. Recomputed from the log, the ledger and the configuration. Judged by a governed model over a disclosed sample, with human agreement stated beside it. Indicator: movement worth a look, never a threshold. Declared: an operator statement, sealed but never counted as met. Missing inputs read not evaluable or undetermined, never met.

On every AI System, too. Each system’s own page has a Compliance tab: its sealed declaration, which obligations apply today and which arrive when, and how many sealed records stand behind them.

The Brutor compliance evidence layers, with the resolver library and the dated obligations it serves highlighted. At the top, every governed verdict at the gateway (executed, errored, blocked, denied, awaiting a human, resolved, expired) across MCP tool calls, A2A sends, skill runs, model calls, approvals, run stops, contract promotions, portal AI notices and declarations. A standards-based core that knows no framework: 1, a sealed action record (RFC 8785 canonical JSON, COSE_Sign1 signature, RFC 9995 hash envelope, SCITT RFC 9943); 2, one Merkle log per tenant (RFC 6962) with signed tree heads; 3, independent witnesses (RFC 9943 receipts, RFC 3161 timestamps) with a grade that never goes up; 4, portable evidence bundles. Frameworks are data over the same log: 5, a shared resolver library producing statements as n of m with four bases (recomputed, judged, indicator, declared); 6, dated obligations and Evidence Reports for the EU AI Act, ISO/IEC 42001, SOC 2, HIPAA, GDPR, DORA, NIS2, NIST AI RMF, Colorado, Korea and Brazil. At the bottom: it can serve as evidence toward an obligation, never compliant, never certified.
Brutor Admin Console, Compliance, Obligations board, with Record-keeping (automatic logging), Art 12, expanded: from 2027-12-02, 2 systems. Automatic recording of events over the system's lifetime. Systems in scope: Brutor Demo Fraud Screener, evaluated high (declared minimal), provider and deployer, applies; Brutor Demo System, high, provider and deployer, applies. Three evidence statements, each recomputed with its resolver and limit: every governed action produced a sealed record, including refusals (limit: integrity is not completeness, covers actions routed through the gateway only); the tenant log's tree heads covering the window were witnessed by an independent service (limit: a receipt shows inclusion at a tree size, and a same-operator witness is self-attested); approval chains are closed and epoch boundaries match the contract history (limit: checks only the chains the gateway opened).
EU AI Act Article 12, record-keeping: both demo systems in scope from December 2027, and the three recomputed statements it is shown against, each with its limit printed in plain words.
Brutor Admin Console, Compliance tab of the Brutor Demo System with the EU AI Act framework selected. Profile: operator role builder, regulated role provider and deployer, risk tier high, and a sealed declaration hash. Obligations: 7 in force and 23 upcoming as of 2026-09-29. Sealed records: 21,417, with a link to the ledger. In force: AI literacy (Art 4), prohibited practices (Art 5) and AI-interaction notice (Art 50(1)) apply; marking of synthetic content, deep fake disclosure, and the two GPAI duties are not applicable. Upcoming, each with its date: additional prohibited practices from 2026-12-02 applies, synthetic-content marking for legacy systems from 2026-12-02 not applicable, risk management system (Art 9) from 2027-12-02 applies.
The same obligations from the other side: the Compliance tab on the demo agent itself, with what applies today, what arrives when, and the sealed records behind it.

05 / oversight & transparency

The humans in the loop, and the people talking to it.

Two obligations every AI regulation shares: a person must be able to oversee the system, and people must know when they are dealing with an AI. Brutor records both as evidence, not as a checkbox.

Oversight, measured. Who is assigned, whether they can stop a run and suspend the system, and how many held decisions a human actually decided. The demo reads 17 of 300: not met, because most held loan decisions expired with nobody deciding. That is the finding a regulator would want to see, so the console shows it. Judged checks go through a blind review queue, with the model’s answer hidden until a person has graded it.

Transparency, sealed. The User Portal shows an AI-interaction notice before the first turn, in eight languages, and seals a record each time it does. Content-level marking such as watermarking is not provided; generated output carries an X-Brutor-AI-Generated header, and the console says so.

Brutor Admin Console, Compliance, Human Oversight for the last 30 days. Tiles: requested 302, decided by a human 17, lapsed 250, in flight 2. Oversight per AI System. Brutor Demo System: oversight assignment declared, underwriter on duty; override available, recomputed, met, 2 of 2 (1 administrator can stop runs, the system can be suspended, the assignment is declared), limit: shows the controls exist and are assigned, not that the people are competent; approvals decided by a human, recomputed, not met, 17 of 300, limit: records the fact of human disposition, not its quality; movement, indicator, no baseline yet. Brutor Demo Fraud Screener: override available met 2 of 2; approvals not evaluable, 0 of 0, no approval was requested. Below, the blind review queue and human agreement: no judged check is configured.
Human oversight on the demo: the controls exist and are assigned (met), but only 17 of 300 held decisions were decided by a person (not met). Each statement states its limit.
Brutor Admin Console, Compliance, Transparency. The portal shows the notice the effective config says and seals a record each time; content-level marking is not provided, outputs carry an X-Brutor-AI-Generated header only. Notice configuration for the tenant default: show the notice, surface both, text per locale for English, German, French, Italian, Spanish, Portuguese, Chinese and Japanese. Transparency evidence: people were told they were dealing with an AI before the first substantive turn, recomputed, not evaluable, 0 of 0, no portal conversation in the window. Stated limits: notice evidence counts conversations through the Brutor portal only; content-level marking is not provided; an exemption is shown as declared, never as evidence.
The AI-interaction notice, configured per language and sealed per conversation. Here it reads <b>not evaluable</b>: the demo agent works without a chat, so there was no conversation to count.

06 / report

Reports, bundles and incidents, ready for the regulator.

Daily rollups, weekly grades and monthly Evidence Reports per framework and per system, each sealed, bundled and computed under a named catalog version. Hand one over and it can be checked offline, by anyone.

Incidents, with their clocks. Open an incident and Brutor computes each framework’s reporting deadline for its classification (the EU AI Act’s 15, 10 and 2 days, GDPR’s 72 hours, DORA’s 4 hours, 72 hours and 30 days) and shows them as they approach. Deadlines are shown, not enforced, and every change is sealed.

And for the people running it, each AI System also gets an assurance report for management: whether it stayed inside the bounds its approvers signed. See how agents are assured.

The Brutor compliance evidence layers, with evidence bundles, obligations and reports highlighted. At the top, every governed verdict at the gateway (executed, errored, blocked, denied, awaiting a human, resolved, expired) across MCP tool calls, A2A sends, skill runs, model calls, approvals, run stops, contract promotions, portal AI notices and declarations. A standards-based core that knows no framework: 1, a sealed action record (RFC 8785 canonical JSON, COSE_Sign1 signature, RFC 9995 hash envelope, SCITT RFC 9943); 2, one Merkle log per tenant (RFC 6962) with signed tree heads; 3, independent witnesses (RFC 9943 receipts, RFC 3161 timestamps) with a grade that never goes up; 4, portable evidence bundles. Frameworks are data over the same log: 5, a shared resolver library producing statements as n of m with four bases (recomputed, judged, indicator, declared); 6, dated obligations and Evidence Reports for the EU AI Act, ISO/IEC 42001, SOC 2, HIPAA, GDPR, DORA, NIS2, NIST AI RMF, Colorado, Korea and Brazil. At the bottom: it can serve as evidence toward an obligation, never compliant, never certified.
Brutor Admin Console, Compliance, Reports for the EU AI Act. Generate: cadence monthly, scope estate-wide, any day in the period, regenerate in place, Generate; idempotent per period, monthly reports are emitted as an evidence bundle rooted at the report record. A list of reports: daily reports for 24 to 28 September 2026 for the Brutor Demo Fraud Screener, the Brutor Demo System and the whole estate, all ready, sealed with a hash (three on 25 September marked not sealed), weekly reports for the weeks of 14 and 21 September, and monthly reports for August 2026 awaiting countersignature.
Evidence Reports for the demo: daily, weekly and monthly, per system and estate-wide, each sealed and computed under catalog 2026-09. The three marked <b>not sealed</b> are shown, not hidden.
Brutor Admin Console, Compliance, Incidents. Per-framework reporting deadlines are computed from each framework's rules for the incident's classification. Deadlines shown, not enforced. Every change is sealed as an incident record. An empty register, and the Open an incident form: title, classification (for example serious incident), severity medium, became aware at, AI system, frameworks in scope EU AI Act and GDPR, description, linked run ids and linked inbox item ids.
Opening an incident: pick the frameworks in scope and the classification, link the runs and findings, and the deadlines follow from the rules.

the controls behind the evidence

Evidence of controls that actually fired.

The evidence is only as good as the controls it records. Every one of them runs in the request path, on every routed call, scoped per team and per AI System.

01

Who may use what

Access per team, app and agent, with every agent carrying its own identity rather than a shared key.

02

What data may leave

Guardrails for PII, secrets, prompt injection and toxic content, in both directions, blocked or redacted.

03

What an action may do

Argument, semantic and agent policies that read what a call would actually do, and hold it for a human where you say so.

04

Where the data may go

A residency profile checked before a model or tool is reached, with every refusal and its reason on the record.


what we do not claim

Clear about the edges.

Scope, plainly

Never “compliant”. Nothing Brutor produces says compliant, certified, guaranteed or tamper-proof. It says sealed, witnessed, recomputed, met (n of m), not met, not evaluable, declared. And none of it is legal advice.

What a gateway cannot observe, it does not claim. Risk management, quality management, conformity assessment and CE marking are organizational duties; Brutor evidences them by pointer and declaration only. Integrity is not completeness: a record proves an action it covers was not altered, never that there was no action it does not cover.

Traffic routed through the gateway only. AI used outside it (Copilot seats, ChatGPT, a vendor’s built-in AI) appears in the AI Asset Registry as observed, inventoried and costed, clearly marked. Every asset you bring behind the gateway converts from policy-and-vendor-trust into enforced and evidenced.

why brutor

Where Brutor stands out.

  • Evidence you cannot backfill. Questionnaire answers are assembled after the fact. A sealed record is written the moment the control fires.
  • Proof a third party can check. Published standards, an append-only log, independent witnesses and an open verifier: your auditor does not have to take our word for it.
  • Refusals are evidence too. The blocked call, the denied action and the approval nobody answered are all on the record, so the gates provably fired.
  • Agents are evidence subjects. Every record names the AI System and the contract version in force, and the call carries the agent release that made it.
  • Frameworks compose, they do not repeat. One evidence log, eleven catalogs. Enable another framework and the same sealed decisions answer it too.

Read next: Built-in compliance: why it does not have to slow you down, and how Brutor assures each AI agent day to day.

/take control/

Put every model, tool and agent
on one governed path.

Stay connected. Sign up for updates from Brutor AI.