spb/qc-election
Public
Python 66.6%
HTML 24.8%
CSS 4.9%
JavaScript 3.6%
-
Sun, Aug 30, 2026 3
-
Socle de données v3 (ADDENDUM) — sources canoniques, registres vérifiés, owned/earned
…
- ingest/elections_quebec.py : DGEQ CANONIQUE — tableau officiel des partis provinciaux autorisés (20 partis, chefs, nb de candidats, date d'autorisation, data/partis_autorises.json) + alertes dérive-chef (jamais de remplacement silencieux) + électeurs/circ. best-effort (GeoJSON brut) - config/social_seeds.json : registre canonique des comptes (provenance official_site=verified / search=pending_review, PLQ 100 % vérifié site officiel, CAQ FB+YT officiels) + config/social_queries.json versionné - ingest/social_account_discovery.py : découverte hebdo depuis les sites officiels (Firecrawl) → promotion verified / WebSignal pending_review / alertes dérive-chef; anti-bruit (ids FB numériques des candidats, plafond) - social_pulse : cibles/requêtes chargées des registres (plus de handles en dur); SocialPost.content_class (owned ≠ discussion publique, §33) + micro-migration SQLite additive (db._migrate) - Cadence : vérifications canoniques + découverte 1×/7 j dans le pipeline - Livrables §42 : DATA_SOURCE_AUDIT.md (inventaire tiers 1-5, statuts réels testés), POPULATION_FEATURES.md (plan StatCan AD→127, cellules MRP), SOCIAL_ACCOUNT_REGISTRY.csv (26 comptes) - 29/29 tests verts Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
v3.0.0 « 127 » — Phases A+B : validation, Social Intelligence, forecast par comté
…
Phase A (fondations) : - modeling/validation/ : scoring commun (EAM/RMSE, couverture 50/90/95, Brier, log loss, sharpness, biais) + cadre d'ABLATION (backtest 2022 par variante, deltas vs FULL publiés, data/ablation_report.json, /api/ablation, POST /api/admin/ablation) - Feature flags conservateurs (enable_social_volatility, enable_tipping_points, enable_ablation, enable_social_directional=OFF) - Observabilité Apify (table apify_runs) + /api/admin/data-health (§33-34) Phase B (Social Intelligence Layer) : - modeling/signals/social.py : métriques inter-plateformes normalisées (attention_z, velocity_z, breadth, cross_platform, stance_balance) + filtrage de coordination (quasi-doublons, rafales) → attention organique - modeling/signals/volatility.py : multiplicateur de variance unifié wiki+social, borné [1, 1,5], variance seulement (§16) - modeling/signals/event_detection.py : événements à confirmation croisée (≥2 familles : presse, social, Wikipédia), sans effet directionnel présumé Forecast par comté : - simulate.tipping_points : circonscriptions pivots de la majorité (méthode des simulations, 64e siège le plus sûr), stocké par run (§24) - Page /circonscriptions : 127 fiches (recherche, filtres, tri, détail complet IC 95 %/candidatures/2022), pivots avec barres de course, KPIs - /api/battlegrounds + API v3 (/api/v3/forecast|ridings|social|battlegrounds| events|beyond|calibration|ablation), compatibilité v1 conservée 29/29 tests verts. METHODOLOGY §9 bis. ModelVersion 3.0.0. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Pouls social continu — actor Apify maison qc-social-pulse + sources ouvertes
…
- Actor Apify maison (compte gorgeous_thistle, id aI5AYtFfeDn3KAanf) : Instagram (comptes officiels vérifiés : coalition_avenir_quebec, partiquebecois, psppqc, liberalquebec, quebecsolidaire, ericduhaimequebec, frechette_christine), Facebook/TikTok best-effort, YouTube recherche + COMMENTAIRES PUBLICS (innertube) — proxy résidentiel CA, retries rotation IP, source dans apify/qc-social-pulse/ - ingest/social_pulse.py : + Reddit r/Quebec (index Google/Serper), Mastodon, Lemmy.ca; stance dirigée + entité de contexte; pondération engagement 1+ln(1+votes); anti-bruit (dédup URL+texte intra-lot et DB, longueur min, plafonds); indice enthousiasme par parti (Indicator); anomalies → événements - Table social_posts; API /api/social; section « Pouls social » (intelligence) + ligne au point du jour; pipeline à chaque cycle; poids NUL dans le forecast - Test réel : 185 posts (74 commentaires YouTube, 40 Mastodon, 71 Lemmy), enthousiasme CAQ 261/PCQ 206/PLQ 132 eng/post Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-