Job ID: 76ce033272c7
Run Time: 2026-07-15 16:07:20
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-15
═══════════════════════════════════════════
=== BBC World ===
• Iran threatens to block more trade routes as US launches fresh strikes
US President Donald Trump vowed to strike Iran's bridges and power plants next week if the country does not return to talks.
• Trump retreat over Hormuz tolls suggests he is struggling to end Iran war
The abrupt about-face from the US president was the latest twist in a conflict that has now lasted more than four months.
• Strait of Hormuz 'faultline' exposes weakness of the US-Iran deal
Control of the waterway has become a key point of contention between the US and Iran, as a ceasefire deal falters.
• Russian attacks kill eight as Ukraine hits Black Sea oil tankers
Civilian casualties are reported in four Ukrainian regions, while Kyiv hits 20 Russian vessels in the Black Sea.
• Special police team to investigate killing of an anti-migrant leader in South Africa
The March and March provincial leader died of his injuries in hospital several days after being shot.
• Italy's Meloni suffers surprise setback in close vote on electoral reform
The defeat triggered opposition calls for Meloni to resign ahead of next year's general election.
• Rastafarians in Kenya fail in bid to get cannabis legalised for religious purposes
The court acknowledged the need for a broader national debate on cannabis policy in Kenya.
• Venezuela government to launch formal talks with opposition members
The opposition says the aim of the talks is to strengthen the democratic institutions and the electoral system.
• China economic growth falls sharply, missing target
Weak demand domestically and the impact of the Iran war on oil prices overshadowed the country's strong exports.
• Heatwave prompts Italy's delivery riders to strike for extra rights
Delivery riders in Milan, Bologna and Florence want to protect their health and their wages.
=== Le Monde International ===
• En Israël, la Cour suprême suspend la loi gelant les arrestations de déserteurs ultraorthodoxes
La plus haute instance judiciaire de l’Etat hébreu considère comme illégal le fait que ce texte s’appliquait « uniquement à certaines parties de la population ».
• La frontière entre l’Espagne et l’enclave de Gibraltar, dernier reliquat du Brexit, disparaît au profit des travailleurs transfrontaliers
Après des décennies de contrôles, la frontière terrestre entre l’Espagne et l’enclave britannique a cessé d’exister le 15 juillet, libérant la circulation de plus de 15 000 travailleurs transfrontalie
• La Fraternité Saint-Pie X, frappée d’excommunication, dépose un recours auprès du Vatican
Fondée par l’évêque français Marcel Lefebvre, cette communauté intégriste forte d’environ 600 000 fidèles dans le monde avait déjà été à l’origine d’une première rupture avec le Vatican en 1988.
• Les banques américaines engrangent des profits exceptionnels grâce à la Bourse
La volatilité des marchés profite pleinement aux géants de Wall Street, qui voient leurs profits trimestriels exploser collectivement de 40 %.
• Sébastien Lecornu en visite au Maroc pour consolider le rapprochement entre Paris et Rabat
Accompagné de 12 ministres, le premier ministre effectue à Rabat, mercredi 15 et jeudi 16 juillet, son premier déplacement à l’étranger. L’occasion d’approfondir avec l’exécutif du royaume les enjeux
• Donald Trump demande à l’ICE de maintenir ses contrôles routiers, suspendus après la mort de deux personnes tuées par des agents
Chargés de mettre en œuvre la campagne d’expulsion massive voulue par le président américain, les agents de la police de l’immigration font l’objet d’une vive opposition à travers le pays en raison de
• « On me reproche d’avoir diffamé le chef de la police et le principal conseiller du roi » : le journaliste Ali Lmrabet dans l’attente d’un éventuel procès au Maroc
Arrêté à Tanger, dimanche 12 juillet, le Franco-Marocain de 66 ans a été libéré après sa garde à vue mercredi. Il est présumé impliqué dans « la publication de contenus numériques diffamatoires et inj
• Joe Biden annonce la publication d’un livre sur son mandat présidentiel, « Promise me, America », qui sortira le 17 novembre
L’ancien président démocrate a expliqué que ce livre serait consacré aux « défis que nous avons affrontés en tant que nation, aux décisions que j’ai prises et pourquoi je les ai prises ».
• EN DIRECT, guerre en Ukraine : Donald Trump estime que Vladimir Poutine est « prêt à conclure un accord » pour mettre fin au conflit
Le président américain a affirmé dans un entretien à Fox News que la guerre entre la Russie et l’Ukraine pourrait être résolue rapidement, estimant qu’elle pourrait s’achever durant son mandat. « Je p
• EN DIRECT, guerre au Moyen-Orient : les Etats-Unis affirment avoir « réduit la capacité de l’Iran à attaquer les navires commerciaux dans le détroit d’Ormuz » après une série de frappes
L’armée américaine a annoncé mercredi dans un communiqué avoir mené une « vague de quatre-vingt-dix minutes » de bombardements contre des cibles militaires dans l’île iranienne de Grande Tunb.
=== France Info Monde ===
• Colonies israéliennes en Cisjordanie : une ONG dénonce un plan de 2,3 milliards d'euros de l'Etat hébreu pour des constructions de nouveaux logements
Le Premier ministre israélien, Benyamin Nétanyahou, et son ministre des Finances, Bezalel Smotrich, ont signé un accord-cadre prévoyant la construction d'"environ 12 000 nouveaux logements" dans les t
• Les secrets de la granita sicilienne, un dessert traditionnel idéal pour se rafraîchir durant l'été
Vous avez peut-être déjà goûté le granité, cette boisson sucrée à base de glace pilée. Mais savez-vous d'où vient la recette ? D'Italie : là-bas, on en mange même au petit-déjeuner, comme l'ont consta
• "La preuve d'un haut degré de civilisation" : en Belgique, la pratique de l'euthanasie est totalement entrée dans les mœurs
Alors qu'un droit à l'aide à mourir doit être voté mercredi en France, un droit similaire existe depuis près de vingt-cinq ans en Belgique.
• "Je préfère manger de la merde" : en plein direct, une journaliste espagnole dénonce le harcèlement qu'elle subit "depuis longtemps"
Dans l'émission "Malas Lenguas", la journaliste Marta Gómez Montero a quitté subitement le plateau de l'émission, très émue. Le patron de la chaîne a présenté ses excuses. Elle a finalement repris l'a
• Dans ce pays, il est interdit de filmer la pauvreté
Au Burkina Faso, il est désormais interdit de filmer des personnes pauvres pour inciter aux dons. On t’explique.
• Au Canada, les images impressionnantes d'un train cerné par les flammes en plein incendie de forêt
Une scène presque irréelle au Canada, où un train s’est retrouvé cerné par des flammes immenses dans l'est du pays, en Ontario. L’équipage a dû abandonner le convoi et prendre la fuite. Retour sur cet
• À Tokyo, la mairie subventionne indirectement la climatisation de ses habitants
Au Japon, face aux fortes chaleurs estivales, les autorités prennent en charge une partie des dépenses des ménages afin de les encourager à faire fonctionner leurs climatiseurs et de limiter les risqu
• Le climat du Royaume-Uni au XXe siècle "a bel et bien disparu", indique l'agence de météorologie du pays
Comme la France, le Royaume-Uni a traversé trois vagues de chaleur en moins de deux mois. D'après un rapport de l'agence météorologique du pays, le climat du Royaume-Uni est en fait en train de change
• L'Angleterre aura-t-elle droit à un jour férié si elle remporte la Coupe du monde ?
Le Premier ministre britannique Keir Starmer avait laissé entendre cette possibilité en cas de victoire. Reste encore toutefois à gagner contre l'Argentine en demi-finale...
• Selon les premières données sur la surmortalité, la vague de chaleur a fait au moins 10 000 victimes en Europe
Plus de 10 000 morts en une semaine : c'est le bilan provisoire de la vague de chaleur de fin juin en Europe, selon le réseau européen de surveillance de la mortalité EuroMOMO. Le média public tchèque
=== France 24 ===
• États-Unis : le budget de la défense mis à l'arret par les démocrates
Aux États-Unis, bras de fer au Sénat autour du budget de la défense. Les démocrates ont bloqué l’examen d’un texte record de plus de 1 150 milliards de dollars. Ils dénoncent la stratégie militaire d
• Qui est Sossam, le magicien qui fascine des millions de personnes ?
En 30 secondes, il fait apparaître un serpent sous un simple mouchoir. Il subtilise les montres de policiers américains sous leurs yeux… et fait surgir des billets de banque directement dans votre po
• Canada : les images impressionnantes d’un train encerclé par les flammes
Une scène presque irréelle au Canada, où un train s’est retrouvé cerné par des flammes immenses dans l'est du pays, en Ontario. L’équipage a dû abandonner le convoi et prendre la fuite. Reportage Fra
• Sénégal : l'ex-président Macky Sall en campagne pour diriger l'ONU
L'ex-président sénégalais Macky Sall, candidat au poste de secrétaire général des Nations Unies, a annoncé mardi sa venue vendredi à Dakar pour une rencontre avec son successeur Bassirou Diomaye Faye
• L'épidémie d'Ebola largement sous-évaluée selon l'OMS
En RDC, l'ampleur de l'épidémie d'Ebola pourrait représenter "deux à quatre fois" les estimations officielles, selon l'Organisation mondiale de la santé. Le dernier bilan officiel des autorités congo
• À Lviv, une émeute met en lumière les difficultés de l'Ukraine à mobiliser pour le front
Une violente altercation a eu lieu la semaine dernière entre une foule de plusieurs centaines de personnes et des militaires qui tentaient d'interpeller des hommes en âge d'être mobilisés à Lviv, dan
• Matt Damon devient Ulysse dans "L'Odyssée" de Christopher Nolan
Matt Damon en Ulysse, Zendaya en Athéna, Tom Holland en Télémaque… Christopher Nolan réunit un casting prestigieux pour adapter "L'Odyssée", chef-d'œuvre d'Homère, dans une fresque grandiose. Entre s
• Au Sénégal, les supporters réclament la démission du président de la FSF
Au Sénégal, la colère monte. Des supporters réclament la démission du président de la FSF après l'échec du Mondial 2026. Ils dénoncent aussi les dysfonctionnements extra-sportifs qui ont marqué la ca
• Méga-feux : la nouvelle norme ? Parlons-en avec M. Lanet, F. Harrault, G. Musquet et F. Petitbon
En France, quelque 32 000 hectares ont déjà brûlé au 15 juillet, plus que sur l’ensemble de l'année 2025. Ces feux, attisés par le dérèglement climatique, sont-ils une fatalité dans un monde qui se r
• Zimbabwe : 80 000 rapatriés après les violences en Afrique du Sud
Près de 80 000 Zimbabwéens ont regagné leur pays après les violences xénophobes en Afrique du Sud. La majorité est revenue par ses propres moyens, malgré un dispositif de rapatriement mis en place pa
=== 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.
_Sources : BBC World, Le Monde, France Info, France 24 — 15 juillet 2026_
📁 Archive locale sauvegardée → revue_editoriale/sources/rss/2026-07-15.md