Le contrat d etiquetage du concierge, ecrit avant d etre code
Quatre echanges avec la session Airtria pour arreter l interface. Le point qui a failli passer : leur etiquette porte une provenance, whatsapp ou regle-puissance, et les deux ne peuvent pas valoir la meme certitude. Une deduction n est pas une confirmation — marquer « sur » un invite detecte a la puissance aurait recree, sous une autre forme, le defaut que la bascule de vehicule_sur corrige. Consigne aussi le vocabulaire (MAJUSCULES sans accent, releve sur l etat reel de la colonne) et le sens unique de la regle de puissance, qui impose au lecteur de refuser un VW ou un JEEP venu de ce chemin. Ma part — lecteur du helper et bascule du defaut — reste a ecrire, et les deux sont indissociables. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
This commit is contained in:
80
HANDOFF.md
80
HANDOFF.md
@@ -6218,3 +6218,83 @@ le proprietaire. README corrige.
|
||||
|
||||
---
|
||||
*Document mis a jour le : 13/09/2026 (soir) — six etiquettes de vehicule corrigees, frontiere de branchement lue dans le journal, contrat du concierge arrete*
|
||||
|
||||
## 66. Session du 13/09/2026 (soir) — Contrat d'etiquetage du concierge, arrete des deux cotes
|
||||
|
||||
La session OpenClaw/Airtria construit l'agent conversationnel qui demande par
|
||||
WhatsApp quel vehicule est branche quand l'etiquette est douteuse. Le contrat
|
||||
d'interface a ete negocie en quatre echanges. **Il est fige ; ma part n'est pas
|
||||
encore ecrite.**
|
||||
|
||||
### Qui ecrit quoi
|
||||
Airtria n'ecrit JAMAIS dans PostgreSQL — seulement
|
||||
`input_text.airtria_vehicle_label` (paquet `airtria_concierge.yaml`,
|
||||
`max: 255`, kill-switch `input_boolean.airtria_concierge_enabled`, OFF).
|
||||
Mon service d'historisation lit ce helper et applique.
|
||||
|
||||
Le helper porte : `sessions` (la liste complete des `debut` du branchement,
|
||||
**verbatim**, millisecondes comprises), `label`, `confirmed_at`, `source`.
|
||||
Le champ `reponse` brute est volontairement omis — il ne tenait pas dans les
|
||||
255 caracteres et n'ajoute rien d'exploitable a `confirmed_at` + `source`.
|
||||
|
||||
### La provenance decide de la certitude
|
||||
| `source` cote Airtria | `vehicule_sur` | labels possibles |
|
||||
|---|---|---|
|
||||
| `whatsapp` (le proprietaire a repondu) | **true** | VW · JEEP · MEGANE · INVITE · ZERO |
|
||||
| `regle-puissance` (invite auto-detecte) | **false** | **INVITE uniquement** |
|
||||
|
||||
⚠️ **Une deduction n'est pas une confirmation.** Marquer « sur » un label
|
||||
produit par la regle de puissance reintroduirait exactement le defaut que la
|
||||
bascule corrige. Benefice du drapeau laisse a faux : un invite auto-detecte
|
||||
reste « a confirmer », donc rattrapable — Airtria peut relancer plus tard
|
||||
« un invite vers 14 h mardi, tu veux preciser ? » sans que ce soit bloquant.
|
||||
|
||||
⚠️ **La regle de puissance est a sens UNIQUE** (cf. §0 du manuel) : au-dessus
|
||||
de ~4 200 W avec consigne ≥ 20 A elle conclut « ni VW ni JEEP », jamais
|
||||
l'inverse. Un label `VW` ou `JEEP` arrivant avec `source='regle-puissance'`
|
||||
est donc un bug par construction : **le lecteur doit le REFUSER et le
|
||||
signaler**, pas l'appliquer. Airtria confirme ne pouvoir emettre que `INVITE`
|
||||
sur ce chemin ; le filet reste utile.
|
||||
|
||||
### Tracabilite
|
||||
```
|
||||
genre = 'vehicule'
|
||||
source = 'historisation' <- la colonne dit QUI A ECRIT, pas l'origine
|
||||
resume = "Etiquette JEEP appliquee par le concierge (3 sessions)"
|
||||
detail = { origine: 'airtria', source_airtria: 'whatsapp'|'regle-puissance',
|
||||
label, sessions: [...], confirmed_at }
|
||||
```
|
||||
Une saisie manuelle du selecteur ne produit AUCUNE ligne d'etiquetage (le seul
|
||||
evenement `vehicule` existant est emis a la CLOTURE d'une session). La
|
||||
discrimination est donc nette dans les deux sens : `detail->>'origine'` present
|
||||
= concierge, absent = valeur du selecteur pendant la session.
|
||||
|
||||
### Vocabulaire des labels — MAJUSCULES, SANS ACCENT
|
||||
Etat reel de la colonne au 13/09 : `VW` 9 · `JEEP` 9 · `MEGANE` 1. Airtria
|
||||
ecrivait `invité` ; corrige en `INVITE`. Une troisieme convention dans la meme
|
||||
colonne aurait oblige tout regroupement futur a connaitre les trois formes.
|
||||
`ZERO` est accepte par le chemin WhatsApp alors que le selecteur HA ne
|
||||
l'expose pas encore (moto hors service, reprise prevue fin septembre) : le
|
||||
concierge en saurait alors plus que l'interface. Non bloquant, et c'est au
|
||||
proprietaire d'ajouter l'option le moment venu (manuel §0).
|
||||
|
||||
### RESTE A FAIRE — ma part, en UN SEUL commit
|
||||
1. **Lecteur du helper** dans `tools/historise-evcs.mjs` : jointure sur `debut`
|
||||
en egalite stricte (repli ±1 s), extension au BRANCHEMENT entier lu dans
|
||||
`evenement` (invariant « un cable, un vehicule », §65), refus d'un label
|
||||
household en `regle-puissance`, refus + signalement si deux labels
|
||||
differents visaient le meme branchement.
|
||||
2. **Bascule de `vehicule_sur`** : `DEFAULT false`, `true` UNIQUEMENT sur
|
||||
confirmation humaine. Aujourd'hui la colonne ment (elle ne passe a faux que
|
||||
si le selecteur change PENDANT une session, d'ou les onze lignes fausses
|
||||
toutes marquees « sur »). Les deux changements sont indissociables : basculer
|
||||
le defaut sans le lecteur marquerait tout « non sur », poser le lecteur sans
|
||||
la bascule garderait la colonne menteuse.
|
||||
|
||||
Declencheur : Airtria dit « ca publie pour de vrai » apres une VRAIE reponse
|
||||
WhatsApp. D'ici la le helper est vide et le kill-switch OFF — rien a appliquer.
|
||||
Il attend du proprietaire **la syntaxe de creation de tache planifiee** cote
|
||||
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*
|
||||
|
||||
Reference in New Issue
Block a user