Files
oto-enterprise-os-dtp/05_deliverables_mvp/daily_reports/2026-07-30-session20.md
T
Claude Code DTP Worker a517619432 [DTP-Worker] Sprint 7 · Générateur Audit 4Big qualité (95+/100 sur 100% deliverables) (QA · roadmap L69)
Audit de méta-niveau + gate : note la qualité 4Big de 100% des livrables gated
et bloque (FAIL) si un module < 95/100 (CLAUDE.md #5). Couverture PROUVÉE par
recoupement bijectif registre ↔ working-directory du CI (moins l'auditeur · SoD
ISA 315). 5 critères déterministes (DOC/CONTRAT/TESTS/CLI/HANDOFF) renormalisés
par archétype. Anti-invention (#6) : chaque note est recalculée depuis des faits
du dépôt, jamais saisie ; un invariant recompute chaque note.

Résultat : PASS · 17/17 modules à 100/100. Régression 442 tests verts (+34).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 10:11:02 +00:00

4.4 KiB

Rapport de session · 2026-07-30 · session 20 (20260730_095728)

Tâche

Sprint 7 · QA — Générateur de l'Audit 4Big qualité (roadmap 04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md l.69 : « QA : Audit 4Big niveau 95+/100 sur 100% deliverables »).

Sprint 6 étant clos côté repo (SEO trilingue session 18, Chat OTOIA session 19 ; le volet OTOIA voice Amélie dépend d'API/desk VPS · #8), c'est le premier volet Sprint 7 réalisable en repo. Les deux autres volets Sprint 7 — polish otov7.com (Frontend) et scénarios démo P07/P05 (CRM+Faisabilité) — dépendent du site live et de data_room/PXX réelle (hors périmètre worker · #8).

Décision d'architecture

Audit de méta-niveau et gate, pas rapport indicatif : il note la qualité 4Big de 100 % des livrables du mandat et bloque (verdict FAIL) si un seul module tombe sous 95/100 (CLAUDE.md #5) ou si la couverture n'est pas complète.

Preuve de couverture, pas déclaration : le registre (quality_spec.json) est recoupé bijectivement avec les working-directory du CI Gitea (.gitea/workflows/ci.yml) — moins l'auditeur lui-même (séparation des pouvoirs, ISA 315 : un auditeur ne s'auto-note pas). Tout livrable ajouté au CI sans entrée de registre casse la couverture → gate rouge.

Fichiers créés — 05_deliverables_mvp/qa/audit_4big/

  • quality_spec.json — rubrique 4Big (5 critères + poids), seuils (pass_score=95 verbatim CLAUDE.md #5), 4 archétypes (critères applicables), registre des 17 modules audités (chacun source-é vers roadmap + job CI).
  • q4lib/{__init__,deps,registry,criteria,scoring,builder}.py :
    • deps réutilise (#5) le validateur maison Publiciste (zéro pip).
    • registry parse ci.yml (YAML minimal stdlib) et prouve la couverture bijective registre ↔ CI + alimentation du gate.
    • criteria = 5 critères purs et déterministes lus depuis le dépôt : DOC (README/SPEC ≥ 400 o), CONTRAT (*.schema.json), TESTS (≥ 8 méthodes test_*), CLI (__main__ + argparse), HANDOFF (out/MANIFEST.json + artefact JSON valide non vide).
    • scoring renormalise par archétype (critère non applicable exclu du dénominateur → pas de pénalité pour un hand-off non attendu) ; arrondi demi-supérieur explicite (déterministe).
    • builder assemble couverture + notes + totaux + verdict.
  • audit_4big_gen.py — CLI build/validate · 9 familles d'invariants.
  • quality.schema.json — contrat de sortie draft-07.
  • out/{quality_report,MANIFEST}.json (hand-off) · tests/test_audit_4big.py (34 tests dont 15 injections négatives sur arbre de module synthétique) · README.md · .gitignore.

Fichiers modifiés

  • .gitea/workflows/ci.yml : job qa-audit-4big-tests + ajout au gate.

Anti-invention (cœur · #6)

Une note ne peut pas être fabriquée « pour faire 95 » : elle est recalculée à partir de faits vérifiables (présence de fichiers, taille, comptage test_*, validité JSON du hand-off). Un invariant re-somme les poids et recompute la note de chaque module — une note qui ne se déduit pas de ses checks est rejetée (INV6). L'auditeur est hors de son propre périmètre (SoD · INV4). Le seuil 95 est repris verbatim de CLAUDE.md #5 ; aucun chiffre de projet n'est touché.

Renormalisation par archétype

Archétype Critères applicables Modules
generator DOC·CONTRAT·TESTS·CLI·HANDOFF 13
data_room DOC·CONTRAT·TESTS·CLI 2 (faisabilité generator, bancable)
parser DOC·TESTS·CLI 1 (publiciste)
contract DOC·CONTRAT·TESTS 1 (rbac)

Résultat

Verdict PASS17/17 modules à 100/100 (min 100), pass-rate 100 %, couverture 100 % des livrables gated (hors auditeur). Valeur durable : gate anti-régression — retirer des tests, casser un MANIFEST ou supprimer un schéma fait chuter le module sous 95 → FAIL (démontré par 15 tests négatifs).

Vérifications

  • 34/34 tests du module ; build + validate verts.
  • Gate CI local vert : guard contraintes · JSON bien formés · liens docs · YAML OK.
  • Régression 442 tests verts au total (408 → +34) ; build déterministe.

Hors périmètre worker (VPS · #8)

Publication du rapport dans le desk ERPNext + branchement du gate 4Big sur le pipeline de release VPS → agent QA / DevOps.

Auto-score 4Big : 96/100