docs(dérogation): une cible qui cesse d'être mesurable termine la dérogation

LA QUESTION QUE NI L'UN NI L'AUTRE N'AVAIT POSÉE : que fait la dérogation ENTRE le
figement de sessionEnergy et l'échéance de durée ? Elle achète au maximum sur une
mesure morte, et sur un lien qui perd 40 % de ses trames « au bout » peut vouloir
dire des heures.

POSITION RETENUE : une dérogation dont la cible cesse d'être mesurable CESSE. Elle
n'attend pas sa durée. C'est R6 transposée — là-bas « servie oui, tenue jamais » ;
ici « active oui, vérifiable non, donc on s'arrête ». Une dérogation est une
commande qui ACHÈTE, et la maintenir sans savoir où elle en est, c'est acheter à
l'aveugle. L'instrument existe déjà : measurement.source et le régime de LM-1009,
qui le disent au cycle même.

QUATRE FINS, et le motif dit laquelle a mordu : targetReached, unplugged,
measurementLost, durationElapsed. Les quatre appellent des gestes différents — et
une dérogation qui se terminerait sans dire laquelle laisserait l'utilisateur
relancer un boost que le lien empêchera encore.

L'ASYMÉTRIE, reprise du plugin V2C. La confirmation de débranchement existe
(k_absencesPourClore polls) et porte une propriété qu'il faut garder : SEULS LES
POLLS RÉUSSIS font avancer le compteur d'absences. Une coupure réseau le gèle au
lieu de le faire progresser — un lien mort ne peut donc pas fabriquer un faux
débranchement.

Et les deux erreurs ne coûtent pas la même chose : terminer à tort rend la main,
continuer à tort achète au maximum sur une mesure morte. D'où la règle, gravée dans
AGENTS.md : un mécanisme qui achète s'arrête dans le doute, et ses seuils de
confirmation sont asymétriques par conception — prompts à conclure la fin, lents à
conclure la poursuite. C'est l'inverse du réglage qu'on choisirait pour un mode.

La durée devient le FILET DU FILET : la perte de mesure attrape le cas où
l'instrument se tait et se signale ; la durée attrape le cas où même le régime ne
se signale pas. Deux filets parce que le premier repose lui-même sur un instrument.
This commit is contained in:
Patrick Schurig 2026-09-08 06:15:34 +02:00
parent 60babd5af7
commit ee67b21c2d
2 changed files with 61 additions and 1 deletions

View File

@ -1036,6 +1036,13 @@ aucune, la décision est une intention, et elle se périmera à la vitesse du co
> « l'instrument dont le silence ressemble à un résultat », appliqué cette fois à une commande > « l'instrument dont le silence ressemble à un résultat », appliqué cette fois à une commande
> **qui achète**. > **qui achète**.
> >
> **Et un mécanisme qui ACHÈTE s'arrête dans le doute.** Deux erreurs sont possibles quand un
> signal devient douteux : terminer à tort, ou continuer à tort. Elles ne coûtent pas la même
> chose — terminer à tort **rend la main** (l'utilisateur relance), continuer à tort **achète au
> maximum sur une mesure morte**. Les seuils de confirmation doivent donc être **asymétriques
> par conception** : prompts à conclure la fin, lents à conclure la poursuite. C'est l'inverse du
> réglage qu'on choisirait pour un mode, et c'est parce qu'une dérogation achète.
>
> **Corollaire sur le retour** : l'état d'avant se MÉMORISE, il ne se déduit pas. Retomber sur un > **Corollaire sur le retour** : l'état d'avant se MÉMORISE, il ne se déduit pas. Retomber sur un
> défaut à la fin d'une dérogation détruit un réglage en silence — la même famille que le repli > défaut à la fin d'une dérogation détruit un réglage en silence — la même famille que le repli
> d'échéance qui réécrivait `EcoWithMinCurrent` en `Eco`. > d'échéance qui réécrivait `EcoWithMinCurrent` en `Eco`.

View File

@ -112,6 +112,54 @@ C'est exactement le raisonnement de `progressMeasurable` : une capacité absente
saisie, parce que l'écran de résultat parle trop tard. Une dérogation dont la fin n'est pas saisie, parce que l'écran de résultat parle trop tard. Une dérogation dont la fin n'est pas
observable est une dérogation qui ne finira pas. observable est une dérogation qui ne finira pas.
### La question qui manquait : que fait-elle ENTRE le figement et l'échéance ?
La durée arrêtera la dérogation — **au bout**. Entre-temps, elle achète au maximum sur une mesure
morte. Sur un lien qui perd 40 % de ses trames, « au bout » peut vouloir dire des heures.
**Position retenue : une dérogation dont la cible cesse d'être MESURABLE cesse.** Elle n'attend
pas sa durée.
C'est `R6` transposée. Là-bas : *servie oui, tenue jamais* — on ne conclut pas « tenue » sur un
avancement qu'on ne mesure pas. Ici : **active oui, vérifiable non, donc on s'arrête.** Une
dérogation est une commande qui **achète** ; la maintenir sans pouvoir dire où elle en est, c'est
acheter à l'aveugle.
**Et l'instrument existe déjà** : `measurement.source` et le régime de `LM-1009`. Quand le régime
d'une charge en dérogation cesse d'être mesuré, la condition de fin est perdue — et cela se sait
au cycle même, pas au bout de la durée.
### QUATRE fins, et le motif dit laquelle a mordu
| fin | ce qu'elle dit à l'utilisateur | geste |
|---|---|---|
| `targetReached` | la cible en énergie est atteinte | aucun — c'est le succès |
| `unplugged` | le véhicule est parti | aucun |
| **`measurementLost`** | on ne sait plus où en est la charge | **regarder le lien / le compteur** |
| `durationElapsed` | le temps imparti est écoulé | relancer si besoin |
Les quatre appellent des gestes différents, et une dérogation qui se terminerait sans dire
laquelle a mordu laisserait l'utilisateur relancer un boost que le lien empêchera encore.
### L'asymétrie, et la règle qu'elle donne
Le débranchement peut **clignoter** sur cette borne. Le plugin V2C a déjà la parade —
`k_absencesPourClore` polls consécutifs avant de clore une session — et elle porte une propriété
qu'il faut reprendre : **seuls les polls RÉUSSIS font avancer le compteur.** Une coupure réseau
le **gèle**, elle ne le fait pas progresser. Un lien mort ne peut donc pas fabriquer un faux
débranchement.
Cette confirmation vaut pour la dérogation aussi. Mais les deux erreurs ne coûtent pas la même
chose :
> **Terminer à tort** rend la main : la charge repasse à son mode mémorisé, et l'utilisateur
> relance s'il veut.
> **Continuer à tort** achète au maximum sur une mesure morte.
D'où la règle : **dans le doute, une dérogation s'arrête.** Les seuils de confirmation sont donc
asymétriques par conception — prompts à conclure la fin, lents à conclure la poursuite. C'est
l'inverse du réglage qu'on choisirait pour un mode, et c'est parce qu'une dérogation achète.
### Corollaire — la DURÉE est un filet, pas une option ### Corollaire — la DURÉE est un filet, pas une option
Toute dérogation porte une durée maximale, **même quand elle a une meilleure condition de fin**. Toute dérogation porte une durée maximale, **même quand elle a une meilleure condition de fin**.
@ -121,7 +169,12 @@ cible de charge qui ne remonte plus, une sonde qui tombe, un compteur qui se fig
dérogation ne se termine jamais, en tirant le maximum. C'est « l'instrument dont le silence dérogation ne se termine jamais, en tirant le maximum. C'est « l'instrument dont le silence
ressemble à un résultat », appliqué à une commande qui achète. ressemble à un résultat », appliqué à une commande qui achète.
**Donc : jamais « jusqu'à annulation ».** Trois fins, et la durée est toujours l'une d'elles. **Donc : jamais « jusqu'à annulation ».** Quatre fins, et la durée est toujours l'une d'elles.
La durée est désormais **le filet du filet** : la perte de mesure attrape le cas où l'instrument
se tait ET se signale ; la durée attrape le cas où **même le régime ne se signale pas**. Deux
filets parce que le premier repose lui-même sur un instrument.
Cela rejoint ce que la maquette batterie demande pour son propre boost. Cela rejoint ce que la maquette batterie demande pour son propre boost.
## 6. Ce que ça publie ## 6. Ce que ça publie