42d54b045f
Généralisation de la chasse au dernier bug générateur commité (48276ee : champ « ensemble » roles_rbac_utilises portant un doublon silencieux, bâti en itérant des slots). Scan des 57 out/*.json commités en 2 formes : SCALAR-DUP (forme exacte du bug, tableau scalaire à valeur répétée) = 0 hit/57 ; OBJ-DUP (clé d'identité dupliquée) = 33 hits, tous BY-DESIGN (doctype/permlevel de lignes de fixtures Frappe + role_id de journaux d'événements — répétition légitime, PAS un ensemble). Distinction clé outillée : champ-ensemble (distinct requis) vs journal-événements/lignes-fixtures. Les 6 MANIFEST portant roles_rbac_utilises tous distincts (commissions 4/4, dossier_vente 7/7, financement 3/3 [fix tient], workflow_vente 7/7, ecf 1/1, confotur 3/3). Dents prouvées par mutation en mémoire (forme plantée mord, pas de faux positif) → CLEAN opposable. Sweep lecture-seule, occurrence-zéro, rejouable → pas un gate (#5). 0 prod éditée · 0 artefact reconstruit · 0 gate ajouté · run_ci 33 PASS 0 FAIL 0 SKIP.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>