Section 67 : l auteur des transitions, et la raison qui dormait dans le journal

Consigne le defaut (un nom de champ inexistant qui vidait 416 lignes), les trois
signatures relevees, la regle du balayage vers l avant, et le benefice non
cherche : le declencheur porte la raison que chaque workflow publie lui-meme —
ce que « expliquer les decisions » reclamait etait deja enregistre.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
This commit is contained in:
Tallagrand Thierry
2026-09-14 03:17:05 +02:00
parent b9d79ed22a
commit 3b73e10277

View File

@@ -6431,3 +6431,66 @@ OpenClaw pour enregistrer sa boucle de 10 minutes.
---
*Document mis a jour le : 13/09/2026 (soir) — contrat d'etiquetage du concierge fige, lecteur et bascule vehicule_sur restant a ecrire en un commit*
## 67. Session du 14/09/2026 — L'auteur des transitions etait lisible depuis le debut
### Le defaut
`auteurDeLaTransition()` filtrait sur `x.context_name`. **Ce champ n'existe pas**
dans le journal de bord de Home Assistant : la fonction rendait `null` a tous
les coups, et **les 416 transitions journalisees portaient un auteur vide**.
Personne ne s'en etait apercu parce qu'un auteur absent ressemble a un auteur
inconnaissable.
Consequence en cascade : le prompt de l'observateur affirme « le coupable le
plus probable est un ecrivain AUTRE QUE SON PROPRIETAIRE. Nomme-le » — en lui
donnant des donnees ou aucun auteur n'est jamais nomme.
### Trois signatures, relevees sur des transitions d'auteur connu
| signature | ce qu'on lit | exemple verifie |
|---|---|---|
| automatisation / script | ligne voisine dont l'`entity_id` est `script.*` ou `automation.*` | `n8n - set helper` |
| service exterieur (n8n) | `context_user_id` sur la cible, et la rafale se **clot** par une ligne de NARRATION (`message` sans `state`) | `Victron Auto Charge`, `EVCS Bilan energetique (ombre)` |
| derivation | ni l'un ni l'autre, mais `context_entity_id` | `sensor.victron_evcs_status_raw` |
⚠️ **Une derivation N'EST PAS un auteur.** Le resume l'annonce « derive de X »
et non « par X » — une valeur qui decoule d'un autre capteur n'a pas d'ecrivain.
⚠️ **On balaie VERS L'AVANT pour trouver la narration, jamais vers l'arriere.**
Un workflow ecrit ses helpers PUIS se journalise : vers l'arriere on ramasserait
la narration du workflow PRECEDENT. Eprouve sur la seconde ou l'Auto Charge
Manager et le Water Heater Advisor ecrivent ENSEMBLE — chaque helper revient
bien a son propre workflow, 3 sur 3.
### Benefice non cherche : la raison etait deja dans le journal
Le champ `declencheur` porte desormais **la raison que le workflow a lui-meme
publiee** :
« summer_night_idle | profile=night_slow | I=30A | V=50.1V | SOC=69% |
Ete HC nuit, pas de besoin reseau »
« Croisement a 19 h, 0 kWh a couvrir → SOC requis 22% (actuel 96%). »
C'est exactement ce que « expliquer les decisions » reclamait, et c'etait
enregistre depuis toujours sans que rien ne le lise.
### Validation
Harnais de rejeu en lecture seule sur **7 transitions reelles d'auteur connu** :
4 signatures distinctes correctes, plus 3 cas de discrimination entre deux
workflows ecrivant dans la meme seconde. Deploye le 14/09 a 03:04.
⚠️ **Pas encore confirme sur une transition LIVE** : aucune entite suivie n'a
bascule dans les douze minutes suivantes — a 3 h du matin, vehicule debranche et
sans soleil, le systeme est stable. Premiere confirmation attendue au lever du
jour (bascule de `evcs_balance_pv_censored` ou du mode ACM).
⚠️ **Aucun rattrapage retroactif possible** : le journal de bord de HA ne
remonte pas indefiniment. Les 416 lignes existantes resteront sans auteur.
### Suite (plan approuve)
Detection deterministe des anomalies dans le service — oscillation d'actionneur,
deux auteurs sur le meme actionneur, mesure figee, engagement non relache —
table `anomalie`, guichet helper pour Airtria, et les seuils **calibres sur
l'historique avant d'etre figes** : la salve du 12/09 doit sortir, les bascules
normales du cycle jour/nuit ne doivent pas.
---
*Document mis a jour le : 14/09/2026 (~03:20) — auteur des transitions repare et deploye, 7 cas valides en rejeu*