Le Signal

← Retour à l'accueil

Cron Job: Veille quotidienne d'actualités (FAILED)

Brief Publié le 2026-06-18

Cron Job: Veille quotidienne d'actualités (FAILED)


Job ID: 76ce033272c7

Run Time: 2026-06-18 16:13:01

Schedule: 0 16 *


Prompt


[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: {}



News Briefings


Research and deliver current-events briefings to the user's messaging platform. Supports two modes:


Mode 1: One-shot queries (live conversation)


1. Gather news data


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.


2. Structure the summary


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.


3. Delivery to messaging platform


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.


Mode 2: Recurring cron briefings


Set up automated daily/weekly briefings that deliver directly to the user's messaging platform on a schedule.


Creating the job


Use cronjob(action='create') with:


Example 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',
)

Rules for cron prompts



Troubleshooting


Cron job not running despite being scheduled


If cronjob(action='list') shows the job as state: scheduled but last_run_at stays null even after next_run_at has passed:



Intermittent Broken pipe on feeds that normally work


Even 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.



Cron job shows 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:


When a cron job shows last_status: "error" but last_delivery_error: null:


Local archiving


Each 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/:


Pre-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.


Schedule examples


FrequencyCron expression
Daily at 16h0 16 *
Daily at 9h0 9 *
Weekly Sunday 16h0 16 0
Every 2 hoursevery 2h

Pitfalls



Bundled Scripts


The 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.


Related Skills



References



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.]


Script Output

The following data was collected by a pre-run script. Use it as context for your analysis.


═══════════════════════════════════════════
 COLLECTE VEILLE QUOTIDIENNE — 2026-06-18
═══════════════════════════════════════════

=== BBC World ===
• Weapons, money and ships: How is this Iran deal different from others?
  BBC Verify examines how the new deal between the US and Iran affects three key areas.

• Why Iran believes deal with US leaves it stronger than before
  Iran has come out of the war's first chapter stronger than many expected, but its next challenge may be harder, the BBC Persian Service's Amir Azimi writes.

• Moscow residents complain of black rain after largest Ukrainian attack hits oil refinery
  A refinery and a shopping centre burned after almost 200 Ukrainian drones struck an area to the south-east of the Russian capital.

• Hegseth renews Nato criticism and says US will review presence in Europe
  The US defence secretary's move follows a US decision to scale back its commitments to a high readiness force within the alliance.

• British man dies in paragliding accident in Spain
  Authorities in Catalonia confirmed that the 63-year-old died in the Palau de Noguera area on Wednesday.

• Jury fails to reach verdict in Norwegian 'hitman' trial
  Johannes Natland, 19, was remanded in custody and will now face a retrial.

• Suspected gang leader shot dead in flower bouquet ambush at airport
  The gunmen concealed their weapons behind flowers and stuffed toys while waiting for the victim outside Guayaquil airport.

• Lawyer in high-profile Ugandan treason case charged with related offence
  Uganda's military chief had boasted of "the hurt and pain" he would inflict on Erias Lukwago, who was arrested earlier this week.

• First Russian shadow fleet tanker enters Channel since Smyrtos boarding
  Forwarder, a Russian-flagged ship which left port in Primorsk last week, entered the Channel on Wednesday evening.

• Gunfire and explosions heard at Niger capital's airport
  Niger has been fighting a militant Islamist insurgency for a decade and in January suspected jihadists attacked the same airport.


=== Le Monde International ===
• « Un exemple de “résistance affective” face aux inégalités toujours plus grandes de l’accueil et du soin des personnes »
  Le feuilleton littéraire de Tiphaine Samoyault, à propos de « Rassemblement familial », de Marie-Caroline Saglio-Yatzimirsky, récit de l’accueil durable, par l’autrice et les siens, d’une famille guin

• La Ville de Paris attribue la citoyenneté d’honneur aux populations civiles et aux journalistes palestiniens
  Depuis sa création en 2001, la citoyenneté d’honneur a été attribuée à de nombreuses personnalités, aux otages du Hamas (2024), au peuple du Haut-Karabakh (2023) et à la ville de Kiev (2022).

• L’attaque massive des drones ukrainiens sur Moscou met à mal les promesses de victoire de Vladimir Poutine
  La capitale russe a subi dans la matinée de jeudi la plus importante attaque aérienne depuis 2022. Le chef du Kremlin n’a pas réagi. Mais discrètement, par messagerie, des Moscovites expriment crainte

• Coupe du monde 2026 : le Canada refuse pour la deuxième fois l’entrée d’un joueur, l’Ivoirien Elye Wahi
  Après l’interdiction de territoire prononcée, jeudi, à l’encontre du Ghanéen Thomas Partey, poursuivi pour viols au Royaume-Uni, les services d’immigration canadiens ont refusé la venue de l’attaquant

• SpaceX : la prime donnée à « un discours sur la fin du monde ou des temps »
  Alors qu’Elon Musk a introduit sa firme en Bourse, Pierre-Cyrille Hautcœur exhume, dans sa chronique au « Monde », la figure d’Eugène Bontoux. Le banquier, en ne faisant pas la part entre ses convicti

• Epidémie d’Ebola : un mois après le début, le bilan dépasse les 200 morts en RDC, avec un taux de mortalité de 23 %
  Les tests en laboratoire ont confirmé que le virus avait contaminé 875 personnes en RDC depuis le 15 mai. L’épidémie actuelle est provoquée par l’espèce Bundibugyo du virus, contre laquelle il n’exist

• Au Kenya, le président de la République, William Ruto, indemnise les victimes de violences policières, à un an de la présidentielle
  En juin 2024, plus de 60 personnes avaient été tuées en marge de manifestations contre la vie chère. Lors d’un hommage pour les victimes, un an plus tard, le chef de l’Etat kényan avait ordonné à la p

• Le « prix de la paix » remis à Donald Trump par Gianni Infantino provoque des remous au sein de la FIFA
  Au sein de la Fédération internationale de football, l’initiative du président Gianni Infantino en direction du président américain a pris forme dans le plus grand secret. La commission d’éthique inte

• Accréditation refusée au salon de la défense Eurosatory : la justice donne raison au journaliste de « Politis » contre le ministère de l’intérieur
  Le tribunal administratif de Paris a considéré que ce refus d’accréditation de Maxime Sirvins était « une atteinte grave et manifestement illégale à la liberté d’expression et à la liberté de travaill

• Affaire Zapatero : les deux filles de l’ex-premier ministre espagnol inculpées pour trafic d’influence
  L’enquête sur l’ex-chef du gouvernement espagnol s’élargit, impliquant désormais ses filles et sa secrétaire dans une affaire suivie de près par l’Audience nationale.


=== France Info Monde ===
• Détroit d'Ormuz : 785 navires sont toujours dans le golfe Persique après la signature de l'accord entre les États-Unis et l'Iran
  Selon l'entreprise spécialisée dans le suivi du fret maritime, "entre 16 500 et 17 000 marins" seraient à bord de ces navires.

• Déminage d'Ormuz : les Français sur le pied de guerre
  Le grand chantier du déminage du détroit d'Ormuz va pouvoir commencer, et la France reconnue dans ce domaine, pourrait être en 1ère ligne.

• Accord entre l'Iran et les Etats-Unis : pourquoi le plus difficile reste à faire lors des 60 prochains jours de négociations
  Washington et Téhéran se sont donnés deux mois pour discuter des conditions de la mise en œuvre d'un cessez-le-feu durable. De nombreux points sensibles restent à négocier, notamment celui du nucléair

• Moscou touchée par une attaque à grande échelle de drones ukrainiens
  L'Ukraine a lancé une attaque à grande échelle contre Moscou dans la matinée du jeudi 18 juin. La plus grande raffinerie de Moscou a été touchée. Volodymyr Zelensky revendique une réponse à l'intensif

• "Nous contemplons le fronton ouest tel que nous ne l'avons pas vu depuis deux siècles" : le Parthénon achève un chantier de restauration
  Ce temple vieux de 2 500 ans, dédié à la déesse Athéna, est situé sur une colline surplombant la capitale grecque.

• Accord entre l'Iran et les Etats-Unis : le "jackpot" qui attend désormais Téhéran
  En signant cet accord, l'Iran va bénéficier de la levée de plusieurs sanctions internationales. Une formidable et inattendue bouffée d'oxygène et financière pour la République islamique.

• L'accord entre les États-Unis et l'Iran pour arrêter la guerre a été signé à Versailles
  L'accord avec l'Iran a été officiellement signé par Donald Trump lors d'un dîner à Versailles le 17 juin. Ce protocole en 14 points marque la fin de la guerre, garantit la paix et la réouverture du dé

• "La machine de défense ukrainienne, avec le soutien de ses alliés, notamment l'Europe, se développe de façon spectaculaire", souligne Aline Le Bail-Kremer, cofondatrice de "Stand With Ukraine"
  La journaliste et cofondatrice du collectif "Stand With Ukraine" revient, dans le "11/13" du 18 juin, sur l'attaque de drones subie par Moscou. Une attaque ukrainienne symbolique, pour, avant tout, di

• REPORTAGE. Au Yémen, les médecins à bout de souffle espèrent pouvoir envoyer des patients à l'étranger
  Dans le pays en guerre depuis 2014, les moyens dérisoires du système de santé contraignent les patients atteints de lourdes pathologies à se soigner à l’étranger. Mais peu de pays acceptent de les acc

• REPORTAGE. "Il y a encore des attaques, c'est quoi ce cessez-le-feu ?" : au Liban, ces réfugiés hésitent à rentrer chez eux malgré l'accord entre l'Iran et les Etats-Unis
  Après la signature d'un accord entre les États-Unis et l'Iran, qui prévoit la cessation des hostilités, y compris au Liban, des milliers de réfugiés voient un immense espoir de retourner chez eux. Pou


=== France 24 ===
• Niger : tirs pendant plusieurs heures près de l'aéroport de Niamey
  Ghislaine Allahtaroum, notre correspondante au Tchad, analyse la situation.

• Mondial 2026 : Maroc, Cap-Vert, Tunisie… Le carnet de notes des équipes africaines
  La première journée a offert quelques bonnes surprises aux dix sélections africaines engagées dans ce Mondial 2026 à 48 équipes. La rédaction de France 24 vous propose de passer en revue l'entrée en

• Attaque de drones sur Moscou : une raffinerie de la capitale russe touchée
  L'Ukraine a lancé tôt jeudi matin sa plus importante attaque de drones contre Moscou depuis au moins deux ans, provoquant des incendies dans la région autour de la capitale russe et perturbant le fon

• "Je suis honnête" affirme J.-L. Zapatero accusé de trafic d'influence
  Maude Petit-Jové, notre correspondante à Madrid, analyse la situation.

• Travail matinal et rythmes de vie modifiés, comment s'adapter aux canicules ?
  La canicule s'est installée jeudi sur une large partie de la France, de Paris au centre-est, et s'étendra vendredi, avec une cinquantaine de départements en vigilance orange, et plusieurs municipalit

• Bombardements de Moscou : quand l'Ukraine veut priver la Russie de son or noir
  L’attaque massive de drones menée par l'armée ukrainienne contre la capitale russe visait tout particulièrement la raffinerie de Moscou et s’inscrit dans une campagne intense de bombardements des inf

• Les dirigeants du G7 s'engagent à renforcer leur coopération en matière d'IA
  Emmanuel Viver, co-fondateur de HUB INSTITUTE, est notre invité.

• Accord Iran/Etats-Unis : les opposants de Trump dénonce une déroute américaine
  Pour les démocrates, le texte de l'accord de paix signé par Donald Trump ne change rien sur le fond.

• Le Niger repousse une nouvelle attaque contre l'aéroport de Niamey
  Pierre Donadieu, Journaliste AFP en Afrique de l'ouest, est notre invité.

• Moscou frappée par une attaque de drones ukrainiens "de grande envergure"
  L'Ukraine a lancé tôt jeudi matin sa plus importante attaque de drones contre Moscou depuis au moins deux ans, provoquant des incendies dans la région autour de la capitale russe et perturbant son pr


=== 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.


Error


RuntimeError: [Errno 32] Broken pipe