Job ID: 76ce033272c7
Run Time: 2026-06-25 16:07:04
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-25
═══════════════════════════════════════════
=== BBC World ===
• 'I thought I was going to die' - Venezuelans describe earthquake panic
Buildings were flattened in the capital Caracas, where voices have been heard calling from the rubble.
• Earthquake is devastating blow to Venezuela at time of uncertainty
The twin quakes come less than six months after Venezuela's then-leader Nicolás Maduro was seized by US forces.
• Europe's heatwave shifts east as France raises health alert to highest level
Temperatures in Germany could hit 40C in some areas while French officials say deaths linked to the heat are being seen among young people.
• Trump asks Congress for billions for Iran war, after tension with Republicans
But the budget faces an uphill battle as the president spars with some members of his own party over the issue.
• Key figure in South Africa police corruption scandal pleads guilty
Prosecutors say Vusimusi "Cat" Matlala could provide evidence against "high-ranking officials".
• Oil price falls back to pre-Iran war levels
Signs that traffic through the key Strait of Hormuz shipping route is gradually resuming has helped to push the oil price down.
• IBM hails new 'block of flats' design breakthrough for ultra tiny chips
IBM says it has created the world's first known chip tech below 1 nanometre - but it will be some time before it's ready for production.
• Ryanair says it will reluctantly not charge parents to sit next to children
The airline had typically charged adults a fee of £8 each way to sit with their young children.
• Families lay flowers on barbed wire barricade on anniversary of deadly Kenya protests
Protesters demand justice for the dozens killed during the 2024 demonstrations and last year's anniversary protests.
• Philippines bans video game played by alleged high school shooter
The rare school shooting that left three students killed and 20 others injured has shocked the country.
=== Le Monde International ===
• Coupe du monde 2026 : Elye Wahi, au cœur de la tourmente, a une carte à jouer sur le front de l’attaque ivorienne
Le footballeur s’est relancé après un long passage à vide. Mais il est au centre d’une affaire présumée de paris sportifs truqués. La Côte d’Ivoire affronte Curaçao, jeudi 25 juin, avec, à la clé, une
• EN DIRECT, guerre en Ukraine : les dernières informations
La marine française a arraisonné un pétrolier soupçonné de faire partie de la flotte fantôme russe. Il s’agit du cinquième arraisonnement de ce type depuis septembre 2025 de la part de la France.
• Pétrole : les cours renouent avec leurs niveaux d’avant la guerre au Moyen-Orient
La détente des prix traduit l’afflux des cargaisons en provenance du golfe Arabo-Persique, avec la reprise du trafic dans le détroit d’Ormuz.
• En Afrique, comment les villes s’adaptent aux chaleurs intenses et meurtrières
Peintures réfléchissant la lumière, toits végétalisés, pauses pour les travailleurs… De nombreux pays africains tentent d’innover face aux températures de plus en plus extrêmes qu’ils subissent.
• La bataille des économistes Philippe Aghion et Paul Krugman sur le décrochage de l’Europe
Philippe Aghion, « Prix Nobel d’économie » 2025, constate un décrochage inquiétant de la productivité européenne comparée à celle des Etats-Unis tandis que Paul Krugman, « Prix Nobel d’économie » 2008
• Séismes au Venezuela : au moins 164 morts et près de 1 000 blessés, selon un nouveau bilan provisoire
Deux tremblements de terre, dont l’un devenu le plus puissant en plus d’un siècle dans le pays, ont frappé l’ouest de Caracas, dans la soirée de mercredi. Les spécialistes redoutent un bilan « lourd »
• Séismes au Venezuela : l’ampleur des dégâts en images
Au moins 164 personnes ont perdu la vie et plus de 1 000 ont été blessées dans deux puissants tremblements de terre survenus mercredi soir. Plusieurs bâtiments se sont effondrés, notamment à Caracas,
• En Bolivie, le président Paz Pereira obtient la levée des barrages routiers sans effusion de sang
Un accord signé avec la Centrale ouvrière bolivienne a été dénoncé par les organisations indigènes et paysannes, qui y voient une « trahison ».
• La France a arraisonné un cinquième pétrolier soupçonné d’appartenir à la flotte fantôme russe
Le cargo arborait un faux pavillon, selon la préfecture maritime de la Méditerranée. « Nous ne laisserons pas la flotte fantôme contourner les sanctions et financer l’effort de guerre russe », a réagi
• Face à l’ultimatum de l’Ukraine, la Biélorussie joue la carte de l’apaisement
Le président ukrainien avait donné une semaine à son homologue biélorusse, Alexandre Loukachenko, pour démanteler les antennes-relais situées sur son territoire et utilisées par les Russes pour frappe
=== France Info Monde ===
• Israël affirme qu'il se retirera du Liban uniquement après le désarmement du Hezbollah
Une frappe de drone israélien contre un véhicule dans le sud du Liban a par ailleurs fait trois morts jeudi, selon l'agence de presse officielle Ani.
• VIDEO. "On n'a même plus la force ni le courage d'aider" : plusieurs villes dévastées par des séismes au Venezuela
Le bilan est lourd au Venezuela. Dans la soirée du mercredi 24 juin, deux puissants séismes ont touché la région de la capitale, Caracas, en l'espace de quelques secondes. Au moins 164 morts et près d
• EN IMAGES. Immeubles détruits, aéroport effondré et recherche des survivants... Le Venezuela sous le choc après un double séisme meurtrier
Au moins 164 personnes ont été tuées et près de 1 000 autres blessées dans une double secousse de magnitude 7,2 et 7,5 qui s'est produite mercredi, selon un bilan officiel encore provisoire.
• En Espagne, au moins 212 morts attribuables à la canicule recensées entre dimanche et mercredi
Plus aucune région d'Espagne n'était en alerte orange ou rouge pour la chaleur, jeudi, selon l'Agence météorologique nationale (Aemet).
• DIRECT. Séismes au Venezuela : des équipes de secouristes coordonnées par l'ONU sont en route
Les secouristes "sont déjà en route pour notre pays, afin de participer" aux recherches de personnes piégées sous les décombres, a déclaré la présidente par intérim Delcy Rodriguez.
• "Nous avons besoin l'un de l'autre" : le couple franco-italien en voie de réconciliation, lors du sommet à Antibes
Jeudi 25 juin, Emmanuel Macron reçoit jeudi la présidente du Conseil italien, Giorgia Meloni, à Antibes. Après plusieurs années de relations tendues entre Paris et Rome, ce sommet est l'occasion de si
• La France a intercepté un cinquième pétrolier de la "flotte fantôme" russe, annonce Emmanuel Macron
Un navire pétrolier russe soupçonné d'appartenir à la "flotte fantôme" russe avait déjà été interpellé au large de Brest par la Marine nationale au début du mois de juin.
• TEMOIGNAGES. "Tout s'est mis à trembler" : des habitants de Caracas racontent le double séisme qui a secoué le Venezuela
Le phénomène, particulièrement puissant, a fait au moins 32 morts et plus de 700 blessés mercredi, selon un premier bilan provisoire des autorités.
• À Phoenix, ville située au milieu du désert, un GPS pour guider les piétons vers la fraîcheur
La capitale de l'Arizona est tout simplement la métropole la plus chaude des États-Unis. C'est là que le projet "Cool Routes", pour itinéraires frais, est né. C'est une application capable de calculer
• L'Iran met en garde contre toute traversée d'Ormuz sans son autorisation
L'avenir du détroit d'Ormuz, point de passage stratégique pour le commerce, reste un contentieux dans les pourparlers entre Téhéran et Washington. Le secrétaire d'Etat américain a mis en garde jeudi c
=== France 24 ===
• Pourquoi les séismes qui ont frappé le Venezuela sont aussi inhabituels et dévastateurs
La principale hypothèse retenue après le choc sismique qui a frappé le Venezuela, dans la nuit de mercredi à jeudi, est la survenue d’un phénomène relativement rare : la succession très rapide et pro
• La justice ordonne à TotalEnergies de prendre en compte les émissions carbone de ses clients
Le tribunal judiciaire de Paris s’est prononcé jeudi dans l'affaire dite du devoir de vigilance de TotalEnergies. Dans sa décision, il a enjoint au groupe pétrolier de compléter son plan de vigilance
• Au Bénin, des créateurs misent sur les jeux pour faire découvrir le patrimoine
Au Bénin, des créateurs misent sur les jeux vidéo et les expériences interactives pour valoriser le patrimoine culturel. Cartes à collectionner, réalité augmentée et univers immersifs inspirés du gam
• Canicule : le corps humain mis à rude épreuve
La France connaît des épisodes de chaleur inhabituels qui mettent les organismes à rude épreuve, au moment de l’exposition mais aussi dans les heures qui suivent. Contrairement aux populations vivant
• En France, 'on vit une crise démocratique profonde et on sent qu'on est à la croisée des chemins'
Le Chef de la rubrique politique-société chez The Conversation, David Bornstein nous rejoint pour Derrière l'Image. Six ans après la photographie symbolique des 150 citoyens de la Convention citoyenn
• 🔴 En direct : Israël conditionne de nouveau son retrait du Liban au désarmement du Hezbollah
• Canicule: une catastrophe agricole
Les canicules sont les plus redoutées des catastrophes climatiques par les agriculteurs. Contre la sécheresse soudaine et les fortes chaleurs qui cuisent les cultures, pas grand chose à faire. Les pe
• Conférence sur l'Ukraine : après les tensions, Kiev et Varsovie jouent l'apaisement
Alors que s'est ouverte, jeudi, la 5e conférence sur la reconstruction en Ukraine, les responsables politiques ukrainiens et polonais ont ouvert l'événement en affichant leur proximité retrouvée, alo
• Venezuela : plus gros séismes depuis 126 ans, l'aide internationale s'organise
Deux séismes de magnitude 7 ont frappé le Venezuela, provoquant une situation « critique » selon les autorités, avec de nombreux morts et blessés déjà extraits des décombres. Le bilan reste encore di
• Mondial 2026 : les supporters marocains fêtent leur qualification en 16es
Le Maroc s'est imposé 4-2 contre Haïti dans un match riche en rebondissements mercredi 24 juin. Des centaines de supporters marocains ont fêté leur victoire face à Haïti et leur qualification en 16e
=== 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.
Deux tremblements de terre de magnitude 7,2 et 7,5 ont frappé l'ouest de Caracas en l'espace de quelques secondes — le plus puissant séisme au Venezuela depuis 126 ans. Des bâtiments se sont effondrés, l'aéroport est endommagé. L'ONU coordonne l'envoi d'équipes de secouristes.
Sources : BBC World, Le Monde International, France Info Monde, France 24 | 25 juin 2026
✅ Briefing archivé dans revue_editoriale/sources/rss/2026-06-25.md