Mustafa.
Zurück zu allen Projekten

Aktenlage — die EU-AI-Act-Artikel-26-Nachweisschicht

Ein reines Python-Tool, das die Betriebs-Traces eines Agenten in ein audit-fertiges EU-AI-Act-Artikel-26-Nachweispaket verwandelt — jede Pflicht auf zwei Achsen beurteilt (dokumentiert × läuft wirklich), null LLM und null Netzwerk per Konstruktion, und die statische Zugriffsflächen-Analyse von Agent Blast Radius in dieselbe hash-gebundene Akte gesiegelt. Die These, in laufendem Code: Compliance ist keine Absicht, sondern eine Aktenlage.

Jahr
2026
Rolle
Salesforce Developer — EU AI Act Evidence
Technologien
EU AI Act — Article 26 (deployer obligations)Pure Python — zero LLM, zero network, zero creditsDokument × Praxis two-axis verdictVorprüfung sanity layer (S1–S11)Deterministic, byte-identical reportsMutation-tested verifier (11/11 caught)Bridges into Agent Blast Radius (hash-bound)Agent Script parser (Salesforce's own)German audit report + sha256 evidence manifest

Eckdaten

  • Die These, in laufendem Code: Artikel 26 lässt sich nicht mit einem Policy-Dokument erfüllen — er braucht Infrastruktur. Aktenlage liest die echten Betriebsnachweise eines Agenten (Session-Traces, das Aufsichtsregister, das Vorfall-Log, die Aufbewahrungsrichtlinie, die .agent-Quelle) und erzeugt ein deutsches, audit-fertiges Nachweispaket: ein Artikel-für-Artikel-Urteil ✓/⚠/✗ plus eine Lückenanalyse
  • Jede Pflicht wird auf zwei Beinen beurteilt — Dokument (ist die Zusage schriftlich fixiert) × Praxis (gibt es einen Betriebs-Trace, dass sie wirklich läuft) — und das Urteil ist das schlechtere der beiden. Ein Aktenschrank voller Policies ohne jede Aktivität kann nie ein ✓ bekommen; das schlägt strukturell das 'Potemkin-Bundle', in dem hübsche Dokumente ein leeres System bestehen lassen
  • Der Prüfer kann nicht das Modell sein: die Checks importieren nur dataclasses und einen Loader — null LLM-Aufrufe, null Netzwerk, null Flex Credits, unter einer Sekunde, byte-identisch über Läufe hinweg. Die dreizeilige requirements.txt kann kein Netzwerk erreichen. Das ist ein Argument, kein Zufall
  • Es ist die juristische Ausgabeschicht von Agent Blast Radius. Drei Bridges siegeln den statischen Zugriffsflächen-Report von Blast Radius in dieselbe Akte — hash-gebunden an seine Quelle — und Abschnitt 8 druckt den Fingerprint, die Reichweite und die Eskalationslücke. Die Bridges erzeugen nur Evidenz-Dateien; die Checks bleiben rein und entscheiden nie eine Rechtsfrage, sondern verweisen auf die DSFA/FRIA
  • Eine Vorprüfung auditiert die Qualität der Evidenz, nicht nur ihre Existenz: hängende Referenzen, feldinterne Arithmetik, die nicht aufgeht, Kausalitätsverletzungen (ein Hinweis, datiert nach dem Ereignis, das er ankündigt), ein veralteter Agent-Script-Hash und — S11 — eine Zugriffsanalyse, die eigentlich zu einem anderen System gehört. Eine Zeile mit einem Vorprüfungs-Befund kann nie ein ✓ bekommen
  • Der Demo-Report kommt mit zwei bewussten, test-verriegelten Lücken (ein fehlender KI-Hinweis in einer Session; eine FRIA, die als Vorlage bereitliegt, aber nicht durchgeführt ist). Jede Änderung, die sie 'aufräumt', bricht einen Test — denn zu zeigen, dass das System die Lücke fängt, überzeugt mehr, als lückenlos zu erscheinen. Ein Audit-Report, in dem alles grün ist, ist Marketing, kein Nachweis
  • Ehrlich eingeordnet und durch einen Test verriegelt: das erzeugt technische Evidenz für eine Artikel-26- / DSFA-Prüfung — es ist kein Compliance-Zertifikat und keine Rechtsberatung; die Demo-Szenarien sind synthetisch (STDM-inspiriert), und das Mapping wurde aus Engineering-Sicht gemacht. Der Prüfer ist selbst geprüft — ein Mutationsskript pflanzt 11 bewusste Brüche ein und alle 11 werden gefangen — und das Hospital-Beispiel bettet einen echten Agent-Blast-Radius-Lauf ein (PS506 auf einem Diagnose-Feld), aus einer Live-Org gelesen, für null Credits

Funktionen im Detail

Es läuft — an einer echten Org, read-only, null Credits

Die Konsole, kein Mock-up. Aktenlage liest eine echte Salesforce-Developer-Edition-Org über die sf-CLI — read-only, 0 Flex Credits — siegelt die Maschinen-Evidenz in eine Datei und erzeugt den Report: 10 ✓ / 2 ⚠ / 0 ✗, Vorprüfung sauber. Beachte die ehrliche Zeile, die es über sich selbst druckt: die Org ist ein schwacher Evidenz-Speicher (admin-veränderbar, mit eigenen Löschfenstern), also liest Aktenlage ab hier die gesiegelte Datei, nie die Org. (Synthetisches HanseWatt-Demo-Szenario.)

PowerShell: Aktenlage reads a real HanseWatt Developer-Edition org read-only via the sf CLI, then produces the report — 10 ok / 2 warn / 0 fail, pre-check clean, zero Flex Credits

Das Artefakt — ein Artikel-26-Nachweisbericht

Deckblatt und Zusammenfassung des Reports für den synthetischen HanseWatt-Tarifberater (Risikoklasse: Annex III 5(b), Kreditwürdigkeit natürlicher Personen). Zwölf Sitzungen, drei Eskalationen an die menschliche Aufsicht, ein Vorfall — Aktenlage-Status 10 ✓ nachgewiesen · 2 ⚠ teilweise · 0 ✗ fehlend, gestempelt mit 'Erzeugt mit Aktenlage v0.3.0 (verifier ≠ model, 0 LLM-Aufrufe)'. Der Berichtszeitraum ist aus der Evidenz abgeleitet, nicht extern vorgegeben — und die zwei ⚠ sind bewusst, kein Versehen.

Aktenlage report cover and summary: HanseWatt Tarifberater, Annex III 5(b) creditworthiness, status 10 proven / 2 partial / 0 missing, generated with Aktenlage v0.3.0 (verifier ≠ model, 0 LLM calls)

Das Zwei-Achsen-Urteil — Dokument × Praxis

Das Herz der Methode. Jede Pflicht wird auf zwei Beinen beurteilt — Dokument (ist die Zusage schriftlich fixiert) und Praxis (zeigt der Betriebs-Trace, dass sie wirklich lief) — und der Gesamtstatus ist das schlechtere der beiden: ein Aktenschrank ohne Betrieb bekommt nie ein ✓, und Betrieb ohne Aktenschrank auch nicht. Das schlägt strukturell das 'Potemkin-Bundle', in dem hübsche Dokumente ein leeres System bestehen lassen. (Synthetisches HanseWatt-Demo-Bundle.)

Article-by-article table with three columns — Dokument, Praxis, Gesamt — where the overall status is the worse of the documented and the operational axis

Jedes Urteil nennt seine Evidenz

Die Einzelbefunde werden aus dem Bundle berechnet, nicht als Vorlagentext geschrieben — und jeder nennt seine Nachweisquelle, die genaue Quelldatei und das Feld, aus dem er abgeleitet ist: 26(1) verifiziert den .agent-Hash mit Salesforces eigenem Parser; 26(2) führt jedes human_override auf eine registrierte Person zurück, deren Befugnis exakt 'override' ist und deren Entscheidungsklasse im Scope liegt; 26(4) bestätigt, dass 100 % der llm_calls auf inventarisierte Quellen gestützt sind. Ein Urteil, das man bis zu seiner Datei zurückverfolgen kann. (Synthetisches HanseWatt-Demo-Bundle.)

Per-article findings, each citing its Nachweisquelle — the exact source file and field the verdict was derived from

Die zwei bewussten Lücken — weil überall grün Marketing ist

Die Lückenanalyse, bewusst mit zwei ⚠ ausgeliefert, die test-verriegelt sind, damit sie sich nicht 'aufräumen' lassen: Art. 50 (ein KI-Hinweis fehlt in 1 von 12 Sitzungen — genau so wird Offenlegung in einem schnellen FAQ-Flow übersprungen) und Art. 27 (die FRIA-Vorlage liegt bereit, aber die Bewertung wird bewusst nicht durchgeführt, weil reiner Code nicht beurteilen kann, ob eine FRIA gut gemacht wurde). Ein Audit-Report, in dem alles grün ist, überzeugt nicht; zu zeigen, dass das System die Lücke fängt, schon. Darüber der Prüfstand-Testnachweis (26/29, Kanarienvögel intakt) und ein echter Vorfall mit seiner Eskalation. (Synthetisches HanseWatt-Demo-Bundle.)

Gap analysis with two deliberate warnings — Art. 50 (AI disclosure missing in 1 of 12 sessions) and Art. 27 (FRIA template ready but assessment not performed)

Das Problem

Artikel 26 des EU AI Act legt dem Betreiber eines Hochrisiko-KI-Systems operative Pflichten auf — menschliche Aufsicht durch eine autorisierte Person, Relevanz der Eingabedaten, Überwachung schwerwiegender Vorfälle, Log-Aufbewahrung, Unterrichtung der Beschäftigten. Der Reflex ist, dies mit einem Policy-Ordner zu beantworten. Aber ein Ordner beweist Absicht, nicht Betrieb: er kann nicht zeigen, dass die Aufsichtsperson wirklich hingesehen hat, dass die Logs das plattformeigene Löschfenster wirklich überdauern, dass der Vorfall wirklich abgeglichen wurde. Und der ehrliche Fehlermodus ist schlimmer als ein offensichtlicher — ein schöner Aktenschrank über einem System, das nie lief, erzeugt eine Seite grüner Häkchen, die nichts bedeutet.

Der Ansatz

Mach den Trace zum Nachweis und mach den Prüfer strukturell unfähig, ihm zu schmeicheln. Aktenlage lädt ein lokales Evidenz-Bundle — Session-Traces, ein Aufsichtsregister, Vorfall- und Aufbewahrungs-Datensätze, die .agent-Quelle — über einen einzigen I/O-Punkt, dann läuft eine Vorprüfung, die die Qualität der Evidenz auditiert (hängende Referenzen, Arithmetik, die nicht aufgeht, Kausalitäts- und Chronologieverletzungen, ein veralteter Agent-Script-Hash, ein Zugriffs-Report, der zu einem anderen System gehört), und zwölf reine Checks, die jede Pflicht auf zwei Achsen beurteilen: ist sie dokumentiert, und zeigt der Betriebs-Trace, dass sie wirklich lief — das Urteil ist das schlechtere der beiden, und jeder Vorprüfungs-Befund deckelt die Zeile unter ✓. Die Checks importieren nur dataclasses und einen Loader: kein Modell, kein Netzwerk, keine Credits, deterministisch bis aufs Byte. Drei Bridges verbinden es mit Agent Blast Radius als Evidenz-Produzenten, nie als Bewerter — die .agent-Datei wird mit Salesforces eigenem Parser geparst, der deterministische Zugriffs-Report von Blast Radius wird hash-gebunden eingesiegelt und in Abschnitt 8 gedruckt, und die Log-Aufbewahrung wird gegen das plattformeigene Löschfenster gegengeprüft — so trägt die Akte Maschinen-Evidenz, ohne dass die juristische Schicht je ein Urteil fällt, das ihr nicht zusteht.

Das Ergebnis

Das Tool besteht seine eigene These. Sein Demo-Report kommt mit zwei bewussten Lücken — ein fehlender KI-Hinweis in einer Session, eine FRIA als Vorlage, aber nicht durchgeführt — durch einen Test verriegelt, denn ein System, das die Lücke sichtbar fängt, überzeugt mehr als eines, das makellos erscheint; jeder Versuch, den Report 'aufzuräumen', lässt die Suite scheitern. Der Prüfer ist selbst geprüft: ein Mutationsskript pflanzt elf bewusste Brüche ein und alle elf werden gefangen — eine entkommene Mutation ist genau das Leer-Grün-Risiko, gegen das das ganze Design existiert. Es läuft gegen echte Orgs, read-only über die sf-CLI, für null Credits, und das portable Hospital-Beispiel bettet einen echten Agent-Blast-Radius-Lauf ein — ein Diagnose-Feld, das am Feldzugriff des laufenden Benutzers vorbei das Modell erreicht (PS506) — so ist der Zugriffs-Abschnitt echte Evidenz, kein Mock-up. Ehrlich eingegrenzt: das erzeugt technische Evidenz für eine Artikel-26- / DSFA-Prüfung, auf synthetischen Demo-Szenarien; es ist kein Compliance-Zertifikat und keine Rechtsberatung, der FRIA-Check kann nie ein Grün zurückgeben, weil reiner Code nicht beurteilen kann, ob eine Bewertung gut gemacht wurde, und die Paragrafen, die eine juristische Entscheidung sind, werden als außerhalb des Geltungsbereichs dokumentiert statt beurteilt. HanseWatt baut es, Prüfstand beweist es, Blast Radius begrenzt es — Aktenlage aktenkundig macht es.

Demo ansehenGitHub & Notion — privat, Walkthrough auf Anfrage