docs(hermes-nyora): veille Dr. Nexum email enrichi (fin bug email illisible)
This commit is contained in:
parent
d527464cbe
commit
6066240097
|
|
@ -46,7 +46,7 @@
|
|||
## hermes-nyora
|
||||
| Runbook | Date | Tags |
|
||||
|---------|------|------|
|
||||
| *(aucun pour l'instant)* | — | — |
|
||||
| [Veille Dr. Nexum -- Email enrichi (fin du bug email illisible)](hermes-nyora/veille-nexum-email-enrichi.md) | 2026-07-03 | nyora, dr-nexum, veille, email, n8n, cron |
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,32 @@
|
|||
# Veille Dr. Nexum — Email enrichi (fin du bug "email illisible")
|
||||
|
||||
**Date** : 2026-07-03
|
||||
**Tags** : nyora, dr-nexum, veille, email, n8n, cron
|
||||
|
||||
## Problème
|
||||
|
||||
L'email quotidien "Veille IA Dr. Nexum" (envoyé via `veille_ia_matin.py` → webhook n8n `veille-nexum-email` → SMTP ik.me) n'apportait que titre + lien + score brut, alors que le message Telegram équivalent contenait l'analyse complète (pourquoi c'est pertinent, titre vidéo suggéré, angle unique). Cause : le script Python envoyait l'email **avant** que Hermes fasse l'enrichissement (l'email était construit directement dans le script, l'analyse n'existait que dans la réponse finale de l'agent, livrée uniquement à Telegram).
|
||||
|
||||
## Solution
|
||||
|
||||
Découplage scraping / enrichissement / envoi email :
|
||||
|
||||
1. `veille_ia_matin.py` (cron `veille-ia-nexum-4ee61494`, 11h30 UTC quotidien) : scrape 13 chaînes YouTube + HN + VentureBeat, score, top 5, écrit `/opt/data/veille_raw.json` (données brutes). **N'envoie plus d'email lui-même.**
|
||||
2. Hermes analyse le top 5 (pourquoi pertinent / titre vidéo / angle) → format Telegram livré automatiquement (`HERMES_CRON_AUTO_DELIVER_PLATFORM=telegram`).
|
||||
3. Hermes écrit `/tmp/veille_enrich.json` avec les mêmes analyses (même ordre que `veille_raw.json`) via un heredoc bash à guillemets simples (`<< 'EOF'`) — jamais de f-string Python avec `{...}` inline dans une commande bash (voir piège accolades documenté dans `common/`).
|
||||
4. Hermes exécute `python3 /opt/data/veille_email_send.py` — ce script fusionne `veille_raw.json` + `veille_enrich.json`, construit un HTML avec le thème Nyora (cards sombres, dégradé rose/or #e94560, footer doré) contenant le **même contenu** que Telegram, et POST vers le webhook n8n `veille-nexum-email` (workflow `VEILLE | Email Dr. Nexum → Nabil TT`, id `uwjTfOlzKmzHkO9Q`).
|
||||
|
||||
## Fichiers
|
||||
|
||||
| Fichier | Rôle |
|
||||
|---|---|
|
||||
| `/opt/data/veille_ia_matin.py` | Scraping + scoring, écrit `veille_raw.json` |
|
||||
| `/opt/data/veille_raw.json` | Données brutes du run (écrasées à chaque exécution) |
|
||||
| `/tmp/veille_enrich.json` | Analyse Hermes du jour (éphémère) |
|
||||
| `/opt/data/veille_email_send.py` | Fusion raw+enrich → HTML → POST n8n |
|
||||
|
||||
Détail complet du prompt cron et du format Telegram/email : voir skill `hermes-nyora/data/skills/nyora/dr-nexum-production/references/veille-quotidienne-cron.md`.
|
||||
|
||||
## Règle à ne jamais casser
|
||||
|
||||
L'email ne doit **jamais** repartir en arrière vers "titre + lien + score brut". Si le contenu enrichi (why/video_title/angle) manque, `veille_email_send.py` envoie quand même l'email mais log un WARN — c'est un signal que l'étape 3 (écriture de `veille_enrich.json`) a été oubliée dans le prompt cron, pas un comportement normal.
|
||||
Loading…
Reference in New Issue