[DTP-Worker 20260802_173603] Sprint 8 · buffer · ci/README.md : retrait des comptes CI figés « 7 gates / 23 suites »

Même fix que dcb463e, un cran plus haut. dcb463e avait dérivé le décompte 30/23/7
du COMMENTAIRE de run_ci.sh (il se périme à chaque module ajouté/retiré de ci.yml) ;
mais la DOC du lanceur (ci/README.md §« Rejouer le gate EN LOCAL ») re-transcrivait
encore les mêmes nombres à la main : bloc d'usage L34-35 (« 7 gates statiques + 23
suites de module » / « 7 gates ci/*.sh ») + checklist L1601 (« 7 gates statiques »).

Vérif d'exposition (verify-uncovered-before-gating) : mutation 23→24 / 7→8 →
check_readme_claims ET check_docs restent VERTS → surface réellement NON gatée.

Décision FIXER pas gater (fix-vs-gate + local-ci-runner) : ci/README.md:51-54 déclare
lui-même que run_ci.sh « n'a pas à être re-gaté (#5) » (exactitude structurelle) —
gater la prose qui le décrit trahirait cette posture. On retire donc les nombres
figés et on laisse run_ci.sh seul propriétaire du décompte (dérivé de gate.needs,
imprimé à l'exécution + --list). Ajout d'un paragraphe l'explicitant (même raison #6).

Intactes : les « 7 gates re-verts » du CHANGELOG (narratif historique d'états passés
VRAIS, pas une composition vive). Zéro module · zéro gate (#5) · zéro chiffre inventé
(#6) · run_ci.sh 30 PASS · guards verts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Code DTP Worker
2026-08-02 17:41:25 +00:00
parent 68f8c1a718
commit d2ab269684
2 changed files with 57 additions and 4 deletions
+47
View File
@@ -1,5 +1,52 @@
# Activity log · 2026-08-02 · Claude Code DTP Worker
## Session `20260802_173603` · Sprint 8 · buffer · DevOps doc — `ci/README.md` : retrait des comptes CI figés `7 gates / 23 suites` (même fix que `dcb463e`, un cran plus haut · anti-invention #6, PAS un gate #5)
**Contexte — le décompte figé oublié un niveau au-dessus du lanceur.** Ouverture :
arbre propre, `run_ci.sh` **30 PASS / 0 FAIL** (7 gates statiques + 23 suites de
module), file substantielle saturée (22/22 qualité à 100 · 22 suites / 564 méthodes ·
recette 15/15 `in_repo` · 13 fiches · RBAC 50) — tous re-vérifiés indépendamment en
`python3`. Le commit `dcb463e` avait **dérivé** le décompte `30/23/7` dans `run_ci.sh`
(retrait des comptes figés du **commentaire** du script) précisément parce qu'ils se
périment en silence quand un module est ajouté/retiré à `ci.yml`. Mais la **doc du
lanceur**, `ci/README.md` §« Rejouer le gate EN LOCAL », re-transcrivait toujours à la
main les MÊMES nombres : bloc d'usage L34-35 « `tout gate.needs (7 gates statiques + 23
suites de module)` » / « `seulement les 7 gates ci/*.sh` », et checklist L1601 « les **7
gates statiques** apparaissent ». Même « vert trompeur », un cran au-dessus de l'endroit
déjà corrigé.
**Vérif d'exposition (mémoire *verify-uncovered-before-gating*).** Mutation-test :
`23→24` + `7→8` sur ces deux lignes → `check_readme_claims.sh` **exit 0** et
`check_docs.sh` **exit 0** (les deux VERTS) — surface **réellement non gatée**, aucune
protection existante ne mord. Dérivation indépendante de `gate.needs` de `ci.yml`
(classification `bash ci/` == statique, celle de `run_ci.sh::is_static`) confirme
`30 = 7 gates + 23 suites`, EXACTEMENT ce que le README figeait.
**Décision — FIXER, pas gater** (mémoire *fix-vs-gate-a-transitively-protected-constant*
+ *local-ci-runner*). `ci/README.md:51-54` déclare lui-même que `run_ci.sh` « n'a pas à
être re-gaté (#5) » car son exactitude est **structurelle** ; ajouter un gate N+1 sur la
prose qui DÉCRIT ce lanceur trahirait cette posture et prendrait la mauvaise autorité.
La réponse cohérente est celle que `dcb463e` a déjà appliquée un cran plus bas :
**retirer les nombres figés**, laisser `run_ci.sh` seul propriétaire du décompte (dérivé
de `gate.needs`, imprimé à l'exécution + `--list`).
**Réalisé.**
- `ci/README.md` bloc d'usage L34-37 : « 7 gates statiques + 23 suites » → « gates
statiques `ci/*.sh` + suites de module » (qualitatif, non chiffré) ; `--list` annoté
« + décompte dérivé ».
- Ajout d'un paragraphe : le **décompte exact `N jobs = G gates + S suites` est dérivé
de `gate.needs` et imprimé à l'exécution / `--list`, jamais figé ici** (même raison #6
qui l'a retiré du commentaire de `run_ci.sh`).
- Checklist §5 L1601 : « les **7 gates statiques** » → « les gates statiques `ci/*.sh` ».
- **Intactes** : les mentions « 7 gates re-verts » du **changelog** (§ sessions de
mutation-test, L1387-1542) — narratif historique d'états passés VRAIS, pas une
affirmation de composition VIVE ; les figer serait réécrire l'histoire.
**Vérifs (en-repo, zéro contact VPS).** `run_ci.sh --list` imprime toujours «`30 jobs …
: 7 gates statiques ci/*.sh + 23 suites de module`». `run_ci.sh` complet : **30 PASS · 0
FAIL · 0 SKIP**. `grep` des surfaces vives figées → **aucune restante**. Zéro module,
zéro gate ajouté (#5), zéro chiffre inventé (#6).
## Session `20260802_153601` · Sprint 8 · buffer · DevOps outillage — `run_ci.sh` : décompte `30/23/7` DÉRIVÉ à l'exécution (retrait des comptes figés du commentaire · anti-invention #6, PAS un gate #5)
**Contexte — dernière surface figée dans un outil « anti-dérive par construction ».**