Le Signal

← Retour à l'accueil

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

Brief Publié le 2026-06-22

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


Job ID: 76ce033272c7

Run Time: 2026-06-22 16:09:17

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-22
═══════════════════════════════════════════

=== BBC World ===
• Vance says Iran will allow nuclear inspectors back into the country
  The US vice-president says a great deal of progress has been made after the first round of talks between the US and Iran.

• At least 13 killed and dozens injured after Qatar gas explosion
  The city's main liquified natural gas (LNG) processing site suffered a "technical accident" in the Ras Laffan industrial zone.

• Myanmar army killed over 700 civilians in six months, UN says
  The new UN report says the 702 civilian deaths over six months last year included 153 children.

• Largest ever cocaine bust in Australia after police raid underground bunker
  Police seized 2.7 tonnes of cocaine worth an estimated A$816m after searching a property in western Sydney.

• Russian troop build-up threatens city seen as key to seizing Ukraine's Donbas
  If Kostyantynivka falls, Russian forces would be able push towards Ukraine's last remaining strongholds in the east.

• Guinea bans exports of raw gold to boost local refining
  The prohibition is intended to boost the country's economy by refining gold domestically.

• Schools close as more than half of France under red heat alerts
  The health minister warns many citizens "will suffer", with temperatures set to peak on Monday.

• Trump-backed political outsider wins Colombia election, initial count shows
  Abelardo de la Espriella appears to have narrowly defeated his rival Iván Cepeda, who says the preliminary count is "not yet official or binding".

• Former Kenyan justice minister blocked from entering Uganda, lawyers' body says
  Martha  Karua is a lawyer representing detained Ugandan opposition leader Kizza Besigye who is on trial for treason.

• Japan quintuples visa fees in first price hike since 1978
  Authorities say they do not expect the hikes to have an "immediate impact on inbound tourism".


=== Le Monde International ===
• Une charte sur la famille et les valeurs, au cœur de l’offensive ultraconservatrice en Afrique
  Les promoteurs du texte, en cours de discussion, dénoncent l’influence des idées occidentales imposées à travers les programmes des Nations unies. Leur initiative est soutenue par la droite chrétienne

• Sous la pression des Etats-Unis, Cuba entre dans l’ère de l’économie de marché
  Alors que l’île traverse une crise sociale aiguë, le gouvernement castriste a adopté des mesures qui font perdre à l’Etat son rôle directeur, ouvrant l’activité au capital privé et international. Wash

• Le Bürgenstock, citadelle de la diplomatie hôtelière helvétique
  Perché sur un éperon rocheux à la verticale du lac des Quatre-Cantons, le complexe, situé en Suisse centrale, abrite les négociations entre Américains et Iraniens. Il a déjà servi à plusieurs négociat

• EN DIRECT, guerre au Moyen-Orient : Marco Rubio se rendra, à partir de mardi, dans trois pays du Golfe, en pleines négociations avec l’Iran
  En pleines négociations avec l’Iran pour mettre définitivement fin à la guerre au Moyen-Orient, le chef de la diplomatie américaine se rendra aux Emirats arabes unis, au Koweït et à Bahreïn jusqu’à je

• Le Sri Lanka, nouveau terrain de prédilection des escrocs en ligne
  Le pays a procédé depuis le début de l’année 2026 à des centaines d’arrestations de personnes issues de Chine ou d’Asie du Sud-Est soupçonnées d’œuvrer pour le compte de réseaux spécialisés dans les a

• EN DIRECT, guerre en Ukraine : les dirigeants des principales puissances militaires européennes se réuniront mercredi à Berlin
  Le gouvernement a fait savoir que la présidente du conseil, Giorgia Meloni, participerait à la réunion avec ses homologues britannique, français, allemand et polonais, afin d’améliorer la coordination

• Le président du Liban, Joseph Aoun, contraint à l’équilibrisme entre l’Iran et les Etats-Unis
  Le retour de la République islamique dans le jeu libanais, à la faveur de l’accord avec les Etats-Unis, oblige le chef de l’Etat à dialoguer avec Téhéran pour amener le Hezbollah à un compromis sur so

• En Australie, la hausse des taux peine à freiner la folle surchauffe de l’immobilier
  Dans un pays où les emprunts immobiliers sont le plus souvent à taux variables, chaque décision de la banque centrale est scrutée avec anxiété. A Sydney, où les prix de l’immobilier ont plus que quadr

• Ambani lance l’introduction en Bourse du siècle en Inde
  L’homme le plus riche du pays prévoit de faire coter Jio Platforms, l’entreprise spécialisée dans la tech de son conglomérat. Elle pourrait lever près de 4 milliards de dollars.

• En Colombie, des manifestations massives pour protester contre l’élection du candidat d’ultradroite Abelardo de la Espriella
  L’avocat et homme d’affaires pro-Trump a remporté le second tour de l’élection présidentielle en Colombie, dimanche, en dominant le candidat de gauche, Ivan Cepeda.


=== France Info Monde ===
• Les dégâts, causés par la guerre entre Israël et le Hezbollah au Liban, sont estimés à plus d'un milliard de dollars selon une étude
  Le rapport, publié par le Pnud et le CNRS libanais, s'appuie sur la comparaison d'images satellite du 23 octobre 2025 et du 29 avril 2026.

• "Je veux rentrer à Moscou" : distribution de carburant suspendue, touristes affolés... L'armée ukrainienne met la Crimée occupée sous pression
  Les plages de la péninsule, d'habitude bondées à cette époque, sont désertes. Et les quelques touristes ont de drôles de surprises sur place.

• En Espagne, l'ancien bras droit de Pedro Sánchez condamné à vingt-quatre ans de prison pour corruption
  Sous la pression de l'opposition, le Premier ministre espagnol doit prononcer un discours très attendu mercredi au Parlement.

• "Certains sont déçus de moi" : comment le Premier ministre britannique Keir Starmer, qui a démissionné lundi, a été poussé vers la sortie
  Attaqué sur sa gauche comme sur sa droite, jugé indécis et trop austère par une partie des Britanniques, il n'a pas su mettre en œuvre les promesses de changement de la campagne électorale de 2024. Un

• À la découverte des châteaux au bord de la Meuse
  Lundi 22 juin, le journal de 13 heures vous emmène en Belgique, à la découverte du château perché de Walzin. Il est très étonnant, accroché à flanc de falaise au bord de la Meuse.

• Canicule : trois questions sur le congé climatique, proposé par Marine Tondelier et déjà déployé en Espagne
  Mis en place en Espagne, après les inondations meurtrières de 2024, ce congé climatique prévoit des congés payés en cas d'alerte rouge ou orange, afin de protéger les travailleurs qui ne peuvent pas t

• Six personnes sont mortes dans des frappes russes en Ukraine, dont trois membres d'une famille nombreuse
  Kiev a intensifié, dernièrement, ses attaques contre le territoire russe. Les quatre aéroports de Moscou ont été momentanément fermés lundi en raison de vagues de drones ukrainiens.

• Keir Starmer annonce sa démission après deux ans à la tête du gouvernement britannique
  Poussé vers la sortie par une fronde grandissante au sein du Parti travailliste, Keir Starmer annonce sa démission après seulement deux ans au pouvoir. Critiqué pour sa politique budgétaire et fragili

• Alan Greenspan, ancien patron de la banque centrale américaine, est mort à l'âge de 100 ans
  Ce républicain affiché a réussi à se maintenir à la tête de la Fed pendant près de vingt ans. Mais il a vu sa réputation se ternir avec la crise financière de 2008.

• Polémique : le nouvel Air Force One offert par le Qatar
  Pendant que Donald Trump refuse de financer les 300 milliards de dollars nécessaires à la reconstruction de l’Iran et se tourne vers les pays du Golfe, le président américain reçoit un nouvel Air Forc


=== France 24 ===
• Mondial 2026 : comment des équipes sont déjà sont éliminées sans jouer leur 3e match
  Le Mondial 2026 apporte un changement subtil. Désormais, les équipes à égalité de points à l'issue de la phase de groupes sont en priorité départagées par les résultats de leurs confrontations direct

• Mondial 2026 : Le "rameur viking” des Norvégiens envahit Times Square
  Les supporters norvégiens ont envahi Times Square dimanche, reprenant leur célèbre mouvement viking. La Norvège affrontera le Sénégal le 23 juin lors de son deuxième match de poule.

• Guerre en Ukraine : pourquoi Zelensky lance-t-il un ultimatum à la Biélorussie ?
  Le président ukrainien, Volodymyr Zelensky, a donné une semaine au dirigeant biélorusse pour démanteler des installations utilisées par la Russie, selon Kiev, pour envoyer des drones contre l’Ukraine

• Jyeuhair, un artiste sans frontières
  Révélé dans la saison 3 de Nouvelle École, Jyeuhair n’a laissé personne indifférent. Dans la musique depuis ses 13 ans, il a d’abord façonné des prods avant de poser sa voix. Inspiré par Lil Wayne, E

• Ebola en RD Congo : plus de 1 000 cas confirmés
  En République démocratique du Congo, l’épidémie d’Ebola poursuit sa progression. Les autorités sanitaires recensent désormais 1 003 cas confirmés et 254 décès, franchissant pour la première fois le s

• Erbil SC, un club devenu une institution footballistique en Irak
  Ce lundi, la France affronte l’Irak en phase de groupes. Malgré un lourd désavantage dans une poule relevée, cette Coupe du monde reste un événement majeur pour l’Irak, de retour dans la compétition

• Ebola en RD Congo : l'OMS constate une accélération de la transmission
  La transmission de l'épidémie d'Ebola en République démocratique du Congo (RDC) s'accélère, malgré le renforcement des mesures de riposte sanitaire, a indiqué l'Organisation mondiale de la santé (OM

• Guerre en Ukraine : Xenia Fedorova, la porte voix du Kremlin
  Dans le contexte de la guerre en Ukraine, la Russie s’appuie sur des relais médiatiques pour défendre sa version des faits. Parmi eux, Xenia Fedorova, ancienne figure de l’antenne de RT France, aujou

• Mondial 2026 : sur la route de Boston au camp de base de l’équipe de France
  On vous amène dans les coulisses d’une mission #CoupeduMonde, l’événement le plus suivi de la planète. Comment nos journalistes s’organisent sur la route, comment gère-t-on les directs et à quel poin

• Avec De la Espriella, les "droites dures" en Amérique latine enregistrent une nouvelle victoire
  Au terme d'un scrutin serré, l'avocat et millionnaire d'ultradroite Abelardo de la Espriella a remporté la présidentielle colombienne face à son rival de gauche, Ivan Cepeda, dimanche. En promettant


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