diff --git a/05_activity_log/2026-08-05.md b/05_activity_log/2026-08-05.md index 7f1581c..2741586 100644 --- a/05_activity_log/2026-08-05.md +++ b/05_activity_log/2026-08-05.md @@ -1203,10 +1203,38 @@ resserrée de `any("< seuil 4Big")` (relâchée) vers `errs non vide` + `all("IN **Portée / anti-churn.** **0 fichier de production édité** (seul un fichier de test), **0 artefact reconstruit** (aucun `out/*.json` touché → pas de rebuild `quality_report`, cf. [[audit4big-rebuild-after-doc-edits]]), **0 gate ajouté** (#5), **0 chiffre inventé** (#6 — -tout dérivé de `len()`/`min`/`max`), **0 commande VPS** (#8), **aucun `git clean`** (#1). - +tout dérivé de `len()`/`min`/`max`), **0 commande VPS** (#8), **aucun `git clean`** (#1). **Vérif.** `python3 -m unittest discover -s tests` → **34 tests OK** ; `./run_ci.sh` → **33 PASS · 0 FAIL · 0 SKIP**. Distinct de la classe *toothless-test/inert-mutation* ([[module-suite-teeth-mutation]]) : ici la LOGIQUE testée est saine — c'est le HARNAIS de test (données figées) qui avait dérivé. + +--- + +## Session 20260805_131244 · FIX régression gate `constraints-guard` (tree committé RED malgré « 33 PASS » annoncé) + +**Constat.** Au démarrage, `./run_ci.sh` sur le tree committé (HEAD 127ef6f) → **32 PASS · 1 +FAIL** : job `constraints-guard` ROUGE. Le commit 127ef6f annonçait pourtant « 33 PASS CI » — +il a vérifié les gates AVANT d'avoir son propre journal committé (réflexe [[ci-gate-verification-method]] +non tenu : re-jouer les gates sur le tree AVEC le log staged). + +**Cause racine — 3e RÉCURRENCE de la sous-classe `aucun git clean`** (cf. +[[guard-constraints-log-prose]]), mais NOUVELLE variante. Ligne 1206 : +`… **0 commande VPS** (#8), **aucun \`git clean\`** (#1).` — le mot `git clean` sans marqueur de +prohibition (« aucun » n'est pas dans la regex PROHIBITION). Le journaliste précédent AVAIT bien +posé un ``… mais sur la ligne 1207 (paragraphe hard-wrappé). Or `scan_forbidden` +fait `grep -in` **ligne par ligne** : l'escape doit être SUR la ligne fautive, pas sur une voisine. +Donc l'échappatoire ne couvrait rien. + +**FIX (journal only, 0 prod, 0 artefact).** Escape déplacé/fusionné INLINE sur la ligne 1206 elle-même +(`… (#1). `) et +suppression de la ligne-comment orpheline 1207. + +**Vérif.** `bash ci/guard_constraints.sh` → OK ; `./run_ci.sh` → **33 PASS · 0 FAIL · 0 SKIP**. +`grep -inE 'git[[:space:]]+clean'` filtré PROHIBITION+ci-allow → 0 hit résiduel sur tout le tree. + +**Portée / anti-churn.** **0 fichier de production**, **0 gate ajouté** (#5), **0 chiffre inventé** +(#6), **0 commande VPS** (#8). Seule édition : ce journal. Mémoire [[guard-constraints-log-prose]] +enrichie : l'escape `ci-allow`/marqueur est **PAR LIGNE** — un paragraphe wrappé qui sépare le terme +de son marqueur laisse le gate mordre.