# We open-sourced our EU AI Act compliance checklist, and most teams misread Article 12

> Source: <https://dev.to/disclos/we-open-sourced-our-eu-ai-act-compliance-checklist-and-most-teams-misread-article-12-jj9>
> Published: 2026-05-29 06:00:58+00:00

The EU AI Act takes full effect on 2 August 2026. Most SaaS teams I talk to are in “we’ll deal with it later” mode. Partly that’s denial. Mostly it’s that the official text is 458 pages of lawyer-prose with the implementation details buried.

So we wrote an engineer-readable version and open-sourced it today:

Repo: github.com/GatisOzols/eu-ai-act-checklist (MIT, no signup)

This post walks through what’s in it, why we built it, and the four article references most teams underestimate.

What’s in the repo

11 files, ~24KB total. One afternoon to run through start to finish for a single-product SaaS.

README.md

checklist.md — 7-step self-audit, plain English

annex-iii-categories.json — 8 high-risk areas, machine-readable

classify.py — Decision-tree classifier for risk tier

penalty-bands.json — Article 99 penalty tiers as JSON

chatbot.html — Article 50(1) disclosure template

generated-content.md — Article 50(2) synthetic content template

deepfake.md — Article 50(4) deepfake template

emotion-recognition.md — Article 50(3) emotion / biometric template

translations.json — Disclosure labels in 6 EU languages

LICENSE — MIT

The classifier

The most interesting file is classify.py. It walks you through five questions about each AI feature in your product and returns the risk tier under the regulation.

It’s intentionally tiny: no dependencies, no framework, runs anywhere Python runs. Output is plain text you can paste into your audit record.

Example output for an AI resume-scoring feature:

HIGH-RISK under Annex III §4. Article 6 obligations apply (risk management, technical documentation, record-keeping, human oversight, accuracy/robustness, conformity assessment, CE marking, EU database registration).

What teams underestimate

Most “EU AI Act readiness” content I read online stops at “disclose your chatbot.” Article 50(1) is the obvious one. Four others matter more for engineers.

Article 12 — record-keeping isn’t “we log stuff”

Article 12 requires automatic event logging across the AI system’s lifecycle. The specific fields are in Annex IV section 9:

Period of each use (start, stop)

Reference database checked, where applicable

Input data when the search led to a match

Identification of natural persons involved in result verification, where Article 14(5) applies

Minimum retention is 6 months under Article 12(2), but most teams should plan for 12-24 months because Member State authorities can extend.

The word “tamper-proof” isn’t in the statute, but it’s the practical bar. The auditor will ask “can you prove these logs weren’t edited.” So design for it from day one: hashed lines, append-only storage, signed batches, whatever your stack supports. Retrofitting this after launch is painful.

Article 14 — human oversight is process plus UI, not just policy

Article 14(4) lists what the supervising person must be able to do:

Understand the system’s capacities and limitations enough to monitor operation (4a)

Stay aware of automation bias (4b)

Interpret output correctly (4c)

Decide not to use the output or override it (4d)

Intervene on operation or interrupt through a “stop” button or similar procedure (4e)

That last requirement is concrete and often skipped. If your agent runs in a long-running loop, the supervising operator needs a kill switch that is visible, accessible, and produces a safe state. Most internal tools we’ve looked at don’t have this and need to retrofit.

For documentation: write down who the oversight person is, the SLA between alert and intervention, what the stop procedure actually does, and how oversight personnel are trained.

Article 50 — four sub-paragraphs, four different triggers

Article 50 transparency obligations are not one rule, they’re four:

50(1) — AI interacting with humans (chatbots, voice assistants): disclose at the start of interaction, clear and distinguishable

50(2) — Synthetic content generation (text, image, audio, video): mark output machine-readable, plus visible label on publication

50(3) — Emotion recognition or biometric categorisation: inform users they’re being subjected to it

50(4) — Deepfakes (real persons depicted): disclose as artificially generated

Each has a different practical implementation. The repo has separate templates per sub-paragraph. Don’t reuse a chatbot disclosure for a deepfake feature, the requirements are different.

Article 86 — explainability for end users

This is the GDPR Article 22 analog. End users (not deployers, end users) have the right to a “clear and meaningful explanation of the role of the AI system in the decision-making procedure and the main elements of the decision taken” when the decision is based on high-risk AI output AND produces legal or similarly significant effects.

Most teams treat this as a customer-support overhead. It isn’t. Article 86 is enforceable from 2 August 2026 with the rest of the main wave.

The minimum-viable explanation per the recitals: which features contributed, what the alternative outcomes would have been, what the user can do to change the outcome. Counterfactuals satisfy this. Pure feature-importance plots usually don’t.

Penalty bands

Article 99 sets three tiers:

Prohibited AI (Article 5): up to €35M or 7% of global annual turnover, whichever is higher

High-risk or Article 50 violations: up to €15M or 3%

Misleading information to authorities: up to €7.5M or 1%

SME proportionality applies under Article 99(6), but the upper bound still binds.

Why we built it

We run a productized €997 EU AI Act audit at disclos.eu — a 5-business-day deliverable for SaaS founders who want someone else to do the legwork. While building the audit methodology, we kept seeing the same gap: there was no engineer-readable starting point that wasn’t a paid platform or a €15k law firm engagement.

The 80% of EU SaaS that’s under €1M ARR has nothing to work with. So we open-sourced our internal checklist. The audit service stays paid, the repo stays free under MIT, and the licensing means anyone (including competitors) can fork it.

Contributing

If you want to help, the highest-leverage contributions are:

Translations of the Article 50 disclosure labels for the remaining 18 EU languages.

Annex III mapping refinements, particularly edge cases around agentic systems that touch §4 (employment) and §5 (essential services).

Real-world classification examples (anonymized) of how teams classified ambiguous features.

Open an issue first for anything substantial so we can discuss scope.

Free tools alongside the repo

For non-developer team members who don’t want to run Python, we also publish three browser-based tools (no signup):

EU AI Act penalty calculator

Annex III high-risk triage

Article 50 disclosure generator (24 EU languages)

Repo link, one more time

github.com/GatisOzols/eu-ai-act-checklist

MIT. ~24KB. No signup. The deadline is 65 days out.

If your team is in “we’ll deal with it later” mode, this is the lightest possible way to stop kicking the can.
