From 89eb8e68adce29e7e8718df174f145afc24a6452 Mon Sep 17 00:00:00 2001 From: Claude Code DTP Worker Date: Mon, 3 Aug 2026 05:43:06 +0000 Subject: [PATCH] =?UTF-8?q?[DTP-Worker=2020260803=5F053701]=20Sprint=208?= =?UTF-8?q?=20=C2=B7=20fix=20=C2=B7=20D=C3=A9rive=20doc-vs-r=C3=A9alit?= =?UTF-8?q?=C3=A9=20regression=5Frun.json=20(classe=20prose-facts,=20jumel?= =?UTF-8?q?le=20du=20fix=20root-README)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `regression_gen.py` (docstring l.26) ET `qa/regression/README.md` (§ hand-off VPS l.76) décrivaient encore la sortie `run` comme « NON déterministe → non commitée » / « manuel · non gated push/PR ». Faux sur les trois points, contredit par son propre gate dédié `ci/check_regression.sh` (step `check-regression` de ci.yml) : `regression_run.json` EST commité (git ls-files), EST déterministe (aucun horodatage/hôte → deux `run` byte-identiques, en-tête du gate l.24-25) et EST byte-gaté à chaque push/PR. Même dérive « regression_run.json non commité » déjà corrigée dans le README racine (76fb0e7) mais restée dans le module lui-même. Réalignés sur la réalité + citation du gate. Consommateur `qa/audit_4big/out/ quality_report.json` régénéré (évidence DOC 4236→4396 octets · verdict PASS 22/22 ≥95 min 100 inchangé · 1 insertion/1 suppression · artifact-reproducibility-gate). Docstring .py non byte-gatée (aucun gate n'en lit les octets). run_ci.sh 30 PASS 0 FAIL. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../qa/audit_4big/out/quality_report.json | 2 +- 05_deliverables_mvp/qa/regression/README.md | 8 +++++--- 05_deliverables_mvp/qa/regression/regression_gen.py | 10 ++++++++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/05_deliverables_mvp/qa/audit_4big/out/quality_report.json b/05_deliverables_mvp/qa/audit_4big/out/quality_report.json index f96f4cd..81e00e7 100644 --- a/05_deliverables_mvp/qa/audit_4big/out/quality_report.json +++ b/05_deliverables_mvp/qa/audit_4big/out/quality_report.json @@ -900,7 +900,7 @@ "criterion": "DOC", "weight": 20, "passed": true, - "evidence": "README.md (4236 octets)" + "evidence": "README.md (4396 octets)" }, { "criterion": "CONTRAT", diff --git a/05_deliverables_mvp/qa/regression/README.md b/05_deliverables_mvp/qa/regression/README.md index 64fd29b..3dff79b 100644 --- a/05_deliverables_mvp/qa/regression/README.md +++ b/05_deliverables_mvp/qa/regression/README.md @@ -71,9 +71,11 @@ rejoue que `build` (déterministe) et **ignore** cet artefact d'exécution. ## Hand-off VPS (hors périmètre worker · #8) -Planifier `run` sur le runner CI/VPS et publier le compte agrégé dans le desk -ERPNext / le pipeline de release → agent **QA / DevOps**. Le mode `run` reste -**manuel** (non déterministe · non gated push/PR), comme la baseline E2E. +Publier le compte agrégé dans le desk ERPNext / le pipeline de release → agent +**QA / DevOps**. Le `run` lui-même n'est PAS manuel côté worker : sa sortie +`regression_run.json` est **déterministe** (aucun horodatage/hôte) donc commitée +et **byte-gatée à chaque push/PR** par `ci/check_regression.sh`. Ce qui reste +hors périmètre (#8), c'est sa **publication** VPS (desk / release). ## Auto-score 4Big diff --git a/05_deliverables_mvp/qa/regression/regression_gen.py b/05_deliverables_mvp/qa/regression/regression_gen.py index 653a43f..4578c22 100644 --- a/05_deliverables_mvp/qa/regression/regression_gen.py +++ b/05_deliverables_mvp/qa/regression/regression_gen.py @@ -23,9 +23,15 @@ Sous-commandes : suite passe sous les planchers structurels. run [-o OUT] → exécute réellement toutes les suites, agrège la matrice live + verdict ; sort en erreur (code ≠ 0) si une suite est - rouge. Sortie NON déterministe → non commitée. + rouge. Écrit `regression_run.json` : bien qu'il porte les + compteurs réellement exécutés, il ne contient AUCUN + horodatage/hôte/chemin absolu → deux `run` sont + byte-identiques, donc l'artefact EST commité et byte-gaté + par `ci/check_regression.sh` (toute dérive = CI rouge). -Le `build`/`validate` est déterministe (tri stable, aucun horodatage) → diffable. +Toutes les sous-commandes productrices sont déterministes (tri stable, aucun +horodatage) → artefacts diffables + commités + byte-gatés : `regression_plan.json` +par `ci/check_artifacts.sh`, `regression_run.json` par `ci/check_regression.sh`. """ from __future__ import annotations