[DTP-Worker] Sprint 8 · buffer L75 · Gate intégrité chiffres : étendu à la fiche QA (vert-trompeur 21/534)
Fix vert-trompeur hors périmètre du gate README (session précédente) : - 03_agents/qa/AGENT.md « Verdict agrégé courant » affichait 21 suites·534 tests (PASS) en se disant « jamais compté à la main » — figé à la main, périmé vs le run réel 22/551. Corrigé 21/534→22/551. - ci/README.md : exemple 21·534→22·551 + checklist DevOps 6→7 gates statiques. - Correctif de fond : ci/check_readme_claims.sh RECOMPUTE désormais aussi le compte agrégé de la fiche QA depuis regression_run.json (somme des suites commitées) ; un claim absent échoue aussi. Portée du gate élargie README + fiche QA (en-tête script + ci/README.md §1/§2). Bites : 21/534 → exit1 diff explicite ; claim retiré → exit1. 7 gates verts (dont check_artifacts : aucune dérive out/). Matrice 551/22 PASS inchangée. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,71 @@
|
||||
# Activity Log · 2026-07-31 · Claude Code DTP
|
||||
|
||||
## Session `20260731_033001` · Buffer S8 · « Vert trompeur » : la fiche QA affichait un « verdict agrégé courant » PÉRIMÉ (21/534) en se disant « jamais compté à la main » — hors du périmètre du gate README
|
||||
|
||||
**Tâche** : **Sprint 8 · buffer L75** (DevOps CI/CD · QA). Roadmap fonctionnellement
|
||||
close (22/22 modules 100/100, 551 tests verts, **7** gates statiques). Poursuite de la
|
||||
série anti-dérive : le gate `check_readme_claims` créé la session précédente ne garde que
|
||||
`README.md` ; recherche d'une **même classe de faux-vert hors de son périmètre**.
|
||||
|
||||
### Défaut trouvé — 3 chiffres périmés en SILENCE dans `03_agents/qa/AGENT.md` et `ci/README.md`
|
||||
|
||||
- **Mécanisme** : la session `030001` a corrigé le README **et** claimé avoir corrigé « 3
|
||||
commentaires CI (21 suites · 534 tests) dans `ci.yml` et `check_regression.sh` ». Mais
|
||||
son propre gate ne couvre **que** `README.md`. Deux autres docs d'entrée portaient
|
||||
encore le compte **périmé** — invisibles pour tous les gates (`check_docs` ne valide que
|
||||
les liens) :
|
||||
- **`03_agents/qa/AGENT.md:35`** (le pire) : section « Verdict agrégé courant » →
|
||||
*« **21 suites gated · 534 tests · 534 passés · 0 échec · 0 erreur → verdict `PASS`** »*
|
||||
en déclarant, ligne suivante, *« jamais compté à la main »*. C'était pourtant un
|
||||
compte **figé à la main** qui cite `qa/regression/out/regression_run.json` comme
|
||||
source — alors que le run réel dit **22 / 551**. Une fiche d'agent QA qui **affirme
|
||||
une matrice verte avec des chiffres faux** est le « vert trompeur » le plus grave.
|
||||
- **`ci/README.md:80`** : exemple « compteurs cités partout » figé à « 21 suites · 534
|
||||
tests · PASS » (→ 22 · 551).
|
||||
- **`ci/README.md:184`** : checklist DevOps « les **6 gates** statiques » (→ **7** depuis
|
||||
l'ajout de `check-readme-claims`).
|
||||
- **Preuve au sol** : `git grep -nE '534|21 suites|6 gates'` sur `*.md` (hors logs)
|
||||
ramenait les 3 lignes ; `regression_run.json` recalculé = **22 suites · 551 tests · 551
|
||||
passés · 0 échec · 0 erreur · PASS** (somme des 22 suites du run commité).
|
||||
|
||||
### Fix (2 solutions · CLAUDE.md #4 — retenu : correction + extension du gate au-delà du README)
|
||||
|
||||
- **Correction des 3 chiffres** pour refléter les artefacts (fiche QA 21/534→22/551 ;
|
||||
`ci/README.md` exemple 21·534→22·551 et checklist 6→7 gates). Ligne 132 « Les 6 gates
|
||||
commençaient… » → « Les gates… » (le compte historique contredisait la table §1 à 7).
|
||||
- **Correctif de fond** : **extension de `ci/check_readme_claims.sh`** (7ᵉ gate) au-delà du
|
||||
README. Il **RECOMPUTE** désormais aussi le « Verdict agrégé courant » de la fiche QA
|
||||
depuis `regression_run.json` (compte agrégé faisant autorité, commité · déterministe) :
|
||||
`N suites · M tests · M passés · E échec · E erreur · verdict`, exige l'égalité avec ce
|
||||
qui est **écrit** dans `03_agents/qa/AGENT.md`. Un claim **absent** échoue AUSSI. *(Alt.
|
||||
écartée : 2ᵉ gate dédié — même classe de contrôle « valeur↔artefact » ; l'ajouter au gate
|
||||
existant évite un doublon de câblage CI · #5.)* Le nom de fichier reste inchangé (pas de
|
||||
ré-câblage `ci.yml`/INV-B) ; en-tête du script + `ci/README.md` §1 table + §2 détail mis
|
||||
à jour pour la portée élargie (README **et** fiche QA).
|
||||
|
||||
### Preuves de morsure
|
||||
|
||||
- **Bite 1** (valeur périmée) : réintroduit « 21 suites · 534 tests » ⇒ gate **exit 1**
|
||||
`✗ Fiche QA … dit 21/534/534/0/0/PASS MAIS regression_run dit 22/551/551/0/0/PASS`.
|
||||
- **Bite 2** (claim disparu) : retire toute la ligne « Verdict agrégé » ⇒ **exit 1**
|
||||
`✗ Fiche QA · verdict agrégé — claim INTROUVABLE`.
|
||||
- **Restauré** ⇒ **exit 0** (les 6 claims README + le claim QA verts).
|
||||
|
||||
**Anti-invention (#6)** : rien inventé — le gate **recompute** la vérité depuis
|
||||
`regression_run.json` (somme des suites du run commité) au lieu de figer un compteur ; les
|
||||
3 chiffres corrigés sont tous recoupés sur cet artefact.
|
||||
|
||||
**Non-régression** : **7 gates** locaux verts, dont `check_artifacts` (rebuild + égalité
|
||||
byte de tous les `out/`) ⇒ **aucune dérive d'artefact** (l'audit_4big ne lit ni `03_agents/`
|
||||
ni `ci/` comme evidence → pas de régénération `quality_report`). Matrice **551/22 · PASS
|
||||
inchangée**. Unique « 534 » résiduel = description **historique** volontaire du défaut
|
||||
corrigé (`ci/README.md:130`, comme l'anecdote « demo 18→21 »).
|
||||
|
||||
**Hors périmètre worker (VPS · #8)** : néant (stdlib pur en-repo ; runner Gitea toujours
|
||||
du ressort DevOps).
|
||||
|
||||
**Auto-score 4Big** : 96/100.
|
||||
|
||||
## Session `20260731_030001` · Buffer S8 · « Vert trompeur » : le README (point d'entrée) affichait des chiffres PÉRIMÉS que sa propre source contredisait — aucun gate ne les enforçait
|
||||
|
||||
**Tâche** : **Sprint 8 · buffer L75** (DevOps CI/CD · QA). Roadmap fonctionnellement
|
||||
|
||||
Reference in New Issue
Block a user