Job ID: 76ce033272c7
Run Time: 2026-06-23 16:04:38
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-06-23
═══════════════════════════════════════════
=== BBC World ===
• Drowning deaths soar in France as Europe buckles in peak of heatwave
Forty people have drowned in heatwave-related deaths in France since last Thursday, Prime Minister Sébastien Lecornu says.
• Dozens of ships head through Strait of Hormuz after US-Iran deal
Traffic in the waterway has risen since the US and Iran signed a deal aimed at ending the war, including 42 ships on Saturday alone.
• Iran says no new commitments on nuclear sites after Vance says inspectors to be invited back
Iran's foreign ministry says it made "no new commitments" on nuclear inspections after talks in Switzerland.
• UN commission of inquiry says Israel committing genocide in Gaza by deliberately targeting children
Israel rejects the new report by the three-member expert panel, calling it a "libellous sham".
• Zambia ex-president's family wins latest legal battle over what should happen to his body
Edgar Lungu's family and the Zambian government remain in dispute 12 months after he died.
• Spider which uses spring trap to capture prey discovered in Australia
Researchers say their hunting method - which allows them to prey on dangerous ants - is unprecedented.
• US top court says Rastafarian man cannot sue prison guards who cut his dreadlocks
The Rastafarian man argued his religious rights were violated after prison officials focibly shaved off his hair.
• Irish government to contribute £197m to cross-border rail services
The money will come from the last allocation from the Irish government's Shared Island Fund.
• Trump anticipates better relationship with Colombia under new leader
Abelardo de la Espriella, who preliminary results suggest is Colombia's next president, had Trump's endorsement.
• Montreal shooting leaves officer, civilian and suspect dead
It was the first time in 24 years that a Montreal police officer was killed in the line of duty, the city's police chief said.
=== Le Monde International ===
• Les déboires d’Ilia Traber, le mafieux de Saint-Pétersbourg qui doit beaucoup à Vladimir Poutine
Réputé intouchable grâce à ses liens noués avec le président russe, dès les années 1990, « l’antiquaire », son surnom au sein de la pègre, a été arrêté le 17 juin et inculpé de meurtre organisé. Sa ch
• « La faiblesse de l’Europe ne tient pas à une institution manquante, mais au manque de volonté politique et de capacités déployables »
Dans une tribune au « Monde », les politistes Michal Matlak et Monika Sus posent la question de la pertinence de l’instauration d’un « conseil de sécurité européen ». Selon eux, le problème de sécurit
• « Sahel Horizon », le média qui tente de contourner la censure au Sahel
Créé par un groupe de journalistes maliens, burkinabés et nigériens en exil, le média en ligne a officiellement été lancé samedi 20 juin, dans le but d’analyser avec un œil critique l’actualité de la
• Au Liban, Nabih Berri, l’inamovible chef du Parlement, reste au centre du jeu politique
Le chef de la Chambre des députés, allié et rival du Hezbollah, est un pivot central des initiatives diplomatiques pour provoquer une accalmie dans le pays.
• La « guerre des communications », nouveau terrain de chasse du secteur des télécoms et de l’industrie de la défense
Les investissements d’entreprises des télécoms dans la défense illustrent un changement profond : la levée du tabou sur l’usage des infrastructures de télécommunications civiles à des fins militaires.
• « Le Brexit a clairement un impact négatif sur l’économie britannique », assure Sarah Hall, de l’université de Cambridge
Les exportations de biens et les secteurs employant de nombreux Européens ont été les plus durement touchés par la sortie de l’Union européenne, explique la géographe économique, dans un entretien au
• Le Niger a officiellement déposé sa demande de retrait de la Cour pénale internationale
Cette décision prendra en effet le 18 juin 2027, a précisé l’instance, qui regrette « toute décision de se soustraire à l’effort collectif visant à mettre fin à l’impunité pour les crimes internationa
• VIDEO Les images de la fusillade de Montréal, le tireur a laissé un manifeste inspiré du courant « incel »
La fusillade survenue lundi 22 juin a fait trois morts, dont un policier, un résident et l’assaillant. Dans un manifeste d’une centaine de pages, le tireur faisait part de sa haine des femmes.
• Le « Frexit », une tentation de 2016 aujourd’hui oubliée
Alors qu’ils s’étaient félicités du Brexit après le référendum britannique du 23 juin 2016, lepénistes et mélenchonistes ont abandonné l’idée que la France quitte l’Union européenne. Cette idée a touj
• Au Liban, deux morts dans des tirs israéliens après une éphémère accalmie dans la région
L’Etat hébreu dit avoir ciblé « une cellule de terroristes armés », tandis que le Hezbollah pro-iranien a dénoncé une « violation flagrante du cessez-le-feu », après deux jours d’arrêt des hostilités.
=== France Info Monde ===
• 3 morts dans une fusillade à Montréal
Un homme a ouvert le feu et a fait trois morts, dont un policier, le 22 juin dans un quartier juif à Montréal (Canada). L’assaillant a été abattu par les forces de l’ordre.
• Près de 100 millions d'enfants sont privés d'école dans le monde à cause des conflits et de la crise climatique, selon l'ONU
Environ 60% des enfants concernés vivent dans seulement neuf pays, dont l'Afghanistan, le Soudan ou encore le Yémen.
• Démission de Keir Starmer : comment Andy Burnham, "le roi du Nord", s'est imposé comme favori pour remplacer le Premier ministre britannique
Le maire travailliste de Manchester, 56 ans, a déclaré sa candidature lundi. Il est, pour l'instant, le seul en lice pour prendre la place du chef démissionnaire du gouvernement.
• Trois personnes ont été tuées dans une fusillade à Montréal, au Canada
Un drame a eu lieu à Montréal (Canada), ce lundi 22 juin. Un homme a ouvert le feu, faisant trois morts, dont un policier. L’assaillant a été abattu par les forces de l’ordre. Que s'est-il passé ?
• Le Parlement européen donne son feu vert au lancement du projet d'euro numérique
Cet euro numérique, attendu pour 2029, est calqué sur le fonctionnement des euros classiques. Mais il doit permettre de contourner les acteurs américains Visa et Mastercard, et ainsi renforcer la souv
• REPORTAGE. "Notre maison a été frappée, mais on peut y vivre" : au Liban, des embouteillages montrent l'espoir des réfugiés après le cessez-le-feu
Qu'elle soit durable ou non, la trêve entre Israël et le Hezbollah amène un vent d'optimisme sur les routes en direction de Tyr où de nombreux réfugiés ont pris le volant dans l'optique d'y revivre po
• Sur fond de vives tensions avec Varsovie, Volodymyr Zelensky sera absent d'une conférence sur l'Ukraine organisée en Pologne
Le président polonais Karol Nawrocki a annoncé la semaine dernière avoir retiré la plus haute distinction du pays au président ukrainien.
• Guerre au Liban : le Hezbollah dénonce une "violation flagrante" du cessez-le-feu après des tirs israéliens dans le sud du pays
Des tirs israéliens de mitrailleuses ont fait deux morts dans le sud du Liban, selon l'agence officielle libanaise ANI. L'armée israélienne assure avoir visé "une cellule de terroristes armés".
• Amnesty International dénonce la coopération migratoire entre l'Union européenne et la Libye, en pleine répression "xénophobe"
L'ONG dénonce dans un rapport une "campagne" des autorités lybiennes, "alimentée par un discours xénophobe, d'arrestations de masse, de détentions arbitraires et d'expulsions collectives illégales".
• Records de températures, noyades et vacances anticipées... Comment la canicule affecte aussi le reste de l'Europe
Du Royaume-Uni à l'Espagne, plusieurs pays européens souffrent d'une vague de chaleur d'une ampleur "jamais vue", dont la France est l'épicentre.
=== France 24 ===
• France : record de la nuit la plus chaude depuis 1947
Après des records de température lundi, la canicule exceptionnelle qui frappe le pays s'étend encore mardi. La nuit dernière était la plus chaude jamais enregistrée en France depuis 1947.
• J.D. Vance a-t-il été snobé par le Premier ministre qatari ?
Sur les réseaux sociaux, une séquence tournée à Genève alimente des interprétations selon lesquelles le vice-président américain aurait été ignoré par le Premier ministre qatari. Mais les images ne r
• Comment Donald Trump s’est pris les pieds dans le bassin réfléchissant de Washington
Le chantier de l'épuration de l'eau du célèbre bassin réfléchissant au pied du Lincoln Memorial à Washington est en train de tourner au cauchemar politique pour Donald Trump, qui s'y est personnellem
• États-Unis : Tulsi Gabbard sous l'emprise d'une secte ? Les révélations du Washington Post
L’ancienne cheffe du renseignement, Tulsi Gabbard, aurait-elle été influencée par une secte ? C'est ce qu'affirme une enquête publiée par le Washington Post. Les explications de Matthieu Mabin, corre
• Les Fausses Notes du Brexit
Dix ans après le référendum qui a bouleversé le Royaume-Uni, quel est l'impact du Brexit sur l'une de ses plus grandes richesses : sa musique ?
De Liverpool à Paris, Sonia Patricelli part à la renc
• Canicule en France : la tour Eiffel ferme plus tôt que prévu
La tour Eiffel a fermé ce mardi dès 16H00 et le musée du Louvre fera de même de mercredi jusqu'à samedi en raison de la canicule, ont annoncé leurs directions.
• Côte d'Ivoire : le gouvernement veut ouvrir une nouvelle ère dans l'organisation des élections
En l’absence d’échéances électorales immédiates, la Côte d’Ivoire prend le temps de la réflexion. Quel système électoral construire pour l’avenir ? Après la dissolution de la Commission électorale in
• Oman et l'Iran vont étudier les coûts de la future gestion du détroit d'Ormuz
Réaffirmant leur "engagement à maintenir un passage sécurisé à travers le détroit" d'Ormuz et soulignant leur souveraineté sur cette voie maritime stratégique, Oman et l'Iran se sont engagés mardi à
• Entrée de Marc Bloch au Panthéon : un historien, combattant et résistant mort pour la France
L'historien Marc Bloch, soldat et résistant assassiné par la Gestapo, entre mardi au Panthéon lors d'un hommage à l'auteur de "L'Etrange défaite", ouvrage majeur sur la débâcle de 1940 considéré par
• Souveraineté dans la cybersécurité : le tournant européen ?
Aux avant-postes est à Vivatech, grand rendez-vous des startups, pour une émission exceptionnelle sur la souveraineté numérique. Pour en parler, Ali Laïdi reçoit Athénaïs Oslati, PDG de ONTBO, Frédér
=== 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.
Briefing livré et archivé dans ~/.hermes/memory/modules/revue_editoriale/sources/rss/2026-06-23.md ✅