Files
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

86 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.py`**37 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_ITEMS`**13 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.**