Fix legal references accuracy and transparency page honesty

Prompts (legal_framework.py + prompts.ts):
- Add source-grounding rule: model must use only the provided legal texts
- Fix section 8 heading: "Livre préliminaire" doesn't exist in French CP —
  correct to "Livres II et IV" with proper structural references
- Fix Art. 211-2 description: was "incitation directe et publique" (wrong) —
  corrected to "participation à un groupement formé en vue de préparer"
- Fix Loi 1881 Art. 24: remove misleading terrorism note — apologie du
  terrorisme was transferred to CP Art. 421-2-5 by law n° 2014-1353
- Fix CRITÈRES DE REJET: remove phantom reference to Loi 1881 Art. 24 al. 6
  for terrorism (no longer in force for this offense since 2014)

transparence.tsx:
- Fix step 1: IP hash IS stored (30 days, separate table, anti-abuse only)
- Fix step 2: "(GPT)" → "(Mistral)" — wrong AI provider
- Fix data table: IP row was "Non conservée" — corrected to hash SHA-256
- Fix récapitulatif: "Données personnelles: Aucune" → accurate with IP hash
- Fix sources list: "Livre préliminaire" → correct Livre II/IV references

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-24 09:06:30 +02:00
parent f704f48e72
commit e8b4bde2f4
3 changed files with 41 additions and 21 deletions
+18 -8
View File
@@ -31,6 +31,13 @@ reconnus par le droit international.
CADRE LÉGAL DE RÉFÉRENCE
═══════════════════════════════════════════════════════════════════════════════
RÈGLE D'ANCRAGE — NE PAS IGNORER
Fonde TOUTES tes décisions exclusivement sur les textes listés ci-dessous.
N'ajoute aucune référence légale absente de ce cadre. N'enrichis pas cette
base depuis ta mémoire d'entraînement. Si un contenu est ambigu mais n'est
pas clairement couvert par un texte listé ici, accepte-le plutôt que de
rejeter sur la base d'une référence non fournie.
1. DÉCLARATION UNIVERSELLE DES DROITS DE L'HOMME (DUDH, ONU 1948)
• Art. 1 : "Tous les êtres humains naissent libres et égaux en dignité et
en droits."
@@ -88,12 +95,14 @@ CADRE LÉGAL DE RÉFÉRENCE
• Art. 4 : Interdiction de toute diffusion d'idées fondées sur la
supériorité ou la haine raciale.
8. CODE PÉNAL FRANÇAIS — LIVRE PRÉLIMINAIRE
Crimes les plus graves reconnus par le droit français et international.
8. CODE PÉNAL FRANÇAIS — CRIMES LES PLUS GRAVES (Livres II et IV)
Art. 211-1 à 212-3 : Livre II, Titre Ier (atteintes aux personnes).
Art. 461-1 à 461-31 : Livre IV, Titre VI (crimes de guerre).
• Art. 211-1 : Génocide — actes commis dans l'intention de détruire
un groupe national, ethnique, racial ou religieux.
L'incitation directe et publique à commettre un génocide
est une infraction autonome (Art. 211-2).
Art. 211-2 : participation à un groupement ou une entente
formés en vue de préparer un génocide ou des crimes
contre l'humanité.
• Art. 212-1 : Crimes contre l'humanité — meurtre, extermination,
réduction en esclavage, déportation, torture, viol,
persécution, disparition forcée, apartheid, lorsqu'ils
@@ -290,8 +299,10 @@ CADRE LÉGAL DE RÉFÉRENCE
45 000 € d'amende.
Apologie de crimes de guerre, crimes contre l'humanité,
réduction en esclavage — même peine.
Apologie de terrorisme — régime aggravé (Art. 421-2-5
Code pénal : 7 ans via internet).
[NB : depuis la loi n° 2014-1353 du 13 novembre 2014,
l'apologie du terrorisme est exclusivement régie par
l'Art. 421-2-5 du Code pénal — elle ne relève plus
de la présente loi.]
• Art. 24 bis : Négationnisme — contestation de l'existence de crimes
contre l'humanité reconnus par une juridiction française
ou internationale (loi Gayssot, 13 juillet 1990) — puni
@@ -413,8 +424,7 @@ Rejette les idées qui :
→ Loi du 29 juillet 1881, Art. 24 bis (Loi Gayssot du 13 juillet 1990)
✗ Font l'apologie du terrorisme ou d'actes terroristes, ou appellent à
rejoindre une organisation terroriste
→ Code pénal Art. 421-2-5 (7 ans via internet), Loi du 29 juillet 1881
Art. 24 al. 6
→ Code pénal Art. 421-2-5 (aggravé à 7 ans via internet)
✗ Incitent à commettre des actes terroristes ou en facilitent la préparation
→ Code pénal Art. 421-1 à 421-2-4, Art. 421-2-6
✗ Appellent au renversement violent des institutions républicaines ou à un
+18 -8
View File
@@ -12,6 +12,13 @@ reconnus par le droit international.
CADRE LÉGAL DE RÉFÉRENCE
═══════════════════════════════════════════════════════════════════════════════
RÈGLE D'ANCRAGE — NE PAS IGNORER
Fonde TOUTES tes décisions exclusivement sur les textes listés ci-dessous.
N'ajoute aucune référence légale absente de ce cadre. N'enrichis pas cette
base depuis ta mémoire d'entraînement. Si un contenu est ambigu mais n'est
pas clairement couvert par un texte listé ici, accepte-le plutôt que de
rejeter sur la base d'une référence non fournie.
1. DÉCLARATION UNIVERSELLE DES DROITS DE L'HOMME (DUDH, ONU 1948)
• Art. 1 : "Tous les êtres humains naissent libres et égaux en dignité et
en droits."
@@ -69,12 +76,14 @@ CADRE LÉGAL DE RÉFÉRENCE
• Art. 4 : Interdiction de toute diffusion d'idées fondées sur la
supériorité ou la haine raciale.
8. CODE PÉNAL FRANÇAIS — LIVRE PRÉLIMINAIRE
Crimes les plus graves reconnus par le droit français et international.
8. CODE PÉNAL FRANÇAIS — CRIMES LES PLUS GRAVES (Livres II et IV)
Art. 211-1 à 212-3 : Livre II, Titre Ier (atteintes aux personnes).
Art. 461-1 à 461-31 : Livre IV, Titre VI (crimes de guerre).
• Art. 211-1 : Génocide — actes commis dans l'intention de détruire
un groupe national, ethnique, racial ou religieux.
L'incitation directe et publique à commettre un génocide
est une infraction autonome (Art. 211-2).
Art. 211-2 : participation à un groupement ou une entente
formés en vue de préparer un génocide ou des crimes
contre l'humanité.
• Art. 212-1 : Crimes contre l'humanité — meurtre, extermination,
réduction en esclavage, déportation, torture, viol,
persécution, disparition forcée, apartheid, lorsqu'ils
@@ -271,8 +280,10 @@ CADRE LÉGAL DE RÉFÉRENCE
45 000 € d'amende.
Apologie de crimes de guerre, crimes contre l'humanité,
réduction en esclavage — même peine.
Apologie de terrorisme — régime aggravé (Art. 421-2-5
Code pénal : 7 ans via internet).
[NB : depuis la loi n° 2014-1353 du 13 novembre 2014,
l'apologie du terrorisme est exclusivement régie par
l'Art. 421-2-5 du Code pénal — elle ne relève plus
de la présente loi.]
• Art. 24 bis : Négationnisme — contestation de l'existence de crimes
contre l'humanité reconnus par une juridiction française
ou internationale (loi Gayssot, 13 juillet 1990) — puni
@@ -394,8 +405,7 @@ Rejette les idées qui :
→ Loi du 29 juillet 1881, Art. 24 bis (Loi Gayssot du 13 juillet 1990)
✗ Font l'apologie du terrorisme ou d'actes terroristes, ou appellent à
rejoindre une organisation terroriste
→ Code pénal Art. 421-2-5 (7 ans via internet), Loi du 29 juillet 1881
Art. 24 al. 6
→ Code pénal Art. 421-2-5 (aggravé à 7 ans via internet)
✗ Incitent à commettre des actes terroristes ou en facilitent la préparation
→ Code pénal Art. 421-1 à 421-2-4, Art. 421-2-6
✗ Appellent au renversement violent des institutions républicaines ou à un
@@ -40,12 +40,12 @@ export default function Transparence() {
{
num: "1",
titre: "Réception",
desc: "Votre texte est enregistré en base de données avec la date et l'heure. Le pseudonyme est facultatif. Aucune donnée d'identification (adresse IP, compte utilisateur) n'est associée à la contribution.",
desc: "Votre texte est enregistré en base de données avec la date et l'heure. Le pseudonyme est facultatif. Aucun compte utilisateur n'est requis. À des fins exclusivement anti-abus, un hash SHA-256 non réversible de l'adresse IP est conservé 30 jours dans une table séparée il ne peut pas être reconstitué en adresse IP et n'est jamais associé aux contributions affichées.",
},
{
num: "2",
titre: "Filtre de modération (IA)",
desc: "Un modèle de langage (GPT) analyse le texte pour vérifier sa conformité avec les droits fondamentaux reconnus par le droit international. Voir la section dédiée ci-dessous.",
desc: "Un modèle de langage (Mistral par défaut) analyse le texte pour vérifier sa conformité avec les droits fondamentaux reconnus par le droit international. Voir la section dédiée ci-dessous.",
},
{
num: "3",
@@ -99,7 +99,7 @@ export default function Transparence() {
"Charte des droits fondamentaux de l'UE (2000)",
"Convention internationale sur l'élimination de la discrimination raciale CERD (ONU, 1965)",
"Statut de Rome (CPI, 1998) génocide, crimes contre l'humanité, crimes de guerre",
"Code pénal français Livre préliminaire (Art. 211-1, 212-1) : génocide, crimes contre l'humanité",
"Code pénal français — Livre II (Art. 211-1, 212-1, 212-3) : génocide, crimes contre l'humanité · Livre IV (Art. 461-1 à 461-31) : crimes de guerre",
"Code pénal français Livre II : atteintes aux personnes (Art. 221-1 à 227-24)",
"Code pénal français Livre III : atteintes aux biens (Art. 311-1 à 323-8)",
"Code pénal français Livre IV : atteintes à la Nation et à l'État (Art. 411-1 à 450-5), terrorisme (Art. 421-1 à 421-2-5)",
@@ -230,7 +230,7 @@ export default function Transparence() {
{ donnee: "Pseudonyme", oui: true, detail: "Facultatif, librement choisi par l'utilisateur" },
{ donnee: "Date et heure", oui: true, detail: "Horodatage de la soumission" },
{ donnee: "Résultat du filtre", oui: true, detail: "Acceptée / refusée + motif" },
{ donnee: "Adresse IP", oui: false, detail: "Non conservée" },
{ donnee: "Adresse IP (hash)", oui: true, detail: "Hash SHA-256 non réversible — anti-abus uniquement, 30 jours, table séparée des contributions" },
{ donnee: "Compte utilisateur", oui: false, detail: "Aucune inscription requise" },
{ donnee: "Cookie de suivi", oui: false, detail: "Aucun tracker, aucune publicité" },
{ donnee: "Données de navigation", oui: false, detail: "Non collectées" },
@@ -308,7 +308,7 @@ export default function Transparence() {
{ label: "Frontend", val: "React + Vite" },
{ label: "IA de modération", val: "Mistral small (défaut) — configurable via FILTER_MODEL" },
{ label: "IA de synthèse", val: "Mistral large (défaut) — configurable via SYNTHESIS_MODEL" },
{ label: "Données personnelles", val: "Aucune (pseudonyme facultatif uniquement)" },
{ label: "Données personnelles", val: "Hash d'IP anti-abus (30 j, non réversible) · pseudonyme facultatif" },
{ label: "Trackers / publicité", val: "Aucun" },
{ label: "Inscription requise", val: "Non" },
].map((row) => (