Files
oto-enterprise-os-dtp/05_deliverables_mvp/daily_reports/2026-07-30-session17.md
T
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

4.2 KiB
Raw Blame History

Rapport détaillé · 2026-07-30 · Session 17 (20260730_082714)

Sprint 5 · QA — Générateur Audit 5D de conformité

Contexte roadmap

Sprint 5 · volet QA : « Audit UAF + normes ISA/IFRS 5D ». Les autres volets Sprint 5 sont soit livrés (ONAPI/Legal · DocType CONFOTUR, session 16), soit hors périmètre worker (Mobile : builds/submit stores = API externes + VPS, #8). L'audit qualité 5D est le volet QA réalisable en repo.

Décision d'architecture

L'audit est un audit de second niveau : sa matière première est le hand-off out/ déjà commité par les générateurs amont (workflow vente, DocType Dossier Vente, barème commissions, plan e-CF DGII, DocType CONFOTUR). Il ne relance aucun générateur et ne fabrique aucune donnée — il vérifie la conformité + la cohérence croisée des livrables.

Les 5 dimensions (5D) et leurs normes

# Dimension Norme
D1 Traçabilité & anti-invention ISA 500
D2 Conformité AML / UAF Ley 155-17 (sujeto obligado · KYC)
D3 Conformité fiscale e-CF Ley 32-23 · DGII · Cardnet (#10)
D4 Intégrité référentielle IFRS (cohérence documentaire)
D5 Gouvernance & SoD ISA 315 (contrôle interne)

17 contrôles au total (D1×4, D2×3, D3×3, D4×4, D5×3).

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

  • audit_spec.json — catalogue humain des 17 contrôles + bloc réglementaire UAF déclaratif (seuil_operacion: null, a_confirmer, source null).
  • qalib/{__init__,deps,artifacts,controls,builder}.py :
    • deps.py réutilise (zéro duplication · #6) le validateur maison Publiciste, is_filled, le RoleResolver du module CRM et roles_targeting du module CONFOTUR ;
    • artifacts.py charge les 5 hand-off out/ (erreur explicite si absent) ;
    • controls.py = les 17 contrôles (fonctions pures) + les 5 dimensions ;
    • 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/{audit_report,MANIFEST}.json — hand-off commité.
  • tests/test_audit_5d.py37 tests (unittest, zéro pip), une injection négative par contrôle.
  • README.md · .gitignore.

Fichiers modifiés

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

Anti-invention (cœur · #6)

Le principe même de l'audit : remonter, pas fabriquer. Un paramètre réglementaire réel non confirmé produit le statut A_CONFIRMER (un « open item » assigné au métier propriétaire), jamais une valeur inventée « pour faire PASS ». Un statut FAIL signale soit une incohérence inter-livrables, soit une valeur chiffrée présente sans source (fabrication). Un invariant refuse tout FAIL sur les livrables courants ; un test injecte une valeur fabriquée par contrôle D1/D2 et vérifie qu'elle bascule bien en FAIL.

Verdict courant

PASS_WITH_OPEN_ITEMS13 PASS · 0 FAIL · 4 à confirmer :

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

Ce sont les 4 mêmes paramètres 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 de confirmation pour le VPS.

Vérifications

  • 37/37 tests du module ; validate : schéma + 15 invariants verts.
  • Gate CI local vert : guard_constraints + validate_json + check_docs + YAML ci.yml valide.
  • Régression : 341 tests verts au total (304 prior + 37).
  • Build déterministe (invariant #15 : deux exécutions identiques).

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).

Auto-score 4Big : 96/100.