Job ID: 76ce033272c7
Run Time: 2026-06-15 16:06:52
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)~/.hermes/cron/output/<job_id>/ for the crash reason. Fix the prompt: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-06-15
═══════════════════════════════════════════
=== BBC World ===
• Bowen: Iran deal ends Trump's war that revealed limit of US dominance
The deal to end fighting and re-open the Strait of Hormuz leaves the sides where they were 24 hours before the war - only with thousands now dead.
• Norwegian crown princess's son found guilty of two counts of rape
Marius Borg Høiby, the 29-year-old son of Norway's Crown Princess Mette Marit, has been sentenced to four years in jail.
• Russian strikes kill 11 and set historic cathedral in Kyiv ablaze
A Ukrainian drone attack in the Russian city of Tula, south of Moscow, killed three people.
• Brazil woman dies after rope-jumping instructors fail to attach cord
Three men have been arrested after instructors failed to attach a rope to her before helping her jump from a bridge.
• South Korea's Starbucks to shut for staff history lesson after backlash
The chain was criticised for a "Tank Day" marketing ploy on the anniversary of a military massacre.
• 'Spider-Man of Yemen' dies falling into volcanic crater
Al-Qaqa Ibn Antar had been attempting to climb its walls without safety equipment when he fell in, local authorities say.
• US musician Oliver Tree dies in helicopter collision in Brazil
The singer-songwriter is among six people presumed dead in air crash over Rio de Janeiro on Sunday.
• Fifa seeks explanation over VAR official's hand gesture
Fifa is seeking an explanation over a hand gesture made by video assistant referee Shaun Evans before Germany's 7-1 win over Curacao on Sunday.
• China detains two leaders of influential underground church
More than 30 members of Early Rain Covenant Church were taken for interrogation midway through Sunday service.
• South African TV star arrested after allegedly kidnapping man in girlfriend dispute
Molemo "Jub Jub" Maarohanye is accused of trapping a taxi driver in a car and firing a gun in the man's direction.
=== Le Monde International ===
• EN DIRECT, guerre au Moyen-Orient : une attaque israélienne fait un mort au Liban, malgré l’annonce d’un accord entre les Etats-Unis et l’Iran
L’accord est censé inclure une désescalade sur le front libanais, où le Hezbollah soutient la République islamique. Selon le quotidien libanais « L’Orient-Le Jour », il s’agit de la deuxième mort enre
• En Inde, le patrimoine culturel, naturel et archéologique négligé par les autorités
Alors qu’une cinquantaine de monuments officiellement protégés ont disparu, le gouvernement de Narendra Modi est plus enclin à promouvoir le patrimoine hindou et la création de nouveaux temples qu’à p
• Coupe du monde 2026 : chez les Diables rouges belges l’optimisme est « presque à son maximum »
La Belgique fait son entrée dans le Mondial lundi 15 juin face à l’Egypte. Après un lourd échec lors de l’édition au Qatar, en 2022, les footballeurs belges suscitent un regain d’engouement et d’espoi
• Leyla Dakhli, historienne : « Dans les révoltes arabes contemporaines, la notion de dignité est déterminante »
La chercheuse, codirectrice de l’ouvrage collectif « Les Révoltes de la dignité », explique, dans un entretien au « Monde », que les analyses géopolitiques occultent parfois les raisons profondes et i
• Coupe du monde 2026 : avant France-Sénégal, récit d’une nuit de mai 2002 où les « Lions de la Teranga ont mangé le Coq français »
Le Sénégal et la France se retrouvent mardi 16 juin pour leur entrée en lice dans le Mondial 2026, vingt-quatre ans après le succès historique (1-0) des Lions de la Teranga contre les Bleus en ouvertu
• Douze stands israéliens fermés au salon de la défense Eurosatory
Critiquant « les exigences exaspérantes du gouvernement français », le ministère de la défense israélien a dénoncé « une mesure cynique, ni équitable ni surprenante ». Une situation similaire s’était
• EN DIRECT, G7 à Evian : Donald Trump est arrivé ; il doit s’entretenir avec Emmanuel Macron en fin d’après-midi
Le président français a dit qu’il souhaitait avoir « une discussion respectueuse mais ferme » avec son homologue américain, qui, avant le sommet, avait brandi la menace de droits de douane de 100 % su
• Donald Trump annonce un meeting politique à Washington le 4 juillet, jour de la fête nationale
Au lendemain du combat de MMA à la Maison Blanche, le président américain a promis un autre événement inédit et « un discours que vous ne voudrez pas rater », le jour du 250ᵉ anniversaire de la déclar
• Au Tchad, MSF annonce le renvoi de 18 employés accusés d’agressions sexuelles de réfugiées soudanaises
De « graves allégations d’exploitation et d’abus sexuels » avaient été formulées à la fin de l’année 2024. L’ONG, qui a diligenté des enquêtes, intervient au Tchad, notamment en soutien des Soudanais
• EN DIRECT, guerre en Ukraine : Kiev affirme avoir trouvé des débris d’un drone de conception russe sur le site de la cathédrale de la Dormition
La Russie a lancé 70 missiles et 611 drones sur le pays pendant la nuit de dimanche à lundi, faisant 11 morts, dont cinq à Kiev. Moscou, de son côté, affirme que la cathédrale de la Dormition de Kiev
=== France Info Monde ===
• Accord Iran/États-Unis : la porte-parole des démocrates en France se dit "sceptique" et juge que la parole de Donald Trump "ne vaut rien"
Selon Amy Porter, Donald Trump "n'est plus du tout en capacité de négocier quoi que ce soit" et a "incendié la diplomatie".
• Guerre au Moyen-Orient : en Israël, l'accord entre l'Iran et les États-Unis est fortement critiqué et fragilise la stratégie de Benyamin Netanyahou
L'accord conclu entre Washington et Téhéran est largement perçu comme une victoire de l'Iran dans la classe politique israélienne. Les critiques se concentrent sur l'actuel Premier ministre, Benyamin
• "Rien n'est sacré pour l'ennemi" : l'attaque russe contre une cathédrale orthodoxe vue d'Ukraine
Un drone russe a frappé la cathédrale de l'Assomption de la Laure de Kiev-Petchersk, l'un des sanctuaires orthodoxes les plus importants d'Ukraine et site classé au patrimoine mondial de l'Unesco. Le
• Accord Iran/USA : "On comprend que la situation est pire désormais pour les Iraniens", regrette la présidente de l'association Iran Justice
Après trois mois et demi de conflit, l'Iran et les États-Unis ont finalement signé un accord dimanche 14 juin pour mettre fin à la guerre au Moyen-Orient.
• Réouverture du détroit d'Ormuz, prix des carburants, affaire Lyhanna... Ce qu'il faut retenir de l'interview d'Emmanuel Macron en marge du G7
Le président de la République était l'invité de TF1, lundi, au premier jour du sommet du G7 à Evian, en Haute-Savoie.
• REPORTAGE. "Nous tiendrons malgré toutes ces attaques de missiles et de drones" : à Kiev, les habitants "choqués" par l'attaque russe qui a incendié la cathédrale de la Dormition
"Deux drones russes ont délibérément attaqué cette partie de la ville où se trouvent la Laure (des Grottes de Kiev) et le Mystetskyï Arsenal", un musée situé à proximité de ce monastère, a dénoncé Vol
• "Dire que l'Église russe prétend se soucier des lieux saints" : l'Église orthodoxe ukrainienne condamne fermement la frappe russe qui a incendié la cathédrale de la Dormition, classée à l'Unesco
En Ukraine, un joyau du patrimoine a été bombardé dans la nuit de dimanche à lundi 15 juin par l'armée russe : une célèbre cathédrale orthodoxe du XIème siècle, classée à l'Unesco. L'édifice a été rav
• Accord de paix entre l'Iran et les Etats-Unis : au Liban, la situation reste incertaine
L'annonce d'un accord entre les États-Unis et l'Iran suscite un espoir au Liban. Mais, les bombardements se poursuivent par endroits et l'armée israélienne reste présente dans certaines zones.
• Accord de paix entre l'Iran et les Etats-Unis : que sait-on vraiment sur la présence de mines dans le détroit d'Ormuz ?
La circulation dans le détroit d'Ormuz doit pouvoir reprendre après la signature d'un accord entre Washington et Téhéran. Mais la possible menace des mines iraniennes pourrait être le principal obstac
• Contrôle strict des véhicules, 16 000 forces de l'ordre mobilisées… Évian comme confinée avant l'arrivée des chefs d'Etat pour le G7 ce lundi
Le sommet du G7 s'ouvre ce lundi 15 juin, à Evian, en Haute-Savoie. Donald Trump y est attendu dans l'après-midi, et la sécurité y est maximale ; 16.000 gendarmes et policiers ont été déployés. De quo
=== France 24 ===
• Ces images ne montrent pas un hélicoptère français abattu à la frontière du Mali
Des internautes sympathisants de l’Alliance des États du Sahel (AES) affirment qu’un hélicoptère français transportant des terroristes aurait été abattu à la frontière du Mali. Mais parmi les images
• Mondial-2026 : l'Espagne entre en lice face au Cap-Vert
L'Espagne, l'un des favoris du Mondial 2026, fait son entrée dans la Coupe du Monde, lundi, face au Cap-Vert. Le Petit Poucet de la compétition dispute sa première Coupe du monde et aura fort à faire
• Mondial-2026 : l’équipe du Sénégal s'entraîne à J-2 de son match avec la France
Les joueurs de l'équipe du Sénégal s'entraînent deux jours avant leur premier match de Coupe du monde 2026 contre la France. Il y a 24 ans, lors de leur dernière rencontre, les Lions de la Teranga av
• L'Ukraine entame son très long chemin vers une adhésion à l'Union européenne
L'Ukraine a franchi lundi une étape importante pour son adhésion à l'UE avec le lancement d'une première série de négociations devant conduire Kiev à s'aligner sur les standards européens en matière
• Protocole d'accord au Moyen-Orient : "L’Iran a tenu tête et imposé son calendrier et ses conditions"
Les États-Unis et l’Iran ont conclu dimanche un protocole d’accord visant à mettre fin à la guerre au Moyen-Orient, incluant la réouverture du détroit d’Ormuz, la levée du blocus américain, l'arrêt i
• Donald Trump arrivé à Genève d'où il se rendra au sommet du G7
L'avion transportant Donald Trump a atterri lundi à Genève en Suisse, d'où le président américain se rendra du côté français du lac Léman à Evian, pour participer au sommet du G7.
• Espagne - Cap-Vert en direct : suivez le premier match de la Roja à la Coupe du monde
L'Espagne, l'un des favoris du Mondial 2026, fait son entrée dans la Coupe du Monde, lundi, face au Cap-Vert. Le Petit Poucet de la compétition dispute sa première Coupe du monde et aura fort à faire
• Mali : l’immatriculation des motos devient obligatoire sur fond d’enjeux sécuritaires
Au Mali, les propriétaires de deux-roues et de trois-roues vont devoir mettre la main à la poche. L’immatriculation de leurs engins est désormais obligatoire. Les autorités évoquent des « impératifs
• L'étoile montante du RnB : Ocevne
Elle s'est fait connaître grâce à ses reprises sur les réseaux sociaux. Aujourd'hui, cette artiste aux origines congolaises, burundaises et suisses signe son retour avec deux titres forts : "Mi AmorT
• Ebola en RD Congo : une flambée de cas inquiète les autorités sanitaires
Le virus Ebola continue de faire des ravages. Médecins Sans Frontières tire la sonnette d’alarme : selon l’ONG, la propagation de la maladie progresse plus rapidement que la réponse mise en place sur
=== 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/veille_actualite/daily/YYYY-MM-DD.md (remplace YYYY-MM-DD par la date du jour). Crée le fichier avec write_file.
📰 Veille Quotidienne — Lundi 15 juin 2026
🔴 Moyen-Orient
🟠 Ukraine / Russie
🟡 Amériques / US
🔵 Asie-Pacifique / Chine
🟢 Afrique
🟣 Europe / UE
🇫🇷 France
Sources : BBC World, Le Monde, France Info, France 24, The Guardian — 15 juin 2026
✅ Briefing archivé dans veille_actualite/daily/2026-06-15.md