Job ID: 76ce033272c7
Run Time: 2026-06-09 17:04:50
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.1.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
Google News FR: https://news.google.com/rss?hl=fr&gl=FR&ceid=FR:fr
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
Reuters: https://www.reutersagency.com/feed/
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 subagentsclarify — 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 activeWhen 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.See references/rss-feeds.md for the full list of tested RSS endpoints and parsing recipes.
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.]
Génère un briefing quotidien en français des actualités du jour pour Sébastien.
IMPORTANT - Sources fiables depuis ce serveur (celles-ci fonctionnent) :
⚠️ Sources BLOQUÉES depuis ce VPS (NE PAS UTILISER) :
Utilise curl (pas le navigateur) pour rassembler les infos depuis les flux RSS ci-dessus.
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. Si un flux échoue, passe au suivant sans t'arrêter.
Archive le briefing dans /home/sebastien/.hermes/memory/modules/veille_actualite/daily/YYYY-MM-DD.md (remplace YYYY-MM-DD par la date du jour).
Israël frappe Tyr au Liban malgré l'avertissement iranien. L'aviation israélienne a bombardé la ville portuaire de Tyr (sud Liban), au lendemain de l'avertissement de Téhéran menaçant de relancer les hostilités si les attaques contre le Hezbollah ne cessaient pas. Le Hezbollah voit dans cette guerre une chance de rebond politique.
Trump promet de « riposter » après la destruction d'un hélicoptère américain. Le président américain accuse l'Iran d'avoir abattu un Apache près du détroit d'Ormuz ; l'équipage a été secouru par un drone maritime.
La France et cinq autres pays interdisent l'accès au ministre israélien Bezalel Smotrich. Paris, Londres, Ottawa, Canberra, Wellington et Oslo sanctionnent le ministre d'extrême droite pour « l'intensification de la colonisation et des violences en Cisjordanie ». Le Royaume-Uni appelle aussi les entreprises britanniques à cesser toute activité dans les colonies.
Les pays nordiques et baltes plaident pour une adhésion « irréversible » de l'Ukraine à l'OTAN et à l'UE — déclaration commune des huit chefs d'État au sommet de Tallinn.
La Russie aurait abandonné la flèche de Kinbourn, ce petit bout de terre stratégique à l'ouest de Kherson, selon des médias ukrainiens.
La crise du carburant s'aggrave en Russie alors que l'Ukraine intensifie ses frappes sur les territoires occupés, perturbant l'approvisionnement civil et militaire.
Trump hué à New York en devenant le premier président américain à assister à une finale NBA. Les spectateurs de Madison Square Garden l'ont copieusement sifflé, dans un contexte de popularité au plus bas.
Un arbitre somalien refoulé à l'entrée des États-Unis, pourtant muni d'un visa valide — la FIFA l'écarte du Mondial 2026. Les tickets des supporters iraniens sont également révoqués. La politique migratoire de Trump complique le déroulement de la Coupe du monde.
SpaceX se prépare pour une entrée en Bourse qui pourrait transformer l'entreprise et la fortune d'Elon Musk.
Xi Jinping et Kim Jong Un scellent un renforcement des liens alors que le dirigeant chinois achève sa première visite à Pyongyang depuis 2019.
Séisme meurtrier aux Philippines : des centaines de répliques secouent le sud du pays. Le bilan pourrait encore s'alourdir. Des images montrent des écoliers fuyant un toit qui s'effondre.
Tensions au Kenya contre un centre de quarantaine américain pour Ebola. Un manifestant a été abattu par la police. L'épidémie en RDC compte 515 cas confirmés et 91 décès.
Le Maroc élimine un haut responsable du Front Polisario — Lehbib Mohamed Abdelaziz, 37 ans, tué par un drone au Sahara occidental.
Violences xénophobes en Afrique du Sud — Ramaphosa appelle au calme. Au Mali, un agent français des renseignements condamné à 20 ans de prison.
Bruxelles impose à Meta de rétablir gratuitement les concurrents d'IA dans WhatsApp, sous peine d'une amende de 10 % du CA annuel. Apple, Google et Meta s'opposent à la régulation.
Le canton suisse de Zoug profite de l'exode des ultrariches de Dubaï fuyant la guerre.
Attaque au couteau à Belfast : un Soudanais en garde à vue, la police renforce sa présence face à l'extrême droite.
La CPI suspend son procureur Karim Khan après une enquête pour faute grave (accusations de harcèlement sexuel). La juridiction s'enfonce dans une crise institutionnelle alors qu'elle subit des pressions américaines et israéliennes.
Affaire Lyhanna : le gouvernement sous pression. Après la mort de cette fillette de 11 ans, +60 000 manifestants dans plusieurs villes. Sébastien Lecornu promet des mesures législatives renforcées. Gérald Darmanin dénonce « de graves dysfonctionnements » et présente ses excuses.
Paris suspend 132 animateurs périscolaires, dont 52 pour suspicion de violences sexuelles ou sexistes. Le maire lance une commission d'enquête indépendante.
Sources : BBC World, Le Monde, France 24 — 9 juin 2026
Archive : ~/.hermes/memory/modules/veille_actualite/daily/2026-06-09.md ✅