diff --git a/specs/spec_loadmodel.md b/specs/spec_loadmodel.md index 20af717..1af45b3 100644 --- a/specs/spec_loadmodel.md +++ b/specs/spec_loadmodel.md @@ -606,6 +606,43 @@ tarif est défini.** > `docs/DESIGN_FUSEAU.md` — il n'existe qu'UN fuseau, celui du système, et un `nymead` vivant > suit son changement sans redémarrage. +**LM-1005-b-i — une heure murale nue est CORRECTE pour une échéance client, et FAUTIVE pour une +plage tarifaire.** *(Distinction poussée un cran plus loin par l'agent app, 2026-09-04.)* + +Ce n'est pas la même donnée avec deux fuseaux : ce sont deux données différentes. + +- **Échéance client** — `"07:00"` nu est le bon codage. Si la box change de fuseau, l'habitude + doit se réinterpréter : le client veut toujours son eau chaude à 7 h **du matin chez lui**. + Réinterpréter est ici le comportement CORRECT, pas une tolérance. +- **Plage tarifaire** — `"22:00"` nu est un défaut MUET. La fenêtre est définie **ailleurs**, + par le fournisseur ; elle ne bouge pas parce que la box a bougé. Une donnée qui se + réinterprète alors que son référentiel, lui, ne bouge pas, devient fausse **sans que rien + dans la donnée ne permette de s'en apercevoir**. + +Conséquence : **le fuseau de référence vit dans le CHAMP, pas dans une convention d'appel.** Une +convention se perd au premier import, au premier changement de fournisseur, au premier agent qui +n'a pas lu ce paragraphe. Sans ça, le piège du 2026-09-04 revient à l'identique sur un champ où +il coûte de l'argent au lieu d'une phrase d'écran. + +**LM-1005-b-ii — le fuseau de référence se PUBLIE, il ne se déduit pas.** Ne pas laisser un +client supposer `Europe/Paris` : un fournisseur allemand définit ses plages en `Europe/Berlin`. +Un client qui déduirait choisirait une horloge **à la place de quelqu'un** — exactement ce que +la décision « ni imposer, ni refuser : déclarer » refuse. Le moteur publie donc le fuseau de +référence avec la configuration tarifaire, comme il publiera celui de l'installation avec la +sienne. + +**LM-1005-b-iii — DEUX avertissements distincts, à ne jamais fusionner en une comparaison.** + +| avertissement | compare | conséquence si ignoré | +|---|---|---| +| échéance client | **installation ≠ appareil** | l'obligation tombe à la mauvaise heure | +| plage tarifaire | **fournisseur ≠ installation** | on **achète au mauvais moment** | + +Seul le second peut coûter de l'argent, et seul le second est **indevinable par un installateur** +— il ne se voit ni sur la box, ni sur le téléphone, seulement en rapprochant le contrat du +fournisseur. Les fusionner en un unique « les fuseaux diffèrent » ferait disparaître celui des +deux qui compte derrière celui qui se corrige tout seul. + **Conséquence de conception** : la passe 1 n'est **pas** bornée par le surplus. Elle est bornée par une **autorisation de soutirage** — un objet distinct, que le rule-based rendra binaire et que le MILP rendra continu. La passe 2, elle, reste strictement bornée par le reliquat de