{ "matrix": "OTO QA · Matrice de régression exhaustive", "version": "1.0", "reference_cadre": "Roadmap Sprint 8 · QA « Regression tests exhaustifs » · CLAUDE.md #5 (zéro régression silencieuse · niveau 4Big)", "self_module": "qa/regression", "thresholds": { "min_test_files": 1, "min_methods_per_suite": 8 }, "seuil_note": "min_test_files / min_methods_per_suite sont des planchers STRUCTURELS (une suite gated doit exister sur disque et couvrir un minimum) — repris de audit_4big (min_test_methods=8). Aucun chiffre métier / projet n'est défini ici : le nombre de tests verts N'EST PAS écrit dans le spec, il est MESURÉ par `run` (#6 anti-invention).", "discover_cmd": ["python3", "-m", "unittest", "discover", "-s", "tests"], "notes": [ "Harnais de MÉTA-NIVEAU : agrège l'exécution de TOUTES les suites de tests gated du mandat en une seule matrice + un verdict PASS/FAIL. Sprint 8 · QA « Regression tests exhaustifs ».", "Périmètre PROUVÉ, pas déclaré : les suites sont DÉRIVÉES de .gitea/workflows/ci.yml (réutilise q4lib/registry.parse_ci — zéro duplication · #5), jamais listées à la main. Tout job de test ajouté au CI entre automatiquement dans la matrice.", "Séparation des pouvoirs (ISA 315) : le harnais s'exclut lui-même (self_module) — il ne s'auto-exécute pas (évite la récursion) et ne se compte pas dans le total régression.", "ANTI-INVENTION (#6) : le `build` (plan) ne contient AUCUN compteur de résultats (0 test vert écrit à la main) ; seuls des FAITS de disque (fichiers/méthodes test_*) et de CI (job, gate) y figurent. Les compteurs verts/rouges sont produits UNIQUEMENT par `run`, en parsant la sortie réelle de unittest.", "Distinct de l'audit 4Big : audit_4big note la QUALITÉ statique par module (doc/schema/CLI/hand-off) ; ce harnais prouve que chaque suite S'EXÉCUTE AU VERT et fournit le compte agrégé faisant autorité (« N tests verts »). Axes complémentaires, non redondants." ] }