Le Signal

← Retour à l'accueil

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

Brief Publié le 2026-07-01

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


Job ID: 76ce033272c7

Run Time: 2026-07-01 16:09:44

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:

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.


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-07-01
═══════════════════════════════════════════

=== BBC World ===
• Three die in Mexico City World Cup celebrations
  More than one million people took to the streets of Mexico City on Tuesday to mark the country's win over Ecuador.

• Trump made more than $1bn from crypto in first year back in office
  The president's crypto income far outpaces his earnings from real estate and Trump-themed items such as watches.

• Fire at Antwerp apartment block kills at least six
  A man is seen clambering through a window to escape black smoke in the block where some 200 people live.

• A plane crashed into a tower in Beijing but China is not saying what happened
  The collision left holes on the side of the tower, but Beijing has scrubbed other visible traces of the incident.

• Three-year-old rescued and taken to hospital six days after Venezuela quake
  Video footage shows rescuers cheering as the child is pulled from rubble in La Guaira state.

• Canada to make Eurovision Song Contest debut in 2027
  The country becomes the first new participant since Australia joined the contest in 2015.

• Sudan's RSF committed crimes against humanity in el-Fasher, Amnesty says
  The Amnesty report adds to evidence of atrocities in el-Fasher, which the UN says bore the hallmarks of genocide.

• Man guilty of attempted murder of three children in Dublin
  Riad Bouchaker denied attempting to murder three children and assaulting four other people on 23 November 2023.

• US Supreme Court upholds birthright citizenship in blow to Trump
  The ruling is a major setback for Donald Trump's immigration agenda, and has been welcomed by civil rights groups.

• Afghan Taliban launch strikes on border with Pakistan as tensions escalate
  Pakistan's military says it shot down four rudimentary drones and will respond to any further provocation.


=== Le Monde International ===
• La fraternité Saint-Pie X consacre quatre nouveaux évêques, un « acte schismatique » selon le Vatican
  Sous une pluie battante à Ecône, la Fraternité Saint-Pie X défie une nouvelle fois Rome en sacrant quatre évêques, ravivant les tensions autour de la tradition catholique.

• EN DIRECT, guerre en Ukraine : Kiev attaque à nouveau une raffinerie sur le sol russe, à 1 000 kilomètres de ses frontières, annonce Volodymyr Zelensky
  Les forces ukrainiennes ont frappé la principale raffinerie de pétrole d’Oufa pour la deuxième fois en une semaine, a déclaré le président ukrainien. Les autorités russes n’ont pas confirmé cette atta

• « En Irlande, l’évolution du PIB reflète davantage les stratégies mondiales de quelques multinationales que l’état réel de l’économie »
  A cause de l’augmentation des droits de douane voulue par Donald Trump, le produit intérieur brut de l’Irlande a chuté de 12 % au premier trimestre. Mais la situation est due, pour l’essentiel, au con

• Enterrer les victimes d’Ebola, un rite à haut risque dans l’est de la RDC
  Afin d’éviter toute contamination, les corps des défunts sont aspergés d’une solution chlorée avant d’être placés dans des sacs mortuaires, eux-mêmes désinfectés. Puis les dépouilles sont déposées dan

• Le Canada annonce rejoindre le concours de l’Eurovision
  Le dernier pays à avoir rejoint le concours était l’Australie, en 2015. L’Eurovision rassemble chaque année des dizaines de millions de téléspectateurs.

• Starlink s’insurge contre les restrictions décidées par l’UE
  La Commission entend favoriser les constellations européennes dans le domaine stratégique des communications directes entre les satellites et les smartphones. Le groupe d’Elon Musk agite le spectre d’

• Nouvelle épidémie de choléra au Soudan : 120 morts depuis le mois de mai, alerte l’OMS
  Plus de trois années de guerre entre l’armée soudanaise et les paramilitaires des Forces de soutien rapide ont mis à bas le système de santé du pays, qui est désormais confronté à des flambées quasi c

• « Avec Donald Trump, le pari des Pères fondateurs sur l’exemplarité des présidents des Etats-Unis est perdu »
  Le président américain s’est extrait des contraintes morales qui pesaient sur ses prédécesseurs. Au moment où le pays s’apprête à célébrer les 250 ans de son indépendance, le pessimisme a gagné le pay

• « C’est plus que de l’espoir, c’est une croyance ! » : les Américains ne doutent pas du succès de Team USA à la Coupe du monde 2026
  Le soutien que les supporteurs américains apportent à leur équipe de football ne devrait pas faire défaut, mercredi, à San Francisco, lors du seizième de finale contre la Bosnie-Herzégovine. Et ils vo

• En Suède, Google est condamné à verser 1,3 milliard d’euros à PriceRunner pour abus de position dominante
  Le tribunal donne raison à PriceRunner « dans la mesure où l’abus commis par Google s’est prolongé plus longtemps que ce que Google avait fait valoir, et où cet abus a causé un préjudice à PriceRunner


=== France Info Monde ===
• L'icône de la musique latino Bad Bunny fait son entrée au musée Grévin
  La révélation de la statue s'est faite le même jour que son concert au stade Vélodrome de Marseille.

• Les Européens sont pessimistes face à l'avenir du monde, mais optimistes pour celui de l'UE, selon une étude
  Un baromètre réalisé par le Parlement européen au printemps 2026 montre que 74% des habitants de l'UE considèrent que leur pays a bénéficié de son adhésion à l'Union.

• "Ce n'est pas seulement une vague de chaleur" : plus de 1000 décès en Espagne, qui enregistre son deuxième mois de juin le plus chaud depuis 1961
  Les températures records enregistrées le 23 juin en Espagne ont présenté un risque pour la santé de 73% de la population. Le pays connaît désormais plus de quarante jours consécutifs de chaleur except

• Patrouille de France en Amérique : revivez le survol de Yorktown en Virginie, lieu symbolique d'une victoire franco-américaine en 1781
  Le "13 Heures découverte" continue son aventure américaine avec les as de la Patrouille de France. Aujourd’hui, on vous emmène à Yorktown, en Virginie, sur le lieu d'une victoire franco-américaine déc

• TEMOIGNAGES. "Les enfants étaient pétrifiés et silencieux" : exilée de Corée du Nord, une militante raconte les exécutions publiques dans son pays natal
  Eunju Kim a quitté la Corée du Nord il y a vingt ans mais le souvenir des exécutions publiques reste vif. Malgré la répression et un contrôle strict d'internet, la population continue de braver les in

• "Notre histoire - Chroniques du Caire" : un somptueux film entre fresque familiale et portrait politique de l'Egypte des années 1970-1980
  Le long-métrage revient sur les conséquences des multiples conflits entre l'Egypte et Israël sur la famille de son héros, un pianiste qui tombe sous le charme de sa correspondante autrichienne. Abu Ba

• Le Canada participera au prochain concours de l'Eurovision
  En 1988, le pays remportait indirectement le concours via une jeune Céline Dion, qui représentait la Suisse avec sa chanson "Ne partez pas sans moi".

• "Je remets en question mon choix de vivre ici" : des incendies ravageurs dans le Colorado
  L'ouest des États-Unis fait face à des incendies meurtriers. Trois pompiers sont morts en combattant les flammes à la frontière entre l'Utah et le Colorado. Le feu est attisé par des vents très forts,

• Les attaques de drones et missiles russes contre l'Ukraine en baisse en juin, après plusieurs mois marqués par un nombre record de frappes
  Une attaque russe massive menée avec 656 drones et 73 missiles a fait 23 morts, dont 16 à Dnipro et sept à Kiev, le 2 juin.

• Le principal suspect de l'explosion à Monaco toujours en fuite, la traque s'étend jusqu'en France
  Deux jours après l'explosion visant la résidence d'un oligarque ukrainien à Monaco, le principal suspect reste introuvable. Les enquêteurs monégasques et français coordonnent leurs recherches, tandis


=== France 24 ===
• Mondial 2026 : la sape des Léopards, un message au-delà du style
  🇨🇩 Alors que la RDC affronte l’Angleterre aujourd’hui, le styliste Alvin Junior Mak, à l’origine des tenues de la sélection congolaise pour la Coupe du monde, revient sur cette création qui a suscité

• Cinéma : "In Waves", des vagues d'amour malgré la douleur
  Après avoir conquis le public du Festival de Cannes en ouverture de la Semaine de la critique, "In Waves" arrive en salles. La réalisatrice Pheuong Maï Nguyen est l'invitée de ce nouveau numéro de "À

• l’Espagne face à sa deuxième canicule la plus meurtrière depuis 10 ans
  L'Espagne, voisine de la France, a connu elle aussi des températures record en juin. Avec au moins 1 029 décès, le mois dernier a enregistré le plus grand nombre de décès attribués à la chaleur depui

• Mondial 2026 : la Côte d'Ivoire éliminée par la Norvège
  La Côte d'Ivoire a "tout donné" mais a "manqué un peu de maturité" face à la Norvège, qui l'a éliminée 2-1 mardi en 16e de finale du Mondial-2026, a réagi le sélectionneur Émerse Faé. Les précisions

• Pourquoi la question migratoire enflamme-t-elle l’Afrique du Sud ?
  Des milliers de Sud-Africains sont descendus dans les rues mardi, première journée de mobilisation nationale d'une campagne aux accents xénophobes qui a poussé 25.000 immigrés à l'exode, accusés entr

• Mondial 2026 : l'Angleterre doit se relancer face à une RD Congo indéfectible
  Malgré sa première place dans le groupe L, l'Angleterre a peiné à convaincre dans ce début de Coupe du monde. Elle aura une opportunité de retrouver sa confiance contre la RD Congo mercredi soir à At

• Mondial 2026 : les Bleus, une équipe plus redoutable que jamais ?
  mpressionnants vainqueurs de la Suède mardi pour atteindre les 8e de finale, les Français sont plus que jamais favoris de la Coupe du Monde 2026, même si le chemin est long. Les précisions de Thando

• Angleterre - RD Congo en direct : suivez le 16e de finale de la Coupe du monde
  L'Angleterre d'Harry Kane affronte mercredi la RD Congo de Chancel Mbemba à Atltanta en 16es de finale de la Coupe du monde. Qui des Three Lions ou des Léopards se qualifiera en huitièmes ? Suivez le

• Derrière l'image : Aung San Suu Kyi, que reste-t-il de l'icône birmane de la démocratie ?
  Icône de la démocratie, Prix Nobel de la paix en 1991, Aung San Suu Kyi est détenue depuis le coup d'État militaire du 1er février 2021. À 81 ans, son lieu de détention exact, son état de santé et se

• Mondial 2026 : Mbappé sublime des Bleus parés pour les 8es
  Auteur d'un doublé sensationnel, Kylian Mbappé, déterminé comme jamais, a fait sauter le verrou suédois (3-0) mardi, pour envoyer la France en 8es de finale de la Coupe du monde, où l'attend le Parag


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