[DTP-Worker 20260805_184329] CURRENCY canal stakeholder : baseline régression corrigée (faux-vert jsonschema neutralisé) + 2ᵉ incident RED consigné
Le daily_report/2026-08-05.md s'arrêtait à la session 144304 (HEADf311a1b), 5 commits plus tôt. Recompute python3 indépendant des artefacts COURANTS (HEAD1a44dfe) → DEUX écarts matériels au canal stakeholder, tous deux consignés (rapport hors merge-gate : check_docs + check_readme_claims l'excluent explicitement). ÉCART 1 (matériel) — baseline régression : regression_run.json.totals = 624 ran / 607 passed / 17 skipped / 0 fail / 0 err, verdict PASS ; le rapport publiait « 624 passés · 0 skip ». Le refactor9d30939lance chaque suite sous `python -S` (sans site-packages) reproduisant le runner Gitea pip-less → l'oracle OPTIONNEL jsonschema (17 tests skipUnless, ~1/module) neutralisé partout. AVANT : jsonschema présent local→skipped=0, absent runner→skipped=17 ⇒ regression_run.json commité = FAUX-VERT (vert local, ROUGE runner). APRÈS -S : matrice byte-déterministe cross-environnement, baseline sur couverture garantie (stdlib + validateurs maison). Verdict inchangé PASS. Ligne « Régression » reformulée 607/17-skip ; les « 624/0-skip » antérieurs = snapshots datés KEEP (historical-repro). ÉCART 2 — 2ᵉ tree commité RED capté le jour même : le refactor -S (9d30939) éditait regression/README.md (+11 l) sans rebuild quality_report.json (audit 4Big score le contenu doc → evidence byte-count) → check-artifacts ROUGE (32 PASS·1 FAIL) ; rattrapé ~17 min par9fa464d(rebuild → 1 ligne, PASS 24/24 inchangé). Même classe rebuild-after-doc-edits que l'incident du matin (127ef6f→1321983) ; le rapport n'en consignait qu'UN → honnêteté du canal rétablie. FIX : section « fin de journée · 184329 » (avant/après -S + reformulation ligne Régression · tableau 2ᵉ incident · veille lecture-seule depuisf311a1b: docstring helpersdb91a6bCLEAN + gate constant-anchor1441693+ invariant INV-C PYTHONUTF81a44dfe= PAS un nouveau job, 33 inchangé · ré-attestation HEAD1a44dfe). Tables du matin intactes (snapshots datés), réconciliées explicitement (convention 32→33 jobs). Ré-attestation HEAD1a44dfe: 4Big 24/24 tous==100 coverage.ok PASS · régression 624 ran/607 passed/17 skipped/0/0 PASS · recette 15/15 in_repo · ci_job ×36 · structure run_ci 33 PASS = 8 gates statiques + 25 suites. 0 prod, 0 artefact reconstruit, 0 gate (#5), 0 chiffre saisi (#6 — 24/607/17/33/36 recomputés), 0 VPS (#8). Seules éditions : rapport stakeholder + journal. run_ci 33 PASS · 0 FAIL · 0 SKIP. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -136,3 +136,71 @@ tables ci-dessus **recomputent à l'identique ce jour** (recompute `python3` ind
|
||||
**Portée / anti-churn.** **0 fichier de production édité**, **0 artefact reconstruit**,
|
||||
**0 gate ajouté** (#5), **0 chiffre saisi à la main** (#6 — 24/624/33 dérivés des artefacts
|
||||
et de `run_ci.sh`), **aucune commande VPS** (#8). Seule édition : ce rapport + le journal.
|
||||
|
||||
---
|
||||
|
||||
## Mise à jour fin de journée · session `20260805_184329` — **baseline régression corrigée (faux-vert neutralisé)** + 2ᵉ incident d'intégrité consigné
|
||||
|
||||
Ce rapport s'arrêtait à la session `144304` (HEAD `f311a1b`). **Cinq commits** ont suivi.
|
||||
**Deux sont matériels pour le stakeholder** : (1) la **baseline régression a changé de forme**
|
||||
— un faux-vert latent a été neutralisé, la matrice publiée passe de « 0 skip » à
|
||||
« **17 oracles optionnels ignorés** » (verdict inchangé `PASS`) ; (2) un **2ᵉ tree commité
|
||||
momentanément RED**, capté et corrigé le jour même (même classe que l'incident du matin).
|
||||
Le reste est veille d'intégrité en lecture seule. HEAD courant : `1a44dfe`.
|
||||
|
||||
### (1) Baseline régression durcie — faux-vert `jsonschema` neutralisé (matériel)
|
||||
|
||||
Le refactor `9d30939` lance désormais **chaque suite sous `python -S`** (interpréteur sans
|
||||
`site` → aucun `site-packages` sur `sys.path`), reproduisant fidèlement le runner Gitea
|
||||
pip-less. L'**unique paquet tiers** du corpus — l'oracle **optionnel** `jsonschema`, toujours
|
||||
gardé par `skipUnless`/`try…except ImportError` — est ainsi **neutralisé partout**.
|
||||
|
||||
| Avant `-S` | Après `-S` (baseline courante) |
|
||||
|---|---|
|
||||
| `jsonschema` **présent** en local → `skipped=0` · `passed=624` | `-S` → oracle **absent partout** → `skipped=17` · `passed=607` |
|
||||
| `jsonschema` **absent** sur le runner Gitea → `skipped=17` | matrice **byte-identique** quel que soit ce qui est `pip install`é |
|
||||
| ⇒ `regression_run.json` commité = **FAUX-VERT** (vert en local, **ROUGE** sur le runner) | ⇒ `check_regression` **byte-déterministe** cross-environnement |
|
||||
|
||||
> **Ce que ça garantit au stakeholder.** La baseline publiée était vraie sur un poste où
|
||||
> `jsonschema` était installé, mais **aurait fait rougir la CI** le jour où elle tournerait
|
||||
> sur le runner pip-less réel. Le refactor ancre la baseline sur la **couverture garantie**
|
||||
> (stdlib + validateurs maison) ; les 17 tests neutralisés ne sont que des **doublures de
|
||||
> validation** de schéma, leurs contrats restent couverts par les validateurs maison. Le
|
||||
> verdict reste `PASS` — **aucune** suite rouge, **0 fail / 0 err**. La ligne « Régression »
|
||||
> des tables ci-dessus se lit désormais **624 ran · 607 passés · 17 skip (oracles optionnels) · 0/0 · `PASS`**
|
||||
> (les « 624 passés · 0 skip » des sections antérieures sont des **snapshots datés** vrais à
|
||||
> l'époque, classe *historical-repro = KEEP*).
|
||||
|
||||
### (2) 2ᵉ incident d'intégrité (capté + corrigé le jour même)
|
||||
|
||||
| Événement | Commit | État du tree commité | Résolution |
|
||||
|---|---|---|---|
|
||||
| Le refactor `-S` (ci-dessus) éditait `regression/README.md` (+11 l) **sans rebuild** de `quality_report.json` → l'audit 4Big score le contenu des docs (champ `evidence` byte-count) → `check-artifacts` **ROUGE** | `9d30939` (`161319`) | **RED** (32 PASS · 1 FAIL) | — |
|
||||
| Rebuild `audit_4big` → **1 ligne** modifiée (byte-count), verdict **inchangé** `PASS` 24/24 · `coverage.ok` → tree revenu VERT | `9fa464d` (`164319`) | **VERT** (33 PASS · 0 FAIL) | ✅ rattrapé sous ~17 min |
|
||||
|
||||
> Même classe que l'incident du matin (`rebuild-after-doc-edits`) : éditer une doc **scorée
|
||||
> par audit_4big** sans régénérer `quality_report.json` en dernier laisse `check-artifacts`
|
||||
> dériver. La discipline de gate a **remordu sur le tree commité lui-même** ; le canal
|
||||
> l'enregistre plutôt que de laisser croire à une journée VERTE ininterrompue.
|
||||
|
||||
### Veille d'intégrité en lecture seule / hors merge-gate (0 édition de production)
|
||||
|
||||
| Travail | Commit | Portée | Résultat |
|
||||
|---|---|---|---|
|
||||
| Sweep docstring-vs-code **étendu aux helpers `*lib/`** (surface qu'un scope `*_gen.py` rate) | `db91a6b` (`171321`) | 9 helpers `seolib/…/genlib` (directions A+B) | **CLEAN** · 1 faux-positif réfuté (`finlib/gate.py` illustre les valeurs spec, pas un hardcode) |
|
||||
| **Gate neuf** classe `claude-md-constant-anchor` : prose #9 (3 %/8.5 %/52 %) des modules `bancable`+`commissions` **ancrée sur `CLAUDE.md`** | `1441693` (`174324`) | 4 copies périmées **en silence** dans 2 modules distincts, chacune se réclamant « (#9) » | **teeth-prouvé** (8.5 %→9 % mord les 4 · 52 %→55 % mord 2 · Cardnet→Azul mord l'énum) |
|
||||
| **Invariant neuf** INV-C dans le gate `check_ci_integrity` **existant** : le workflow doit forcer `env: PYTHONUTF8: "1"` | `1a44dfe` (`181325`) | ancre l'I/O UTF-8 top-level → pas de `UnicodeEncodeError` silencieux sur runner locale-ASCII (`print ✅` en fin de build) | ancré ; **pas un nouveau job** (invariant interne · 33 jobs inchangé) |
|
||||
|
||||
### Ré-attestation du point courant (recompute `python3` indépendant ce jour, HEAD `1a44dfe`)
|
||||
|
||||
| Dimension | Recompute `python3` vs artefact commité | = attendu ? |
|
||||
|---|---|---|
|
||||
| Qualité 4Big | `quality_report.json` : **24 modules · tous == 100** · `coverage.ok=true` · verdict `PASS` | ✅ |
|
||||
| Régression (run) | `regression_run.json.totals` : **suites 24 · ran 624 · passed 607 · skipped 17 · 0 fail / 0 err** · verdict `PASS` | ✅ (nouvelle baseline) |
|
||||
| Recette roadmap | `acceptance_matrix.json` : **15/15 `status=in_repo`** · verdict `True` · **`ci_job` ×36** | ✅ |
|
||||
| Structure CI | `run_ci.sh` → **33 PASS · 0 FAIL · 0 SKIP** = **8 gates statiques** (`ls ci/*.sh` hors `lib.sh` = 8) **+ 25 suites** | ✅ concordant |
|
||||
|
||||
**Portée / anti-churn.** **0 fichier de production édité** cette session, **0 artefact
|
||||
reconstruit**, **0 gate ajouté** (#5), **0 chiffre saisi à la main** (#6 — 24/607/17/33
|
||||
recomputés des artefacts + `run_ci.sh`), **aucune commande VPS** (#8). Seule édition :
|
||||
ce rapport + le journal `05_activity_log/`.
|
||||
|
||||
Reference in New Issue
Block a user