Épingles : écarts correctifs face à l'épingle d'origine, écarts d'harmonisation refigés (05/10)

L'épingle d'origine (fixtures/sorties-origine-2026-09-28.json, générée depuis
le code d'astro-pro) porte les défauts corrigés par 91c755f (eg_phytostation ×3
sur C/eau, basse_planche_bec ×2 sur B et C/alim, lignes forcées orphelines,
FORCE ×4 dans le journal, A/eau par axe en INSUFFISANT). La regénérer depuis
astro-pro reproduirait les défauts ; la regénérer depuis ce paquet en ferait
une épingle sur soi-même. Elle reste donc telle quelle, et :

- scripts/ecarts-correctifs.mjs + fixtures/ecarts-correctifs-2026-10-05.json :
  chaque cellule (profil × mode × axe × champ) qui s'écarte de l'origine est
  figée, avec le détail des lignes ; une cellule absente doit rester identique.
- test/decoupage.test.mjs : test 1 compare aux écarts figés (et vérifie qu'un
  correctif n'introduit jamais un INSUFFISANT ni un total hors ±5 % en global ;
  budgets alloués et poids des axes inchangés) ; test 2 vérifie la propriété du
  découpage contre selectionner() de ce paquet ; test 3 inchangé dans l'esprit.
- Écarts d'harmonisation REFIGÉS (npm run ecarts -- --ecrire 2026-10-05) après
  relecture de docs/CONSTANTES.md : neuf lignes au lieu de onze. Les deux lignes
  perdues (A énergie global 22 → 6 %, C énergie par axe 10 → 3 %) étaient des
  taux calculés sur des kWc fantômes hérités par une batterie ; la couverture y
  est null avec les deux tables. Aucun coefficient ne change. Note datée posée
  dans CONSTANTES.md §1. (La suppression du fichier du 28/09 est partie par
  erreur dans 8465bf7, avec la version : même intention, deux commits.)
- fixtures/README.md et AGENTS.md (règles 6 et 8) : l'épingle d'origine ne se
  regénère pas pour absorber un correctif ; invariants tenus depuis v0.1.1.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tgtn7bJxTLiL2fRCkQMgtR
This commit is contained in:
Jules
2026-10-05 16:39:51 +02:00
co-authored by Claude Fable 5.1
parent 8465bf7204
commit 4f593d2edf
7 changed files with 2042 additions and 26 deletions
+9 -2
View File
@@ -35,14 +35,21 @@ taux de couverture, prix des options). `isolation`, `autoconstruction`, `estimat
Les 28 tests d'origine du cœur autonomie (`test/noyau-origine.test.mjs`) et le test de découpage par
axe (`test/decoupage.test.mjs`, épingle générée depuis le code d'astro-pro) **ne se désactivent
jamais**. Refiger une épingle (`scripts/pin-origine.mjs`, `npm run ecarts -- --ecrire <date>`) est un
acte volontaire, écrit dans le commit, après relecture de `docs/CONSTANTES.md`.
acte volontaire, écrit dans le commit, après relecture de `docs/CONSTANTES.md`. **L'épingle d'origine
ne se regénère pas pour absorber un correctif** : depuis v0.1.1 elle porte des défauts corrigés, et
chaque cellule qui s'en écarte est figée dans `fixtures/ecarts-correctifs-<date>.json`
(`node scripts/ecarts-correctifs.mjs --ecrire <date>`) ; une cellule absente de ce fichier doit
rester identique à l'origine. Les tests de correctifs (`test/correctifs-v0.1.1.test.mjs`) et de
monotonie (`test/monotonie.test.mjs`) ne se désactivent pas non plus.
7. Français avec accents dans les libellés, la doc et les messages ; identifiants en français sans
accents (`sous_total_eur_ht`, `taux_couverture`) ; codes d'axe internes `eau` / `energie` / `alim`
(les postes publiés disent `alimentation`).
8. Un module du noyau (`src/autonomie/noyau/`) se modifie pour corriger un bug **avec un test qui le
montre** et une ligne dans le `CHANGELOG` du commit ; jamais « en passant ». Les bugs latents connus
sont listés dans le RECAP du lot P1.0 (scoreurs sans parse de `parametre_dim`, `_conflit_avec` perdu,
Intl dans les messages de `reajuste`).
Intl dans les messages de `reajuste`). Invariants tenus depuis v0.1.1 : une typologie n'apparaît
qu'une fois par axe, un poste n'a qu'une ligne (la quantité est `dimension`), une ligne forcée par
couplage est lâchée dès que plus rien ne la requiert, le journal n'écrit chaque FORCE qu'une fois.
## Carte du dépôt