[DTP-Worker] Sprint 8 · buffer L75 · Comptes vivants "551 tests" périmés DANS la machinerie CI (ci.yml + check_regression.sh + check_readme_claims.sh), non gatés → renvoi artefact (→558)

Même classe de vert-trompeur que ci/README.md (session 050007) mais dans le
code des gates : 3 comptes vivants figés "22 suites · 551 tests · PASS" (matrice
534→551→558). L'ironie : le header de check_regression — le gate anti-péremption
de la matrice — s'était lui-même périmé. Fix précédent 050007 : suppression de la
surface de dérive (retrait du nombre figé → renvoi à regression_run.json), pas
551→558. Progressions historiques "534→551→558" conservées. 7 gates verts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Code DTP Worker
2026-07-31 05:34:20 +00:00
parent 0cde935a39
commit 11f1250b29
4 changed files with 68 additions and 6 deletions
+59
View File
@@ -1,5 +1,64 @@
# Activity Log · 2026-07-31 · Claude Code DTP
## Session `20260731_053011` · Buffer S8 · Comptes vivants « 551 tests » périmés DANS la machinerie CI elle-même (`.gitea/workflows/ci.yml` + `ci/check_regression.sh` + `ci/check_readme_claims.sh`) — non couverts par aucun gate
**Tâche** : **Sprint 8 · buffer L75** (DevOps CI/CD · QA régression). Roadmap
fonctionnellement close (22/22 modules · **558** tests · 7 gates verts). Poursuite de
la série anti-dérive (CLAUDE.md #6). Les sessions précédentes ont gaté les comptes vivants
des **docs** d'entrée (README, fiches QA/Backend) puis nettoyé la **doc du CI** (`ci/README.md`,
session `050007`). Recherche du même faux-vert **hors de ce périmètre** : audit `git grep '551'`
repo-wide (pas seulement `*.md`) → la machinerie CI **opérationnelle** (workflow + headers de
gates), qu'**aucun gate ne couvre**.
### Défauts trouvés — 3 comptes vivants « 551 » périmés (→ 558), dans le code des gates
- **`.gitea/workflows/ci.yml:67`** : le commentaire du job `check-regression` décrivait
l'artefact commité comme « **22 suites · 551 tests · PASS**, cité dans toute la doc » —
compte **vivant figé** périmé (matrice 534 → 551 → **558**).
- **`ci/check_regression.sh:8`** (l'ironie, encore) : le **header du gate de fraîcheur de
la matrice** — dont le rôle même est d'empêcher le compte agrégé de se périmer —
s'illustrait par « totaux « **22 suites · 551 tests · verdict PASS** » cité partout ».
Le gardien anti-péremption avait lui-même péri.
- **`ci/check_readme_claims.sh:152`** : l'anecdote décrivant le défaut QA disait « … alors
que **le run dit 22 / 551** » — présent de l'indicatif ⇒ prétention **vivante** du compte
courant, désormais fausse (558). *(Le « 21 suites · 534 tests » de la même ligne est
l'anecdote historique point-in-time du défaut corrigé — conservé.)*
- **Pourquoi non gaté** : `check_readme_claims` ne couvre que README + fiches QA/Backend ;
ces fichiers **mélangent** narratifs historiques figés volontaires (progression
« 534 → 551 → 558 ») et comptes vivants — exactement le motif qui a laissé `ci/README.md`
dériver (session `050007`).
### Fix (2 solutions · CLAUDE.md #4 — retenu : supprimer la surface de dérive · précédent `050007`)
Plutôt que réécrire 551→558 (qui re-dériverait au prochain ajout de suite), **retrait du
nombre vivant figé** au profit d'un renvoi à l'artefact — « les totaux agrégés (suites · tests ·
verdict) dont la doc dérive, **jamais figés en dur ici** ». Zéro nombre à périmer = **zéro
surface de dérive**, structurellement plus fort qu'un gate sur de la prose (#6).
- `ci.yml:67` & `check_regression.sh:8` : compte figé → renvoi descriptif à `regression_run.json`.
- `check_readme_claims.sh:152` : « le run dit 22 / 551 » → « le run agrégé faisant autorité
en disait déjà **davantage** (recompté ci-dessous, jamais figé ici) » — formulation
identique à celle appliquée à `ci/README.md` en session `050007`. Le **534** point-in-time
reste comme valeur du défaut.
- *(Alt. écartée : étendre `check_readme_claims` à `ci.yml`/`ci/*.sh` — fragile, il faudrait
distinguer chaque progression historique figée d'un compte vivant ; le retrait est plus fort.)*
### Preuves
| Contrôle | Résultat |
|---|---|
| `git grep '551'` hors logs/daily_reports/progression `534→551→558` | **aucun** compte vivant résiduel ✅ |
| 7 gates (`guard`/`json`/`docs`/`artifacts`/`regression`/`ci_integrity`/`readme_claims`) | ✅ exit 0 |
| `check_artifacts` (rebuild + égalité byte des `out/`) | ✅ (édition **hors** `05_deliverables_mvp` ⇒ 0 dérive d'artefact) |
| `check_ci_integrity` (câblage `gate.needs` inchangé) | ✅ |
| Diff | 3 fichiers · +9/6 · 0 untracked |
**Hors périmètre worker (VPS · #8)** : néant (commentaires CI en-repo, aucun touch prod).
**Anti-invention (#6)** : rien inventé — retrait de nombres figés, la vérité reste recomputée
par les gates depuis `regression_run.json`.
**Auto-score 4Big** : 96/100.
---
## Session `20260731_050007` · Buffer S8 · Chiffre vivant périmé DANS la doc du CI (`ci/README.md`) — le gate `check_regression` était illustré par un compte de tests faux, et `check_readme_claims` sous-décrit (2 docs au lieu de 3)
**Tâche** : **Sprint 8 · buffer L75** (DevOps CI/CD · QA régression). Roadmap