docs(AGENTS): le versant contrat des garde-fous, et une règle ne se propage pas
Deux ajouts qui sortent d'ECS-415, à côté de la règle des garde-fous. Le versant CONTRAT : un contrat qu'aucun appelant n'exerce n'est pas un contrat tenu, c'est un contrat non testé. Le garde-fou dit « une règle que rien ne rejoue se périme » ; le contrat dit « une garantie que personne ne consomme n'a jamais été vérifiée ». D'où la conduite : avant d'exploiter une valeur de retour qu'aucun code n'exploitait, l'épingler d'abord par un test. Le fait de méthode : la règle d'ECS-415 était déjà écrite dans le commentaire de la branche VOISINE, à trois lignes de la branche fautive, et elle ne s'était pas propagée. Une règle écrite à un endroit ne se propage pas toute seule — c'est ce qui justifie de balayer les autres implantations du même contrat plutôt que de corriger localement. Corollaire de relecture : la proximité d'un bon commentaire n'est pas une preuve que le code voisin le respecte. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015F7G5VeaPVSMeVNjiGj36p
This commit is contained in:
parent
d6dc9dcd4e
commit
eba874f735
23
AGENTS.md
23
AGENTS.md
@ -850,6 +850,29 @@ aucune, la décision est une intention, et elle se périmera à la vitesse du co
|
||||
> rien. Chaque test d'invariant de cette semaine a été **vérifié échouant** avant d'être déclaré
|
||||
> prêt — c'est la seule façon de savoir qu'il regarde ce qu'on croit.
|
||||
|
||||
> **Le versant CONTRAT du même principe** : **un contrat qu'aucun appelant n'exerce n'est pas un
|
||||
> contrat tenu, c'est un contrat non testé.** ECS-415 en est le cas d'école — `applyAction()`
|
||||
> renvoyait, sur refus, l'action *demandée* : un appelant y relisait l'état qu'il venait de
|
||||
> demander et concluait au succès. Le défaut a vécu sans conséquence tant que **personne ne
|
||||
> lisait ce retour** (le dispatch l'ignore), et il est devenu grave à la minute où un appelant
|
||||
> s'y est fié — publiant 3 kW rendus par une PAC restée en état 4.
|
||||
>
|
||||
> Les deux se répondent : le garde-fou dit « une règle que rien ne rejoue se périme », le
|
||||
> contrat dit « une garantie que personne ne consomme n'a jamais été vérifiée ». Avant
|
||||
> d'exploiter une valeur de retour qu'aucun code n'exploitait, **l'épingler d'abord par un
|
||||
> test** — le premier appelant est aussi le premier vérificateur.
|
||||
|
||||
> **Fait de méthode, relevé le 2026-08-30** : la règle d'ECS-415 était **déjà écrite**, dans le
|
||||
> commentaire de la branche voisine du même fichier, **à trois lignes** de la branche fautive
|
||||
> (« ce retour était MUET, si bien que "état déjà bon" ne se distinguait pas de "action jamais
|
||||
> reçue" »). Elle ne s'était pas propagée pour autant.
|
||||
>
|
||||
> **Une règle écrite à un endroit ne se propage pas toute seule.** C'est ce qui justifie, quand
|
||||
> un défaut de ce genre apparaît, de **balayer les autres implantations du même contrat** plutôt
|
||||
> que de corriger localement — le balayage a trouvé le même travers sur la branche « motif
|
||||
> vide » du `RelayRouter` et de l'`EtmVariableLoadAdapter`. Corollaire pour la relecture : la
|
||||
> proximité d'un bon commentaire n'est **pas** une preuve que le code voisin le respecte.
|
||||
|
||||
## RÉPONSES FIGÉES (ne plus poser ces questions)
|
||||
|
||||
- Plages HC/HP et tarifs : **configuration JSON**, jamais hardcodé. Prévoir Tempo
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user