Yatai Réflexion — 2026-05-25

Lundi de Pentecôte · W22 · 2026  ·  ← index  ·  KPI du jour

TL;DR

Timeline

Heure Paris Agent Événement Résultat
06:00 rekki-poll-today Y14646994 → livraison 25/05 (5e et dernier ordre) ✅ PDF+confirm+mark
09:07 daily-kpi-runner Zelty (86 KB, 176 appels) + Combo HR (46 KB) → HTML 78 KB + PDF 141 KB → James ✅ exit=0
10:17 rekki-poll-today Z14650135 → livraison 26/05 (1er ordre demain) ✅ PDF+confirm+mark
10:52 rekki-poll-today Z14650321 → livraison 26/05 + TRIGGER event-driven recap 26/05 ✅ trigger OK
10:52 rekki-recap-13h Recap livraison 26/05 — 2 ordres (Choiseul + Bastille) ✅ exit=0
12:00 zelty-watch Premier run — catchup 630 min gap overnight — 0 orders inspectés ✅ normal
12:00 combo-retard Premier run — catchup 605 min — 27 shifts inspectés, 0 retards ✅ silence OK
12:20 rekki-recap-13h Cron 12:20 fallback → idempotency skip (déjà envoyé à 10:52) ✅ skip normal
12:00–22:00 zelty-watch 24 runs — 0 orders inspectés (délai Z-report structurel) ✅ attendu
12:00–22:00 combo-retard ~72 runs — 27-28 shifts — 0 alertes retard (Pentecôte, services réduits) ✅ silence OK
21:35 audit-yatai-92-soir 9 médias analysés (4 hors-scope matin, 1 OK, 3 photos soir perdues — bug bridge transient), 5+ checks manquants ⚠️ rapport incomplet
21:49 disputes-daily 585 orders Uber scannés, 12 litiges résolus (25% win rate), 4 pending, 0 nouveaux disputable ✅ exit=0
22:00 yatai-reflect Démarrage réflexion nuit J25 → en cours

KPI du jour — W22 (données partielles)

Métrique W22 S (J1, partiel) W21 S-1 W22 N-1 (2025)
CA Net HT CDN — (Z-report delay) €7 916 €12 156
CA Net HT FSH €10 988 €16 755
CA Net HT Groupe €18 904 €28 911
MS/CA service S — (CA=0) 36,2% 23,1%
Productivité mensuelle (MTD mai) MTD Mai 2026 M-1 (Avril 2026) N-1 (Mai 2025)
CA Net HT €78 670 (2 447 cmds) €102 958 (2 989 cmds) €104 938 (3 375 cmds)
Productivité groupe (€/h service) €47/h €62/h €55/h
MS/CA service 30,4% 23,4% 22,6%

Note: CA W22 = 0 attendu (lundi matin, Z-report Zelty disponible J+1). Labor CDN lun 25/05 : 27,8h · €452. Labor FSH lun 25/05 : 40,3h · €668.

Patterns détectés

⏱ Trigger Choiseul+Bastille — fenêtre élargie à 10h45–12h00 Paris (6 data points)
Historique complet :
17/05 (lun) : 11h22 · 18/05 (dim) : 11h06–11h29 · 19/05 (lun) : 11h21 · 20/05 (mer) : 11h22–11h43 · 24/05 (sam) : 11h49 · 25/05 (lun Pentecôte) : 10h52

Aujourd'hui 10h52 est le premier data point avant 11h00. Peut s'expliquer par le Lundi de Pentecôte (volume plus tôt). La fenêtre élargie est 10h45–12h00 Paris sur 6 jours de 9 (67% de couverture). Pattern stable, actionnable.

⚠️ Ce pattern a été proposé 4 fois (17, 18, 19, 20/05) et n'est toujours pas inscrit dans CLAUDE.md.
📊 Zelty watch 0 orders intra-jour (J9 consécutif)
Confirmé tous les soirs depuis le 17/05. Structurel — l'API Zelty retourne les orders uniquement après Z-report (clôture caisse, délai 12–24h). Déjà en mémoire persistante (lesson #2). Monitoring real-time des annulations structurellement impossible avec l'API actuelle.
🐍 daily-kpi Python pur stable (J9 consécutif)
9 runs consécutifs réussis (17–25/05) à 09:00 Paris, y compris pendant les 3 jours de API limit (21–23/05) où yatai-reflect était hors-service. Le script Python pur est immunisé contre les limites d'usage API Claude.
📦 rekki-recap idempotency parfaite (J9)
Trigger event-driven systématiquement suivi du cron 12:20 qui exit=0 silencieusement. La dedup fonctionne. Flag rekki-recap-triggered-YYYY-MM-DD.flag créé et respecté à chaque run.
⚖️ Disputes delivery — win rate global 25% (nouveau agent, baseline J1)
Données initiales : 12 litiges résolus, 4 pending. Uber 33,3% vs Deliveroo 16,7%. Motif dominant : ISSUE_WITH_ITEMS (12/12). Yat CDN et DonburiCDN : 0% win rate (vs Levallois 33,3%). Deliveroo refresh pas encore implémenté (deliveroo_refresh.py not yet implemented). Baseline établie — pas encore de tendance temporelle.

Anomalies

🟡 KPI title bug — J7 sans correction (2026-05-31 affiché au lieu de 2026-05-25)
Observé depuis le 18/05. Le renderer KPI affiche la fin de la semaine ISO (dimanche) au lieu de la date d'aujourd'hui dans le titre, uniquement le lundi (premier jour de semaine ISO). Fichier correctement nommé 2026-05-25.html, seul le titre HTML est faux. Déjà en mémoire persistante (lesson #3). Cela fait 7 jours que le bug est connu et non corrigé.
Hypothèse : le renderer calcule week_end = week_start + 6 days au lieu de today pour le titre.
Sévérité : cosmétique, mais nuit à la lisibilité du rapport le lundi.
🟡 MS/CA MTD mai 30,4% vs M-1 avril 23,4% (+7pp)
Dérive significative de la masse salariale. Le CA mai (€78 670 MTD sur 25 jours) projette un CA mensuel ~€94 K vs €102 958 en avril (-8,7%). Or le labor service (CDN+FSH) reste stable. La semaine Pentecôte (W21 : €18 904 vs N-1 €28 911, soit -35%) tire particulièrement le ratio vers le haut.
Contexte : W21 = semaine fériée (Ascension lun 20/05 + Pentecôte lun 25/05). CA structurellement faible. Ne pas alarmer avant la reprise post-Pentecôte.
Action : surveiller le ratio dès W23 (1er juin) pour vérifier retour à la normale.
🟡 Audit Yatai Labo 92 soir — 3 photos soir perdues (bridge transient 21h35)
Sur 9 médias analysés : 4 hors-scope (démo recette matin), 1 photo soir OK, 3 photos soir perdues en raison d'un bug transient du bridge lors du téléchargement. Le WhatsApp bridge était UP selon les healthchecks toutes les 15 min — la panne était transiente, limitée à l'instant de l'audit (~21h35). Rapport marqué INCOMPLET, envoyé à James DM.
Pattern à surveiller : si le bridge rencontre des timeouts ponctuels lors de téléchargements de médias (vs envois texte), cela pourrait indiquer une limite de bande passante ou un bug de retry du bridge.
🟢 Trigger event-driven à 10h52 Paris (8 min avant fenêtre habituelle)
Le trigger a eu lieu à 10h52 au lieu de la fenêtre habituelle 11h00-12h00. Plausible pour un Lundi de Pentecôte (personnel réduit, commandes anticipées). 6e data point. Le script de trigger fonctionne correctement — c'est le comportement humain qui a varié légèrement. Fenêtre élargie proposée : 10h45–12h00 Paris.
🟢 Recap livraison 26/05 : seulement 2 ordres au moment du trigger (10h52)
Seuls Choiseul (Z14650135) et Bastille (Z14650321) ont commandé pour le 26/05 au moment du trigger. Les autres restaurants (CDN, FSH, Montparnasse) n'avaient pas encore commandé via Rekki. Cela est normal — le trigger est déclenché par Choiseul+Bastille comme "derniers à commander". Les autres restaurants ont peut-être d'autres canaux ou commandes arrivées après le trigger.

Propositions CLAUDE.md

📌 Proposition 1 — Ajouter fenêtre trigger Choiseul+Bastille (section 4 Rekki)
Pattern confirmé sur 6 data points depuis le 17/05. Proposé mais non inscrit depuis 8 jours.
ADD to section 4 (Rekki — gotchas API) ou section 5 (Agents schedules) :

### Timing commandes Choiseul + Bastille (trigger recap)
- Fenêtre observée : **10h45–12h00 Paris** (6 data points sur 9 jours, 17–25/05)
- Data points : 17/05 11h22 · 18/05 11h06 · 19/05 11h21 · 20/05 11h22 · 24/05 11h49 · 25/05 10h52
- Lundi de Pentecôte = outlier à 10h52 (service réduit → commandes anticipées)
- Fenêtre "sûre" pour le recap event-driven : si pas de trigger avant 12h00, le cron 12:20 prend le relais
- Pattern stable, 6 data points ≥ seuil de confiance

JUSTIFICATION: pattern stable depuis 17/05, proposé 4× sans être inscrit. Utile pour
dimensionner les alertes et déboguer si le trigger ne se déclenche pas.
    
📌 Proposition 2 — Documenter KPI title bug (section 6 Daily KPI)
Bug connu depuis le 18/05 (mémoire persistante lesson #3), non corrigé après 7 jours.
ADD to section 6 (Daily KPI) :

### Bug titre KPI le lundi
- Le renderer affiche la **fin de semaine ISO** (dimanche) dans le titre au lieu d'aujourd'hui
- Ex : KPI du 2026-05-25 (lundi) affiche "2026-05-31" dans le <title> et h1
- Fichier nommé correctement : `kpi/2026-05-25.html` — seul le titre HTML est faux
- Root cause probable : calcul `week_end = week_start + 6 days` utilisé pour le titre
  au lieu de `today`
- Fix : dans `render_kpi.py`, remplacer la variable titre par `TODAY` directement

JUSTIFICATION: bug cosmétique mais visible 1 jour sur 7 (chaque lundi). 7 jours sans fix.
    
📌 Proposition 3 — Documenter disputes-daily (section 5 Agents)
Nouvel agent actif depuis le 25/05, pas encore dans CLAUDE.md.
ADD to section 5 (Agents IA — schedules) :

| `disputes-daily` | ~21h30 Paris | Scan litiges Uber (585 orders/60j), stratégie auto |

ADD to section 7 (Infrastructure) ou section 8 (TODO) :

### Disputes livraison — état initial (25/05/2026)
- Win rate global : **25%** (12 résolus, 4 pending)
- Uber : 33,3% win rate (2/6 wins, €19,75 récupérés)
- Deliveroo : 16,7% win rate (1/6 wins, €0 récupérés — problème chiffrage)
- Motif dominant : ISSUE_WITH_ITEMS (100% des litiges)
- Dashboard : https://agents.yatairamen.fr/disputes/
- ⚠️ `deliveroo_refresh.py` pas encore implémenté — données Deliveroo manuelles

JUSTIFICATION: nouvel agent opérationnel, baseline à documenter pour suivi longitudinal.
    

Généré à