Job ID: 76ce033272c7
Run Time: 2026-07-14 16:11:43
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-14
═══════════════════════════════════════════
=== BBC World ===
• How US commerce secretary's Epstein links were uncovered by British whistleblower
Simon Andriesz made the discovery about Howard Lutnick in publicly released Epstein files.
• Israeli strike on police post in north Gaza kills seven, officials say
A senior officer in the Hamas-run police force was among those killed in the strike, which Israel's military says targeted "terrorists".
• Diamond giant De Beers halts work at flagship South African mine as demand plummets
Production will stop for two years at the mine which employs more than 4,000 people.
• 'If we die, we die together': Wife of man nearly sucked out of Ryanair plane speaks of ordeal
Svetlana Grković told Serbian media that her husband is "seriously injured and in shock".
• Bangkok fire investigation finds locked doors and flammable decor as deaths climb to 30
Survivors and first responders reported locked doors and a lack of signage marking emergency exits.
• Tyrannosaurus rex most expensive dinosaur ever sold
The dinosaur skeleton, which roamed the planet 67 million years ago, was sold by Sotheby's in New York.
• Singapore court orders Bloomberg to pay $356,000 to ministers in defamation case
The ministers claimed the piece, which cited their luxury bungalow deals, had tarnished their reputation.
• Australian police reveal unseen photos 25 years after British backpacker murder
Police hope the images could jog memories that will help them find the body of Peter Falconio.
• Hungary parliament votes to remove president from office
Tamás Sulyok was widely seen as a loyalist of former prime minister Viktor Orbán, who lost power in April after 16 years.
• US judge voids Donald Trump's $1.8bn settlement with IRS that gave him immunity from tax audits
The judge said the suit was brought for 'improper purposes' and referred a Trump attorney for possible disciplinary action.
=== Le Monde International ===
• Le détroit d’Ormuz fermé, regain de tension sur les marchés du pétrole et du gaz
Le pétrole a fait un bond de 15 % en deux jours, mais demeure à 86 dollars le baril, un niveau historiquement modéré. La tension est plus forte sur le gaz.
• EN DIRECT, guerre en Ukraine : Volodymyr Zelensky déclare avoir conclu « un accord important » avec la France en matière de défense
Le président ukrainien, qui décrit cet accord comme un élément de « coopération de défense avec l’Ukraine », a affirmé avoir obtenu des licences pour la production d’armes. Il a également confirmé les
• Aux Etats-Unis, l’inflation s’assagit en juin, un répit bienvenu pour Donald Trump
La hausse des prix a ralenti en juin, dans le sillage de la baisse des cours du pétrole. A 3,5 %, elle reste cependant très élevée et les nouvelles tensions autour du détroit d’Ormuz ont provoqué un r
• Gaza : huit morts après une frappe israélienne sur un commissariat
L’armée israélienne a confirmé, mardi, avoir mené un bombardement dans la région et a affirmé qu’elle visait des « terroristes », sans fournir plus de détails.
• Usage des fonds européens : malgré de nouvelles révélations sur des infractions du RN, la droite et l’extrême droite s’allient pour une réponse minimale
Mardi 14 juillet, le Parlement européen a vu le Parti populaire européen et l’extrême droite s’accorder pour « régulariser » la situation budgétaire du groupe des Patriotes pour l’Europe, au sein duqu
• L’UE renonce à imposer des batteries remplaçables dans les montres et bracelets connectés
Après avoir consulté les fabricants, la Commission européenne a ajouté certains objets dans la liste des exemptions au nouveau règlement sur les batteries à cause de leur miniaturisation ou de leurs c
• Espagne : interdiction d’exercer toute fonction publique pendant neuf ans pour David Sanchez, le frère du premier ministre
La justice espagnole l’a toutefois blanchi des accusations de trafic d’influence, un délit qui aurait pu le conduire en prison. Outre cette affaire, d’autres dossiers judiciaires éclaboussent l’entour
• VIDEO L’intervention de l’ICE dans le Maine, qui a tué un homme, filmée par une caméra de vidéosurveillance
Les agents de la police de l’immigration américaine ont tué Joan Sebastian Guerrero, un Colombien de 26 ans, lundi 13 juillet à Biddeford. Il aurait été confondu avec une autre personne ciblée par les
• VIDEO Les images du défile du 14-Juillet, en présence de Volodymyr Zelensky et de la coalition des volontaires
Le président ukrainien, Volodymyr Zelensky, ainsi que 24 chefs d’Etat ou de gouvernement européens ont assisté au défilé, au lendemain d’un sommet dans la capitale française des 37 pays de la coalitio
• Le commerce extérieur de la Chine toujours plus fort, dopé par l’IA et les voitures électriques
Les exportations de la Chine ont progressé de 27 % en juin par rapport au même mois de l’année précédente. Malgré une hausse des importations, le pays engrange un excédent commercial de 576 milliards
=== France Info Monde ===
• Quelque 58 victimes présumées, droguées et filmées à leur insu... A Berlin, un homme accusé de viols en série par soumission chimique
Un homme de 68 ans, résidant à Berlin, est accusé d'avoir violé de nombreuses femmes à l'aide d'alcool et de somnifères. Les faits se seraient déroulés dans la capitale allemande de 2016 à 2022.
• "On ne serait jamais venus au Texas s'il n'y avait pas eu la Coupe du Monde" : les supporters français au pays des cow-boys
Le compte à rebours est lancé. Mardi 14 juillet, à 21 h, les Bleus affrontent l’Espagne. Une demi-finale qui a des allures de finale avant l’heure. Ça se passe à Dallas, au Texas, où les supporters fr
• L’UE bloque l’interdiction des réseaux pour les mineurs
🇪🇺La proposition de loi sur l’interdiction des réseaux sociaux pour les moins de 15 ans déplaît à l’Union européenne (UE). Le problème : le rôle de l’Arcom, l'Autorité de régulation de la communicatio
• Aux États-Unis, un chien-robot équipé d'un lance-flammes vendu au grand public
Baptisé Thermonator, ce chien-robot équipé d'un lance-flammes est commercialisé aux États-Unis. Présenté comme un outil pouvant servir à l'armée, à l'agriculture ou encore à la prévention des incendie
• Huit Palestiniens tués à Gaza après une frappe israélienne sur un commissariat
L'hôpital al-Chifa, situé au nord du territoire palestinien, a confirmé à l'AFP avoir reçu les huit dépouilles. L'armée israélienne a expliqué avoir mené une frappe dans la région, déclarant qu'elle v
• 6 700 soldats, avions, drones, chefs d'État… Emmanuel Macron s'offre un défilé XXL pour son dernier 14-Juillet
Jamais autant de militaires n'avaient défilé un 14-Juillet sur les Champs Élysées. Pour son dernier défilé à l'Élysée, Emmanuel Macron a voulu une édition hors norme, avec un message de puissance adre
• "Le football, ça sert à intégrer" : Lamine Yamal répond aux propos racistes de l'ancien Premier ministre espagnol Mariano Rajoy
En conférence de presse, le prodige de l'attaque espagnole a rebondi sur les propos du politicien conservateur. D'autres internationaux espagnols sont également intervenus en faveur des Bleus.
• Pourquoi la Belgique va instaurer une vignette automobile à tous les conducteurs, même étrangers
Les trois régions de Belgique ont annoncé la mise en place de ce système après plus de vingt ans de débats. La mesure doit prendre effet à compter du 1er mai 2027.
• En Israël, à quelques jours de la fin de la session parlementaire, Benyamin Nétanyahou multiplie les concessions à ses alliés ultra-orthodoxes
Le gouvernement de Benyamin Nétanyahou profite des derniers jours de sessions parlementaires à la Knesset, le parlement israélien, pour faire voter des lois qui flattent ses alliés.
• Guerre en Ukraine : le mois de juin 2026 a été le plus meurtrier pour les civils depuis près de quatre ans, selon l'ONU
"Au moins 293 civils ont été tués et 1 990 blessés" le mois dernier, souligne la Mission de surveillance des droits de l'homme des Nations unies en Ukraine.
=== France 24 ===
• Tour de France: Pogacar remporte la 10e étape et creuse encore l'écart
Tadej Pogacar a remporté sa troisième victoire d'étape dans cette 113e édition du Tour de France en s'imposant en solitaire mardi dans la station de ski du Lioran, dans le Massif Central, pour accent
• Destination Brésil : 9 millions d'étrangers ont afflués l’an dernier, un record
Le tour du monde de l'été de France 24 nous emmène au Brésil, destination phare où 9 millions d'étrangers ont afflués l’an dernier, un record ! Ce choix, les Brésiliens eux-mêmes le comprennent bien
• "Les supporters espagnols très impatients" pour cette demi-finale France-Espagne
La France et son attaque étincelante à la poursuite d'une troisième finale consécutive face à l'Espagne de Lamine Yamal : comme attendu, les deux équipes les plus impressionnantes du Mondial 2026 se
• Mondial 2026 : France-Espagne, premier choc du dernier carré
La France et son attaque étincelante à la poursuite d'une troisième finale consécutive face à l'Espagne de Lamine Yamal : comme attendu, les deux équipes les plus impressionnantes du Mondial 2026 se
• L'Iran rapporte des frappes américaines dans la région proche de l'Irak et du Koweït
Donald Trump a estimé qu'un accord était encore "possible" avec l'Iran, malgré le lancement de nouvelles frappes américaines et le rétablissement du blocus des ports iraniens. Ces frappes américaines
• 🔴 Incendies en forêt de Fontainebleau : six personnes en garde à vue, dont un pompier volontaire qui a reconnu les faits
• Ces acteurs étrangers qui surfent sur les crises climatiques pour diffuser de la désinformation
Alors que les événements météorologiques extrêmes se multiplient, les crises climatiques peuvent être instrumentalisées par des acteurs étrangers. Un rapport de l'Iris met en garde : la désinformati
• Soudan : le général Hemedti, chef des FSR condamné à mort par contumace
Au Soudan, la justice a condamné à mort par contumace le chef des Forces de soutien rapide, le général Hemedti. Il est reconnu coupable de crimes de guerre, crimes contre l’humanité et génocide, nota
• Dix ans après l'attentat de Nice : "c'est le rôle de l'Etat d'honorer nos morts"
Dix ans après l'attentat qui a fait 86 morts et plus de 400 blessés le 14 juillet 2016 sur la Promenade des Anglais, Nice rend hommage aux victimes en présence d'Emmanuel Macron, une commémoration qu
• Epidémie d'Ebola en RD Congo : les employés d'un centre de santé en grève
L'ampleur de l'épidémie d'Ebola en RD Congo pourrait dépasser "de deux à quatre fois" les estimations officielles, a indiqué mardi l'Organisation mondiale de la santé. En RD Congo, des professionnels
=== 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.
🇫🇷 France
🔴 Moyen-Orient
🟠 Ukraine / Russie
🟡 Amériques / États-Unis
🔵 Asie-Pacifique
🟣 Europe / UE
🟢 Afrique
⚪ En bref
Sources : BBC, Le Monde, France Info, France 24 — 14 juillet 2026
📁 Archive locale : revue_editoriale/sources/rss/2026-07-14.md ✓