[DTP-Worker 20260802_183604] Sprint 8 · buffer · README racine (dérive doc-vs-réalité non gatée) : la puce « Régression » affirmait regression_run.json « non commité par design » → FAUX depuis la refonte baseline byte-gatée (76fb0e7)

Correction de VÉRITÉ (PAS un gate #5, PAS un chiffre inventé #6).

Constat : README.md:44-46 déclarait le compte agrégé « produit par qa/regression
run (non commité par design) ». Or regression_run.json EST commité (git ls-files le
confirme) et sert de baseline byte-identique au gate ci/check_regression.sh (mécanisme
introduit par 76fb0e7) ; le README du module (qa/regression/README.md:50,57-61) ET le
commentaire du gate lui-même (ci/check_readme_claims.sh:264,269 « commité · déterministe
· compte agrégé faisant autorité ») le disent. Le README racine reflétait l'ANCIEN
design pré-76fb0e7.

Angle mort : check_readme_claims ancre le nombre « 22 suites gated » (recompté de
regression_plan.totals.suites) mais PAS le fait-en-clair « (non commité par design) » ;
check_docs ne valide que les liens. La dérive vivait dans l'interstice.

Fix : puce réécrite vers la réalité — regression_run.json désigné artefact « commité et
byte-gaté », lien ajouté ; token gaté **22 suites gated** conservé verbatim ; lien
regression_plan.json préservé ; « non commité par design » supprimé. Aucun 564 hardcodé
(pas de surface non gatée nouvelle · fidèle à « ce README n'introduit aucune donnée nouvelle »).

Vérif : run_ci.sh 30 PASS / 0 FAIL / 0 SKIP (check_docs résout le nouveau lien commité ·
check_readme_claims retrouve 22 suites gated · guard_constraints vert). Zéro gate ajouté,
zéro fichier de code touché, aucune commande VPS.

Note : dir scratch untracked 05_deliverables_mvp/frontend/portails/out_fresh/ (byte-identique
à out/ commité, référencé par aucun code) laissé en place — authorship non confirmé, non
supprimé par prudence (jamais git clean · interdit #1).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Code DTP Worker
2026-08-02 18:47:41 +00:00
parent 3ff51d94fb
commit 97d3b64780
2 changed files with 65 additions and 3 deletions
+60
View File
@@ -1,5 +1,65 @@
# Activity log · 2026-08-02 · Claude Code DTP Worker
## Session `20260802_183604` · Sprint 8 · buffer · Dérive doc-vs-réalité (README racine) : la ligne « Régression » affirmait `regression_run.json` « non commité par design » — FAUX depuis la refonte baseline byte-gatée (`76fb0e7`) → correction de vérité (PAS un gate #5, PAS un chiffre inventé #6)
**Nature — dérive réelle non gatée, corrigée par la vérité (pas un gate de plus).**
Ouverture : arbre propre, `run_ci.sh` **30 PASS / 0 FAIL / 0 SKIP** (7 gates statiques +
23 suites), campagne de gates **saturée**. La file de fiches est close (13/13) et un
**audit doc-vs-réalité frais** (fan-out d'exploration sur les 13 `03_agents/*/AGENT.md`
et les README de module) n'a remonté **aucune** dérive de fiche. Plutôt que d'empiler un
gate redondant (#5, explicitement déconseillé par la mémoire *verify-uncovered-before-gating*)
ou de ré-adosser le `daily_report` (canal 2 déjà à jour — le dernier commit `3ff51d9` **était**
ce rapport), j'ai poussé l'audit vers une surface non couverte : le **README racine**, point
d'entrée du mandat.
**Constat — un fait de commit-status périmé.** `README.md:44-46` (section « État courant »,
puce **Régression**) déclarait : *« le compte de tests agrégé faisant autorité est produit
par `qa/regression run` (**non commité par design**) — plan `…/regression_plan.json` »*.
Or c'est **faux depuis la refonte** :
- Le README **du module** régression (`05_deliverables_mvp/qa/regression/README.md:50,57-61`)
énonce sans ambiguïté que `out/regression_run.json` est **COMMITÉ** et sert de **baseline
byte-identique** au gate `ci/check_regression.sh`, qui régénère un `run` frais et exige
l'**identité byte-for-byte** (+ verdict `PASS`) — mécanisme introduit par le commit
**`76fb0e7`** (« *fix gate check_regression … run baseline commité* »).
- `git ls-files 05_deliverables_mvp/qa/regression/out/` confirme les **trois** artefacts
suivis, dont `regression_run.json`.
- Le **commentaire d'en-tête du gate lui-même** (`ci/check_readme_claims.sh:264,269`) qualifie
`regression_run.json` de « **commité · déterministe** » et de « **compte agrégé faisant
autorité** ».
Le README racine reflétait donc l'**ANCIEN design** (pré-`76fb0e7`, run non commité) — dérive
classique « la doc de tête retarde d'une refonte ».
**Pourquoi aucun gate ne l'attrapait (angle mort, PAS à re-gater).** `check_readme_claims.sh`
ancre la partie **numérique** de cette puce — le motif `\*\*(\d+) suites gated\*\*` recompté
depuis `regression_plan.json::totals.suites` (=22) — mais le **fait en clair** « (non commité
par design) » est une affirmation de **statut de commit**, hors du périmètre des recomputes de
compteurs. `check_docs.sh` ne valide que les **cibles de liens** (le lien `regression_plan.json`
était valide). La dérive vivait précisément dans l'interstice entre « chiffre gaté » et « lien
valide ».
**2 solutions (workflow #4) — la bonne = corriger la doc, pas gater le statut.**
- ❌ Ajouter un gate « statut de commit de `regression_run.json` » : redondant (#5) — le fait
« commité » est déjà **structurellement** prouvé par `check_regression` (qui EXIGE le fichier
commité pour comparer byte-for-byte ; sans lui le gate échouerait). Un checker de prose serait
un doublon de la vérité déjà enforced.
-**Corriger la puce vers la réalité.** Nouvelle rédaction (`README.md:44-48`) :
*« Le **compte de tests agrégé faisant autorité** vit dans `…/regression_run.json`, artefact
**commité et byte-gaté** : `ci/check_regression.sh` régénère un `run` frais et exige l'identité
**byte-for-byte** avec la baseline commitée (verdict `PASS`). Recensement déterministe des
suites : `…/regression_plan.json`. »* — le token gaté **`**22 suites gated**`** est **conservé
verbatim** (le gate le recompte toujours), le lien `regression_plan.json` est **préservé**, un
lien vers `regression_run.json` (commité) est **ajouté**, et le faux « non commité par design »
est **supprimé**. **Aucun chiffre nouveau saisi** (#6) : je n'ai PAS hardcodé le total « 564 »
dans une surface non gatée — je désigne l'artefact commité comme source, fidèle à la promesse
du README (« ce README n'introduit aucune donnée nouvelle »).
**Vérif** (en-repo, zéro contact VPS). `run_ci.sh --static`**7 PASS / 0 FAIL** :
`check_docs` résout le nouveau lien `regression_run.json` (fichier commité) · `check_readme_claims`
retrouve toujours `**22 suites gated**` (== `regression_plan.totals.suites`) · `guard_constraints`
vert. `run_ci.sh` complet → **30 PASS / 0 FAIL / 0 SKIP**. `git status --porcelain` = seuls
`README.md` (+ ce log) modifiés. **Zéro gate ajouté, zéro chiffre inventé, zéro fichier de code
touché, aucune commande VPS.**
## Session `20260802_180604` · Sprint 8 · buffer · Reporting stakeholder (canal 2) — rattrapage du snapshot `daily_reports/2026-08-02` sur les 3 sessions de retouches doc/outillage depuis la clôture `160601` (4ᵉ addendum sourcé · ZÉRO gate ajouté #5)
**Nature — réconciliation de reporting, PAS un gate de plus (CLAUDE.md #5).** Ouverture :
+5 -3
View File
@@ -41,9 +41,11 @@ Transverses : [`devops`](03_agents/devops/AGENT.md) · [`qa`](03_agents/qa/AGENT
- **Qualité 4Big** : **22/22 modules gated à 100/100** (seuil 95 · `CLAUDE.md` #5), verdict `PASS`
— source [`qa/audit_4big/out/quality_report.json`](05_deliverables_mvp/qa/audit_4big/out/quality_report.json).
- **Régression** : **22 suites gated** couvertes bijectivement vs CI ; le compte de tests
agrégé faisant autorité est produit par `qa/regression run` (non commité par design)
— plan [`qa/regression/out/regression_plan.json`](05_deliverables_mvp/qa/regression/out/regression_plan.json).
- **Régression** : **22 suites gated** couvertes bijectivement vs CI. Le **compte de tests
agrégé faisant autorité** vit dans [`qa/regression/out/regression_run.json`](05_deliverables_mvp/qa/regression/out/regression_run.json),
artefact **commité et byte-gaté** : `ci/check_regression.sh` régénère un `run` frais et exige
l'identité **byte-for-byte** avec la baseline commitée (verdict `PASS`). Recensement déterministe
des suites : [`qa/regression/out/regression_plan.json`](05_deliverables_mvp/qa/regression/out/regression_plan.json).
- **Recette roadmap** : **15 promesses** (8 livrables sprint + 7 métriques MVP), **15 `in_repo`
prouvées** (chacune traçant ses items hors-périmètre worker · #8 · ex. M5 « app publiée 2 stores »),
verdict `true` — source [`qa/acceptance/out/acceptance_matrix.json`](05_deliverables_mvp/qa/acceptance/out/acceptance_matrix.json).