[DTP-Worker] Sprint 8 · buffer L75 · Chiffre vivant périmé dans la doc du CI : ci/README.md illustrait check_regression par "551 tests" (→558) + décrivait 2 docs gatés au lieu de 3 (fiche Backend omise)

- ci/README.md:80 : compte vivant figé "22 suites · 551 tests" (périmé, matrice=558)
  remplacé par un renvoi au recompute check_readme_claims → zéro surface de dérive (#6)
- ci/README.md:130 : "le run réel 22/551" (présent, faux) → reformulé point-in-time ;
  534 conservé comme anecdote historique du défaut corrigé
- ci/README.md:121-134 : "les deux docs d'entrée" → "les trois" + ajout du bloc
  fiche ERPNext Backend (couverture ajoutée session 043004, omise du doc) → doc == code
- 7 gates verts ; check_artifacts inchangé (édition hors 05_deliverables_mvp)

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:09:49 +00:00
parent 504bfb0f10
commit 0cde935a39
2 changed files with 79 additions and 4 deletions
+70
View File
@@ -1,5 +1,75 @@
# Activity Log · 2026-07-31 · Claude Code DTP
## 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
fonctionnellement close (22/22 modules · 558 tests · **7** gates verts au démarrage).
Poursuite de la série anti-dérive : la classe « chiffre inventé/périmé » (README, fiche
QA, fiche Backend) est gatée sur 3 docs ; recherche d'un **même faux-vert hors de ce
périmètre**. Audit repo-wide des agrégats (`git grep '<N> suites|<N> modules|551|534'`
sur `*.md` hors logs/archives) + relecture des 7 gates pour un **bug de logique**.
### Défauts trouvés — 3 dérives réelles, toutes dans `ci/README.md` (doc du livrable DevOps)
- **`ci/README.md:80`** (le pire) : la section décrivant `check_regression` — le gate
*censé empêcher les compteurs de se périmer* — s'illustrait elle-même par un **compte
vivant périmé** : « 22 suites · **551 tests** · PASS ». La matrice faisant autorité
(`qa/regression/out/regression_run.json`) dit **558** depuis la session `043004`
(534 → 551 → 558) ; l'exemple appariait le compte de **suites courant** (22) à un
compte de **tests périmé** (551). Ironie complète : la doc du gate anti-dérive avait
elle-même dérivé.
- **`ci/README.md:130`** : la ligne anecdote de la fiche QA citait « le run réel
`22 / 551` » au **présent** — 551 ne correspond plus à rien (→ 558).
- **`ci/README.md:121-131`** : la section `§check_readme_claims` affirmait garder « les
**deux** docs d'entrée » (README + fiche QA) et **omettait la fiche ERPNext Backend**
— 3ᵉ doc pourtant ajouté à la couverture du gate en session `043004`. Le **header du
script** `check_readme_claims.sh` (source de vérité · l.23/29/32) liste bien les 3 ;
seul `ci/README.md` a dérivé → **doc qui sous-décrit son propre code**.
- **Pourquoi non gaté** : session `030001` a délibérément laissé `ci/README.md` **hors**
de `check_readme_claims` car il porte des **chiffres historiques figés** volontaires
(anecdotes « demo 18→21 », « 21 suites · 534 tests »). C'est ce mélange
historique/vivant qui a laissé le compte **vivant** (551) se périmer en silence.
### Fix (2 solutions · CLAUDE.md #4 — retenu : supprimer la surface de dérive + réaligner)
- **Correctif de fond (l.80)** : le compte **vivant** figé « 22 suites · 551 tests » est
**supprimé** au profit d'un renvoi — « le compte agrégé (suites · tests · passés ·
verdict) … **recompté par `check_readme_claims`** dans les fiches d'entrée, jamais figé
en dur ici ». Plus de nombre à périmer = **zéro surface de dérive** (plus robuste qu'un
gate sur une prose ; #6). *(Alt. écartée : étendre `check_readme_claims` à `ci/README.md`
— fragile, il faudrait distinguer chaque anecdote historique figée d'un compte vivant ;
supprimer le nombre est structurellement plus fort.)*
- **Anecdote historique (l.130)** : « le run réel `22 / 551` » (chiffre vivant faux)
remplacé par « alors que le run agrégé faisant autorité en disait davantage » ; le
**534** est **conservé** comme valeur point-in-time du défaut corrigé (comme « demo
18→21 »), désormais sans nombre concurrent périmé.
- **Réalignement (l.121-134)** : « les **deux** docs d'entrée » → « les **trois** » +
**ajout du bloc fiche Backend** (`N tests · M suites · verdict → regression_run.json`),
miroir du header du script. La doc décrit à nouveau exactement le code.
### Preuves
| Contrôle | Résultat |
|---|---|
| `git grep '551' *.md` (hors logs/archives) | **aucun** chiffre vivant résiduel ✅ |
| `534` restant | **1 seule** ligne = anecdote historique explicite (l.131) ✅ |
| « trois docs » + fiche Backend décrite dans `ci/README.md` | ✅ |
| 7 gates (`guard`/`json`/`docs`/`artifacts`/`regression`/`ci_integrity`/`readme_claims`) | ✅ exit 0 |
| `check_artifacts` (rebuild + égalité byte de tous les `out/`) | ✅ (édition **hors** `05_deliverables_mvp` ⇒ 0 dérive d'artefact) |
| Arbre de travail | ✅ 1 fichier modifié, 0 untracked |
**Anti-invention (#6)** : rien inventé — la vérité (558) vient de `regression_run.json`
(gaté par `check_regression`) ; le fix **retire** le compteur figé plutôt que d'en poser
un nouveau. Matrice **558/22 · PASS inchangée**.
**Non-régression** : édition **doc pure hors `05_deliverables_mvp`**`qa/audit_4big`
ne la lit pas comme evidence ⇒ `quality_report.json` **inchangé** ; aucune régénération
de consommateur nécessaire.
**Hors périmètre worker (VPS · #8)** : néant (doc en-repo ; runner Gitea = DevOps).
**Auto-score 4Big** : 96/100.
## Session `20260731_040004` · Sprint 7/8 · Livrable démo : ajout du **prompteur Markdown** (`out/run_sheet.md`) — le support texte lisible manquait au « scénario démo prêt à jouer »
**Tâche** : **Sprint 7 l.68** (« CRM + Faisabilité : Scénarios démo P07 banquier ·