Block a user
git clean » auto-mordait le gate (négation citant l'interdit #5 sans marqueur PROHIBITION ni ci-allow) → neutralisée par ci-allow (convention établie). Classe [[guard-constraints-log-prose]] connue · zéro module · zéro gate · zéro logique de prod. run_ci.sh 30 PASS 0 FAIL
76fb0e7)
ventes (séparation des pouvoirs · invariant #5) double-ancrée contrat rbac_50_roles.json ⨯ littéral README ⨯ portails_business · nom Frappe erpnext_role_name RÉSOLU == contrat (invariant #6, jamais figé en dur) · role_id ∈ contrat (jamais fantôme) · MANIFEST.roles_rbac_utilises recoupé — recomputés de commission_plan.json + contrat + MANIFEST byte-gatés
exp)
P01..P09) ANCRÉE sur CLAUDE.md §Projets
moneda (USD/DOP) ANCRÉ sur CLAUDE.md #10