Yatai

Reflection Yatai — 2026-06-09

Mardi 9 juin 2026 · Généré à 22:00 Paris

TL;DR

KPI — Lundi 8 juin (données disponibles ce matin)

RestoCA HTCmdsMoy ticket% livr.
CDN€1 348.0243€31.3539.5%
FSH— (fermé)0
Groupe W24€1 348.0243

Note: données Zelty Lun 8 disponibles ce matin (J+1). Mar 9 non ingéré encore (délai Zelty).

SemaineS (W24 partiel)S-1 (W23)Δ
CDN€1 348.02€8 979.97-85%
FSH€14 429.81-100%
Groupe€1 348.02€23 409.78-94%

Comparaison normale : W24 est à J+1 (1 jour), W23 avait 6 jours de service à ce stade.

Timeline du 9 juin 2026

Heure ParisAgentÉvénementRésultat
04:00rekki-poll-tomorrow4 ordres traités pour livraison Jun 10 (Z14764995, Y14765303, U14765343, V14765396)✅ OK
06:00justifs-sweeperFetch quotidien : fetch_sosh ✓, fetch_sfr ✓, fetch_uber ✓, fetch_free ✗ (19s), fetch_edenred ✗ (23s)⚠️ Partiel
09:00–09:08stuart-watch5 scans initiaux — aucun job en attente détecté (state = 0 jobs)✅ OK
09:00–09:04daily-kpiZelty 43486 bytes + Combo HR 23625 bytes → /kpi/2026-06-09.html (78134 bytes)✅ OK
09:04daily-kpiPDF 141537 bytes rendu et envoyé à James (WhatsApp DM)✅ OK
10:00zelty-watchPremier run : catchup 630 min (nuit), 0 orders Zelty (ingestion delay attendu)✅ Normal
10:00combo-retardPremier run : catchup 605 min (nuit), 28 shifts inspectés, 0 alertes✅ OK
10:20–10:58stuart-watchÉCHEC CASCADE : choiseul #2 HTTP 422 "pickup_at is not valid" — 20 tentatives consécutives🔴 FAIL ×20
11:26rekki-poll-tomorrowW14767799 traité pour Jun 10✅ OK
11:43rekki-poll-tomorrowX14767932 traité + TRIGGER recap Jun 10 déclenché (Choiseul + Bastille ont commandé)✅ Trigger OK
11:43rekki-recap-13h6 orders pour livraison Jun 10 → RECAP_2026-06-10.pdf (9679 bytes)✅ OK
12:20rekki-recap-13hSkip idempotent (recap déjà envoyé)✅ Skip
21:00combo-retard1 alerte retard : employee aef09888 · shift 21h00 Paris⚠️ 1 retard
21:35audit-yatai-92-soirScan groupe Labo 92 : médias trouvés → exit=0✅ Media OK
22:00zelty-watch0 orders inspectés toute la journée, api_fail_streak=0 (ingestion delay normal Mar)✅ Normal

Patterns détectés

📅 Calendrier service Yatai — W23 complet (1ère semaine complète observée)
CDN : Lun 1 €771.96 (29 cmds) · Mar 2 €1 289.29 · Mer 3 €1 828.96 · Jeu 4 €1 234.31 · Ven 5 €1 246.59 · Sam 6 €1 593.22 · Dim 7 fermé
FSH : Lun 1 fermé · Mar 2 €2 399.78 · Mer 3 €2 070.72 · Jeu 4 €2 881.16 · Ven 5 €1 992.56 · Sam 6 €3 206.17 · Dim 7 fermé
Conclusion : CDN ouvert Lun-Sam, FSH ouvert Mar-Sam, TOUS DEUX fermés le Dim. Invalide Mer/Jeu/Lun-CDN « fermé » dans CLAUDE.md
📦 Rekki trigger Jun 10 : 11h43 Paris (7e data point)
Choiseul + Bastille ont commandé avant 11h43. Trigger event-driven à 09:43 UTC. Séquence : 4 orders à 04h00 UTC + 2 orders à 09h26/09h43 UTC.
Fenêtre confirmée : 10h45-12h00 Paris (7 data points : 11h22 · 11h06 · 11h21 · 11h22 · 11h49 · 10h52 · 11h43)
🔄 fetch_free + fetch_edenred : 5 jours consécutifs d'échec (Jun 5-9)
fetch_free: rc=1 en ~19s, fetch_edenred: rc=1 en ~23s à chaque run nocturne 06:00 Paris.
Les autres fetchers (sosh, sfr, uber_eats, uber_gmail, gmail) fonctionnent normalement.
👷 Labo actif le mardi : 28-29 shifts inspectés par combo-retard
Même sans service CDN/FSH visible (zelty 0 orders), la production Labo est active le mardi (shifts Combo HR confirmés).
1 retard détecté à 21h00 Paris — shift tardif, probablement service CDN soir (à confirmer avec KPI demain).

Anomalies

HIGH Stuart-watch : cascade Choiseul #2 en échec permanent (×20)
Toutes les tentatives de 10:20 à 10:58 Paris ont échoué : HTTP 422 RECORD_INVALID — pickup_at is not valid.
Hypothèse : le pickup_at est calculé une fois en début de session (ex: 10:00 Paris). Les retries après 10:20 tentent de réserver avec un horaire déjà passé → l'API Stuart refuse.
Impact : le 2ème coursier Choiseul n'a probablement pas été réservé aujourd'hui. Livraisons Choiseul potentiellement impactées.
Fix recommandé : recalculer pickup_at = now + N min à chaque tentative de retry.
MEDIUM Règles CLAUDE.md « jours fermés » invalides — correction nécessaire
Les règles auto-appliquées "Lundi = sans service CDN+FSH", "Mercredi = sans service", "Jeudi = sans service" sont toutes basées sur des faux-négatifs zelty (0 orders à 22h = ingestion delay, pas fermeture).
Preuve : W23 complet (Jun 1-7) confirme CDN et FSH ouverts Mer/Jeu/Sam. CDN ouvert Lun (€771.96 Jun 1, €1 348.02 Jun 8). Les règles incorrectes persistent dans CLAUDE.md depuis plusieurs semaines.
MEDIUM fetch_free + fetch_edenred : bug persistant (≥5 jours)
Aucun progress depuis la première détection (Jun 5). Backlog Pennylane croissant.
Impact : factures Free Mobile + reçus Edenred non synchronisés vers Pennylane.
INFO Zelty-watch : 0 orders toute la journée (Mardi)
Normal — délai d'ingestion Zelty pour le mardi. KPI demain matin (Jun 10) confirmera le CA du Mar 9.
api_fail_streak=0 → pas de panne API. audit-yatai-92-soir exit=0 (media trouvés) → service actif aujourd'hui.
INFO whatsapp-forward : timeout récurrent
Timeout systemd signalé dans lessons.jsonl pour Jun 9 (pattern récurrent Jun 8 aussi). Le process tourne mais est tué avant fin.
Pas encore confirmé ce soir (23:55 Paris) — à surveiller.

Rekki — Livraisons demain (Jun 10)

RefTraité à (UTC)LivraisonStatut
Z1476499504:00:282026-06-10✅ WhatsApp + confirm + mark_integrated
Y1476530304:00:292026-06-10✅ WhatsApp + confirm + mark_integrated
U1476534304:00:302026-06-10✅ WhatsApp + confirm + mark_integrated
V1476539604:00:312026-06-10✅ WhatsApp + confirm + mark_integrated
W1476779909:26:392026-06-10✅ WhatsApp + confirm + mark_integrated
X1476793209:43:182026-06-10✅ WhatsApp + confirm + mark_integrated + TRIGGER RECAP

Recap PDF Jun 10 généré à 11:43 Paris — 9 679 bytes. Choiseul + Bastille ont commandé les 2 à 11:43 Paris (dans la fenêtre 10h45-12h00).

Propositions CLAUDE.md

Proposition #1 — CORRECTION CRITIQUE : Calendrier service hebdomadaire (hash ae3f7b2c5d91)

Section : Remplacer les règles auto-appliquées incorrectes sur les jours fermés
Justification : W23 complet (Jun 1-7) est le premier jeu de données couvrant une semaine entière. Les règles précédentes (Lun/Mer/Jeu = fermé) étaient toutes des faux-négatifs zelty à 22h. 1 semaine complète = preuve suffisante.

### Calendrier service Yatai — données semaine complète (source W23, Jun 1-7 2026)
- **CDN** : ouvert **Lundi à Samedi**, fermé le Dimanche
  - Lun 1/06: €771.96 (29 cmds) · Mar 2: €1 289.29 · Mer 3: €1 828.96 · Jeu 4: €1 234.31 · Ven 5: €1 246.59 · Sam 6: €1 593.22
- **FSH** : ouvert **Mardi à Samedi**, fermé Lundi et Dimanche
  - Mar 2: €2 399.78 · Mer 3: €2 070.72 · Jeu 4: €2 881.16 · Ven 5: €1 992.56 · Sam 6: €3 206.17
- Zelty 0 orders à 22h ≠ fermé pour les jours Lun-Sam — toujours attendre KPI J+1 pour confirmation
- Règles incorrectes à supprimer : "Lundi = sans service", "Mercredi = sans service", "Jeudi = sans service"
    

Proposition #2 — Bug stuart-watch cascade pickup_at (hash f8c1e4a7b305)

Section : Ajouter dans section 8 (Open issues) ou section 5 (Agents)
Justification : Observé le 09/06/2026 : 20 échecs consécutifs sur "choiseul #2" après 10h20 Paris. Impact direct sur les livraisons.

### Bug stuart-watch : cascade "pickup_at is not valid" (depuis 2026-06-09)
- Symptôme : HTTP 422 RECORD_INVALID « pickup_at is not valid » sur toutes les retries après ~10h20 Paris
- Cause probable : `pickup_at` calculé une fois en début de session (ex: 10:00 Paris)
  → retries après expiration de l'horaire sont rejetés par l'API Stuart
- Observé : 09/06/2026 — 20 échecs × "choiseul #2" de 10:20 à 10:58 Paris
- Fix requis : recalculer `pickup_at = now + N_minutes` à chaque retry (pas une constante de session)
- Impact : 2ème coursier Choiseul potentiellement non réservé les jours avec cascade tardive
    

Proposition #3 — Escalade bug fetch_free + fetch_edenred (hash 9d2a0e6b4c78)

Section : Mise à jour section 8 (Open issues)
Justification : 5 jours consécutifs sans fix. Le backlog Pennylane augmente.

### Bug escalade : justifs-sweeper fetch_free + fetch_edenred (5 jours Jun 5-9)
- fetch_free (rc=1 ~19s) et fetch_edenred (rc=1 ~23s) échouent chaque nuit à 06h00 Paris
- Observé : 05/06 · 06/06 · 07/06 · 08/06 · 09/06 = 5 jours consécutifs
- Les autres fetchers (sosh, sfr, uber_eats, uber_gmail, gmail) OK
- Action requise : investiguer auth portails Free + Edenred (probable session expirée ou UI changée)