feat(scopes): 122 « créer/modifier les tiers » entre dans prod-write #94

Merged
arcodange merged 1 commits from arcodange/scope-122 into main 2026-08-15 23:46:49 +02:00
Owner

Sur décision de l'opérateur, après un second 403 en production — cette fois sur Anthropic PBC, entité américaine distincte d'Anthropic Ireland, dont la facture ne pouvait être saisie faute de pouvoir créer le fournisseur qu'elle nomme.

Pourquoi l'exclusion ne tenait pas

Le commentaire qui la justifiait est corrigé en même temps — sinon le fichier se contredirait.

Son raisonnement était : « rehearsed then applied by a human when they are genuinely needed ». Il n'a pas survécu au contact. Une facture fournisseur a besoin d'un fournisseur : le scope pouvait créer le document mais pas la partie qu'il nomme. L'exclusion transformait chaque nouveau fournisseur en geste manuel au milieu d'un flux gated — c'est-à-dire précisément là où la discipline s'érode.

Le premier 403 (tiers « Radureau Gabriel », hier) était différent : la garde avait raison pour une mauvaise raison, et le bon modèle s'est révélé être un paiement divers sans tiers (adc-010). Celui-ci est le cas légitime.

Ce que ce droit coûte

Dolibarr le libelle « Créer/MODIFIER les tiers » — il n'existe pas de droit de création seule. Le writer de production peut donc désormais altérer l'identité de n'importe quel tiers existant — nom, adresse, identifiants fiscaux — et pas seulement en créer.

C'est la contrepartie, et le fichier la nomme plutôt que de la laisser découvrir. La suppression (125) reste exclue, comme dans tous les scopes.

Vérification

provisionAiUser.ts --scope prod-write --env production --audit :

Avant Après
Droits détenus 40 41
122 manquant appliqué

Un écart qui reste, antérieur à ce changement

Le droit 14 « Émettre des paiements sur les factures clients » est déclaré par le scope mais refuse de s'appliquer — il manquait déjà au premier audit, avant toute modification. Le writer de production ne peut donc pas enregistrer un encaissement client.

Ce n'est pas une régression introduite ici, mais ça mérite d'être traité : c'est une opération courante du back-office, et le scope prétend l'autoriser alors qu'il ne le peut pas. La divergence entre ce qu'un scope déclare et ce que l'utilisateur détient est exactement ce que --audit existe pour révéler.

🤖 Generated with Claude Code

Sur décision de l'opérateur, après un **second 403 en production** — cette fois sur **Anthropic PBC**, entité américaine distincte d'Anthropic Ireland, dont la facture ne pouvait être saisie faute de pouvoir créer le fournisseur qu'elle nomme. ## Pourquoi l'exclusion ne tenait pas Le commentaire qui la justifiait est corrigé en même temps — sinon le fichier se contredirait. Son raisonnement était : *« rehearsed then applied by a human when they are genuinely needed »*. Il n'a pas survécu au contact. **Une facture fournisseur a besoin d'un fournisseur** : le scope pouvait créer le document mais pas la partie qu'il nomme. L'exclusion transformait chaque nouveau fournisseur en geste manuel **au milieu d'un flux gated** — c'est-à-dire précisément là où la discipline s'érode. Le premier 403 (tiers « Radureau Gabriel », hier) était différent : la garde avait raison pour une mauvaise raison, et le bon modèle s'est révélé être un paiement divers sans tiers (`adc-010`). Celui-ci est le cas légitime. ## Ce que ce droit coûte Dolibarr le libelle **« Créer/MODIFIER les tiers »** — il n'existe pas de droit de création seule. Le writer de production peut donc désormais **altérer l'identité de n'importe quel tiers existant** — nom, adresse, identifiants fiscaux — et pas seulement en créer. C'est la contrepartie, et le fichier la nomme plutôt que de la laisser découvrir. **La suppression (125) reste exclue**, comme dans tous les scopes. ## Vérification `provisionAiUser.ts --scope prod-write --env production --audit` : | | Avant | Après | |---|---|---| | Droits détenus | 40 | **41** | | 122 | manquant | **appliqué** | ## Un écart qui reste, antérieur à ce changement Le droit **14 « Émettre des paiements sur les factures clients »** est déclaré par le scope mais **refuse de s'appliquer** — il manquait déjà au premier audit, avant toute modification. Le writer de production ne peut donc pas enregistrer un encaissement client. Ce n'est pas une régression introduite ici, mais ça mérite d'être traité : c'est une opération courante du back-office, et le scope prétend l'autoriser alors qu'il ne le peut pas. La divergence entre ce qu'un scope déclare et ce que l'utilisateur détient est exactement ce que `--audit` existe pour révéler. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
arcodange added 1 commit 2026-08-15 23:46:40 +02:00
Sur décision de l'opérateur du 2026-08-15, après un SECOND 403 en production —
cette fois sur Anthropic PBC, entité américaine distincte d'Anthropic Ireland,
dont la facture ne pouvait être saisie faute de pouvoir créer le fournisseur
qu'elle nomme.

Le commentaire qui justifiait l'exclusion est corrigé en même temps, sinon le
fichier se contredirait. Son raisonnement — « rehearsed then applied by a human
when they are genuinely needed » — n'a pas survécu au contact : une facture
fournisseur a besoin d'un fournisseur, donc le scope pouvait créer le document
mais pas la partie qu'il nomme. L'exclusion transformait chaque nouveau
fournisseur en geste manuel AU MILIEU d'un flux gated, c'est-à-dire précisément
là où la discipline s'érode.

CE QUE CE DROIT COÛTE, et le fichier le dit désormais : Dolibarr le libelle
« Créer/MODIFIER les tiers », il n'existe pas de droit de création seule. Le
writer de production peut donc altérer l'identité de n'importe quel tiers
existant — nom, adresse, identifiants fiscaux — et pas seulement en créer.
Contrepartie assumée. La suppression (125) reste exclue, comme dans tous les
scopes.

Appliqué et vérifié par --audit : 40 droits détenus avant, 41 après.

RESTE UN ÉCART, ANTÉRIEUR À CE CHANGEMENT : le droit 14 « Émettre des paiements
sur les factures clients » est déclaré par le scope mais refuse de s'appliquer —
il manquait déjà au premier audit. Le writer de production ne peut donc pas
enregistrer un encaissement client. À traiter séparément.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
arcodange merged commit 279092274c into main 2026-08-15 23:46:49 +02:00
arcodange deleted branch arcodange/scope-122 2026-08-15 23:46:50 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: arcodange-org/erp#94