Job ID: 76ce033272c7
Run Time: 2026-07-07 16:10:15
Schedule: 0 16 *
[IMPORTANT: The user has invoked the "news-briefings" skill, indicating they want you to follow its instructions. The full skill content is loaded below.]
name: news-briefings
description: "Research current events and deliver formatted news briefings to the user's messaging platform (Telegram/WhatsApp). Covers one-shot news queries and recurring cron-based news briefings — aggregating from RSS feeds via curl, structuring summaries by region/topic, and delivering to the user's preferred channel."
version: 1.3.0
metadata:
hermes:
tags: [news, current-events, rss, briefing, delivery, telegram, whatsapp, cron]
prerequisites: {}
Research and deliver current-events briefings to the user's messaging platform. Supports two modes:
When the user asks for news/current events, gather from multiple RSS feeds using curl (browser dependency may be unavailable). Good free RSS sources:
BBC World: https://feeds.bbci.co.uk/news/world/rss.xml
NYT World: https://rss.nytimes.com/services/xml/rss/nyt/World.xml
Le Monde: https://www.lemonde.fr/international/rss_full.xml
France Info: https://www.francetvinfo.fr/monde.rss (⚠️ /monde/rss → 404, utiliser .rss)
France 24: https://www.france24.com/fr/rss
Hacker News: https://news.ycombinator.com/
Apple Newsroom: https://www.apple.com/newsroom/
The Guardian: https://www.theguardian.com/tone/news
⚠️ Avoid sources with aggressive anti-bot protection — Some sites (Reuters/DataDome, Google News, DuckDuckGo, Bing, Searx) are systematically blocked from certain server IPs. When curl hits these, the connection may get a TCP reset that propagates as a "Broken pipe" (Errno 32) crash, killing the whole agent run — far worse than a simple HTTP error. For one-shot queries, if these fail, just skip them. For cron jobs, remove them from the prompt entirely — a runtime error crashes the agent, and "skip and continue" won't help if curl itself segfaults on a blocked domain.
Use delegate_task for heavier research (multiple feeds → extraction → structured summary) so the main thread stays responsive. Pass toolsets=["terminal"] for simple RSS parsing.
For parallel research on multiple topics, use the tasks= array form:
delegate_task(tasks=[
{"goal": "Research {topic A}", "toolsets": ["terminal"]},
{"goal": "Research {topic B}", "toolsets": ["terminal"]},
])
This runs up to 3 subagents concurrently.
Pitfall: delegate_task is for ONE-SHOT queries only. Do NOT use it in cron job prompts — cron agents cannot use delegate_task.
Format with clear sections by region/topic. Use emoji markers per region:
Each section: 2-3 bullet points max. Bold the headline item (not the emoji). Include source attribution at end.
Check the user's preferred delivery platform:
The send_message(action='list') may not show platforms even when they're configured. If the platform is defined in .env (TELEGRAM_BOT_TOKEN, etc.), try send_message(target='telegram') directly — it routes to the home channel.
Set up automated daily/weekly briefings that deliver directly to the user's messaging platform on a schedule.
Use cronjob(action='create') with:
skills=["news-briefings"] to load this skill automatically"0 16 " for daily at 16h, "0 16 * 0" for Sundays"origin" (default) — auto-routes to the conversation's origin platform (Telegram/WhatsApp if the conversation came from there, CLI otherwise)"telegram:CHAT_ID" — explicit Telegram delivery (e.g., "telegram:8818654814")"local" — no delivery, saved locally"whatsapp:PHONE" — explicit WhatsApp deliveryExample with explicit Telegram delivery:
cronjob(
action='create',
name='Veille quotidienne d\'actualités',
prompt="Génère un briefing quotidien en français...",
schedule='0 16 * * *',
skills=['news-briefings'],
deliver='telegram:8818654814',
)
delegate_task — cron sessions cannot spawn subagentsexecute_code — cron sessions cannot use execute_code (blocked for security). Use write_file or terminal for file operations instead.clarify — cron agents cannot ask the user questionssend_message needed — the job's final response auto-delivers to the target platformIf cronjob(action='list') shows the job as state: scheduled but last_run_at stays null even after next_run_at has passed:
hermes gateway start or hermes gateway installhermes gateway status — if not running, the scheduler is not activeEven feeds classified as "reliable" (BBC, Le Monde, France 24) can intermittently trigger a Broken pipe (Errno 32) crash in cron context. This happens when a CDN or reverse proxy intermittently sends a TCP reset — the curl subprocess crashes before any "skip on error" logic runs.
no_agent=False, script=path) that curl-fetches feeds sequentially in a single bash script with || true fallbacks, then let the LLM summarize the collected data. This isolates the crash risk to the script layer.delegate_task(tasks=[...], toolsets=["terminal"]). Fetch the feeds in parallel subagents (max 3), each handles its own curl failure gracefully. Then compose and deliver the briefing manually. This bypasses the Broken pipe crash because each subagent's curl crash is isolated.last_status: "error" with delivery error about "cannot schedule new futures"When last_status: "error" AND the delivery error contains "cannot schedule new futures after interpreter shutdown" or "Broken pipe" appears in the output log:
curl to a blocked domain (DataDome/Cloudflare) causes a TCP reset → "Broken pipe" (Errno 32)execute_code in cron) ls ~/.hermes/profiles/<profile>/cron/output/<job_id>/
The most recent YYYY-MM-DD_HH-MM-SS.md file often contains the ## Script Output section with collected RSS data, even if the final delivery failed. Extract the data and proceed.
execute_code calls with write_file or terminalcronjob(action='run', job_id='...') to test the fixWhen a cron job shows last_status: "error" but last_delivery_error: null:
cronjob(action='run', job_id='...') to re-kick the job manuallyEach cron briefing can also save a copy locally for historical reference, alongside Telegram delivery.
Pattern: Add an instruction at the end of the cron prompt to write the briefing content to a file:
❗ À la fin, archive le briefing dans un fichier : écris le contenu exact du briefing dans /home/sebastien/.hermes/memory/modules/veille_actualite/daily/YYYY-MM-DD.md (remplace YYYY-MM-DD par la date du jour). Crée le fichier avec la commande d'écriture appropriée.
Use a dedicated module structure under ~/.hermes/memory/modules/:
veille_actualite/daily/ — for daily briefingsveille_actualite/weekly/ — for weekly geopolitics briefingsPre-create the directories before setting up the cron — the cron agent has file-write tools but directory creation is more reliable when done ahead of time:
mkdir -p ~/.hermes/memory/modules/veille_actualite/{daily,weekly}
Updating existing cron jobs to add archiving: use cronjob(action='update', job_id='JOB_ID', prompt='...') with the original prompt + the archive instruction appended. Always read the existing prompt from ~/.hermes/cron/jobs.json first so you preserve the full content.
| Frequency | Cron expression |
|---|---|
| Daily at 16h | 0 16 * |
| Daily at 9h | 0 9 * |
| Weekly Sunday 16h | 0 16 0 |
| Every 2 hours | every 2h |
curl for RSS feeds over browser toolssend_message(action='list') can return empty even with configured platforms — try direct targetingdelegate_task with toolsets=["terminal"] rather than doing curl calls in the main thread — keeps context cleanhttps://www.france24.com/fr/rss) is a reliable French-language source for international news — include it for francophone briefings import urllib.request, json
url = f"https://api.telegram.org/bot{TOKEN}/getMe"
resp = urllib.request.urlopen(url)
data = json.loads(resp.read()) # {"ok":true, "result":{...}}
.env via terminal heredoc may corrupt them (redaction system replaces characters). Always verify with xxd after writing. Use printf '\xHH' or direct Python binary writes to bypass redactionThe skill ships with a reusable data-collection script in scripts/collecte-veille.sh.
Purpose: Eliminates the Broken pipe (Errno 32) crash that kills cron briefings when a CDN sends a TCP reset during curl. Each feed is fetched with || true isolation — if one feed crashes, the others continue unaffected.
Usage in cron: Set script='collecte-veille.sh' on the cron job. The script runs first, its stdout is injected into the cron agent's prompt, and the agent summarizes the pre-collected data instead of running its own curls. The prompt should explicitly say: "Utilise les données collectées — ne fais PAS de curl toi-même."
Feeds collected: BBC World, Le Monde International, France Info (via .rss, not /rss), France 24, The Guardian (HTML topic page). Parses 10 items each.
Customization: Modify the script to add/remove feeds, or adjust the item count per feed.
blogwatcher — for ongoing/monitoring RSS feeds (complementary: use for single-feed watching, use this skill for multi-source LLM-synthesised briefings)editorial-review-cycle — for producing structured daily/weekly reviews that update the editorial memory system (topics, hypotheses, briefs archive, index). Use this skill when the user asks for a "revue quotidienne" or "briefing mémoire"; use news-briefings when they ask for "what's happening in the news" to deliver to a messaging platform.references/rss-feeds.md for the full list of tested RSS endpoints and parsing recipes.references/vps-feed-reliability.md for per-server feed status (which feeds work, which are blocked, intermittent failure patterns).The user has provided the following instruction alongside the skill invocation: [IMPORTANT: You are running as a scheduled cron job. DELIVERY: Your final response will be automatically delivered to the user — do NOT use send_message or try to deliver the output yourself. Just produce your report/output as your final response and the system handles the rest. SILENT: If there is genuinely nothing new to report, respond with exactly "[SILENT]" (nothing else) to suppress delivery. Never combine [SILENT] with content — either report your findings normally, or say [SILENT] and nothing more.]
The following data was collected by a pre-run script. Use it as context for your analysis.
═══════════════════════════════════════════
COLLECTE VEILLE QUOTIDIENNE — 2026-07-07
═══════════════════════════════════════════
=== BBC World ===
• Marine Le Pen found guilty, but court clears way for presidential run if she wears tag
The National Rally leader now has to decide whether she will run with an electronic tag and will speak on TV later.
• Zelensky presses Nato for air defence systems after intense Russian strikes
The Ukrainian president says "decisions for air defence" should be "one of the key outcomes" of this week's summit in Turkey.
• Woman suspected of Monaco bomb attack found dead in Ukraine
Police had been hunting Anastasiia Berezovska after a Ukrainian millionaire was injured in the blast.
• Jailers and officials at Russia's 'torture prisons' in Ukraine exposed by BBC
Former prisoners accuse the men of abuse in detention centres and want to see them brought to trial.
• Explosions injure 18 in Damascus during Macron's visit
As reports of the blasts came in, state television said the Syrian president had welcomed Macron at the presidential palace.
• Watch: Moment rare tornado lashes central Chinese cities
Videos shared with the BBC show debris flying through the air as the storm swept through Ezhou and Huanggang in Hubei province.
• Zimbabwean football star survives gun attack in South Africa
South African police say they are investigating a case of attempted murder but that no arrests have been made so far.
• Erika Kirk comes face-to-face in court with husband's alleged killer
Charlie Kirk's widow was joined by the late US activist's family - all of whom attended court for the first time in the case.
• India's landmark Ram temple overhauls board after alleged theft of donations
Questions have been raised over alleged theft of cash, valuable jewellery, gold and silver offered by devotees.
• Trump confirms he asked Fifa to review Balogun ban
President Donald Trump confirms he asked Fifa to review United States striker Folarin Balogun's one-match suspension at the World Cup.
=== Le Monde International ===
• Détroit d’Ormuz : trois attaques signalées en vingt-quatre heures, le Qatar accuse l’Iran pour l’une d’elles
Dans les trois cas, l’agence de sécurité maritime britannique UKMTO a fait savoir qu’il n’y avait eu ni blessés ni dégâts environnementaux.
• Au premier jour du sommet de l’OTAN, à Ankara, Mark Rutte annonce une myriade de contrats de défense pour des milliards d’euros
Le montant exact, d’environ 43 milliards d’euros, doit être dévoilé, mercredi, par le secrétaire général de l’Alliance atlantique. L’objectif est de montrer au président américain Donald Trump, arrivé
• Le CIO réintègre les athlètes russes, sans leur rendre leur hymne et leur drapeau
Cette décision s’accompagne d’exigences particulières dans le suivi antidopage au vu « du scepticisme de la communauté sportive mondiale », précise le Comité international olympique dans un communiqué
• En Hongrie, les télévision et radio publiques, pro-Orban, ont cessé d’émettre, annonce le premier ministre, Péter Magyar
Les téléspectateurs de la chaîne M1 sont accueillis par un écran noir, affichant un texte présentant les excuses de la principale chaîne télévisée du groupe MTVA pour ses mensonges passés.
• Attentats à Damas : Emmanuel Macron appelle à « être intraitable en matière de sécurité » ; 18 blessés selon le ministère de l’intérieur syrien
Des témoins ont vu de la fumée s’élever d’un secteur proche de l’hôtel où le président français a passé la nuit, dans le centre de la capitale syrienne, hôtel qu’il a quitté mardi matin pour des entre
• La justice tchèque déboute Marla-Svenja Liebich, une néonazie allemande transgenre, et confirme son extradition
Cette personne est soupçonnée d’avoir fait une transition de genre pour obtenir de meilleures conditions carcérales dans une prison pour femmes. Elle doit purger une peine de dix-huit mois, notamment
• 7-Octobre : l’opposition israélienne dénonce une commission d’enquête sous influence politique
Un projet de loi évoquant « des défaillances de grande envergure » au sein de l’Etat et instituant cette commission a été adopté en première lecture lundi. L’opposition a boycotté le vote.
• Le prince Harry et Elton John perdent leur procès pour atteinte à la vie privée contre le « Daily Mail »
Ils accusaient le tabloïd d’avoir intercepté des messages vocaux, écouté des conversations téléphoniques ou encore menti, pour nourrir plus d’une cinquantaine d’articles publiés entre 1993 et 2018.
• Nigel Farage, fragilisé par des affaires de dons non déclarés, annonce qu’il démissionne du Parlement britannique et qu’il se battra pour se faire réélire
« Je vais démissionner de mon mandat de député (…), ce qui provoquera une élection partielle (…) et je me présenterai à ce scrutin partiel », a déclaré le chef du parti anti-immigration Reform UK, rat
• Le président syrien, Ahmed Al-Charaa, appelle la France à jouer un rôle actif pour « arrêter l’escalade » d’Israël
Emmanuel Macron a pour sa part affirmé que les « incursions », « ingérences » et « frappes » des pays voisins n’étaient « pas acceptables ».
=== France Info Monde ===
• Le prince Harry et Elton John perdent leur procès contre le Daily Mail
Cette affaire opposait le fils cadet du roi Charles III et d'autres célébrités, dont Elton John et l'actrice Elizabeth Hurley, à Associated Newspapers Limited (ANL), société éditrice du Daily Mail et
• Un nouveau navire a été attaqué dans le détroit d'Ormuz, le troisième en 24 heures
Dans les trois cas ces dernières heures, l'agence de sécurité maritime britannique UKMTO a précisé qu'il n'y avait eu ni blessés, ni dégâts environnementaux.
• L'Ukrainienne soupçonnée d'avoir posé le colis piégé à Monaco retrouvée morte, deux suspects interpellés
Rebondissement dans l'enquête sur l'attaque au colis piégé survenue à Monaco. La femme qui était recherchée par toutes les polices a été retrouvée morte, lundi 6 juillet, près de Kiev. Elle aurait été
• "Bombes artisanales", 18 blessés, visite maintenue… Ce que l'on sait des explosions survenues près de l'hôtel d'Emmanuel Macron à Damas
Deux explosions se sont produites mardi à proximité du lieu où le président de la République avait passé la nuit, au deuxième jour de sa visite officielle en Syrie.
• Canicule : les entreprises adaptent leurs horaires pour protéger leurs employés desaux fortes chaleurs
Horaires adaptés, pauses plus fréquentes, ventilateurs… Face au retour d'un épisode sévère et durable de canicule, qui concerne désormais 61 départements, des entreprises réorganisent le travail pour
• Au Royaume-Uni, Nigel Farage annonce sa démission du Parlement et se présente à sa réélection
Le chef du parti anti-immigration Reform UK est rattrapé par des affaires de dons non déclarés de la part de riches soutiens.
• Explosion à Monaco : la suspecte retrouvée morte à Kiev
Une semaine après l'explosion d'un colis piégé à Monaco, visant l'oligarque ukrainien Vadim Ermolaev, la police ukrainienne a annoncé, mardi 7 juillet, que le corps d'Anastasiia Berezovska, la femme s
• TEMOIGNAGES. "Tout le monde est touché" : à El Obeid dans le sud du Soudan, l'ONU craint "l'escalade des violences"
La grande ville du sud du pays est assiégée par les paramilitaires qui combattent les forces gouvernementales.
• Investissements, sécurité, influence régionale… Les enjeux de la visite historique d'Emmanuel Macron en Syrie
Emmanuel Macron est arrivé lundi à Damas pour une visite de deux jours, la première d'un chef d'Etat français en Syrie depuis 2009. Il est accompagné d'une délégation d'une dizaine de dirigeants de gr
• Explosions à Damas : Emmanuel Macron décide de maintenir sa visite et met l'accent sur "l'histoire de confiance" entre la Syrie et la France
Deux puissantes explosions ont eu lieu ce mardi 7 juillet à Damas, en Syrie, non loin de l'hôtel où séjourne le président Emmanuel Macron. Une dizaine de personnes ont été blessées, alors que l'Élysée
=== France 24 ===
• Marine Le Pen condamnée en appel : quels scénarios pour la présidentielle ?
Éligible, mais sous bracelet: la justice a ouvert mardi la voie à une possible quatrième candidature à la présidentielle de Marine Le Pen en réduisant sa peine d'inéligibilité à seulement quinze mois
• Au Nigéria, le Sénat ouvre la voie à la création de polices d'État
Se dirige-t-on vers une réelle décentralisation des forces de police au Nigéria ? Le 24 juin, le Sénat a ouvert la voie à la création des polices d'État qui permettrait à chacun des 36 États de dispo
• Argentine - Égypte en direct : suivez le 8e de finale entre l'Albiceleste et les Pharaons
L'Argentine de Lionel Messi croise la route de l'Égypte de Mohamed Salah, mardi, au Mercedes-Benz Stadium d'Atlanta lors des 8es de finale de la Coupe du monde 2026. Les vainqueurs du Mondial 2022 es
• En Syrie, Emmanuel Macron réaffirme son soutien à Ahmed al-Charaa pour stabiliser le pays
Emmanuel Macron a affiché mardi son soutien à la transition politique en Syrie lors de sa visite à Damas. Malgré deux attentats près de son hôtel, qui ont fait 18 blessés, le président français a mai
• "Délinquante", "privilégiée" : les critiques fusent à gauche après la condamnation de Marine Le Pen
La condamnation en appel de Marine Le Pen à un an de prison sous bracelet électronique et à 15 mois d'inéligibilité, déjà purgés, a suscité mardi de vives réactions de la gauche. Le président du grou
• Marine Le Pen : réunion en cours au siège du RN après sa condamnation en appel
Eligible mais condamnée à porter un bracelet électronique, Marine Le Pen est arrivée au siège du Rassemblement national vers 14H45 mardi pour décider avec les principaux cadres de son parti si elle s
• Marine Le Pen condamnée en appel : quelles réactions au sein de la classe politique ?
Marine Le Pen a été condamnée mardi en appel à trois ans de prison, dont un an ferme aménageable sous bracelet électronique, ainsi qu’à 45 mois d’inéligibilité, dont 30 avec sursis, et 100 000 euros
• Disiz trace une route à part dans la musique française
Depuis plus de vingt-cinq ans, entre rap et chanson, Disiz trace une route à part dans la musique française. De son premier succès "J'pète les plombs" au récent phénomène "Mélodrama" avec Théodora, i
• Macron en Syrie : ce qu’il faut retenir de la conférence de presse avec Al-Charaa
Le président syrien Ahmad al-Charaa appelé mardi lors d'une conférence de presse conjointe avec son homologue français Emmanuel Macron la France à jouer un "rôle actif" pour mettre fin aux "agression
• Présidentielle 2027 : Marine Le Pen fera-t-elle campagne avec un bracelet électronique ?
Le couperet judiciaire est tombé : Marine Le Pen, condamnée mardi en appel à trois ans de prison, dont un an ferme aménageable sous surveillance électronique, et 45 mois d’inéligibilité dont 30 ave
=== The Guardian ===
═══════════════════════════════════════════
FIN DE LA COLLECTE
═══════════════════════════════════════════
Génère un briefing quotidien en français des actualités du jour pour Sébastien.
Les données des flux RSS ont déjà été collectées par le script ci-dessus (section "COLLECTE VEILLE QUOTIDIENNE"). Utilise ces données — ne fais PAS de curl toi-même. Si la section de collecte est vide ou erronée, produis un message d'erreur clair au lieu d'essayer de faire tes propres curls.
Structure la veille avec des emojis par région :
🔴 Moyen-Orient
🟠 Ukraine / Russie
🟡 Amériques / US
🔵 Asie-Pacifique / Chine
🟢 Afrique
🟣 Europe / UE
⚪ Défense / Alliances
🇫🇷 France
2-3 puces max par section. Gras sur le titre principal. Termine par la source et la date.
Message concis, en français, adapté à Telegram (pas de tableaux — listes à puces uniquement).
❗ À la fin, archive le briefing dans un fichier : écris le contenu exact du briefing dans /home/sebastien/.hermes/memory/modules/revue_editoriale/sources/rss/YYYY-MM-DD.md (remplace YYYY-MM-DD par la date du jour). Crée le fichier avec write_file.
RuntimeError: [Errno 32] Broken pipe