[DTP-Worker 20260803_053701] log · session fix dérive regression_run.json doc-vs-réalité

This commit is contained in:
Claude Code DTP Worker
2026-08-03 05:43:26 +00:00
parent 89eb8e68ad
commit 3d8ccb0249
+40
View File
@@ -474,3 +474,43 @@ one-liner préservées ; détail placé en sous-section, cf. discipline `ci-read
**Vérifications.** `./run_ci.sh` → **30 PASS · 0 FAIL · 0 SKIP** (dont `check-docs` liens **Vérifications.** `./run_ci.sh` → **30 PASS · 0 FAIL · 0 SKIP** (dont `check-docs` liens
OK · `check-readme-claims` vert). Aucune commande VPS (#8) · aucun `git clean` <!-- ci-allow : mention de l'interdit, jamais exécuté -->. OK · `check-readme-claims` vert). Aucune commande VPS (#8) · aucun `git clean` <!-- ci-allow : mention de l'interdit, jamais exécuté -->.
## Session `20260803_053701` · fix · Dérive doc-vs-réalité `regression_run.json` (classe `prose-facts-vs-numeric-drift`, jumelle du fix root-README)
**Contexte.** Repo tout-vert au démarrage (`run_ci.sh` 30 PASS / 0 FAIL). Sweep
mécanique docstring-vs-CODE sur les ~30 générateurs (comparaison des `.json`
listés dans chaque docstring vs les littéraux écrits par `os.path.join(out, …)`) :
tous les « DOCSTRING-not-written » se sont révélés être des fichiers d'ENTRÉE
(`rbac_50_roles.json`, `BRIEF.json`, `eas.json`…) → faux positifs. **Un seul**
écart réel : `regression_gen.py` écrit `regression_run.json` sans que la doc le
qualifie correctement.
**Dérive trouvée (réelle, prose-fact ungated).** Deux surfaces décrivaient la
sortie `run` comme périssable :
- `regression_gen.py` docstring l.26 : « Sortie NON déterministe → non commitée. »
- `qa/regression/README.md` § hand-off VPS l.76 : « Le mode `run` reste **manuel**
(non déterministe · non gated push/PR). »
**Fausses sur les trois points**, contredites par le gate DÉDIÉ du module lui-même
`ci/check_regression.sh` (= step `check-regression` de `.gitea/workflows/ci.yml`,
confirmé vert) : `regression_run.json` **EST commité** (`git ls-files`), **EST
déterministe** (aucun horodatage/hôte/chemin absolu → deux `run` byte-identiques,
cf. en-tête gate l.24-25) et **EST byte-gaté à chaque push/PR**. C'est exactement
la dérive « regression_run.json non commité » déjà corrigée dans le README **racine**
(commit 76fb0e7, cf. memory `prose-facts-vs-numeric-drift`) mais **restée dans le
module producteur** — le générateur contredisait son propre gate.
**Correctif.** Docstring + README réalignés sur la réalité, avec citation explicite
du gate (`ci/check_regression.sh` / `ci/check_artifacts.sh`). Ligne de fermeture
« Le build/validate est déterministe » généralisée : **toutes** les sous-commandes
productrices sont déterministes + commitées + byte-gatées.
**Consommateur régénéré (`artifact-reproducibility-gate`).** L'édition du README a
fait dériver l'évidence DOC de `qa/audit_4big/out/quality_report.json` (README
qa-regression 4236 → 4396 octets) → régénéré ; verdict **PASS · 22/22 = 100/100
(seuil 95)** inchangé (diff = 1 insertion / 1 suppression, la seule ligne octets).
La docstring `.py` n'est lue en octets par aucun gate → pas d'autre consommateur.
**Gate-neutre.** `./run_ci.sh` → **30 PASS · 0 FAIL · 0 SKIP**. Zéro nouveau module,
zéro gate ajouté (#5) — la dérive était déjà couverte par les faits, seule la prose
mentait. Commit `89eb8e6`.