[DTP-Worker 20260803_123715] Log session · drift-hunt docstring-vs-CODE financement_bancaire
This commit is contained in:
@@ -938,3 +938,42 @@ Aucun gate ne dépend du texte de ces commentaires (le code recompute depuis `re
|
|||||||
|
|
||||||
**Réalisé / gate-vert.** 6 lignes de prose gate-doc éditées, prose only. `./run_ci.sh` en clôture =
|
**Réalisé / gate-vert.** 6 lignes de prose gate-doc éditées, prose only. `./run_ci.sh` en clôture =
|
||||||
**32 PASS · 0 FAIL · 0 SKIP**. Commit à suivre.
|
**32 PASS · 0 FAIL · 0 SKIP**. Commit à suivre.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Session `20260803_123715` · QA drift-hunt — docstring-vs-CODE (`financement_bancaire`)
|
||||||
|
|
||||||
|
**État d'entrée.** Tous les sprints livrés ; `./run_ci.sh` = **32 PASS · 0 FAIL · 0 SKIP**. Mode
|
||||||
|
maintenance/anti-dérive. La classe *count-reconciliation* 22→24 a été vérifiée **propre à toutes
|
||||||
|
les surfaces au présent** : les seuls hits `22 suites`/`564 tests` résiduels vivent dans les
|
||||||
|
`daily_reports/` (instantanés **append-only historiquement exacts** au moment d'écriture — le dernier
|
||||||
|
addendum de `2026-08-03.md` porte bien `24 suites · 624`), donc **KEEP** (cf. [[two-logging-channels]],
|
||||||
|
[[prose-facts-vs-numeric-drift]] : historique ≠ dérive). Artefacts vivants confirmés :
|
||||||
|
`regression_run.json` = 24 suites / 624 ran · `quality_report.json` = 24 modules.
|
||||||
|
|
||||||
|
**Cible retenue — classe ouverte/récurrente [[docstring-vs-code-drift]].** Audit read-only (agent
|
||||||
|
Explore) des docstrings de générateurs `*_gen.py` (inputs/fallbacks/outputs annoncés vs code réel),
|
||||||
|
focalisé sur les modules **les plus neufs** (pie/manifest, financement_bancaire, mobile).
|
||||||
|
|
||||||
|
**Dérive confirmée (1).** `crm/financement_bancaire/financement_bancaire_gen.py` — le CODE lit **deux**
|
||||||
|
contrats d'entrée : `financement_spec.json` **et** `rbac/rbac_50_roles.json` (via
|
||||||
|
`RoleResolver.from_path()` L84 → `RBAC_CONTRACT_PATH` ; l'**invariant 4** L145 valide les rôles contre
|
||||||
|
RBAC). Or la docstring n'énumérait que `financement_spec.json` en input (L7) et se contentait de
|
||||||
|
« du contrat RBAC » **sans nommer le fichier**. **Convention des pairs vérifiée** : *tous* les
|
||||||
|
générateurs consommant RBAC citent explicitement le fichier — `commissions` L8
|
||||||
|
(`le contrat RBAC (`rbac_50_roles.json`)`), `workflow_vente` L11-12, `mobile/app_config` L9.
|
||||||
|
`financement_bancaire` était le **seul outlier**. Le README du module (L71) nommait déjà correctement
|
||||||
|
`rbac_50_roles.json` → **surface sœur non dérivée** (la docstring était l'unique surface fautive).
|
||||||
|
|
||||||
|
**Correctif (1 édition chirurgicale, docstring only).** L22-23 : « du contrat RBAC » →
|
||||||
|
« du contrat RBAC (`rbac_50_roles.json`, résolu par `RoleResolver.from_path`, invariant 4) ». Numéro
|
||||||
|
d'invariant vérifié exact (L145). Aligne la docstring sur la convention des pairs **et** sur le README
|
||||||
|
du module. **Zéro artefact / générateur logique touché** — `ci/` non concerné, aucun gate ne pin le
|
||||||
|
texte de cette docstring.
|
||||||
|
|
||||||
|
**Autres modules audités = propres** : `pie/manifest` (inputs/outputs cohérents), `mobile/app_config`
|
||||||
|
(4 inputs + 5 outputs documentés fidèlement), reste des générateurs échantillonnés sans dérive
|
||||||
|
input/output/fallback.
|
||||||
|
|
||||||
|
**Réalisé / gate-vert.** 1 ligne docstring alignée. `./run_ci.sh` en clôture = **32 PASS · 0 FAIL ·
|
||||||
|
0 SKIP**. Commit `2e4ff2d`.
|
||||||
|
|||||||
Reference in New Issue
Block a user