Job ID: 76ce033272c7
Run Time: 2026-07-10 16:09:49
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-10
═══════════════════════════════════════════
=== BBC World ===
• East Asia braces for destructive typhoon as landslides kill 15 in Philippines
Heading for Taiwan and south-eastern China, the 1,000 km-wide Bavi is forecast to be one of the strongest storms in decades.
• Man fatally shot by ICE in Houston was not intended target, DHS says
Immigration agents were looking for a different person when they shot Lorenzo Salgado Araujo during a traffic stop, officials say.
• Man nearly sucked out of window mid-air on Ryanair plane, passengers say
Ryanair confirm a passenger was given medical treatment after an incident on a Malta Air flight, which is owned by Ryanair.
• US declassifies even more UFO videos
The US government published a fourth instalment of unresolved cases, promising to release more files on a rolling basis.
• China lands reusable rocket for first time, state media says
It follows similar landings of reusable rockets by US-owned companies SpaceX and Blue Origin.
• Chip giant SK Hynix raises $26.5bn in mega US share sale
The shares are set to start trading on the Nasdaq on Friday in what will be the largest ever debut by a foreign firm.
• Nolan Wells' family demands answers about US teen's death after boating trip
Wells' body was found in the water near Mississippi's Horn Island days after he went on a boating trip there with friends.
• Ukraine strikes Russian ships near Crimea, escalating attacks on fuel supplies
The attacks appear to be the latest phase of Ukraine's bid to choke off supplies and routes into and out of occupied Crimea.
• Democrat Graham Platner suspends campaign for key US Senate race after assault allegation
The decision came days after a woman accused him of sexual assault, an accusation he says is "categorically false".
• Greek F-16 fighter jet crash-lands at busy Zakynthos airport
The runway is closed after the jet reportedly landed without deploying its landing gear before bursting into flames.
=== Le Monde International ===
• Royaume-Uni : une nouvelle affaire de dons non déclarés vise Reform UK, le parti anti-immigration de Nigel Farage
La police enquête sur des dons d’un total de 500 000 livres versés par Fiona Cottrell, une riche aristocrate, au parti d’extrême droite avant les élections législatives de juillet 2024, lors desquelle
• Aux Etats-Unis, une loi phare pour faciliter l’accès au logement va entrer en vigueur, malgré le refus de Donald Trump de signer sa promulgation
Le texte vise principalement à faciliter la construction de nouvelles habitations, notamment en assouplissant certaines normes et en accélérant les examens d’impact environnemental.
• Dans les centres de rétention administrative, les femmes face à des vulnérabilités multiples
Les associations intervenant dans les CRA alertent sur les conséquences psychologiques d’un enfermement prolongé pour des femmes déjà fragilisées par l’exil, la précarité ou encore les violences conju
• « Le risque, c’est qu’après des années de progrès, les usagers retournent à l’héroïne » : au Sénégal, la lutte contre les drogues se heurte à la baisse de l’aide internationale
Depuis début 2025, le Fonds mondial fait face au désengagement de ses principaux contributeurs. Des financements en baisse qui ont des conséquences directes sur les consommateurs de drogues sénégalais
• Espagne : au moins 12 morts dans un feu de forêt en Andalousie, le roi Felipe VI et la reine Letizia observent une minute de silence
Le drame, qui a eu lieu dans la province d’Almeria, jeudi, survient au début d’un été à haut risque pour l’Espagne. Le pays est confronté, ces dernières années, à des vagues de chaleur de plus en plus
• En Allemagne, le maire de Berlin, Kai Wegner, renonce à se représenter à deux mois du scrutin, après un scandale dû à une coupure d’électricité massive
Sa décision survient quelques jours après des révélations de presse selon lesquelles l’élu aurait à plusieurs reprises menti sur la façon dont il avait géré la coupure d’électricité du 3 janvier.
• Donald Trump révoque les chefs d’une agence électorale avant les élections de mi-mandat
La Commission d’assistance aux élections une agence publique créée en 2002, est chargée de certifier les équipements de vote et de distribuer des centaines de millions de dollars d’aide fédérale au ti
• 14-Juillet : les personnes qui veulent assister au défilé sur les Champs-Elysées devront présenter un QR code
En 2024, en raison des mesures de sécurité instaurées lors des Jeux olympiques de Paris, un QR code avait été exceptionnellement mis en place pour le défilé du 14-Juillet, qui s’était déroulé avenue F
• Au Japon, l’aéroport du Kansai, à Osaka, se vante de n’avoir jamais perdu un seul bagage
Inauguré en 1994, l’aéroport nippon, aujourd’hui géré par le français Vinci, utilise des systèmes électromécaniques et des processus de vérifications multiples pour assurer la bonne livraison des baga
• Au Chili, dans le détroit de Magellan, des autochtones revendiquent l’usage ancestral des espaces côtiers
Des descendants du peuple indigène Kawesqar demandent à faire reconnaître leur usage coutumier pour perpétuer leurs traditions et contrer l’expansion de la salmoniculture. José Antonio Kast, le présid
=== France Info Monde ===
• L'Iran menace de frapper Israël en cas de nouvelle attaque contre ses infrastructures
Le Premier ministre israélien, Benyamin Nétanyahou, s'est entretenu jeudi soir avec le président américain Donald Trump, qui l'a informé des "derniers mouvements" américains dans le Golfe.
• Dans l'Union européenne, les femmes "perdent des milliards" en raison du retard dans la mise en œuvre de la transparence salariale
Selon une étude de l'Institut syndical européen, les femmes de l'Union européenne perdent chaque année des milliards d'euros à cause des retards dans la mise en œuvre des nouvelles lois sur la transpa
• "Elle a été déplacée avec beaucoup de soins" : la tapisserie de Bayeux est arrivée à Londres
La tapisserie de Bayeux est arrivée à Londres (Angleterre) dans la nuit du jeudi 9 au vendredi 10 juillet après un transfert qui a nécessité d'infinies précautions. Cette célèbre broderie du XIe siècl
• Emmanuel Macron accueillera 25 chefs d'Etat et de gouvernement, dont Volodymyr Zelensky, lundi à Paris dans le cadre de la Coalition des volontaires"
L'objectif est de "pousser" à un cessez-le-feu et à une "reprise" des négociations de paix, stipule la présidence française.
• "Ils ont réagi trop tard pour se mettre à l'abri" : onze personnes retrouvées mortes dont plusieurs touristes dans l'incendie qui ravage le sud de l'Espagne
Des incendies dramatiques dans le sud de l'Espagne ont fait 11 morts cette nuit, piégés par les flammes dans une zone touristique près d'Almeria. Et le bilan risque de s'alourdir : une vingtaine de pe
• Au moins douze morts dans un incendie en Andalousie : les consignes d'évacuation des autorités espagnoles ont-elles été respectées ?
Le violent incendie qui s'est déclenché à Almería dans le sud de l'Espagne a fait au moins 11 morts et 19 personnes sont portées disparues, a annoncé vendredi le président du gouvernement régional and
• Un lanceur d'alerte qui a dénoncé les agissements du groupe Wagner en Centrafrique se voit refuser l'asile en France
Il est reproché au journaliste Ephrem Yalike-Ngonzo d'avoir participé à un système qu'il a contribué à dénoncer. Son avocat dénonce un "signal extrêmement négatif" envoyé à tous ceux qui "veulent lutt
• L'industrie automobile européenne menacée : comment expliquer les difficultés du secteur, alors que Volkswagen annonce un plan massif de suppression d'emplois ?
L'industrie automobile européenne est en difficulté. À l’instar d'un plan massif chez Volkswagen, c'est toute la production de véhicules européens qui est menacée. France Télévisions fait le point.
• Eurozapping : comment les pays font face à la vague de chaleur ?
Comme chaque soir, le JT du 23h fait un tour de l'actualité diffusée par les chaînes européennes de télévision. C'est l'Eurozapping du jeudi 9 juillet.
• L'armée allemande ne veut plus être le maillon faible de la défense en Europe
Après des années de sous-investissement, Berlin accélère son réarmement. Une évolution saluée par ses partenaires européens, mais qui suscite aussi des inquiétudes.
=== France 24 ===
• Tour de France : le Belge Tim Merlier s'impose au sprint lors de la 7e étape
Le Belge Tim Merlier a remporté vendredi la septième étape du Tour de France à Bordeaux, au terme d'un sprint massif. Il a devancé le Norvégien Soren Waerenskjold et l'Érythréen Biniam Girmay. À 33 a
• En Mauritanie, le paradis menacé de la pêche traditionnelle des Imraguen
C'est un mode de vie multiséculaire qui se transmet de génération en génération. Mais le réchauffement climatique risque d'y mettre fin. On vous propose de passer quelques minutes avec les Imraguen,
• Crimes de guerre au Soudan : l'ONU enquête dans les camps de réfugiés du Tchad
La guerre au Soudan impacte directement ses voisins, comme le Tchad, où les Nations Unies ont intensifié le rythme de leurs visites ces derniers mois. L'objectif : trouver une issue à ce conflit. L'e
• Soudan : Rencontre avec une habitante d'El-Obeid, où l'ONU craint un bain de sang
La capitale de l'État du Kordofan du Nord au Soudan, El-Obeid, est encerclée par les Forces de Soutien Rapide. L'ONU dit craindre un bain de sang. La population est exsangue. Environ 600 000 civils y
• RD Congo : l'opposition rentre du Burundi après des consultations pour sortir le pay de la crise
Ils sont de retour à Kinshasa après leur visite à Bujumbura dans un contexte de vive tension autour de la révision de la Constitution. Les opposants congolais ont présenté les conclusions des consult
• Les Antilles envahies par les sargasses, situation critique dans onze communes martiniquaises
Aux Antilles, des plages sont transformées en tapis d'algues. En se décomposant, les gaz toxiques libérés par les algues sargasses dépassent le seuil de tolérance, rendant l'air irrespirable. En Mart
• Mondial 2026 : les Égyptiens accueillis en héros à leur retour au pays
La sélection égyptienne de football a reçu un accueil triomphal vendredi à son retour au pays, où des milliers de supporters sont venus saluer son parcours historique à la Coupe du monde, achevé en h
• L'équipe égyptienne de football entourés des supporters à leur retour
Des milliers de supporters égyptiens se sont rassemblés vendredi pour accueillir l’équipe nationale de football à son retour au pays. Les Pharaons, qui ont pour la première fois de leur histoire atte
• Erling Haaland : le footballeur norvégien de tous les records
Il aide la #Norvège à performer au #Mondial2026 et il est considéré comme l’un des meilleurs buteurs au monde. Il s’agit de Erling Haaland. Le “cyborg” norvégien bat tous les records. Mais permettra-
• Soudan : le difficile quotidien des habitants d'El-Obeid, encerclée par les FSR
Au Soudan, l’ONU redoute un bain de sang à El-Obeid, encerclée par les Forces de soutien rapide. Environ 600 000 civils y seraient toujours piégés dans une ville à bout de souffle. Témoignage rare d’
=== 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 revue_editoriale/sources/rss/2026-07-10.md.