CLAIR DocsCLAIR Docs
  • clair.vote
  • GitHub
  • Nous soutenir
Nous soutenir
  • Accueil
  • Plateforme & Guide
  • Données & Base de Données
  • Explorateur API
CLAIR

Plateforme citoyenne de transparence politique. Données 100% publiques, 0% d'opinion.

Explorer

  • Députés
  • Sénateurs
  • Groupes politiques
  • Sujets
  • Dossiers législatifs
  • Scrutins
  • Agenda
  • Lobbying

Ressources

  • Nous soutenir
  • À propos
  • Méthodologie
  • Contact
  • Comprendre
  • Guide pratique
  • API ouverte

Légal

  • Mentions légales
  • Confidentialité
  • CGU

© 2026 CLAIR. Sources : Assemblée nationale · Sénat · HATVP · Ministère de l'Intérieur · DILA

Vue d'ensembleCommandes CLIEnrichissement IAModèle PrismaOrchestrateur d'IngestionQualité des DonnéesSchémas ERDSources Open Data
Données & Base de Données

Qualité des Données & Contrôles d'Intégrité

Trois suites de garde-fous garantissent la fiabilité absolue des données affichées. Elles doivent être validées avant toute fusion de code modifiant l'ingestion ou le calcul des statistiques :

TerminalCode
pnpm --filter @clair/ingestion test # Tests unitaires Vitest pnpm --filter @clair/ingestion check-quality # Contrôle d'intégrité de la BDD pnpm --filter @clair/ingestion exec tsx src/cli.ts check-ia-quality # Contrôle des résumés IA

🛡️ Invariants de Base de Données (check-quality)

Le script vérifie que les anomalies critiques sont strictement égales à 0 :

Contrôle d'InvariantTolérance
Votes rattachés à un scrutin inexistant0
Scrutins orphelins sans aucun vote0
Doublons de scrutins (numéro + chambre + session)0
Doublons d'amendements sous une même clé canonique0
Parlementaires actifs non rattachés à un groupe politique0
Liaisons scrutin vers dossier entre chambres différentes0
Liaisons scrutin vers dossier entre législatures différentes (AN)0
Prises de parole rattachées au dossier d'une autre législature0
Amendements rattachés au dossier d'une autre législature0
Résumés IA contredisant l'état réel du dossier législatif0
Binômes d'élections sénatoriales de même sexe (art. L. 299)0
Ruptures d'alternance femme-homme sur les listes (art. L. 300)0

📈 Seuils Minimaux de Couverture

Pour détecter immédiatement toute régression ou perte silencieuse de données :

Métrique de CouvertureSeuil Minimal Attendu
Parlementaires actifs900 minimum
Groupes politiques15 minimum
Scrutins publics5 000 minimum
Votes individuels1 000 000 minimum
Amendements150 000 minimum
Interventions et débats500 000 minimum
Dossiers législatifs6 000 minimum
Taux de liaison Scrutins vers Dossiers (AN et Sénat)90 % minimum
Taux de liaison Scrutins vers Amendements (AN)80 % minimum
Taux de liaison Réunions vers Commissions85 % minimum

🤖 Contrôle des Résumés IA (check-ia-quality)

Le script check-ia-quality compare les résumés textuels générés par le modèle Mistral avec les tables de votes brutes :

  • Détection des inversions de vote (un groupe décrit comme favorable alors qu'il a voté contre).
  • Détection des fausses positions (attribuer une position sur un texte à un groupe n'ayant aucun vote enregistré).
  • Détection des confusions sur l'abstention.
Orchestrateur d'IngestionSchémas ERD
On this page
  • 🛡️ Invariants de Base de Données (check-quality)
  • 📈 Seuils Minimaux de Couverture
  • 🤖 Contrôle des Résumés IA (check-ia-quality)