Regulatory

EU AI Act Article 12: automatic logging, and how to check it.

Article 12 has applied to high-risk AI systems since 2 August 2026. It requires automatic event logging over the system's lifetime, retained at least six months, sufficient to trace what the system did and why. Penalties reach €15,000,000 or 3% of worldwide annual turnover.

Below is a clause-by-clause map of what the Article asks for, what Runback supplies, and the command that verifies each claim. Where we supply nothing, the row says so — an obligation we do not help with is still yours, and a vendor page that blurs that becomes a liability for whoever relied on it.

Swipe to see all columns →

ClauseWhat it requiresWho supplies itMechanism
Art. 12(1)High-risk systems shall technically allow for the automatic recording of events (logs) over the lifetime of the system.Runback supplies thisThe SDK records every model call, tool call, and agent step from inside your process — automatic, not manual documentation. Capture is a single import, or OpenTelemetry if you already emit spans.
npx @runback/verify <your-export>.json
Art. 12(2)(a)Logs shall enable identification of situations that may result in the system presenting a risk, or a substantial modification.Runback supplies thisPolicy rules evaluate on every gated tool call and record the decision — allowed or blocked — as part of the run. A blocked action carries the rule that blocked it, so a risk situation is a queryable event rather than something inferred from prose.
GET /api/compliance/report?from=…&to=…
Art. 12(2)(b)Logs shall facilitate post-market monitoring (Art. 72).Runback supplies thisRuns aggregate into a period report — volumes, error rates, policy evaluations and blocks, redaction counts — computed in the database rather than sampled, so the numbers in the report are the numbers in the data.
GET /api/compliance/report
Art. 12(2)(c)Logs shall enable monitoring of operation by deployers (Art. 26(5)).Runback supplies thisPer-agent coverage reconciles the agents you declared against the ones actually reporting: declared but never instrumented, reporting then gone silent, or running while absent from your register.
GET /api/app/coverage
Art. 12(3)Logs shall include the period of each use, the reference database checked against, the input data, and the identity of the persons verifying results.Partial — read the detailStart and end timestamps, the exact inputs, retrieved context and tool results are captured per run. Human verification is captured where an approval gate is used. If your process has a reviewer step outside Runback, that identity is not in our record and you must record it yourself.
Art. 19 / 26(6)Logs shall be kept for a period appropriate to the intended purpose, at least six months.Runback supplies thisRetention is configured per plan and enforced by a scheduled sweep. Legal hold suspends deletion for runs under a preservation obligation, and if the holds table cannot be read the sweep is skipped rather than proceeding — the failure mode favours keeping data.
Art. 12 — impliedLogs must be reliable as evidence. The Act does not use the word 'tamper-proof', but a record that can be edited without anyone noticing is not evidence of anything.Runback supplies thisEvery run is hash-chained and signed; each org's runs are sealed into an append-only ledger with signed checkpoints. Checkpoints are additionally time-stamped by independent RFC 3161 authorities and published to a public append-only log — so the record is not merely signed by us, it is anchored outside our control.
openssl ts -reply -in <checkpoint>.tsr -token_in -text
Art. 9, 11, 17Risk management system, technical documentation, quality management system.Your obligationRunback supplies evidence that feeds these; it does not produce them. A conformity assessment is an organisational process. Any vendor claiming to deliver Article 9 or 17 compliance as a product feature is overselling.
Verify it yourself

No account. No Runback software beyond one npx command.

A compliance claim you cannot check is a marketing claim. Every statement above resolves to something you can run:

bash
# 1. Verify a record's integrity and origin — no account required
npx @runback/verify audit-export.json
#    exit 0 = intact AND signed by our published key
#    exit 2 = intact, but origin unproven
#    exit 1 = a check failed

# 2. Check our published signing key out of band
curl https://runback.dev/.well-known/runback-audit-key.pem

# 3. Confirm a checkpoint was time-stamped by an authority we do not control
openssl ts -reply -in runback-checkpoint-4-freetsa.org.tsr -token_in -text

# 4. Read the public transparency log and archive it
curl https://runback.dev/api/transparency

Steps 2–4 use no Runback software at all. That is deliberate: an auditor should not have to run our verifier to check our tamper-evidence.

Honest limits

What this page does not claim.