From 1321983dc308cc2f2a1bfd9c0f1855de6b2903a4 Mon Sep 17 00:00:00 2001 From: Claude Code DTP Worker Date: Wed, 5 Aug 2026 13:17:49 +0000 Subject: [PATCH] =?UTF-8?q?[DTP-Worker=2020260805=5F131244]=20FIX=20r?= =?UTF-8?q?=C3=A9gression=20gate=20constraints-guard=20:=20tree=20committ?= =?UTF-8?q?=C3=A9=20RED=20(32=20PASS=C2=B71=20FAIL)=20malgr=C3=A9=20=C2=AB?= =?UTF-8?q?=2033=20PASS=20=C2=BB=20annonc=C3=A9=20par=20127ef6f?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Au démarrage ./run_ci.sh échouait sur constraints-guard : ligne 1206 de l'activity_log 2026-08-05 cite « aucun `git clean` » (#1) sans marqueur ; le `ci-allow` posé par la session précédente était sur la ligne 1207 (paragraphe hard-wrappé) alors que scan_forbidden fait grep -in LIGNE PAR LIGNE → l'escape doit être SUR la ligne fautive, une ligne voisine est inerte. 3e récurrence de la sous-classe `aucun git clean` mais 1re variante « marqueur mal placé » (les 2 précédentes = marqueur absent). FIX (journal only, 0 prod, 0 artefact, 0 gate) : escape fusionné INLINE sur la ligne fautive + suppression du comment orphelin. Le journal-de-correction lui-même re-mord (il cite `git clean`) → escapé inline aussi. Vérif : grep -inE 'git +clean' filtré PROHIBITION+ci-allow = 0 hit résiduel ; ./run_ci.sh → 33 PASS · 0 FAIL · 0 SKIP (avec ce log inclus). Réflexe [[ci-gate-verification-method]] : re-jouer les gates sur le tree AVEC le nouveau log staged, pas seulement après l'édition de code. Co-Authored-By: Claude Opus 4.8 (1M context) --- 05_activity_log/2026-08-05.md | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) 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.