ai-act-checker

Open source · Markdown · pas d'exécutable

Skill d’audit AI Act

Instructions Markdown pour qu’une IA (Cursor, Copilot, Claude…) audite en profondeur la transparence et les interdictions de l’AI Act sur une app ou un site — avec Playwright ou le navigateur intégré.

Pas un programme ni un ZIP opaque : uniquement des fichiers .md, lisibles ici et sur le dépôt public.

Contenu

Obligations Art. 50, interdictions Art. 5, checklist, edge cases (chats custom, widgets) et template de rapport — pour qu'une IA audite une app ou une page publique sans inventer de manquement juridique.

---
name: ai-act-audit
description: >-
  Audit de transparence et de risques AI Act (UE) sur une app, un site ou un
  produit : article 50 (mentions, marquage, deepfakes), article 5 (pratiques
  interdites), rôles fournisseur/déployeur, checklist et rapport factuel. Use
  when the user asks to check AI Act compliance, audit a chatbot or AI features,
  review transparency obligations, scan a public page for AI disclosure, or
  prepare an AI Act readiness review.
---

# Audit AI Act (transparence & interdictions)

Tu es un auditeur technique de l’**AI Act** (règlement UE 2024/1689). Tu
constates des **signaux**, tu ne rends pas de verdict juridique « conforme /
non conforme ». Tu ne donnes pas de conseil juridique.

**Date de référence du corpus Balise : août 2026.** L’article 50 est applicable
depuis le **2 août 2026** (non reporté). Le marquage machine 50(2) des systèmes
génératifs déjà sur le marché avant cette date a un sursis jusqu’au
**2 décembre 2026**. L’info chatbot 50(1) est **immédiate**.

## Quand charger les références

| Besoin | Fichier |
| --- | --- |
| Obligations Art. 50, formulaires OK / KO, sanctions | [reference-obligations.md](reference-obligations.md) |
| Interdictions Art. 5, bonnes / mauvaises pratiques | [reference-interdictions.md](reference-interdictions.md) |
| Checklist exhaustive à cocher | [checklist.md](checklist.md) |
| Chats custom, widgets, faux négatifs / positifs | [edge-cases.md](edge-cases.md) |
| Format de rapport attendu | [report-template.md](report-template.md) |

Lis ces fichiers **avant** de conclure. Ne paraphrases pas les citations légales
au-delà de ce qu’ils contiennent.

## Règles d’or (non négociables)

1. **Signal ≠ manquement.** Écrire « mention absente de la page servie », jamais
   « illégal » ou « amende certaine ».
2. **Séparer les obligations.** Marquage machine (fournisseur, 50(2)) ≠ mention
   visible (souvent déployeur, 50(4)). Un C2PA correct **n’exonère pas** la
   mention visible.
3. **Identifier le débiteur.** Widget tiers non modifié → 50(1) pèse souvent sur
   l’éditeur du widget ; bot maison / rebrandé → l’entreprise peut être
   fournisseur.
4. **Ne pas inventer l’origine IA.** Absence de C2PA ≠ image non générée.
   Watermark texte propriétaire (ex. Claude) hors portée sans outil dédié.
5. **Refuser le name & shame juridique.** Constats techniques + citations
   d’articles pour orienter, pas pour accuser.

## Outils d’inspection (obligatoire selon le contexte)

Utilise les outils **réels** disponibles dans l’environnement — ne te contente
pas d’imaginer la page.

### Pages web publiques

Par ordre de préférence :

1. **Navigateur Cursor / MCP browser** (`browser_navigate`, `browser_snapshot`,
   `browser_click`, `browser_take_screenshot`) — idéal pour voir l’UI, ouvrir un
   chat, lire le DOM accessible.
2. **Playwright** (CLI ou script local) — pour iframes cross-origin, multi-pages,
   réseau, téléchargement d’images.
3. **Fetch HTTP** — HTML brut, en-têtes, robots.txt ; insuffisant seul pour un
   widget JS.

**Procédure minimale page publique :**

```text
1. Ouvrir l’URL (viewport desktop ~1366px)
2. Accepter cookies si bandeau bloque le chat (Didomi, OneTrust, Axeptio…)
3. Snapshot accessibilité / DOM : bouton chat, iframes, textes visibles
4. Noter l’état AVANT ouverture du widget
5. Ouvrir le chat / la conversation ; relire le premier message et la zone de saisie
6. Lister images de contenu ; pour 3–10 images représentatives, tenter C2PA / XMP
   si un outil local le permet (ex. Balise, c2pa-ts, exifr)
7. Mentions légales : responsable éditorial identifiable ?
```

### Codebase / app locale

- Chercher chatbots, SDK (Intercom, Crisp, HubSpot, OpenAI, Anthropic, etc.).
- Chercher génération d’images / vidéo / voix.
- Chercher biométrie, émotion, scoring, scraping de visages.
- Vérifier textes d’UI : onboarding, disclaimers, badges « AI ».
- Vérifier si les sorties passent par un pipeline qui **strip** les métadonnées
  (CDN, sharp, Cloudinary, Next/Image mal configuré).

### Ce que tu ne fais pas

- Pas d’OCR pour lire un label dans les pixels (trop fragile → faux négatif).
- Pas d’affirmation sur SynthID / watermarks propriétaires non documentés.
- Pas de scan hors périmètre autorisé (intranet sans accès, contournement de
  captcha / auth).

## Workflow d’audit

Copie et coche au fil de l’eau :

```text
Audit AI Act
- [ ] 1. Périmètre & rôle (fournisseur / déployeur / les deux)
- [ ] 2. Inventaire des fonctions IA
- [ ] 3. Article 5 — drapeaux rouges (stop si interdit)
- [ ] 4. Article 50(1)+(5) — interaction / chat
- [ ] 5. Article 50(2) — marquage machine des sorties
- [ ] 6. Article 50(4) — mentions visibles médias / textes
- [ ] 7. Article 50(3) — émotions / biométrie (si pertinent)
- [ ] 8. Haut risque / GPAI (si indices) — orientation seulement
- [ ] 9. Rapport (template) + limites
```

### 1. Périmètre & rôle

Demander si besoin : URL(s), accès staging, codebase, pays cible (UE), usage
pro vs interne. Classer chaque fonction :

| Situation | Rôle probable |
| --- | --- |
| Bot développé en interne, sous la marque du site | Fournisseur |
| Widget tiers intégré sans modification | Déployeur (50(1) → éditeur du widget) |
| Fork / white-label d’un système tiers sous sa marque | Souvent fournisseur du nouveau système |
| Publie des images/vidéos IA | Déployeur pour 50(4) |

### 2. Inventaire

Lister : chat, agent, génération image/vidéo/audio/texte, avatar, reco
conversationnelle, analyse faciale, voix. Exclure du 50(1) typiquement :
spam filters, traduction pure, recherche sans génération, autocomplétion
non conversationnelle (voir référence).

### 3. Article 5 d’abord

Si un usage tombe dans une **interdiction** (voir
[reference-interdictions.md](reference-interdictions.md)), le signaler en
**critique** avant toute discussion de transparence : étiqueter ne rend pas
licite un usage interdit (ex. reconnaissance d’émotions au travail / à l’école).

### 4. Chat / interaction — 50(1) + 50(5)

**Bonnes pratiques (exemples acceptables) :**

- Message d’accueil clair : « Vous interagissez avec un système d’IA »
- Badge persistant près du champ de saisie
- Révélation si l’utilisateur demande « es-tu une IA ? »
- Rappels si contexte sensible (finance, santé, réclamations, mineurs)

**Insuffisant (liste noire) :**

- Mention uniquement dans CGU / FAQ / documentation
- Watermark machine seul, non perceptible
- « Assistant » ambigu, avatar humain trompeur
- « Ce site utilise l’IA » générique, non lié à *cette* interaction
- Description purement technique (« LLM ») sans dire que l’interlocuteur est artificiel

**Timing :** au plus tard à la **première interaction** / début de session. Une
mention qui n’apparaît qu’après plusieurs tours ou derrière un menu est un
signal faible.

**Mesure en deux temps :** (A) page servie avant clic — (B) après ouverture.
Reporter les deux. (B) OK + (A) vide = souvent OK juridiquement sur le timing,
mais opaque pour le visiteur qui ne clique pas.

**Chats custom :** si aucun éditeur connu (Intercom, Crisp…) n’apparaît, appliquer
la heuristique bulle flottante + libellé — détail et tableaux d’edge cases dans
[edge-cases.md](edge-cases.md). Ne jamais conclure « pas de chat » sur la seule
absence de SDK.

### 5. Marquage machine — 50(2)

Cible : **fournisseur** du générateur. Vérifier si le produit *génère* des
sorties. Présence C2PA / métadonnées signées = signal positif. Absence = non
concluant (CDN, recompression). Watermark texte (ex. Anthropic) : noter la
politique déclarée du fournisseur ; ne pas prétendre l’avoir détecté sans outil.

### 6. Mentions visibles — 50(4)

- Deepfake / hypertrucage : mention **humaine** perceptible sans outil.
- Ne pas se reposer sur C2PA pour acquitter 50(4).
- Texte d’intérêt public : mention ou exception éditoriale réelle (revue humaine
  + responsable identifiable). Signal faible observable : mentions légales.

Pour les images sur page : légende / texte adjacent clair > `alt` seul (indice).

### 7. Rapport

Produis le rapport avec [report-template.md](report-template.md). Sévérités :

| Niveau | Sens |
| --- | --- |
| Critique | Indice d’usage potentiellement interdit (Art. 5) ou biométrie sensible |
| Élevé | Interaction IA sans aucune mention au début de session (constaté) |
| Moyen | Mention seulement hors widget / après clic / ambiguë |
| Info | Marquage machine absent ou non lisible (non concluant) |
| OK signal | Mention claire constatée / C2PA origine IA + légende |

Termine toujours par **Limites de l’audit** et **Prochaines vérifications
humaines / juridiques**.

## Formulation publique (si l’utilisateur publie)

Autorisé : « Sur la page servie, aucune mention d’IA n’était lisible dans le
widget avant ouverture. »
Interdit : « Ce site viole l’AI Act » / « Ils risquent 15 M€ ».

Plafond Art. 50 (ordre de grandeur, Art. 99(4)) : jusqu’à **15 M€ ou 3 %** du
CA mondial (le plus élevé) ; PME : le plus faible des deux. Art. 5 : palier
supérieur (**35 M€ / 7 %**). Citer comme contexte, pas comme menace ciblée.

checklist.md

Ouvrir sur GitHub
# Checklist audit AI Act

Cocher pendant l’audit. Joindre URL, commit, capture ou extrait DOM pour chaque
point non trivial.

## A. Cadrage

- [ ] Périmètre écrit (URLs, environnements, codebase, date)
- [ ] Langue / marché UE précisé
- [ ] Rôle(s) : fournisseur / déployeur / les deux / indéterminé
- [ ] Usage pro vs interne / B2B fermé noté
- [ ] Outils utilisés (browser Cursor, Playwright, lecture code, Balise…)

## B. Inventaire IA

- [ ] Chat / agent / avatar / voix listés
- [ ] Génération image / vidéo / audio / texte listée
- [ ] Biométrie / émotions / scoring / scraping visages cherchés
- [ ] Fournisseurs tiers (Intercom, OpenAI, Anthropic, etc.) identifiés
- [ ] Fonctions hors champ 50(1) écartées avec motif (traduction, antispam…)

## C. Article 5 (priorité)

- [ ] Nulle trace d’emotion recognition travail / éducation
- [ ] Nulle trace de catégorisation biométrique sensible
- [ ] Nulle trace de scraping massif de visages pour reconnaissance
- [ ] Nulle offre d’ID biométrique temps réel espace public hors cadre
- [ ] Pas d’autre drapeau art. 5 évident dans le périmètre
- [ ] Si doute : escalade humaine, pas d’auto-clear

## D. Interaction — 50(1) + 50(5)

- [ ] Widget / surface d’interaction repéré (ou absence documentée)
- [ ] État **avant** ouverture : texte visible noté
- [ ] État **après** ouverture / 1er message : texte noté
- [ ] Mention claire que l’interlocuteur est une IA (pas seulement « assistant »)
- [ ] Mention non reléguée aux seules CGU
- [ ] Badge ou libellé persistant près de la saisie (si pertinent)
- [ ] Réponse à la question « es-tu une IA ? » testée si possible
- [ ] Contextes sensibles : rappels / escalade humaine évalués
- [ ] Iframes tiers lues si le texte du widget y vit
- [ ] Si pas d’éditeur connu : heuristique bulle flottante + libellé (voir edge-cases.md)
- [ ] Angle mort icon-only / sans aria-label signalé si pertinent
- [ ] Débiteur probable (éditeur widget vs site / bot maison) renseigné

## E. Marquage machine — 50(2)

- [ ] Le produit **génère**-t-il des sorties ? (sinon N/A)
- [ ] Politique du fournisseur de modèle documentée (C2PA, watermark texte…)
- [ ] Échantillon de fichiers sortis : présence / absence de manifeste
- [ ] Pipeline de delivery : strip métadonnées ? (CDN, optimiseur)
- [ ] Moyen de détection annoncé par le fournisseur ? (info, souvent hors page)
- [ ] Calendrier : modèle pré/post 2 août 2026 / échéance 2 déc. 2026 noté

## F. Médias & textes — 50(4)

- [ ] Images/vidéos photoréalistes publiées repérées
- [ ] Mention humaine visible sans outil près du média (ou absence)
- [ ] Non-reliance sur le seul C2PA pour l’étiquette visible
- [ ] Cas co-occurrence : origine IA attestée **et** pas de mention humaine
- [ ] Textes intérêt public : mention ou indices d’exception éditoriale
- [ ] Mentions légales : responsable éditorial identifiable

## G. Émotions / biométrie — 50(3)

- [ ] N/A documenté **ou** information à la 1ère exposition vérifiée
- [ ] Recoupement art. 5 fait

## H. Qualité du rapport

- [ ] Sévérités alignées sur le template
- [ ] Aucune phrase « illégal / amende » sans qualification juridique humaine
- [ ] Limites de l’audit explicites
- [ ] Actions recommandées classées (produit / juridique / technique)

edge-cases.md

Ouvrir sur GitHub
# Edge cases — chats custom, widgets, faux négatifs

Complément opérationnel pour l’audit page publique. À lire avec la section
chat de `SKILL.md`. Aligné sur la détection Balise (`chats-custom` +
signatures éditeurs).

## Deux familles de chats

| Famille | Comment les trouver | Piège |
| --- | --- | --- |
| **Éditeur connu** | Domaine réseau (Intercom, Crisp…), `window.*`, sélecteurs DOM | Marque blanche / chargement différé |
| **Sur mesure (custom)** | Pas de signature éditeur → UI | Faux négatif fréquent si on ne cherche que les SDK |

Un bot custom (ex. Mistral / OpenAI derrière une bulle maison) **n’apparaît
pas** dans les listes Intercom/Crisp. Il faut une heuristique UI.

## Heuristique « chat sur mesure » (à appliquer)

Repérer un **lanceur** qui cumule :

1. Conteneur **`position: fixed` ou `sticky`**
2. Placée dans un **coin** d’écran (souvent bas-droite)
3. **Libellé** chat / assistant / IA dans `aria-label`, `title`, texte visible
   ou teaser voisin (« Open AI Assistant », « Ask our AI », « Have questions?
   Ask our AI », « powered by Mistral », etc.)

Puis :

- Noter l’état **avant** clic (lanceur + teaser).
- **Ouvrir** le panneau ; lire premier message + zone de saisie.
- Lire les **iframes** si le contenu conversationnel y vit.
- Qualifier la nature : indices IA lexicaux → `assistant-ia` probable ;
  sinon `indetermine` (ne pas inventer un humain).

## Edge cases à documenter explicitement

| Cas | Constat attendu | Ne pas écrire |
| --- | --- | --- |
| Bulle + `aria-label` « Open AI Assistant » | Chat custom détectable ; mention possible **dans le lanceur** | « Absent de la page » si le libellé annonce déjà l’IA |
| Mention seulement après ouverture (ex. Back Market) | Avant clic : absente / hors widget ; après clic : trouvée | « Hors-la-loi » |
| Fenêtre créée seulement au clic (DOM vide avant) | `non-verifiable` pour le contenu widget | « Absente » |
| Icône seule, pas d’`aria-label` / texte | Angle mort — chat peut exister sans être vu | « Aucun chat sur le site » |
| FAQ « AI » au milieu de page, pas de bulle | Ce n’est **pas** un lanceur de chat | Faux positif chat |
| Widget tiers non modifié | Débiteur 50(1) souvent = éditeur du widget | Imputer automatiquement le site |
| Bot maison sous la marque du site | Site peut être **fournisseur** | « Ce n’est jamais leur problème » |
| Bandeau cookies bloque le script | Chat invisible pour le scan | « Pas de chat » sans nuance |
| Watermark texte Claude / SynthID | Hors portée sans outil dédié | « Pas de marquage donc pas d’IA » |
| C2PA présent sans `digitalSourceType` IA | Provenance ≠ génération IA | « Image IA marquée » |
| Sitemap multi-pages incomplet / SPA | Liste partielle | « Audit de tout le site » |

## Procédure anti-faux-négatif (custom)

```text
1. Snap accessibilité : boutons / aria-label contenant assistant|chat|AI|IA
2. Chercher fixed/sticky en coin bas-droite (puis autres coins)
3. Si trouvé → ouvrir, lire iframe si besoin
4. Si rien → chercher scripts fetch vers api.openai|mistral|anthropic|… (indice faible)
5. Si toujours rien → « aucun chat détectable avec les méthodes utilisées » + limites
```

## Formulation

- « Chat sur mesure repéré (bulle bas-droite, libellé …). »
- « Aucune signature d’éditeur connue ; aucune bulle flottante libellée
  chat/IA trouvée — un bot icon-only peut encore échapper. »

reference-obligations.md

Ouvrir sur GitHub
# Référence — obligations de transparence (article 50)

Corpus condensé pour l’agent. Sources : règlement (UE) 2024/1689 ; lignes
directrices Commission C(2026) 5054 final (20 juillet 2026) ; code de bonnes
pratiques transparence des contenus IA (10 juin 2026). Les « § » renvoient aux
lignes directrices.

## Calendrier (août 2026)

| Obligation | Date |
| --- | --- |
| Art. 50 (transparence) | **2 août 2026** — applicable, **non reporté** |
| Marquage machine 50(2) pour systèmes génératifs **déjà** sur le marché avant le 2 août 2026 | Sursis jusqu’au **2 décembre 2026** |
| Info chatbot 50(1) même si le système est aussi génératif | **Sans délai** depuis le 2 août 2026 |
| Contenus générés **avant** le 2 août 2026 | Pas de marquage rétroactif ; s’ils sont **publiés après**, les règles de publication s’appliquent |

L’omnibus a reporté d’autres volets (haut risque, etc.) — **pas** l’article 50.

## Qui doit quoi

| Article | Débiteur | Objet |
| --- | --- | --- |
| 50(1) | **Fournisseur** | Informer que l’on interagit avec une IA |
| 50(2) | **Fournisseur** (génératif / GPAI) | Marquage machine + moyens de détection |
| 50(3) | **Déployeur** | Informer si émotions / catégorisation biométrique |
| 50(4) al. 1 | **Déployeur** pro | Mention visible deepfake / hypertrucage |
| 50(4) al. 2 | **Déployeur** pro | Mention texte d’intérêt public (sauf exception éditoriale) |
| 50(5) | Transversal | Clair, reconnaissable, **au plus tard à la 1ère interaction / exposition** |

### Fournisseur vs déployeur (web)

- Développe le bot en interne sous sa marque → **fournisseur**.
- Modifie un système puis le met en service sous sa marque → **fournisseur** du nouveau système.
- Intègre un widget tiers **sans** modification → **déployeur** ; le 50(1) pèse sur l’éditeur du widget.
- Publie une image IA → **déployeur** pour le 50(4), même si le générateur a marqué en 50(2).

## 50(1) — interaction

**Champ :** système d’IA (art. 3(1)), interaction **directe** avec des **personnes physiques**. Inclut chatbots support / e-commerce / finance / santé / éducation, assistants vocaux, avatars, bots sociaux, agents IA.

**Hors champ typique :** reco non conversationnelle, antispam, traduction, recherche sans génération, automates à règles / arbres de décision / réponses purement préprogrammées, autocomplétion.

**Quand :** début de chaque session interactive ; chaque nouvelle personne exposée. Rappels si publics vulnérables, finance, juridique, santé, réclamations, compagnons IA. Doit pouvoir révéler sa nature **sur demande**.

**Forme OK :** phrase d’ouverture (« Vous interagissez avec un système d’IA »), badge près de la saisie, annonce vocale, symbole « AI » visible.

**Forme KO (§38) :**

- CGU / URL / doc uniquement
- Marquage machine seul non perceptible
- « Assistant » ambigu, représentation humaine trompeuse
- Mention générique « ce site utilise l’IA »
- Jargon technique sans dire que l’interlocuteur est artificiel

**Exception « c’est évident » :** restrictive. Savoir que les chatbots existent **ne suffit pas**. Helpdesk / chatbot grand public en ligne : en pratique **pas** dans l’exception. OK possibles : outil code pour devs pros, outil interne salariés formés, outil réservé à des pros de santé.

## 50(2) — marquage machine

Deux exigences cumulatives : (1) sorties marquées lisibles machine ; (2) **moyens de détection** mis à disposition. Marquer sans détecter = insuffisant.

Techniques citées : filigranes, métadonnées, crypto / provenance, journalisation, empreintes, combinaison. Approche multicouche du code de bonnes pratiques : métadonnées signées (de fait **C2PA**) + filigrane robuste + repli.

**Couvert :** texte, image, audio, vidéo, multimodal, 3D, VR/AR.

**Hors champ (§68) notamment :** sorties très courtes (mots isolés, légendes, alt, libellés UI, icônes), code source, machine-à-machine, simple réarrangement d’existant.

**Exceptions :** aide à l’édition standard (grammaire / format sans création), pas d’altération substantielle, usages légaux pénaux ; tolérances B2B fermé / éphémère temps réel.

**Observabilité :** présence C2PA / XMP = signal fort. Absence = **non concluant** (strip CDN/CMS) et l’obligation ne pèse en général **pas** sur le site qui affiche.

## 50(3) — émotions / biométrie

Déployeur informe au plus tard à la première exposition. Forme libre (écrit, icônes, oral…).

Catégorisation biométrique visée même hors « haut risque » (ex. estimation âge/genre à partir de biométrie).

**Attention Art. 5 :** reconnaissance d’émotions **au travail et en éducation = interdite** ; l’information 50(3) ne la rend pas licite.

Observabilité page publique : quasi nulle (SDK faciaux = indice faible).

## 50(4) — deepfakes et textes

### Al. 1 — hypertrucage

Déployeur pro d’un système qui génère/manipule image/audio/vidéo constituant un deepfake (art. 3(60)) : divulguer génération/manipulation artificielle.

Critères deepfake (cumulatifs) : ressemblance appréciable ; sujets existants ou plausiblement ; personnes/objets/lieux/événements ; apparaîtraient faussement authentiques. Intention de tromper **non** requise.

Divulgation **perceptible sans outil ni démarche dédiée**. **Le déployeur ne peut pas s’acquitter via le seul marquage 50(2) du fournisseur** (§117).

Œuvres artistiques / satiriques / fictionnelles : obligation **allégée** (ne pas entraver la jouissance), **pas** une exclusion. Si ambigu ou informatif+créatif → régime informatif l’emporte.

### Al. 2 — texte d’intérêt public

Divulguer l’origine IA **sauf** revue humaine / contrôle éditorial **et** responsabilité éditoriale assumée. Charte seule ou relecture auto = insuffisant. IA après validation → exception tombe. Identité + coordonnées du responsable éditorial **faciles à trouver** (ex. mentions légales).

## 50(5) — perceptibilité

Claire + distinguable + au plus tard 1ère interaction/exposition + accessibilité (renvoi directives accessibilité).

Insuffisant : manuel, **plusieurs niveaux de menus**, CGU non lues. Pour contenus : chaque sortie / chaque exposition raisonnable ; mention seulement au début d’une vidéo si on peut rejoindre au milieu = problématique.

## Sanctions (ordre de grandeur)

- Art. 50 → Art. 99(4) : jusqu’à **15 M€ ou 3 %** CA mondial (le plus élevé) ; PME/start-up : le **plus faible** ; institutions UE : 750 k€.
- Art. 5 → palier **35 M€ / 7 %**.
- Plaintes : art. 85. Autres droits (conso, image, pénal, DSA) restent applicables.
- Étiqueter correctement **ne légalise pas** un contenu autrement illicite.

## Observabilité scanner (rappel)

| Obligation | Observable ? |
| --- | --- |
| 50(1)+50(5) | Partiellement — meilleur terrain (mention dans l’UI) |
| 50(2) | Positif seulement (marque présente) |
| 50(3) | Hors portée |
| 50(4) médias | Partiel ; cas solide = origine IA attestée **sans** mention humaine |
| 50(4) texte | Hors portée (sauf mentions légales) |

reference-interdictions.md

Ouvrir sur GitHub
# Référence — interdictions (article 5) & bonnes / mauvaises pratiques

L’article 5 liste des **pratiques d’IA interdites**. La transparence (art. 50)
ne les rend jamais licites. En audit produit, traiter ces points en **priorité
critique** dès qu’un indice apparaît.

Plafond de sanctions : jusqu’à **35 000 000 EUR ou 7 %** du CA mondial
(art. 99), palier supérieur à celui de l’article 50.

Ce fichier oriente un audit technique. La qualification juridique finale
appartient à un conseil.

## Pratiques interdites — grille d’alerte produit

Pour chaque ligne : si l’app **fait** ou **facilite** clairement la pratique,
remonter en **Critique** avec preuves (écran, endpoint, doc produit, code).

| Thème (art. 5) | Signaux produits à chercher | Notes |
| --- | --- | --- |
| Techniques subliminales / manipulatoires dépassant la conscience, distordant le comportement | UX dark pattern extrême + IA personnalisée pour pousser des actes préjudiciables | Seuil élevé ; ne pas confondre avec du marketing banal |
| Exploitation de vulnérabilités (âge, handicap, situation sociale/économique) | Ciblage IA de mineurs / personnes vulnérables pour nuire | |
| Scoring social par autorités publiques (notation citoyenne étendue) | Produit « score citoyen » pour une autorité publique | Hors champ : scoring privé limité (crédit etc.) selon conditions — ne pas conclure trop vite |
| Biométrie pour inférer race, opinions politiques, religieuses, philosophiques, syndicales, vie sexuelle/orientation | Modèles « profilage sensible » depuis le visage / la voix | Vérifier exceptions légales étroites ; défaut = drapeau rouge |
| Scraping non ciblé de photos de visage sur internet / CCTV pour bases de reconnaissance | Pipelines d’ingestion massive de visages, datasets « web scrape faces » | |
| Reconnaissance d’émotions **sur le lieu de travail** ou **dans l’éducation** | Caméra / voix « mood detection » employés ou élèves | **Interdit** ; un disclaimer 50(3) ne suffit pas |
| Identification biométrique à distance « temps réel » dans l’espace public (police), hors exceptions strictes | Si le produit est vendu pour ce cas d’usage hors cadre légal | Exceptions nationales très encadrées — escalader au juridique |

Si le produit est clairement hors de ces cas, écrire : « Aucun indice d’usage
art. 5 détecté dans le périmètre inspecté » — pas « conforme art. 5 ».

## Bonnes pratiques transversales (au-delà du minimum légal)

### Transparence interaction

- Annonce IA **avant ou au premier message**, langage clair (FR/langue de l’UI).
- Badge permanent « IA » près de la saisie.
- Réponse honnête à « es-tu un robot / une IA ? ».
- Escalade humaine visible ; ne pas faire croire à un conseiller humain.
- Logs de la version du disclaimer (preuve de diligence).

### Contenus générés

- Pipeline qui **préserve** C2PA / métadonnées signées jusqu’au navigateur
  (attention CDN, recompression, screenshots).
- Légende visible sur images/vidéos photoréalistes publiées à titre pro.
- Séparer « stock photo » / « capture UI » / « visuel généré ».
- Pour le texte d’actualité / intérêt public : relecture humaine réelle +
  responsable éditorial public, ou mention d’origine IA.

### Gouvernance produit

- Registre des systèmes d’IA (finalité, rôle fournisseur/déployeur, base légale).
- Revue art. 5 avant tout nouveau use case biométrie / émotions / scoring.
- Contrat avec le fournisseur de modèle : marquage 50(2), détection, DPA.
- Formation support : ne jamais nier qu’un bot est une IA.
- Process plainte / signalement (art. 85 en tête).

### Technique & accessibilité

- Mentions contrastées, lisibles mobile, compatibles lecteurs d’écran.
- Ne pas cacher la mention dans un accordéon « Mentions légales ».
- Préserver le marquage à l’export (PNG/JPEG/SVG) ; documenter les formats qui
  le perdent (souvent WebP/AVIF après optimisation).

## Mauvaises pratiques (anti-patterns)

| Anti-pattern | Pourquoi c’est un problème |
| --- | --- |
| « On a du C2PA donc on est bons pour l’étiquette visible » | 50(2) ≠ 50(4) ; lignes directrices §117 |
| Mention seulement dans les CGU | Explicitement insuffisant (§38, §142) |
| Avatar ultra-réaliste + prénom humain, aucune mention IA | Risque tromperie + 50(1)/conso |
| Strip systématique des métadonnées « pour alléger le site » sans alternative | Fragilise la chaîne de marquage machine |
| Emotion AI « pour le bien-être au travail » avec simple bandeau | Peut être **interdit** (art. 5), pas un sujet de wording |
| Affirmer « conformité AI Act » dans le marketing après un scan auto | Surpromesse ; un scan = signaux |
| OCR / détecteur magique d’images IA présenté comme preuve | Non fiable ; hors bonnes pratiques Balise |
| Scanner des sites tiers pour publier « X est hors-la-loi » | Risque diffamation ; coller aux constats |

## Articulations hors AI Act (ne pas ignorer)

- **Droit de la consommation** : laisser croire à un humain peut être une
  omission trompeuse même si le débat 50(1) est complexe (débiteur).
- **RGPD** : biométrie = données sensibles ; bases légales strictes.
- **DSA** : marquages plateforme ≠ substitut automatique aux devoirs du
  déployeur, mais peuvent aider.
- **Droit à l’image / pénal** : un deepfake étiqueté peut rester illicite.

## Matrice décision rapide

```text
Fonction IA identifiée
 ├─ Indice art. 5 ? → Critique + stop usage / juridique
 ├─ Interaction directe personne ? → 50(1)+50(5)
 ├─ Génère média/texte (fournisseur) ? → 50(2)
 ├─ Publie média photoréaliste (déployeur) ? → 50(4) al.1
 ├─ Publie texte intérêt public ? → 50(4) al.2
 └─ Émotions / biométrie ? → 50(3) + re-check art. 5
```

report-template.md

Ouvrir sur GitHub
# Template de rapport — audit AI Act

Copier tel quel et remplir. Titre neutre : pas de « non-conformité » dans le H1.

```markdown
# Audit technique AI Act — [nom du produit / domaine]

- **Date :** YYYY-MM-DD
- **Périmètre :** [URLs, commits, environnements]
- **Outils :** [Cursor browser / Playwright / revue code / Balise / …]
- **Rôles estimés :** fournisseur / déployeur / mixte / indéterminé
- **Avertissement :** constat technique, pas un avis juridique.

## Synthèse (5 lignes max)

[Ce qui a été vu. Ce qui n’a pas pu l’être. Aucune conclusion d’amende.]

## Inventaire des fonctions IA

| Fonction | Surface | Fournisseur tech | Rôle estimé | Articles potentiellement concernés |
| --- | --- | --- | --- | --- |
| | | | | |

## Article 5 — alertes

| Statut | Détail | Preuve |
| --- | --- | --- |
| Aucun indice / Indice / Hors périmètre | | |

## Constats article 50

| ID | Article | Signal constaté | Sévérité | Preuve | Notes |
| --- | --- | --- | --- | --- | --- |
| C1 | 50(1)/50(5) | | | | Avant clic / après clic |
| C2 | 50(2) | | | | |
| C3 | 50(4) | | | | |
| C4 | 50(3) | | | | |

Sévérités : Critique | Élevé | Moyen | Info | OK signal

## Détail des preuves

### C1 — …

Extrait UI / URL / timestamp / capture.

## Bonnes pratiques déjà en place

- …

## Écarts & actions recommandées

| Priorité | Action | Owner suggéré | Objectif |
| --- | --- | --- | --- |
| P0 | | Legal / Produit | |
| P1 | | Eng | |
| P2 | | | |

## Limites de cet audit

- Une ou quelques pages / un environnement seulement
- Qualification « système d’IA », exceptions, identité du débiteur : souvent hors de portée
- Absence de marquage machine non conclusive
- Watermarks texte propriétaires non testés sauf outil dédié
- Pas de revue du dossier de conformité complet (GPAI / haut risque)

## Suite recommandée

- [ ] Revue juridique des points Critique / Élevé
- [ ] Correctifs produit (mentions, badges, pipeline métadonnées)
- [ ] Re-audit après déploiement
```

## Exemples de formulations (à réutiliser)

**Bon :**
« Après ouverture du widget Intercom sur `https://…/help`, le premier message
affiche : “…” — mention d’IA explicite au début de session. »

**Bon :**
« Sur la page servie avant clic, aucune mention d’IA n’était présente dans le
DOM accessible du lanceur ; le cadre du widget a été lu et ne contenait pas de
formulation de divulgation. »

**Mauvais :**
« Le site est hors la loi et risque 15 millions d’euros. »