spb/qc-election
Public
Python 66.6%
HTML 24.8%
CSS 4.9%
JavaScript 3.6%
1<!-- QC Élection Forecast — Plateforme de prévision électorale du Québec 2026 -->2<!-- Auteur : Simon-Pierre Boucher -->3<!-- Contact : contact@spboucher.ai -->4<!-- https://www.qc-election.com -->56# FEUILLE DE ROUTE — Programmes officiels et compas électoral IA78Mandat reçu le 2026-08-31 (spécification complète conservée ici). Statut :9**PLANIFIÉ — prochaine grande phase après la consolidation du forecast.**10Règle finale : ne jamais sacrifier la neutralité et la preuve pour le spectaculaire.1112## Vision13Module d'analyse des programmes des 5 partis : documentation officielle14collectée/versionnée, engagements atomiques structurés et CITÉS, comparaison15équitable thème par thème, compas électoral multidimensionnel (6 axes + sous-axes)16alimenté par l'IA mais audité, questionnaire adaptatif, proximités avec17incertitude — jamais « vous êtes ce parti ».1819## Règles absolues (résumé de la spécification)201. **Aucune invention** : chaque affirmation ↔ preuve textuelle officielle +21 version; « position officielle non trouvée » plutôt qu'une position supposée;22 séparation engagement explicite / orientation / chiffré / continuité /23 position historique non reconfirmée / inférence IA (marquée, confiance,24 exclue du score principal) / absence.252. **Hiérarchie d'autorité** : plateforme finale > cadre financier > engagement26 de campagne > communiqué > page thématique > congrès > déclaration27 transcrite > social officiel. Contradiction → afficher les deux, jamais écraser.283. **Neutralité testée** : double classification indépendante + arbitre,29 permutation des noms de partis, symétrie des formulations, calibration sur30 corpus annoté, reproductibilité à température nulle, versions modèle/prompt.314. **Vie privée** : aucune réponse du compas enregistrée sans consentement.3233## Actifs déjà en place (réutiliser)34- Sites officiels vérifiés + registre : `config/social_seeds.json`35 (caq/pq/plq/qs/pcq + fiches DGEQ `data/partis_autorises.json`).36- Pipeline Firecrawl (scrape/archivage/hash) : `ingest/firecrawl_watch.py`,37 patterns d'archivage `data/raw/…`.38- File de révision : pattern `excluded=True` + WebSignal (rapports primaires).39- RAG maison : `modeling/explain.py` (à étendre au corpus des programmes).40- Design system QC Signal + composants (tabs, tables, cartes).4142## Ordre d'exécution (spécification §Ordre)431. Schéma canonique : tables `party_documents` (versionnées, hash, autorité,44 statut actif/remplacé), `claims` (engagement atomique : thème, verbatim,45 citation URL+section, instrument, statut, coûts, compétence, confiance,46 validation humaine), `taxonomy` versionnée (18 thèmes), `axes` (6+6).472. Connecteurs des 5 sites (découverte PDF/pages, diff « Ce qui a changé dans48 les programmes », respect robots.txt, file de blocage humaine).493. Extraction d'engagements (règles + LLM avec confiance, JAMAIS silencieux)50 + interface de révision (admin).514. Comparateur thématique (matrice 5 partis × 18 thèmes, indices documentaires :52 couverture, précision, chiffrage, financement, cohérence, traçabilité,53 faisabilité juridictionnelle, stabilité — méthodologie publique, pas de54 « meilleur programme »).555. Axes + corpus annoté + calibration IA (scores -5..+5 par engagement,56 pondération autorité/récence/précision/budget, incertitude, preuves listées).576. Questionnaire 25-35 propositions + mode adaptatif (gain d'information,58 importance déclarée, « cela dépend », axes désactivables).597. Moteur de proximité (par axe, accords/désaccords forts, robustesse,60 sensibilité, 3 pondérations, intervalles) — jamais un verdict unique.618. Pages : /programmes (matrice, recherche sémantique, citations ouvrables,62 chronologie, « différences essentielles », « positions non documentées »),63 /compas (interactif, accessible, partage sans réponses privées),64 explorateur RAG cité, mode chercheur (exports CSV/JSON, API, snapshots65 immuables reproductibles).669. Contrôles automatiques (§Étape 10 au complet) + tests de biais.6768## Définition de terminé (spécification)69Un citoyen comprend les différences réelles, vérifie chaque affirmation dans un70document officiel, obtient une proximité multidimensionnelle sans manipulation,71explore pourquoi le résultat change, et reproduit le même résultat depuis le72même snapshot.73