Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.7 KiB
Rapport de session · 2026-07-30 · session 24
Tâche
Sprint 8 · QA (buffer L75 · recette) — Générateur de la Matrice d'acceptation / traçabilité MVP : mappe chaque promesse de la roadmap (8 livrables de sprint L33..L76 + 7 métriques succès MVP L81..L87) vers sa preuve livrée (module gated du CI) OU un hors-périmètre worker sourcé.
Sprint 8 étant le dernier (déploiement VPS réel + monitoring hors périmètre worker · #8), le volet réalisable en-repo restant est la recette : prouver que le MVP promis est intégralement honoré et que ce qui reste est explicitement hors périmètre. C'est la consolidation naturelle du « DELIVERABLE MVP » (L76) et des métriques succès (L80-87).
Gap comblé
Aucun artefact ne traçait les promesses roadmap vers les livrables. Les preuves étaient éparpillées (gap analysis Sprint 1 + 23 rapports de session) sans vue bijective « promesse → preuve », ni recensement des parties hors périmètre worker (builds stores, indexation runtime, voix Amélie, déploiement VPS).
Décision d'architecture
Harnais de MÉTA-NIVEAU orienté RECETTE, axe distinct des 4 autres méta (non redondant · #5) :
| Harnais | Axe prouvé |
|---|---|
qa/audit_4big |
qualité statique par module (95+/100) |
qa/regression |
chaque suite s'exécute au vert |
devops/deploy_runbook |
ordre de déploiement VPS |
qa/acceptance (nouveau) |
couverture des promesses roadmap |
Anti-invention (cœur · #6)
- Périmètre PROUVÉ : les modules-preuve sont dérivés du CI
(
q4lib.registry.parse_ci, réutilisé · zéro duplication · #5) et confrontés de façon BIJECTIVE — un module gated non tracé OU une preuve non gated → génération refusée ; la validation recalcule la couverture depuis le CI. - Cross-cohérence : la fenêtre de sprint de chaque module est lue dans le
registre de l'auditeur 4Big (
quality_spec.json), jamais re-déclarée (anti-dérive) ; l'auditeur lui-même (SoD · absent de son registre) reçoit sa fenêtre viaextra_module_sprint, avec source. - Partition exacte par sprint : chaque livrable SX cite exactement les modules gated de fenêtre SX (ni trou ni chevauchement).
- Zéro chiffre fabriqué : les nombres des énoncés (
<1h,95/100,7 dashboards,2 stores) sont des citations verbatim de la roadmap ; la matrice ne prétend aucune mesure de performance. - Tout hors-périmètre porte une source (#8 VPS · builds stores · runtime) ; SoD : la matrice ne se cite jamais elle-même.
Fichiers créés — 05_deliverables_mvp/qa/acceptance/
acceptance_spec.json(8 livrables de sprint + 7 métriques MVP ·roadmap_linepour chacun · hors-périmètre sourcé · 0 chiffre fabriqué)acclib/{__init__,deps,builder}.py(depsréutiliseparse_ci+ validateur Publiciste + registre 4Big ;builderpur/déterministe)acceptance_gen.py(CLIbuild/validate· 10 familles d'invariants)acceptance.schema.json(contrat draft-07)out/{acceptance_matrix,MANIFEST}.json(hand-off · verdict) ·tests/test_acceptance.py(31 tests dont 14 injections négatives) ·README.md·.gitignore
Fichiers modifiés
.gitea/workflows/ci.yml: jobqa-acceptance-tests+ ajout augate.qa/audit_4big/: enregistrement du module (couverture bijective 20 → 21 · PASS 21/21 à min 100) ;out/régénéré.devops/deploy_runbook/:module_phase+qa/acceptance(phaseverification-qa) ; couverture bijective 20 → 21 ;out/régénéré.qa/regression/out/: plan régénéré (20 → 21 suites · découverte auto CI).
Résultat
Matrice verdict=true — 15 promesses roadmap (8 sprint + 7 métriques) ·
21 modules gated tracés sans doublon (bijectif) · partition par sprint
exacte (S2=7, S3=1, S4=5, S5=2, S6=2, S7=2, S8=2 ; S1 sur artefact) ·
12 hors-périmètre sourcés.
Vérifs
- 31/31 tests module ; validations méta vertes (audit_4big 21/21 min 100 · deploy 21/21 bijectif · regression 21 suites · acceptance bijectif+partition).
- Régression
runexhaustive : 21/21 suites vertes · 534 tests passés · 0 échec · 0 erreur (503 → +31). - Gate CI statique local vert (guard constraints · JSON · docs · YAML
ci.yml). - Build déterministe (régénérable bit-à-bit).
Hors périmètre worker (VPS · #8)
Ce module ne déploie rien : il produit un document de recette en-repo. L'exécution réelle (démo publique, application du run-book VPS, builds stores, indexation, voix Amélie) revient à l'agent DevOps / la direction.