Job ID: 76ce033272c7
Run Time: 2026-06-13 18:13:41
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.2.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
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 redactionblogwatcher — 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-13
═══════════════════════════════════════════
=== BBC World ===
• US-Iran deal scheduled to be signed on Sunday, says Trump
Before the US president's comments, Iran expressed caution about the exact timing.
• Switzerland to vote on plan to cap population at 10 million
The right-wing Swiss People's Party calls the plan a "sustainability initiative", but opponents say it is a recipe for chaos.
• Married at First Sight Australia stars not told partners had drug and violence convictions
Stars of the hit TV show say they did not know their on-screen husbands had previous convictions.
• Elon Musk becomes world's first trillionaire as SpaceX soars in stock market debut
Musk is now worth $1.11tn according to the Bloomberg rich list, while SpaceX listed on the Nasdaq stock exchange with a value of $2.2tn.
• US kills leader of Venezuela's Tren de Aragua gang in airstrike, Trump says
Niño Guerrero was killed in a "swift and lethal kinetic strike," the US President wrote in a social media post.
• Woman seriously injured in shark attack at Sydney beach
The woman, 35, was pulled from the water by members of the public and then airlifted to hospital, police say.
• Trump's name removed from Kennedy Center after court order
Crews erected scaffolding on Friday as onlookers gathered into the evening, though storms delayed the work until Saturday.
• Kidnapped Nigerian retired general dies in captivity
Maj Gen Rabe Abubakar's death highlights continuing security challenges facing parts of the country.
• Anthropic suspends new AI tools over US government security concerns
Anthropic's Claude Fable 5, released publicly this week, sparked concerns about cybersecurity and hacking.
• Fans on concourses instead of in seats, claims Fifa
Fifa says numerous empty seats were visible in the near-sell-out Group A match between South Korea and the Czech Republic because of fans remaining on concourses.
=== Le Monde International ===
• G7 : un gendarme mort, deux autres blessés dans un accident de la route en Haute-Savoie
Un gendarme de 38 ans, qui participait au dispositif de sécurisation du G7, a été « mortellement percuté par un véhicule dans des circonstances qui restent à établir », selon un porte-parole de la gen
• Des milliers de personnes se sont rassemblés au Queer Culture Festival à Séoul
Des milliers de personnes se sont réunies, samedi 13 juin à Séoul, pour célébrer la culture queer.
• Le Kennedy Center retire le nom de Donald Trump de sa façade
Le président républicain avait accolé en décembre son nom à celui de son lointain prédécesseur démocrate assassiné. Ce changement a été dénoncé par la famille du président Kennedy et par l’opposition
• A l’issue du G7, Donald Trump dînera à Versailles avec Emmanuel Macron, selon l’Elysée
Ce dîner prévu pour mercredi célébrera le 250ᵉ anniversaire de l’indépendance des Etats-Unis dans un « haut lieu de l’amitié franco-américaine, où fut signé en 1783 le traité consacrant » la naissance
• En Thaïlande, le poison invisible des mines birmanes menace le Mékong et ses riverains
Pour alimenter la transition énergétique mondiale, l’extraction sauvage des minéraux critiques a explosé en Birmanie. Elle entraîne une crise environnementale et sanitaire dans les rivières du nord de
• A Belfast, des milliers de manifestants à la suite des violences contre des personnes immigrées
Des dizaines d’hommes au visage masqué s’en sont pris à des maisons habitées par des personnes d’origine étrangère, après qu’un Soudanais a agressé au couteau un Nord-Irlandais.
• EN DIRECT, guerre au Moyen-Orient : Donald Trump affirme que la signature d’un accord avec l’Iran est prévue pour dimanche
Une fois l’accord signé, « le détroit d’Ormuz sera ouvert à tous », a ajouté le président américain, peu après que la diplomatie iranienne a écarté la possibilité d’une signature au cours des prochain
• Des hôpitaux du sud du Liban, victimes collatérales d’attaques israéliennes
Depuis le 1ᵉʳ juin, plus de 50 membres du personnel médical ont été blessés dans trois attaques distinctes dans la région, qui ont causé des dommages collatéraux aux établissements de santé.
• En Inde, cinq morts dans le crash d’un avion de transport militaire
Une enquête a été ordonnée pour déterminer les causes de l’accident. L’avion effectuait « une sortie de routine », d’après l’armée de l’air indienne.
• Nadav Lapid, l’inacceptable assignation identitaire
L’annulation, à la suite de pressions, de la présence au Festival international de cinéma de Marseille du réalisateur israélien, pourtant farouche opposant à la politique menée par Benyamin Nétanyahou
=== France Info Monde ===
• A l'occasion du sommet du G7, des ONG demandent à Emmanuel Macron de "réellement s'attaquer" aux déséquilibres macroéconomiques mondiaux
Ces organisations appellent le chef de l'Etat à confronter les pays participant au G7 à plusieurs déséquilibres, parmi lesquels "la dette qui asphyxie les pays du Sud" et "l'extrême concentration des
• A Belfast, des milliers de manifestants "s'opposent au racisme" après les émeutes contre les personnes immigrées dans la ville
Des violences contre les personnes immigrées ont récemment éclaté dans la capitale nord-irlandaise, après une violente attaque au couteau pour laquelle un homme soudanais a été inculpé.
• Le député européen (RN) Thierry Mariani, un messager discret des idées du Kremlin sur la télévision géorgienne ?
Le député européen français Thierry Mariani, habitué de la télévision géorgienne, participe-t-il à la diffusion de la propagande du Kremlin dans le pays ? L'équipe de "Vrai ou Faux" a mené l'enquête.
• La Médiatrice de l'UE demande à la Commission européenne de conserver désormais les SMS envoyés par les chefs d'État et de gouvernement
Constamment à portée de main des dirigeants, les smartphones servent à des échanges informels qui peuvent être assimilés à des discussions institutionnelles soumises aux règles légales de l'archivage.
• G7 : la manifestation des opposants à Genève dimanche est un rendez-vous "pacifique et sécurisé", assurent ses organisateurs
Le G7 débute lundi à Evian en Haute-Savoie côté français, tandis que le contre-sommet se déroule de l'autre côté de la frontière, à Genève en Suisse.
• Contre Ebola, la politique sanitaire américaine sème la colère en Afrique
Alors que la Coupe du monde de football vient de s'ouvrir aux États-Unis, la stratégie américaine de lutte contre le virus Ebola fait l'objet de nombreuses critiques. Notamment au Kenya.
• Un gendarme est mort et deux autres ont été blessés dans un accident de la route en Haute-Savoie, dans le cadre de la sécurisation du G7
Quelque 7 000 policiers, 6 000 gendarmes et 900 militaires sont déployés afin de garantir la sécurité du sommet du G7, qui débute lundi.
• REPORTAGE. Jour férié, écoles fermées et bars ouverts la nuit : comment l'Écosse vit sa première participation en Coupe du monde depuis 28 ans
Alors que l'Écosse affronte Haïti dans la nuit de samedi à dimanche pour son entrée en lice dans le Mondial de foot, le gouvernement a annoncé un jour chômé lundi, et certaines écoles resteront fermée
• Le nombre de blessés et morts civils en Ukraine a atteint un niveau record en quatre ans, annonce l'ONU
Une mission des Nations unies a recensé au moins 274 civils tués et 1 763 blessés au fil du mois de mai en Ukraine.
• INFO FRANCEINFO. Un narcotrafiquant français visé par une notice rouge d'Interpol arrêté en Colombie
Ce narcotrafiquant est le chef d'une organisation criminelle transnationale qui faisait entrer en Europe, par les mers et par les airs, de la drogue transitant par la Colombie, le Mexique, la Républiq
=== France 24 ===
• Royaume-Uni : manifestations à Belfast pour dénoncer les émeutes anti-immigrés
Des milliers de personnes se sont rassemblées samedi dans le centre de Belfast pour dénoncer les émeutes anti-immigrés qui s'y sont déroulées après une violente attaque au couteau pour laquelle un So
• ⚽️ 🇧🇷 Mondial 2026 : les supporters brésiliens animent Time Square à New York
Les supporters de l'équipe du Brésil, qui affronte le Maroc samedi soir au MetLife Stadium dans le New Jersey, ont mis l'ambiance à Times Square. En plein New York, la vague jaune et verte a donné le
• Opération conjointe des Etats-Unis et du Venezuela : le chef du gang Tren de Aragua tué
Le chef de l'organisation criminelle Tren de Aragua dont la tête avait été mise à prix par l'administration américaine a été tué lors d'une opération conjointe avec les Etats-Unis dans le sud du Vene
• Lutte contre les violences sexuelles : Comment protéger les enfants en France ?
Le deuil et la détresse de la famille de la petite Lyhanna. "Nous ne disons pas au revoir à un symbole ou à une lutte, mais à une enfant de 11 ans et demi", ces mots prononcés par le maire de Fleuran
• Confusions autour des tractations américano-iraniennes : l'Iran exclut un accord dans les 24 heures
L'Iran a exclu samedi toute signature dans les prochaines 24 heures d'un protocole d'accord avec les Etats-Unis pour mettre fin durablement à la guerre au Moyen-Orient, selon l'agence de presse gouve
• Combats de MMA, stars absentes et polémiques : l'étrange anniversaire de Donald Trump
Officiellement organisée pour célébrer les 250 ans de l'indépendance américaine, la soirée d'anniversaire de Donald Trump, prévue dimanche, ressemble davantage à une démonstration politique grandeur
• À Belfast, un vaste rassemblement contre le racisme après des émeutes anti-immigrés
Des milliers de personnes ont défilé samedi à Belfast pour dénoncer les violences racistes et les émeutes anti-immigrés survenues après une attaque au couteau pour laquelle un migrant soudanais a été
• 🔴 En direct : l'Iran exclut toute signature d'un accord avec les États-Unis dans les prochaines 24 heures
• Violences sexuelles sur mineurs : la Ciivise évalue l'action du gouvernement
En France, toutes les trois minutes, un enfant est victime de violences. En plein débat sur les moyens mis en œuvre en France contre les violences sexuelles sur les mineurs, après la mort de Lyhanna,
• Frappes israéliennes dans le sud du Liban : pourquoi la région de Nabatieh est-elle convoitée ?
Des frappes israéliennes ont ciblé samedi le sud du Liban, après un appel israélien à évacuer une vingtaine de localités de la région, dont la ville de Nabatieh, a rapporté l'agence de presse officie
=== 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.
Briefing archivé dans ~/.hermes/memory/modules/veille_actualite/daily/2026-06-13.md. Bonne journée Sébastien !