- 6 composants Astro : Structurel, Politique, Conjoncturel, Kpi, Sondage, Timeline - content.config.ts : schéma enrichi (kpi_*, opinion_*, sections, rang_eu) - [slug].astro : nav dynamique, header métriques, sidebar TOC, typographie complète - _TEMPLATE.mdx : template canonique 9 sections pour chaque fiche - workflows/build-theme.js : prompt deep-research complet — historique, opinion, acteurs, 3 couches d'enjeux, benchmarks pays, propositions IRPF fondées sur littérature internationale, lecture politique, MDX complet avec composants Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
901 lines
52 KiB
JavaScript
901 lines
52 KiB
JavaScript
/**
|
||
* IRPF — Workflow de production d'une fiche thème ultra-approfondie
|
||
*
|
||
* Usage : Workflow({ scriptPath: '...build-theme.js', args: { slug: 'education', label: 'Éducation & Formation' } })
|
||
*
|
||
* Structure produite (9 sections) :
|
||
* 1. Diagnostic → état actuel, chiffres clés, paradoxes
|
||
* 2. Historique → Timeline 30 ans de réformes
|
||
* 3. Enjeux → Structurel / Politique / Conjoncturel (3 couches visuelles)
|
||
* 4. International → Comparatifs UE/OCDE + recommandations institutionnelles
|
||
* 5. Opinion → Sondages Eurobaromètre, CEVIPOF, presse
|
||
* 6. Acteurs → Cartographie décisionnaires, think tanks, corps intermédiaires
|
||
* 7. Propositions → Partis + institutionnelles + IRPF originales
|
||
* 8. Scénarios 2027-2032 → 3 scénarios avec probabilités
|
||
* 9. Sources → Bibliographie complète
|
||
*/
|
||
|
||
export const meta = {
|
||
name: 'irpf-build-theme',
|
||
description: 'Produit une fiche thème IRPF ultra-approfondie — 9 sections, composants visuels, deep research multi-sources',
|
||
phases: [
|
||
{ title: 'Collecte internationale', detail: 'OCDE, UE, FMI, OMS, OIT, GIEC, V-Dem, etc.' },
|
||
{ title: 'Collecte nationale', detail: 'INSEE, Cour des comptes, think tanks FR, DREES, etc.' },
|
||
{ title: 'Opinion & acteurs', detail: 'Eurobaromètre, CEVIPOF, cartographie institutionnelle' },
|
||
{ title: 'Historique & enjeux', detail: 'Timeline réformes 30 ans + 3 couches (structurel/politique/conj.)' },
|
||
{ title: 'Synthèse Opus', detail: 'Diagnostic de niveau Cour des comptes × OCDE' },
|
||
{ title: 'Propositions Opus', detail: 'Programme IRPF 2027-2032, fondé sur benchmarks pays' },
|
||
{ title: 'Lecture politique', detail: 'Partis, blocages, fenêtres, séquence réforme' },
|
||
{ title: 'Production MDX', detail: 'Fichier complet prêt à déployer' },
|
||
],
|
||
};
|
||
|
||
// ─── CONFIGURATION PAR THÈME ─────────────────────────────────────────────────
|
||
|
||
const THEME_CONFIG = {
|
||
'economie-finances': {
|
||
ordre: 1, priorite: 'critique', budget_milliards: 492, effectifs: 0,
|
||
kpi_label: 'Dette publique / PIB',
|
||
sources_intl: ['FMI Article IV France 2024', 'OCDE Études économiques France 2024', 'Commission européenne Country Report France 2024', 'Eurostat finances publiques', 'BRI statistiques bancaires France', 'HCFP avis 2024-2025'],
|
||
sources_fr: ['INSEE comptes nationaux 2024', 'Banque de France projections 2025', 'Cour des comptes situation finances publiques 2024', 'CAE notes récentes', 'iFRAP études fiscales', 'Institut Montaigne économie', 'France Stratégie économie'],
|
||
sources_opinion: ['IFOP baromètre fiscalité', 'CREDOC niveau de vie 2024', 'Eurobaromètre économie France 2024', 'IFOP confiance économique'],
|
||
indicateurs_cibles: ['déficit public %PIB', 'dette publique %PIB', 'dépenses publiques %PIB', 'prélèvements obligatoires %PIB', 'croissance PIB', 'charge de la dette milliards', 'rang compétitivité WEF', 'taux chômage', 'inflation'],
|
||
angles_specifiques: ['trajectoire dette 2030-2035 scénarios FMI', 'espace budgétaire réel réformes possibles', 'comparaison fiscalité Zone Euro détail', 'réforme fiscale OCDE Pilier 2 impact France'],
|
||
think_tanks: ['iFRAP', 'Institut Montaigne', 'CAE', 'OFCE', 'Terra Nova', 'Fondapol', 'France Stratégie'],
|
||
partis: ['LFI', 'PS', 'EELV', 'Renaissance', 'LR', 'RN'],
|
||
timeline_periodes: ['Traité de Maastricht 1992', 'Réforme Jospin 35h 2000', 'Crise 2008-2009', 'Réforme fiscale Hollande 2012', 'Pacte responsabilité 2014', 'Macron CICE/baisses IS 2017-2022', 'COVID déficit record 2020', 'Inflation et remontée taux 2022-2024'],
|
||
},
|
||
'sante': {
|
||
ordre: 2, priorite: 'critique', budget_milliards: 260, effectifs: 1100000,
|
||
kpi_label: 'Médecins / 1 000 hab.',
|
||
sources_intl: ['OCDE Health at a Glance 2023-2024', 'OMS WHO Euro Health Observatory France 2024', 'Commission UE Country Health Profile France 2023', 'Eurostat santé SILC', 'IRDES études comparatives'],
|
||
sources_fr: ['DREES Panorama santé 2025', 'Haut Conseil de la Santé Publique', 'Cour des comptes santé 2024-2025', 'Institut Montaigne santé', 'Terra Nova santé', 'Fédération Hospitalière de France'],
|
||
sources_opinion: ['Eurobaromètre santé mentale 2023', 'Eurobaromètre cancer 2024', 'IFOP confiance système de santé 2024', 'CEVIPOF baromètre confiance hôpital', 'Elabe perception déserts médicaux'],
|
||
indicateurs_cibles: ['espérance de vie', 'dépenses santé %PIB', 'médecins pour 1000 hab', 'généralistes pour 1000 hab', 'lits hospitaliers pour 1000', 'déficit hôpitaux milliards', 'délais attente', '% territoires déserts médicaux'],
|
||
angles_specifiques: ['démographie médicale 2025-2032 projections', 'comparaison systèmes UE Bismarck vs Beveridge', 'performance hospitalière financement T2A alternatives', 'prévention vs curatif investissement comparé'],
|
||
think_tanks: ['Institut Montaigne', 'Terra Nova', 'IRDES', 'Fondation de l\'Avenir', 'IFRAP santé'],
|
||
partis: ['LFI', 'PS', 'EELV', 'Renaissance', 'LR', 'RN'],
|
||
timeline_periodes: ['Loi Évin 1991', 'Plan Juppé 1995-1996', 'CMU 1999', 'Loi HPST Bachelot 2009', 'Pacte territoire-santé 2012-2017', 'Ségur de la Santé 2020', 'Suppression numerus clausus 2019', 'Loi Valletoux 2023'],
|
||
},
|
||
'education': {
|
||
ordre: 3, priorite: 'haute', budget_milliards: 168, effectifs: 1000000,
|
||
kpi_label: 'Score PISA (mathématiques)',
|
||
sources_intl: ['OCDE PISA 2022 France résultats', 'OCDE TALIS 2018-2024 France enseignants', 'OCDE Education at a Glance 2023 France', 'UNESCO UIS France données', 'Commission UE Education Monitor France 2023'],
|
||
sources_fr: ['DEPP statistiques éducation 2024', "Conseil d'évaluation de l'école CEE", 'Cour des comptes éducation 2022-2024', 'Institut Montaigne éducation', 'Terra Nova école', 'Ifrap éducation'],
|
||
sources_opinion: ['Eurobaromètre confiance enseignement France', 'IFOP parents satisfaction école 2024', 'CEVIPOF confiance institutions éducatives', 'Ipsos perception inégalités scolaires'],
|
||
indicateurs_cibles: ['score PISA maths', 'score PISA lecture', 'score PISA sciences', 'décrochage scolaire %', 'inégalités PISA entre écoles', 'dépenses par élève primaire/secondaire', 'taux scolarisation 3 ans', 'taux réussite bac'],
|
||
angles_specifiques: ['reproduction sociale mesure OCDE vs France', 'comparaison Finlande Estonie Canada méthodes pédagogiques', 'réforme lycée Blanquer impact mesuré', 'formation initiale et continue enseignants comparée'],
|
||
think_tanks: ['Institut Montaigne', 'Terra Nova', 'Fondapol', 'Les Échos Études', "Conseil d'évaluation de l'école"],
|
||
partis: ['LFI', 'PS', 'EELV', 'Renaissance', 'LR', 'RN'],
|
||
timeline_periodes: ['Loi Haby 1975 collège unique', 'Loi Jospin 1989 enfant au centre', 'Réforme Allègre 1997-2000', 'Loi Fillon 2005 socle commun', 'Rythmes scolaires 2013', 'Réforme lycée Blanquer 2019', 'Choc des savoirs Attal 2024'],
|
||
},
|
||
'environnement': {
|
||
ordre: 4, priorite: 'critique', budget_milliards: 40, effectifs: 0,
|
||
kpi_label: 'Réduction émissions vs 1990',
|
||
sources_intl: ['GIEC AR6 impacts France régionaux', 'CCNUCC NDC France trajectoire', 'AIE France Energy Policy 2023', 'IRENA France renouvelables', 'Commission UE Fit for 55 France état', 'Eurostat environnement'],
|
||
sources_fr: ['ADEME bilan carbone France 2024', 'SDES données environnement', 'Haut Conseil pour le Climat rapport 2024', 'Cour des comptes transition énergétique', 'I4CE baromètre investissement vert', 'Institut Rousseau'],
|
||
sources_opinion: ['Eurobaromètre attitude changement climatique France 2024', 'IFOP perception urgence climatique 2024', 'CREDOC comportements éco-responsables', 'CEVIPOF vote vert'],
|
||
indicateurs_cibles: ['émissions CO2 France MtCO2e', 'réduction vs 1990 %', 'part renouvelables % mix', 'objectif 2030 écart trajectoire', 'investissement vert milliards', 'artificialisation sols ha/an', 'indice biodiversité'],
|
||
angles_specifiques: ['coût inaction climatique France 2030-2050 chiffré', 'gap financement transition verte 2030', 'justice climatique impacts inégaux', 'comparaison Allemagne Energiewende et leçons'],
|
||
think_tanks: ['I4CE', 'Institut Rousseau', 'Haut Conseil pour le Climat', 'IDDRI', 'ADEME', 'France Stratégie'],
|
||
partis: ['LFI', 'PS', 'EELV', 'Renaissance', 'LR', 'RN'],
|
||
timeline_periodes: ['Loi Grenelle I 2009', 'COP21 Paris 2015', 'Loi transition énergétique 2015', 'Plan Climat 2017', 'Convention citoyenne 2020', 'Loi Climat et Résilience 2021', 'REPowerEU et crise énergie 2022', 'Planification écologique 2023'],
|
||
},
|
||
'defense': {
|
||
ordre: 5, priorite: 'haute', budget_milliards: 47, effectifs: 210000,
|
||
kpi_label: 'Budget défense % PIB',
|
||
sources_intl: ['OTAN dépenses défense rapport 2024', 'SIPRI Military Expenditure France 2024', 'IISS Military Balance France 2024', 'ECFR France défense', 'Chatham House France sécurité'],
|
||
sources_fr: ['LPM 2024-2030 texte et bilan', 'FRS études', 'IRIS défense', 'IFRI sécurité', 'Cour des comptes défense 2023'],
|
||
sources_opinion: ['Eurobaromètre défense Europe France', 'IFOP soutien armée française', 'IFOP menaces perçues 2024', 'CEVIPOF confiance armée'],
|
||
indicateurs_cibles: ['% PIB défense', 'effectifs armées actifs', 'budget R&D défense milliards', 'OPEX budget annuel', 'budget dissuasion nucléaire', 'exports défense rang mondial', 'commandes DGA milliards'],
|
||
angles_specifiques: ['trajectoire 2% PIB OTAN 2025-2030 faisabilité', 'autonomie stratégique européenne PSDC', 'compétition technologique IA-défense France vs US/Chine', 'BITD Base Industrielle Technologique Défense compétitivité'],
|
||
think_tanks: ['IFRI', 'IRIS', 'FRS', 'IRSEM', 'Chatham House', 'ECFR'],
|
||
partis: ['LFI', 'PS', 'EELV', 'Renaissance', 'LR', 'RN'],
|
||
timeline_periodes: ['Fin service militaire 1996', 'Intervention Kosovo 1999', 'LPM 2003-2008', 'Livre Blanc 2008 réforme armées', 'Opération Serval Mali 2013', 'Attentats 2015 et Opération Barkhane', 'LPM 2019-2025', 'Guerre Ukraine 2022 réveil stratégique', 'LPM 2024-2030'],
|
||
},
|
||
'justice': {
|
||
ordre: 6, priorite: 'haute', budget_milliards: 11, effectifs: 90000,
|
||
kpi_label: 'Durée procédures civiles (mois)',
|
||
sources_intl: ['CEPEJ évaluation systèmes judiciaires Europe 2024 France', 'CEDH arrêts France 2023-2024', 'GRECO rapport France 5e cycle', 'Commission UE Tableau de bord justice 2024 France', 'Transparency International France'],
|
||
sources_fr: ['Ministère Justice statistiques 2024', 'Cour des comptes justice 2023', 'Syndicats magistrats USM SM', 'Institut Montaigne justice', 'CNB barreau'],
|
||
sources_opinion: ['Eurobaromètre confiance système judiciaire France', 'IFOP confiance tribunaux 2024', 'CREDOC accès au droit perçu', 'CEVIPOF confiance justice'],
|
||
indicateurs_cibles: ['durée procédures civiles mois', 'durée procédures pénales', 'budget justice %PIB', 'magistrats pour 100k hab', 'taux population carcérale pour 100k', 'condamnations CEDH annuelles', 'aide juridictionnelle bénéficiaires'],
|
||
angles_specifiques: ['indépendance judiciaire garanties constitutionnelles comparées', 'numérique judiciaire retard France vs UE', 'surpopulation carcérale solutions comparées', 'accès justice coûts barrières comparaison UE'],
|
||
think_tanks: ['Institut Montaigne', 'Fondapol', 'Terra Nova droit', 'IHEJ', 'Association Henri Capitant'],
|
||
partis: ['LFI', 'PS', 'EELV', 'Renaissance', 'LR', 'RN'],
|
||
timeline_periodes: ['Réforme CSM 1993', 'Loi Guigou présomption innocence 2000', 'Réforme carte judiciaire Dati 2008', 'Loi Taubira 2014 alternatives prison', 'Réforme Belloubet 2017-2019', 'Loi confiance institution judiciaire 2021', 'États généraux justice 2022', 'Plan justice 2023-2027'],
|
||
},
|
||
'affaires-etrangeres': {
|
||
ordre: 7, priorite: 'normale', budget_milliards: 3.2, effectifs: 14000,
|
||
kpi_label: 'APD / RNB %',
|
||
sources_intl: ['OCDE DAC aide France 2024', 'ECFR France foreign policy scorecard 2024', 'Brookings France global role', 'Chatham House France influence', 'SIPRI France multilatéral'],
|
||
sources_fr: ['MAE rapport annuel 2024', 'France Stratégie influence française', 'IRIS international', 'IFRI France global', 'Sénat Commission affaires étrangères'],
|
||
sources_opinion: ['Eurobaromètre politique étrangère France', 'IFOP image France monde', 'BVA confiance diplomatie française', 'CEVIPOF opinion internationale'],
|
||
indicateurs_cibles: ['APD %RNB', 'APD milliards', 'rang soft power Brand Finance', 'réseau diplomatique postes', 'contribution ONU %', 'exports défense rang', 'francophonie locuteurs millions'],
|
||
angles_specifiques: ['écart APD 0,7% RNB objectif trajectoire', 'influence France Afrique recomposition post-Sahel', 'diplomatie climatique leadership Paris Accord suivi', 'soft power culturel mesure comparaison'],
|
||
think_tanks: ['IFRI', 'IRIS', 'Institut Montaigne international', 'Fondapol global', 'European Council on Foreign Relations'],
|
||
partis: ['LFI', 'PS', 'EELV', 'Renaissance', 'LR', 'RN'],
|
||
timeline_periodes: ['Traité Maastricht 1992 PESC', 'Refus guerre Irak 2003', 'Retour OTAN commandement intégré 2009', 'Traité Lisbonne et SEAE 2009', 'Présidence française UE 2022', 'Retrait Mali/Burkina 2022-2023', 'Réinvestissement OTAN post-Ukraine 2022', 'Réorientation Indo-Pacifique 2022-2025'],
|
||
},
|
||
'travail-emploi': {
|
||
ordre: 8, priorite: 'critique', budget_milliards: 0, effectifs: 0,
|
||
kpi_label: 'Taux chômage %',
|
||
sources_intl: ['OCDE Employment Outlook France 2024', 'OIT France conventions et indicateurs', 'Commission UE Semestre européen emploi France 2024', 'Eurostat emploi France', 'OCDE retraites pension systems'],
|
||
sources_fr: ['DARES emploi activité 2024', 'INSEE enquête emploi', 'Cour des comptes emploi 2023-2024', 'CAE travail', 'France Stratégie emploi', 'COR rapport retraites 2024'],
|
||
sources_opinion: ['Eurobaromètre conditions travail France', 'IFOP bien-être au travail 2024', 'Malakoff Humanis baromètre QVT', 'CEVIPOF travail valeurs'],
|
||
indicateurs_cibles: ['taux chômage %', 'taux emploi 15-64 %', 'taux emploi 55-64 %', 'taux emploi jeunes %', 'coût travail comparatif', 'taux syndicalisation %', 'accidents travail taux', 'âge départ retraite effectif moyen'],
|
||
angles_specifiques: ['plein emploi 5% scenario trajectoire', 'retraites soutenabilité 2050 COR', 'flexisécurité danoise adaptation France', 'emploi seniors France vs Allemagne Suède'],
|
||
think_tanks: ['CAE', 'OFCE', 'Institut Montaigne travail', 'Terra Nova emploi', 'iFRAP social'],
|
||
partis: ['LFI', 'PS', 'EELV', 'Renaissance', 'LR', 'RN'],
|
||
timeline_periodes: ['35 heures Aubry 2000', 'CNE CPE 2005-2006 retrait', 'Accord compétitivité emploi 2013', 'Loi El Khomri 2016', 'Ordonnances travail Macron 2017', 'Réforme assurance chômage 2019-2022', 'Réforme retraites 2023', 'Plan plein emploi France Travail 2024'],
|
||
},
|
||
'logement': {
|
||
ordre: 9, priorite: 'critique', budget_milliards: 38, effectifs: 0,
|
||
kpi_label: 'Prix immobilier / revenu médian',
|
||
sources_intl: ['OCDE Affordable Housing France 2024', 'Commission UE logement abordable rapport 2024', 'UN-Habitat France urbanisation', 'Eurostat logement SILC'],
|
||
sources_fr: ['SDES logement statistiques 2024', 'Banque des Territoires rapport', 'ANCOLS HLM contrôle', 'Fondation Abbé Pierre mal-logement 2025', 'Institut Montaigne logement'],
|
||
sources_opinion: ['Eurobaromètre logement accès France', 'IFOP préoccupation logement 2024', 'Ipsos crise logement perçue', 'CREDOC dépenses logement contraintes'],
|
||
indicateurs_cibles: ['prix immobilier/revenu ratio', 'taux propriétaires %', 'stock HLM unités', 'mal logement personnes', 'sans-abri estimations', 'construction neuve logements/an', 'coût logement %revenu', 'taux vacance'],
|
||
angles_specifiques: ['choc offre diagnostic blocages ZAN permis', 'comparaison Allemagne Pays-Bas modèle locatif', 'ZAN artificialisation objectif 2050', 'rénovation thermique MaPrimeRénov impact mesuré'],
|
||
think_tanks: ['Institut Montaigne', 'Terra Nova', 'Fondation Abbé Pierre', 'iFRAP logement', 'FNAIM'],
|
||
partis: ['LFI', 'PS', 'EELV', 'Renaissance', 'LR', 'RN'],
|
||
timeline_periodes: ['Loi SRU 2000 20% HLM', 'Loi Boutin 2009', 'Loi ALUR Duflot 2014', 'Loi Elan 2018', 'ZAN loi Climat 2021', 'Crise hausse taux 2022-2023', 'Chute construction 2023-2024', 'Plan logement 2023 100 mesures'],
|
||
},
|
||
'agriculture': {
|
||
ordre: 10, priorite: 'haute', budget_milliards: 22, effectifs: 400000,
|
||
kpi_label: 'Exploitations viables (EBE/UTANS > 1,5 SMIC)',
|
||
sources_intl: ['FAO food security France', 'OCDE Agricultural Outlook 2024 France', 'Commission UE PAC France mise en oeuvre', 'Eurostat agri-statistiques France', 'IFPRI souveraineté alimentaire'],
|
||
sources_fr: ['Agreste statistiques 2024', 'INRAE publications', 'Chambres agriculture rapport', 'Cour des comptes PAC 2024', 'Syndicats FNSEA JA'],
|
||
sources_opinion: ['Eurobaromètre agriculture alimentation France', 'IFOP image agriculteurs 2024', 'CREDOC alimentation durable comportements', 'Ipsos souveraineté alimentaire'],
|
||
indicateurs_cibles: ['SAU millions ha', 'exploitations viables %', 'revenus agricoles moyens', 'part bio % SAU', 'pesticides usage kg/ha', 'balance agroalimentaire export', 'part auto-approvisionnement produits clés'],
|
||
angles_specifiques: ['renouvellement générations 50% départ retraite 2030', 'souveraineté alimentaire mesure produits critiques', 'PAC réforme 2023-2027 impact France', 'agri-écologie transition rendements comparés'],
|
||
think_tanks: ['INRAE', 'IDDRI agri', 'Fondation de France', 'Terra Nova agri', 'iFRAP agriculture'],
|
||
partis: ['LFI', 'PS', 'EELV', 'Renaissance', 'LR', 'RN'],
|
||
timeline_periodes: ['PAC réforme Mac Sharry 1992', 'Agenda 2000 PAC', 'Loi d\'orientation agricole 2006', 'PAC 2014-2020', 'Loi Alimentation EGAlim 2018', 'PAC 2021-2027', 'Crise agricole 2024 blocages routes', 'Plan souveraineté 2024'],
|
||
},
|
||
'numerique': {
|
||
ordre: 11, priorite: 'haute', budget_milliards: 9, effectifs: 0,
|
||
kpi_label: 'Score DESI (rang UE)',
|
||
sources_intl: ['OCDE Digital Economy Outlook 2024 France', 'Eurostat DESI 2024 France', 'Commission UE Digital Decade France', 'ITU IDI France', 'IMD World Digital Competitiveness'],
|
||
sources_fr: ['ARCEP état internet France 2024', 'DGE numérique', 'ANSSI cyber état', 'France Stratégie numérique', 'Institut Montaigne IA France'],
|
||
sources_opinion: ['Eurobaromètre confiance numérique France', 'IFOP usages numériques 2024', 'CREDOC fracture numérique', 'Ipsos intelligence artificielle perception'],
|
||
indicateurs_cibles: ['score DESI rang UE', 'couverture fibre % logements', 'couverture 5G % population', 'compétences numériques % adultes', 'startups licornes nombre', 'R&D IA investissement', 'démarches admin en ligne %', 'incidents cyber signalés'],
|
||
angles_specifiques: ['souveraineté numérique cloud français comparaison', 'IA France position vs US Chine UE stratégie', 'régulation vs innovation équilibre IA Act impact', 'fracture numérique géographique et générationnelle solutions'],
|
||
think_tanks: ['Institut Montaigne IA', 'Terra Nova numérique', 'Renaissance Numérique', 'Fondapol tech', 'Conseil National du Numérique'],
|
||
partis: ['LFI', 'PS', 'EELV', 'Renaissance', 'LR', 'RN'],
|
||
timeline_periodes: ['Plan numérique Jospin 1997', 'Loi LCEN 2004', 'France Très Haut Débit 2013', 'Loi République numérique 2016', 'Plan IA 1 Villani 2018', 'France Relance numérique 2020', 'Plan IA 2 2021', 'IA Act UE 2024', 'Plan IA 2030 Macron 2024'],
|
||
},
|
||
'cohesion-sociale': {
|
||
ordre: 12, priorite: 'haute', budget_milliards: 0, effectifs: 0,
|
||
kpi_label: 'Indice Gini (inégalités)',
|
||
sources_intl: ['OCDE Society at a Glance 2024 France', 'Commission UE Social Scoreboard France', 'Eurostat inégalités SILC', 'PNUD Rapport développement humain France', 'World Inequality Report France'],
|
||
sources_fr: ['INSEE pauvreté niveaux de vie 2024', 'ONPES rapport pauvreté', 'Observatoire des inégalités rapport 2024', 'Fondation Jean Jaurès mobilité sociale', 'Cour des comptes politique ville'],
|
||
sources_opinion: ['Eurobaromètre inégalités perçues France', 'IFOP ascenseur social 2024', 'CREDOC pauvreté ressentie', 'CEVIPOF confiance sociale'],
|
||
indicateurs_cibles: ['coefficient Gini', 'taux pauvreté % seuil 60%', 'taux pauvreté enfants %', 'mobilité sociale intergénérationnelle', 'inégalités territoriales revenus', 'discriminations emploi % signalées', 'mixité scolaire indice'],
|
||
angles_specifiques: ['immobilité sociale France comparaison OCDE EGO', 'quartiers prioritaires résultats politiques ville', 'comparaison pays nordiques mécanismes redistribution', 'discriminations systémiques mesure et solutions'],
|
||
think_tanks: ['OFCE', 'Terra Nova social', 'Institut Montaigne', 'Fondation Jean Jaurès', 'Observatoire des inégalités'],
|
||
partis: ['LFI', 'PS', 'EELV', 'Renaissance', 'LR', 'RN'],
|
||
timeline_periodes: ['Loi RMI 1988', 'CMU 1999', 'RSA Bachelot 2009', 'Quinquennat Hollande inégalités', 'Plan pauvreté Macron 2018', 'Revenu universel débat 2020', 'Inflation et pouvoir d\'achat 2022-2024', 'Plan France ruralités 2023'],
|
||
},
|
||
'democratie': {
|
||
ordre: 13, priorite: 'haute', budget_milliards: 0, effectifs: 0,
|
||
kpi_label: 'Score V-Dem démocratie libérale',
|
||
sources_intl: ['V-Dem France rapport 2024', 'Freedom House France 2024', 'GRECO France 5e cycle rapport', 'OCDE gouvernance publique France', 'Commission UE État de droit France 2024'],
|
||
sources_fr: ['CEVIPOF Baromètre confiance politique 2025', 'Transparency International France 2024', 'Fondapol démocratie', 'Terra Nova institutions', 'Sciences Po ENEF'],
|
||
sources_opinion: ['Eurobaromètre démocratie France', 'IFOP confiance institutions 2024', 'CEVIPOF abstention motivations', 'Ipsos défiance politique'],
|
||
indicateurs_cibles: ['score V-Dem', 'score liberté presse RSF', 'corruption perçue IPC', 'taux participation élections', 'taux abstention présidentielle', 'confiance Parlement %', 'confiance gouvernement %', 'représentation femmes Assemblée %'],
|
||
angles_specifiques: ['crise représentative France diagnostic comparé', 'proportionnelle vs majoritaire simulations', 'démocratie participative bilan conventions citoyennes', 'financement partis et conflits intérêts réforme'],
|
||
think_tanks: ['CEVIPOF', 'Fondapol', 'Terra Nova', 'Institut Montaigne', 'Transparency International'],
|
||
partis: ['LFI', 'PS', 'EELV', 'Renaissance', 'LR', 'RN'],
|
||
timeline_periodes: ['Cohabitation 1986-1988', 'Quinquennat référendum 2000', 'Le Pen au second tour 2002 choc', 'Traité de Lisbonne 2007', 'Mouvement Nuit Debout 2016', 'Gilets Jaunes 2018-2019', 'Grand Débat National 2019', 'Convention citoyenne climat 2020', 'Dissolution choc 2024'],
|
||
},
|
||
'europe': {
|
||
ordre: 14, priorite: 'haute', budget_milliards: 0, effectifs: 0,
|
||
kpi_label: 'Solde net contribution UE (Md€)',
|
||
sources_intl: ['Commission UE France bilan 2024', 'Eurobaromètre France attitude UE 2024', 'Bruegel France Europe analyse', 'ECFR France Europe scorecard', 'Institut Jacques Delors'],
|
||
sources_fr: ['SGAE bilan transposition', 'Institut Montaigne Europe', 'Notre Europe Jacques Delors Institut', 'IFRI Europe', 'Terra Nova Europe'],
|
||
sources_opinion: ['Eurobaromètre standard France attitude UE', 'IFOP soutien euro 2024', 'CEVIPOF vote européen motivations', 'Ipsos Europe perçue'],
|
||
indicateurs_cibles: ['solde net contribution UE milliards', 'soutien UE % opinion publique', 'transposition directives % délai', 'Français institutions EU %', 'participation élections européennes', 'infra-représentation Français Commission/PE', 'fonds UE absorbés %'],
|
||
angles_specifiques: ['influence France dans UE post-Brexit mesure', 'axe Paris-Berlin état 2024-2025', 'élargissement Balkans Ukraine impact France', 'autonomie stratégique défense PSDC réalité'],
|
||
think_tanks: ['Institut Montaigne', 'Institut Jacques Delors', 'IFRI', 'ECFR', 'Bruegel', 'Notre Europe'],
|
||
partis: ['LFI', 'PS', 'EELV', 'Renaissance', 'LR', 'RN'],
|
||
timeline_periodes: ['Maastricht 1992 référendum', 'Euro 2002', 'Référendum TCE Non 2005', 'Traité Lisbonne 2007', 'Crise zone euro 2010-2012', 'Brexit 2016-2020', 'Plan de relance NextGenerationEU 2021', 'Présidence française UE 2022', 'Élections européennes 2024'],
|
||
},
|
||
};
|
||
|
||
// ─── SCHÉMAS ─────────────────────────────────────────────────────────────────
|
||
|
||
const COLLECT_SCHEMA = {
|
||
type: 'object',
|
||
properties: {
|
||
source: { type: 'string' },
|
||
type: { type: 'string', enum: ['statistiques', 'rapport', 'recommandation', 'benchmark', 'etude'] },
|
||
donnees: {
|
||
type: 'array',
|
||
items: {
|
||
type: 'object',
|
||
properties: {
|
||
indicateur: { type: 'string' },
|
||
valeur: { type: 'string' },
|
||
annee: { type: 'string' },
|
||
tendance: { type: 'string', enum: ['hausse', 'baisse', 'stable', 'nd'] },
|
||
rang_comparatif: { type: 'string' },
|
||
url_source: { type: 'string' },
|
||
},
|
||
required: ['indicateur', 'valeur', 'annee'],
|
||
},
|
||
},
|
||
recommandations_france: { type: 'array', items: { type: 'string' } },
|
||
benchmarks: {
|
||
type: 'array',
|
||
items: {
|
||
type: 'object',
|
||
properties: {
|
||
pays: { type: 'string' },
|
||
mesure: { type: 'string' },
|
||
resultat_mesure: { type: 'string' },
|
||
source: { type: 'string' },
|
||
},
|
||
required: ['pays', 'mesure'],
|
||
},
|
||
},
|
||
url_principale: { type: 'string' },
|
||
date_publication: { type: 'string' },
|
||
},
|
||
required: ['source', 'type', 'donnees'],
|
||
};
|
||
|
||
const OPINION_SCHEMA = {
|
||
type: 'object',
|
||
properties: {
|
||
source: { type: 'string' },
|
||
sondages: {
|
||
type: 'array',
|
||
items: {
|
||
type: 'object',
|
||
properties: {
|
||
question: { type: 'string' },
|
||
pct: { type: 'number' },
|
||
reponse: { type: 'string' },
|
||
annee: { type: 'number' },
|
||
note: { type: 'string' },
|
||
comparaison: { type: 'string' },
|
||
},
|
||
required: ['question', 'pct', 'annee'],
|
||
},
|
||
},
|
||
evolution: { type: 'string' },
|
||
clivages: { type: 'string' },
|
||
},
|
||
required: ['source', 'sondages'],
|
||
};
|
||
|
||
// ─── WORKFLOW ─────────────────────────────────────────────────────────────────
|
||
|
||
const themeSlug = args?.slug || 'economie-finances';
|
||
const themeLabel = args?.label || 'Économie & Finances publiques';
|
||
const config = THEME_CONFIG[themeSlug] || THEME_CONFIG['economie-finances'];
|
||
|
||
log(`Démarrage fiche ultra-approfondie : ${themeLabel} (${config.sources_intl.length + config.sources_fr.length + config.sources_opinion.length} sources)`);
|
||
|
||
// ── PHASE 1 : Collecte internationale ─────────────────────────────────────────
|
||
phase('Collecte internationale');
|
||
|
||
const intlData = await parallel(
|
||
config.sources_intl.map(source => () =>
|
||
agent(
|
||
`Tu es un analyste expert des institutions internationales spécialisé sur la France.
|
||
|
||
SOURCE : ${source}
|
||
THÈME : ${themeLabel}
|
||
INDICATEURS CIBLÉS : ${config.indicateurs_cibles.join(' · ')}
|
||
|
||
Collecte EXHAUSTIVE pour cette source :
|
||
1. Toutes les données statistiques disponibles sur la France pour ce thème
|
||
(valeur exacte + unité, année, tendance 5 ans, position parmi pays OCDE/UE)
|
||
2. Toutes les recommandations explicites faites à la France sur 24 mois
|
||
3. Benchmarks : 3-5 pays qui font mieux que la France, avec le mécanisme précis et les résultats chiffrés
|
||
4. Points de désaccord ou de divergence avec d'autres institutions
|
||
5. Données en cours de collecte (prochaines publications)
|
||
|
||
Sois exhaustif, précis, sourcé. Cite les numéros de rapport et pages si possible.`,
|
||
{
|
||
label: `intl:${source.slice(0, 28)}`,
|
||
phase: 'Collecte internationale',
|
||
schema: COLLECT_SCHEMA,
|
||
model: 'sonnet',
|
||
}
|
||
).then(r => r ? { ...r, source } : null)
|
||
)
|
||
);
|
||
|
||
// ── PHASE 2 : Collecte nationale ─────────────────────────────────────────────
|
||
phase('Collecte nationale');
|
||
|
||
const frData = await parallel(
|
||
config.sources_fr.map(source => () =>
|
||
agent(
|
||
`Tu es un expert des politiques publiques françaises et de l'administration d'État.
|
||
|
||
SOURCE FRANÇAISE : ${source}
|
||
THÈME : ${themeLabel}
|
||
INDICATEURS : ${config.indicateurs_cibles.join(' · ')}
|
||
|
||
Pour cette source française :
|
||
1. Chiffres-clés les plus récents (valeur, année, tendance)
|
||
2. Principales conclusions du dernier rapport ou publication
|
||
3. Recommandations formulées, avec statut de mise en oeuvre connu
|
||
4. Débats internes ou divergences avec d'autres institutions françaises
|
||
5. Prochaines publications ou travaux annoncés
|
||
6. Données disponibles en open data (URL si possible)`,
|
||
{
|
||
label: `fr:${source.slice(0, 28)}`,
|
||
phase: 'Collecte nationale',
|
||
schema: COLLECT_SCHEMA,
|
||
model: 'sonnet',
|
||
}
|
||
).then(r => r ? { ...r, source } : null)
|
||
)
|
||
);
|
||
|
||
// ── PHASE 3 : Opinion & acteurs ───────────────────────────────────────────────
|
||
phase('Opinion & acteurs');
|
||
|
||
const [opinionData, acteursData, historiqueData] = await parallel([
|
||
// Opinion publique
|
||
() => parallel(
|
||
config.sources_opinion.map(source => () =>
|
||
agent(
|
||
`Tu es un expert de l'opinion publique française et des sondages politiques.
|
||
|
||
SOURCE SONDAGE : ${source}
|
||
THÈME : ${themeLabel}
|
||
|
||
Recherche les données d'opinion sur ce thème :
|
||
1. Questions précises posées aux Français (formulation exacte)
|
||
2. Pourcentages de réponses (favorable, satisfait, confiance, etc.)
|
||
3. Évolution sur 5-10 ans si disponible
|
||
4. Clivages sociodémographiques significatifs (âge, revenus, territoire, CSP)
|
||
5. Comparaison France vs UE27 si disponible (Eurobaromètre)
|
||
6. Confiance dans les institutions spécifiques du secteur`,
|
||
{
|
||
label: `opinion:${source.slice(0, 25)}`,
|
||
phase: 'Opinion & acteurs',
|
||
schema: OPINION_SCHEMA,
|
||
model: 'sonnet',
|
||
}
|
||
).then(r => r ? { ...r, source } : null)
|
||
)
|
||
),
|
||
|
||
// Cartographie des acteurs
|
||
() => agent(
|
||
`Tu es un politologue expert des politiques publiques françaises.
|
||
|
||
THÈME : ${themeLabel}
|
||
THINK TANKS PRINCIPAUX : ${config.think_tanks.join(', ')}
|
||
|
||
Cartographie complète des acteurs qui influencent la politique sur ce thème :
|
||
|
||
1. INSTITUTIONS DÉCISIONNAIRES
|
||
- Ministère(s) compétent(s) : rôle exact, budget, ministre actuel
|
||
- Agences / établissements publics : mission, tutelle, budget, effectifs
|
||
- Corps d'inspection : IGF, IGA, IGAS, etc. — rôle sur ce thème
|
||
- Instances consultatives : Conseil, Haut Comité, Comission nationale...
|
||
|
||
2. THINK TANKS — pour chacun : orientation politique, publications récentes sur ce thème, positions clés
|
||
Couvrir : ${config.think_tanks.join(', ')} + France Stratégie + OFCE + CAE
|
||
|
||
3. SYNDICATS ET FÉDÉRATIONS professionnelles actives sur ce thème
|
||
|
||
4. ACTEURS EUROPÉENS / INTERNATIONAUX influençant la politique française
|
||
|
||
Sois factuel et précis.`,
|
||
{
|
||
label: `acteurs:${themeSlug}`,
|
||
phase: 'Opinion & acteurs',
|
||
model: 'sonnet',
|
||
}
|
||
),
|
||
|
||
// Historique
|
||
() => agent(
|
||
`Tu es un historien des politiques publiques françaises depuis 1990.
|
||
|
||
THÈME : ${themeLabel}
|
||
PÉRIODES CLÉS IDENTIFIÉES : ${config.timeline_periodes.join(' | ')}
|
||
|
||
Produis une chronologie des réformes majeures sur ce thème depuis 1990.
|
||
Pour chaque événement / réforme :
|
||
- Année précise
|
||
- Titre court (max 8 mots)
|
||
- Description (2-3 phrases : contexte, contenu, impact mesuré)
|
||
- Impact : positif | negatif | neutre | majeur
|
||
|
||
Inclure :
|
||
- Les réformes législatives majeures
|
||
- Les crises et ruptures
|
||
- Les tournants décisifs
|
||
- Les réformes avortées significatives
|
||
|
||
Format de sortie : liste JSON d'objets {annee, titre, description, impact}`,
|
||
{
|
||
label: `historique:${themeSlug}`,
|
||
phase: 'Opinion & acteurs',
|
||
schema: {
|
||
type: 'object',
|
||
properties: {
|
||
items: {
|
||
type: 'array',
|
||
items: {
|
||
type: 'object',
|
||
properties: {
|
||
annee: { type: 'string' },
|
||
titre: { type: 'string' },
|
||
description: { type: 'string' },
|
||
impact: { type: 'string', enum: ['positif', 'negatif', 'neutre', 'majeur'] },
|
||
},
|
||
required: ['annee', 'titre', 'description'],
|
||
},
|
||
},
|
||
analyse: { type: 'string' },
|
||
},
|
||
required: ['items'],
|
||
},
|
||
model: 'sonnet',
|
||
}
|
||
),
|
||
]);
|
||
|
||
// ── PHASE 4 : Deep research sur angles spécifiques ───────────────────────────
|
||
phase('Historique & enjeux');
|
||
|
||
const deepResearch = await parallel(
|
||
config.angles_specifiques.map(angle => () =>
|
||
agent(
|
||
`Deep research expert sur les politiques publiques françaises.
|
||
|
||
ANGLE PRÉCIS : ${angle}
|
||
THÈME GÉNÉRAL : ${themeLabel}
|
||
|
||
Recherche exhaustive et sourcée sur cet angle :
|
||
- Données quantitatives récentes (avec sources précises)
|
||
- Études académiques ou institutionnelles de référence (titres, dates)
|
||
- Consensus et divergences institutionnelles
|
||
- Expériences internationales comparatives réussies (avec résultats mesurés)
|
||
- État du débat politique français
|
||
- Propositions concrètes documentées dans la littérature
|
||
- Points de controverse scientifique ou méthodologique`,
|
||
{
|
||
label: `deep:${angle.slice(0, 35)}`,
|
||
phase: 'Historique & enjeux',
|
||
model: 'sonnet',
|
||
}
|
||
)
|
||
)
|
||
);
|
||
|
||
const allData = [...intlData, ...frData].filter(Boolean);
|
||
const allStats = allData.flatMap(d => d.donnees || []);
|
||
const allReco = allData.flatMap(d => d.recommandations_france || []);
|
||
const allBenchmarks = allData.flatMap(d => d.benchmarks || []);
|
||
const allOpinion = (opinionData || []).filter(Boolean);
|
||
|
||
log(`Collecte terminée : ${allData.length} sources · ${allStats.length} indicateurs · ${allBenchmarks.length} benchmarks · ${allOpinion.length} sondages`);
|
||
|
||
// ── PHASE 5 : Synthèse Opus ───────────────────────────────────────────────────
|
||
phase('Synthèse Opus');
|
||
|
||
const synthesis = await agent(
|
||
`Tu es un expert senior des politiques publiques françaises — équivalent rapporteur Cour des comptes / économiste OCDE.
|
||
|
||
THÈME : ${themeLabel}
|
||
|
||
MATÉRIAU DISPONIBLE :
|
||
- ${allStats.length} indicateurs de ${allData.length} sources institutionnelles
|
||
- ${allReco.length} recommandations explicites à la France
|
||
- ${allBenchmarks.length} benchmarks de pays comparables
|
||
- ${deepResearch.filter(Boolean).length} analyses approfondies sur les angles spécifiques
|
||
|
||
DONNÉES STATISTIQUES :
|
||
${JSON.stringify(allStats.slice(0, 70), null, 2)}
|
||
|
||
RECOMMANDATIONS INSTITUTIONNELLES :
|
||
${allReco.slice(0, 50).join('\n')}
|
||
|
||
BENCHMARKS PAYS :
|
||
${JSON.stringify(allBenchmarks.slice(0, 30), null, 2)}
|
||
|
||
DEEP RESEARCH :
|
||
${deepResearch.filter(Boolean).slice(0, 4).join('\n\n---\n\n')}
|
||
|
||
PRODUIRE — SOIS EXHAUSTIF ET CHIFFRÉ :
|
||
|
||
1. DIAGNOSTIC (1 200-1 500 mots)
|
||
Le paradoxe ou la tension centrale de la France sur ce thème.
|
||
État des lieux complet, sourcé, avec positions internationale et nationale.
|
||
Chaque chiffre cite sa source (Institution, année).
|
||
Comparer systématiquement : Allemagne, Suède/Finlande, Royaume-Uni, Espagne, moyenne OCDE/UE.
|
||
|
||
2. INDICATEURS CLÉS (10-15 indicateurs)
|
||
Les plus significatifs : valeur France + source + année + tendance + comparaison OCDE.
|
||
|
||
3. ENJEUX STRUCTURELS (6-8 enjeux hiérarchisés)
|
||
Classification : immédiat / court-terme / moyen-terme / long-terme.
|
||
Pour chaque enjeu : description précise + sources + ampleur.
|
||
|
||
4. ENJEUX POLITIQUES (3-5 points de débat partisan)
|
||
Ce qui divise vraiment, avec les positions de chaque camp.
|
||
|
||
5. ENJEUX CONJONCTURELS (actualité 6 mois)
|
||
Décisions récentes, textes en cours, crises émergentes.
|
||
|
||
6. CONSENSUS INTERNATIONAL
|
||
Sur quoi TOUTES les institutions convergent.
|
||
|
||
7. DIVERGENCES ET INCERTITUDES
|
||
Points de désaccord entre institutions, controverses méthodologiques.
|
||
|
||
8. KPI PRINCIPAL À RETENIR (le plus parlant, avec valeur et tendance)`,
|
||
{
|
||
label: `synth:${themeSlug}`,
|
||
phase: 'Synthèse Opus',
|
||
schema: {
|
||
type: 'object',
|
||
properties: {
|
||
diagnostic: { type: 'string' },
|
||
indicateurs_cles: {
|
||
type: 'array',
|
||
items: {
|
||
type: 'object',
|
||
properties: {
|
||
label: { type: 'string' },
|
||
valeur: { type: 'string' },
|
||
source: { type: 'string' },
|
||
annee: { type: 'string' },
|
||
tendance: { type: 'string', enum: ['hausse', 'baisse', 'stable', 'nd'] },
|
||
comparaison_ocde: { type: 'string' },
|
||
},
|
||
required: ['label', 'valeur', 'source', 'tendance'],
|
||
},
|
||
},
|
||
enjeux_structurels: {
|
||
type: 'array',
|
||
items: {
|
||
type: 'object',
|
||
properties: {
|
||
titre: { type: 'string' },
|
||
description: { type: 'string' },
|
||
urgence: { type: 'string', enum: ['immediate', 'court-terme', 'moyen-terme', 'long-terme'] },
|
||
sources: { type: 'array', items: { type: 'string' } },
|
||
},
|
||
required: ['titre', 'description', 'urgence'],
|
||
},
|
||
},
|
||
enjeux_politiques: { type: 'array', items: { type: 'object', properties: { question: { type: 'string' }, camps: { type: 'string' } }, required: ['question'] } },
|
||
enjeux_conjoncturels: { type: 'string' },
|
||
consensus_international: { type: 'string' },
|
||
divergences: { type: 'string' },
|
||
kpi_principal: { type: 'object', properties: { valeur: { type: 'string' }, label: { type: 'string' }, tendance: { type: 'string' }, contexte: { type: 'string' } }, required: ['valeur', 'label'] },
|
||
sources_citees: { type: 'array', items: { type: 'string' } },
|
||
},
|
||
required: ['diagnostic', 'indicateurs_cles', 'enjeux_structurels', 'kpi_principal'],
|
||
},
|
||
model: 'opus',
|
||
}
|
||
);
|
||
|
||
// ── PHASE 6 : Propositions Opus ───────────────────────────────────────────────
|
||
phase('Propositions Opus');
|
||
|
||
const propositionsResult = await agent(
|
||
`Tu es un conseiller politique senior, expert du droit comparé et des politiques publiques françaises.
|
||
|
||
THÈME : ${themeLabel}
|
||
|
||
DIAGNOSTIC :
|
||
${synthesis?.diagnostic?.slice(0, 2000) || ''}
|
||
|
||
ENJEUX STRUCTURELS :
|
||
${JSON.stringify(synthesis?.enjeux_structurels || [], null, 2)}
|
||
|
||
RECOMMANDATIONS INSTITUTIONNELLES :
|
||
${allReco.slice(0, 40).join('\n')}
|
||
|
||
BENCHMARKS PAYS :
|
||
${JSON.stringify(allBenchmarks.slice(0, 25), null, 2)}
|
||
|
||
GÉNÈRE 7-9 propositions IRPF 2027-2032 :
|
||
|
||
CATÉGORIES :
|
||
- rupture (1-2) : réforme structurelle majeure, fort impact, nécessite consensus politique
|
||
- reformiste (3-4) : ajustement significatif, faisable 1-2 ans
|
||
- consolidation (1-2) : amplifier ce qui fonctionne, faible résistance
|
||
- experimentation (1) : pilote innovant dans 2-3 territoires/secteurs
|
||
|
||
POUR CHAQUE PROPOSITION, produire :
|
||
• Titre court et clair (mécanisme en sous-titre)
|
||
• Description complète (qui fait quoi, comment, calendrier)
|
||
• Fondement : quelle(s) institution(s) internationale(s) recommandent cette approche ?
|
||
• Pays référence : quel pays a mis ça en place, résultats chiffrés sur 5 ans
|
||
• Impact budgétaire : coût net première année, coût récurrent, gains attendus, horizon
|
||
• Obstacles politiques principaux et comment les contourner
|
||
• Quick win sans texte législatif ? (oui/non + quoi)
|
||
• Niveau de preuve (fort/modéré/émergent/expérimental)
|
||
|
||
Sois concret et chiffré. Évite le vague.`,
|
||
{
|
||
label: `prop:${themeSlug}`,
|
||
phase: 'Propositions Opus',
|
||
schema: {
|
||
type: 'object',
|
||
properties: {
|
||
propositions: {
|
||
type: 'array',
|
||
items: {
|
||
type: 'object',
|
||
properties: {
|
||
titre: { type: 'string' },
|
||
sous_titre: { type: 'string' },
|
||
categorie: { type: 'string', enum: ['rupture', 'reformiste', 'consolidation', 'experimentation'] },
|
||
description: { type: 'string' },
|
||
mecanisme: { type: 'string' },
|
||
fondement_international: { type: 'string' },
|
||
pays_reference: { type: 'array', items: { type: 'string' } },
|
||
impact_budgetaire: { type: 'string' },
|
||
obstacles: { type: 'array', items: { type: 'string' } },
|
||
quick_win: { type: 'boolean' },
|
||
niveau_preuve: { type: 'string', enum: ['fort', 'modere', 'emergent', 'experimental'] },
|
||
},
|
||
required: ['titre', 'categorie', 'description', 'fondement_international', 'niveau_preuve'],
|
||
},
|
||
},
|
||
synthese_irpf: { type: 'string' },
|
||
},
|
||
required: ['propositions'],
|
||
},
|
||
model: 'opus',
|
||
}
|
||
);
|
||
|
||
// ── PHASE 7 : Lecture politique ───────────────────────────────────────────────
|
||
phase('Lecture politique');
|
||
|
||
const politique = await agent(
|
||
`Tu es un politologue spécialisé dans la vie politique française 2024-2027.
|
||
|
||
THÈME : ${themeLabel}
|
||
PARTIS À ANALYSER : ${config.partis.join(', ')}
|
||
|
||
Analyse politique 2025-2027 :
|
||
|
||
1. Position et actions du gouvernement Bayrou sur ce thème (textes, discours, budget)
|
||
2. Position de chaque parti majeur : résumé 2 phrases + argument central + texte récent
|
||
Pour : ${config.partis.join(', ')}
|
||
3. Votes parlementaires significatifs récents sur ce thème
|
||
4. Fenêtres politiques dans les 24 mois (élections, présidences, crises, momentum)
|
||
5. Acteurs clés non-partisans : ministres, hauts fonctionnaires, syndicats, lobbys
|
||
— qui accélère, qui bloque, quel est leur levier
|
||
6. Blocages structurels : corporatismes, contraintes constitutionnelles, traités UE
|
||
7. Coalitions possibles pour faire avancer des réformes
|
||
8. Séquence optimale de mise en oeuvre (quick wins d'abord, réformes lourdes ensuite)`,
|
||
{
|
||
label: `pol:${themeSlug}`,
|
||
phase: 'Lecture politique',
|
||
schema: {
|
||
type: 'object',
|
||
properties: {
|
||
position_gouvernement: { type: 'string' },
|
||
positions_partis: {
|
||
type: 'array',
|
||
items: {
|
||
type: 'object',
|
||
properties: {
|
||
parti: { type: 'string' },
|
||
position: { type: 'string' },
|
||
argument: { type: 'string' },
|
||
texte_recent: { type: 'string' },
|
||
},
|
||
required: ['parti', 'position'],
|
||
},
|
||
},
|
||
votes_parlementaires: { type: 'array', items: { type: 'string' } },
|
||
fenetres_politiques: { type: 'array', items: { type: 'string' } },
|
||
acteurs_cles: {
|
||
type: 'array',
|
||
items: {
|
||
type: 'object',
|
||
properties: {
|
||
nom: { type: 'string' },
|
||
role: { type: 'string' },
|
||
influence: { type: 'string', enum: ['accelerateur', 'bloquant', 'neutre'] },
|
||
levier: { type: 'string' },
|
||
},
|
||
required: ['nom', 'role', 'influence'],
|
||
},
|
||
},
|
||
blocages: { type: 'array', items: { type: 'string' } },
|
||
coalitions: { type: 'array', items: { type: 'string' } },
|
||
sequence_optimale: { type: 'string' },
|
||
},
|
||
required: ['position_gouvernement', 'positions_partis', 'blocages'],
|
||
},
|
||
model: 'sonnet',
|
||
}
|
||
);
|
||
|
||
// ── PHASE 8 : Production MDX ─────────────────────────────────────────────────
|
||
phase('Production MDX');
|
||
|
||
const kpi = synthesis?.kpi_principal || { valeur: '—', label: config.kpi_label, tendance: 'stable' };
|
||
const mainOpinionSondage = allOpinion.flatMap(o => o?.sondages || []).find(s => s?.pct > 0);
|
||
const timelineItems = historiqueData?.items || [];
|
||
|
||
const frontmatter = `---
|
||
title: "${themeLabel}"
|
||
slug: "${themeSlug}"
|
||
description: "${synthesis?.diagnostic?.split('.')[0] || 'Diagnostic complet de la situation française.'}."
|
||
ordre: ${config.ordre}
|
||
priorite: "${config.priorite}"
|
||
${config.budget_milliards ? `budget_etat_milliards: ${config.budget_milliards}` : ''}
|
||
${config.effectifs ? `effectifs_publics: ${config.effectifs}` : ''}
|
||
kpi_valeur: "${kpi.valeur}"
|
||
kpi_label: "${kpi.label || config.kpi_label}"
|
||
kpi_tendance: ${kpi.tendance || 'stable'}
|
||
${kpi.contexte ? `kpi_contexte: "${kpi.contexte}"` : ''}
|
||
${mainOpinionSondage ? `opinion_pct: ${mainOpinionSondage.pct}
|
||
opinion_question: "${mainOpinionSondage.question?.replace(/"/g, "'")}"
|
||
opinion_source: "${mainOpinionSondage.annee > 0 ? (allOpinion[0]?.source || 'Sondage') : 'Sondage'}"
|
||
opinion_annee: ${mainOpinionSondage.annee}` : ''}
|
||
sections:
|
||
- diagnostic
|
||
- historique
|
||
- enjeux
|
||
- international
|
||
- opinion
|
||
- acteurs
|
||
- propositions
|
||
- scenarios
|
||
- sources
|
||
score_sources: ${allData.length}
|
||
nb_propositions: ${propositionsResult?.propositions?.length || 0}
|
||
tags: [${config.indicateurs_cibles.slice(0, 6).map(i => `"${i.replace(/[^a-zA-ZÀ-ÿ0-9 ]/g, '').trim().toLowerCase().replace(/ /g, '-')}"`).join(', ')}]
|
||
sources_data: [${[...new Set([...config.sources_intl.slice(0, 4).map(s => s.split(' ')[0]), ...config.sources_fr.slice(0, 3).map(s => s.split(' ')[0])])].map(s => `"${s}"`).join(', ')}]
|
||
derniere_maj: "2026-06"
|
||
---`;
|
||
|
||
const mdxContent = await agent(
|
||
`Tu es un rédacteur expert en politiques publiques. Génère le fichier MDX COMPLET de la fiche IRPF.
|
||
|
||
FRONTMATTER (inclure tel quel en premier) :
|
||
${frontmatter}
|
||
|
||
APRÈS LE FRONTMATTER, ajouter les imports :
|
||
import Structurel from '../../components/Structurel.astro';
|
||
import Politique from '../../components/Politique.astro';
|
||
import Conjoncturel from '../../components/Conjoncturel.astro';
|
||
import Kpi from '../../components/Kpi.astro';
|
||
import Sondage from '../../components/Sondage.astro';
|
||
import Timeline from '../../components/Timeline.astro';
|
||
|
||
MATÉRIAUX DISPONIBLES :
|
||
- Diagnostic : ${synthesis?.diagnostic?.slice(0, 3000) || '(non disponible)'}
|
||
- Indicateurs clés : ${JSON.stringify(synthesis?.indicateurs_cles || [], null, 2)}
|
||
- Enjeux structurels : ${JSON.stringify(synthesis?.enjeux_structurels || [], null, 2)}
|
||
- Enjeux politiques : ${JSON.stringify(synthesis?.enjeux_politiques || [], null, 2)}
|
||
- Enjeux conjoncturels : ${synthesis?.enjeux_conjoncturels || ''}
|
||
- Consensus international : ${synthesis?.consensus_international || ''}
|
||
- Propositions IRPF : ${JSON.stringify(propositionsResult?.propositions || [], null, 2)}
|
||
- Synthèse IRPF : ${propositionsResult?.synthese_irpf || ''}
|
||
- Positions partis : ${JSON.stringify(politique?.positions_partis || [], null, 2)}
|
||
- Fenêtres politiques : ${JSON.stringify(politique?.fenetres_politiques || [], null, 2)}
|
||
- Blocages : ${JSON.stringify(politique?.blocages || [], null, 2)}
|
||
- Acteurs clés : ${acteursData || ''}
|
||
- Sondages : ${JSON.stringify(allOpinion.flatMap(o => o?.sondages || []).slice(0, 8), null, 2)}
|
||
- Timeline items : ${JSON.stringify(timelineItems.slice(0, 15), null, 2)}
|
||
- Benchmarks pays : ${JSON.stringify(allBenchmarks.slice(0, 15), null, 2)}
|
||
- Sources citées : ${(synthesis?.sources_citees || []).join(', ')}
|
||
|
||
STRUCTURE MDX OBLIGATOIRE (respecter exactement l'ordre et les IDs d'ancres) :
|
||
|
||
## Diagnostic {#diagnostic}
|
||
[Texte complet du diagnostic : 800-1000 mots, sourcé, comparatif. Chaque chiffre cité entre parenthèses avec la source.]
|
||
### Indicateurs clés
|
||
[Composants <Kpi /> pour les 8-12 indicateurs les plus significatifs]
|
||
### Tableau comparatif
|
||
[Tableau markdown France + 4-5 pays comparables, avec les indicateurs clés]
|
||
|
||
## Historique {#historique}
|
||
[Intro 1-2 phrases]
|
||
[Composant <Timeline items={...} /> avec tous les items disponibles]
|
||
### Les tournants décisifs
|
||
[Analyse des 2-3 moments clés qui expliquent la situation actuelle]
|
||
|
||
## Enjeux {#enjeux}
|
||
[Intro : les trois couches de lecture]
|
||
<Structurel>
|
||
### Contraintes de fond
|
||
[Enjeux structurels : les invariants, les contraintes profondes. LISTE à puces avec sources. 400-600 mots]
|
||
</Structurel>
|
||
<Politique>
|
||
### Ce qui fait débat
|
||
[Tableau partis avec positions + arguments + textes récents. 300-400 mots]
|
||
</Politique>
|
||
<Conjoncturel>
|
||
### Actualité 2025-2026
|
||
[Décisions récentes, textes en cours, polémiques, état du débat. 200-300 mots]
|
||
</Conjoncturel>
|
||
|
||
## International {#international}
|
||
### Comparaison UE & OCDE
|
||
[Tableau : France + Allemagne + Suède + 2-3 autres pays + Moyenne UE — sur les 3-4 indicateurs principaux]
|
||
### Ce que recommandent les institutions
|
||
[OCDE · Commission UE · FMI · Cour des comptes · France Stratégie — une recommandation principale chacun]
|
||
### Bonnes pratiques — ce qui fonctionne ailleurs
|
||
[2-3 exemples concrets de pays avec résultats mesurés]
|
||
|
||
## Opinion {#opinion}
|
||
### Ce qu'en pensent les Français
|
||
[Composants <Sondage /> pour les 3-5 sondages les plus significatifs]
|
||
### Évolution et clivages
|
||
[Tableau si données dispo + analyse des fractures sociodémographiques]
|
||
|
||
## Acteurs {#acteurs}
|
||
### Institutions décisionnaires
|
||
[Tableau : institution + rôle + budget + responsable actuel]
|
||
### Think tanks et experts
|
||
[Tableau : think tank + orientation + dernière publication sur le thème]
|
||
### Corps intermédiaires
|
||
[Syndicats, fédérations, organisations professionnelles — leur poids sur ce sujet]
|
||
|
||
## Propositions {#propositions}
|
||
> [Paragraphe de cadrage IRPF : philosophie et priorités]
|
||
|
||
[Pour chaque proposition : **Titre en gras** — catégorie en badge — description complète — pays référence — impact budgétaire]
|
||
### Cartographie des positions partisanes
|
||
[Tableau : parti + position + coût estimé]
|
||
|
||
## Scénarios 2027–2032 {#scenarios}
|
||
[3 scénarios : continuité (prob. XX%) · réforme graduelle (prob. XX%) · rupture (prob. XX%)]
|
||
[Pour chaque scénario : hypothèse + impact + conditions + risques]
|
||
|
||
## Sources {#sources}
|
||
[Bibliographie complète : institutions internationales + françaises + académiques. URL quand dispo.]
|
||
|
||
RÈGLES DE STYLE :
|
||
- Chaque chiffre = source entre parenthèses italiques
|
||
- Tables Markdown pour toutes comparaisons
|
||
- Composants MDX utilisés exactement comme dans les imports
|
||
- Ton : OCDE × Sciences Po × Le Monde — rigoureux, lisible, non partisan
|
||
- Longueur totale : 4000-6000 mots (sans le frontmatter)
|
||
|
||
Retourne le fichier MDX COMPLET, frontmatter inclus, prêt à sauvegarder.`,
|
||
{
|
||
label: `mdx:${themeSlug}`,
|
||
phase: 'Production MDX',
|
||
model: 'sonnet',
|
||
}
|
||
);
|
||
|
||
log(`Fiche ${themeLabel} produite — ${allData.length} sources · ${propositionsResult?.propositions?.length || 0} propositions · ${timelineItems.length} événements timeline`);
|
||
|
||
return {
|
||
slug: themeSlug,
|
||
label: themeLabel,
|
||
frontmatter,
|
||
stats: {
|
||
sources_internationales: intlData.filter(Boolean).length,
|
||
sources_nationales: frData.filter(Boolean).length,
|
||
sources_opinion: allOpinion.length,
|
||
indicateurs: synthesis?.indicateurs_cles?.length || 0,
|
||
enjeux_structurels: synthesis?.enjeux_structurels?.length || 0,
|
||
propositions: propositionsResult?.propositions?.length || 0,
|
||
timeline_events: timelineItems.length,
|
||
benchmarks: allBenchmarks.length,
|
||
},
|
||
kpi,
|
||
synthesis,
|
||
propositions: propositionsResult,
|
||
politique,
|
||
mdx: mdxContent,
|
||
};
|