Mets à jour la page en suivant strictement les règles définies dans /home/alan/SITE/WEB/AGENTS.md (section « Règles d'affichage des cartes »).
Mets à jour la page alain-soral.html avec l'actualité récente d'Alain Soral.

Objectif : recherche d'actualité (moins de 28 jours), max 25 cartes antéchronologiques.

RÈGLE STRICTE DE TEMPS : exécution totale en MOINS DE 3 MINUTES. Max 1 appel webfetch, max 3 appels bash, max 10 steps au total. Aucune itération de recherche : une seule collecte de données, puis édite immédiatement.

Étapes :

1. Découverte — UN SEUL appel bash (pas de webfetch, pas de navigation) :
   curl -sL --max-time 12 "https://www.youtube.com/results?search_query=%22Alain+Soral%22&sp=CAISAhAB" -o /tmp/opencode/alain-soral.html
   VÉRIFICATION : le fichier doit contenir 'ytInitialData' et des 'videoId' (grep -c 'videoId' /tmp/opencode/alain-soral.html). Sinon : ÉCHEC_SOURCE, ne pas éditer.
   IMPORTANT : ne JAMAIS réutiliser un fichier /tmp/opencode existant — toujours retélécharger avec le curl ci-dessus.
   IMPORTANT : ne PAS spécifier de User-Agent (curl sans -A) — un User-Agent Chrome déclenche l'anti-bot YouTube (réponse vide). Sans -A, la page s'ouvre (~1 Mo).
   puis python3 pour extraire les vidéos récentes (ytInitialData, structure 'videoRenderer' : clé 'videoId', titre dans title.runs, date dans publishedTimeText.simpleText). Ne garder que les vidéos de moins de 28 jours.
   C'est la SEULE source de découverte. Ne navigue pas ailleurs (pas d'Égalité et Réconciliation, pas de blog, pas de X/Twitter).
   Les dates relatives (« 6 days ago », « Streamed 7 hours ago ») : convertir par rapport à aujourd'hui 07/08/2026.
   Les titres en anglais : traduire en français pour les cartes.
   Si le téléchargement échoue (0 octet), réessaie UNE fois (2 tentatives max). Si les 2 tentatives échouent, n'édite pas, ne conclus JAMAIS « page à jour » (interdit d'émettre VERDICT=PAGE_A_JOUR dans ce cas), et termine en signalant : ÉCHEC_SOURCE

2. Vérification des liens (30 s max, UN SEUL appel bash groupé) :
   - Les URLs viennent de l'extraction (https://www.youtube.com/watch?v=<videoId>).
   - Vérifier en parallèle (curl -o /dev/null -w "%{http_code}") les nouvelles URLs à ajouter.
   - 429 = lien valide (rate limit), ne pas retry. Codes acceptés : 200, 204, 302.
   - Dates : convertir les dates relatives en JJ/MM/2026.

3. Mise à jour de alain-soral.html :
   - Éditer uniquement <ul class="news-grid">.
   - Ajouter les nouvelles cartes .news-card au début (antéchronologique).
   - Supprimer les cartes dont la data-date dépasse 28 jours.
   - Conserver les cartes sans data-date (site officiel alain-soral.com, compte X/Twitter) en fin de liste.
   - Limite : 25 cartes après filtre (les plus récentes en premier).
   - Classe src-youtube pour les vidéos, src-soral pour le site officiel, src-twitter pour X, src-gptv pour les contenus Géopolitique Profonde.
   - favicon Google : https://www.google.com/s2/favicons?domain=<domaine>&sz=64
   - news-tag : « Vidéo » pour les vidéos, « Article » pour les articles, « Site officiel »/« X / Twitter » pour les cartes sans date.
   - Titres : toujours en français (traduire si nécessaire) ; préserver la casse d'origine. Retirer les hashtags et emojis.
   - data-date au format JJ/MM/2026.
   - Ne pas modifier <section class="analysis">, le header, le footer, ni les scripts.

4. Vérifier l'ordre antéchronologique, la cohérence des dates, l'unicité des URLs,
   et que le total ne dépasse PAS 25 cartes. Terminer.
   IMPORTANT : si aucune carte n'a été ajoutée ni supprimée (page réellement à jour après analyse des données de la source), termine ta réponse par la ligne exacte : VERDICT=PAGE_A_JOUR

IMPORTANT : TERMINE TOUJOURS ta réponse par ces 5 lignes exactes (aucune ligne après) :
VERDICT=OK | PAGE_A_JOUR | ECHEC_SOURCE
CARTES_AJOUTEES=<nombre de cartes ajoutees, 0 sinon>
CARTES_SUPPRIMEES=<nombre de cartes supprimees, 0 sinon>
CARTES_TOTAL=<nombre total de cartes apres edition>
ERREURS=<nombre de problemes rencontres, 0 sinon>
