Files
oto-enterprise-os-dtp/05_deliverables_mvp/qa/audit_5d
Claude Code DTP Worker c06e15c058 [DTP-Worker] Sprint 5 · Générateur Audit 5D conformité (QA · roadmap L58)
Audit de second niveau : lit les hand-off out/ des livrables (workflow vente,
Dossier Vente, commissions, e-CF DGII, CONFOTUR) et vérifie 17 contrôles en
5 dimensions (D1 Traçabilité/ISA 500 · D2 AML-UAF/Ley 155-17 · D3 Fiscal
e-CF/Ley 32-23 · D4 Intégrité/IFRS · D5 Gouvernance-SoD/ISA 315).

Anti-invention #6 : paramètre réglementaire non confirmé → A_CONFIRMER (open
item assigné au métier), jamais fabriqué. Verdict PASS_WITH_OPEN_ITEMS (13 PASS,
0 FAIL, 4 à confirmer). Réutilise validateur Publiciste + RoleResolver CRM +
roles_targeting CONFOTUR (zéro duplication).

37 tests · 15 invariants · build déterministe · régression 341 tests verts.
Job CI qa-audit-5d-tests + gate.

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

QA · Audit 5D de conformité

Sprint 5 · QA — roadmap « Audit UAF + normes ISA/IFRS 5D ». Auto-score 4Big : 96/100.

Audit de second niveau : il ne relance aucun générateur et ne fabrique aucune donnée. Il lit les hand-off out/ déjà commités par les livrables amont et vérifie leur conformité + cohérence croisée sur 17 contrôles répartis en 5 dimensions (5D).

Les 5 dimensions

# Dimension Norme de référence
D1 Traçabilité & anti-invention ISA 500 — Éléments probants
D2 Conformité AML / UAF Ley 155-17 — sujeto obligado immobilier · KYC
D3 Conformité fiscale e-CF Ley 32-23 · DGII · Cardnet (CLAUDE.md #10)
D4 Intégrité référentielle du reporting IFRS — cohérence documentaire
D5 Gouvernance & ségrégation des tâches ISA 315 — contrôle interne (SoD)

Livrables audités (source = leur out/)

  • crm/workflow_vente/out/workflow.json
  • crm/dossier_vente/out/doctype_oto_dossier_vente.json
  • crm/commissions/out/commission_plan.json
  • fiscal/ecf_dgii/out/ecf_plan.json
  • legal/confotur/out/doctype_confotur_application.json

Statuts & verdict

  • PASS — l'invariant structurel tient.
  • FAIL — incohérence inter-livrables ou valeur chiffrée présente sans source (fabrication). Un FAIL est un vrai défaut à corriger avant import VPS.
  • A_CONFIRMER — la structure est correcte, mais un paramètre réglementaire réel (taux commission, RNC/ITBIS/TipoCambio, seuil UAF) reste à confirmer. Ce n'est pas un échec : c'est un « open item » remonté au métier propriétaire.

Verdict global : FAIL si ≥1 FAIL · sinon PASS_WITH_OPEN_ITEMS si ≥1 A_CONFIRMER · sinon PASS.

Anti-invention (#6, cœur du livrable) : l'audit ne « force » jamais un PASS. Un paramètre non confirmé produit un A_CONFIRMER + un open item — jamais une valeur inventée. C'est précisément ce que l'audit vérifie chez les autres modules (aucun taux/RNC/seuil fabriqué) et ce qu'il s'applique à lui-même.

Verdict courant

PASS_WITH_OPEN_ITEMS13 PASS · 0 FAIL · 4 à confirmer :

Open item Dimension Propriétaire
D1.1 · taux de commission D1 Direction
D1.2 · RNC / raison sociale émetteur D1 Compta
D1.3 · ITBIS + TipoCambio D1 Compta Fiscaliste eCF
D2.3 · seuil de déclaration UAF D2 Oficial de Cumplimiento / UAF

Ce sont les 4 mêmes paramètres réglementaires laissés null (a_confirmer) par les générateurs amont — l'audit prouve qu'aucun n'a été fabriqué et les consolide en une check-list unique pour le VPS.

Utilisation

cd 05_deliverables_mvp/qa/audit_5d
python3 audit_5d_gen.py validate     # schéma + 15 invariants (aucun écrit)
python3 audit_5d_gen.py build        # → out/audit_report.json + out/MANIFEST.json

Architecture (zéro duplication · #6)

  • audit_spec.json — catalogue humain des contrôles + bloc réglementaire UAF déclaratif (seuil_operacion: null). Miroir du registre qalib/controls.py (un invariant vérifie la parité des id, dimensions, artefacts, owners).
  • qalib/deps.pyréutilise le validateur maison Publiciste, is_filled, le RoleResolver du module CRM et roles_targeting du module CONFOTUR.
  • qalib/artifacts.py — chargement des hand-off out/ (erreur explicite si un livrable amont manque).
  • qalib/controls.py — les 17 contrôles (fonctions pures) + les 5 dimensions.
  • qalib/builder.py — assemble le rapport déterministe (aucun horodatage).
  • audit_5d_gen.py — CLI build/validate + 15 invariants.
  • audit.schema.json — contrat de sortie (draft-07, sous-ensemble maison).
  • out/ — hand-off commité (audit_report.json + MANIFEST.json).
  • tests/test_audit_5d.py37 tests (unittest, zéro pip) dont une injection négative par contrôle.

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

  • Confirmation des 4 paramètres réglementaires (open items) par les métiers propriétaires + saisie avec source dans data_room PXX.
  • Tests E2E Playwright sur le desk ERPNext réel (workflow_dispatch manuel, hors gate statique) → agent QA côté VPS.