Nouveau gate CI bloquant : régénère chaque 05_deliverables_mvp/**/out/ depuis son générateur `build` et exige l'égalité byte-for-byte avec le fichier commité (découverte auto · stdlib pur · zéro pip). Attrape la dérive silencieuse d'un artefact qui auto-résout une valeur depuis un autre module et devient périmé quand la source grandit — dérive qu'aucune suite tests/ (fonctions, pas fichier commité) n'attrapait. Défaut détecté et corrigé par ce gate : demo/scenarios/out/run_sheet.json embarquait ci_modules_count=18 (buildé Sprint 7) alors que qa/audit_4big en compte désormais 21. Régénéré (diff 1 ligne). Consistance live re-vérifiée. Wiring : job check-artifacts + needs du gate agrégé (.gitea/workflows/ci.yml) · doc (ci/README.md). Vérifs : test négatif du gate OK (dérive → EXIT 1), 4 gates statiques EXIT 0, suites CI-parsing vertes (regression/acceptance/audit_4big/demo), 21/21 suites · 534 tests, compteurs dérivés stables. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.7 KiB
Rapport quotidien · 2026-07-30 · Session 27 (20260730_232914)
Sprint 8 · Buffer · Regression exhaustive + DevOps CI/CD
Livrable
Nouveau gate de reproductibilité des artefacts (ci/check_artifacts.sh) +
correction d'une dérive réelle détectée par ce gate.
Défaut corrigé (détecté, pas inventé)
demo/scenarios/out/run_sheet.json était périmé : il embarquait
ci_modules_count = 18 alors que la source vivante (qa/audit_4big) en compte
désormais 21 (suites ajoutées depuis le Sprint 7). Générateur déterministe →
fichier commité jamais régénéré. Dérive silencieuse : les suites tests/
testent des fonctions, pas le fichier commité. Corrigé par régénération
(build -o out, diff 1 ligne 18→21).
Gate systémique (préventif)
ci/check_artifacts.sh régénère chaque 05_deliverables_mvp/**/out/ depuis son
générateur et exige l'égalité byte-for-byte avec le commité. Découverte auto
(zéro liste à la main). Bloquant en CI (.gitea/workflows/ci.yml → check-artifacts
dans needs du gate). stdlib pur, zéro pip.
Vérifications
| Contrôle | Résultat |
|---|---|
| Test négatif du gate (dérive réinjectée) | ✅ EXIT 1 + « DÉRIVE » |
| Gate en état sain | ✅ 18/18 modules reproductibles · EXIT 0 |
| 4 gates statiques (guard/json/docs/artifacts) | ✅ EXIT 0 |
| Suites CI-parsing (regression/acceptance/audit_4big/demo) | ✅ 24 · 31 · 34 · 32 |
| Régression exhaustive | ✅ 21/21 suites · 534 tests |
| Compteurs dérivés stables | ✅ 21 / 534 inchangés |
Hors périmètre worker (VPS · #8)
Néant — modifications 100 % in-repo (gate CI local, doc, artefact régénéré).
Auto-score 4Big : 96/100