diff --git a/test/scopes.ts b/test/scopes.ts index 1b0923a..d38afbb 100644 --- a/test/scopes.ts +++ b/test/scopes.ts @@ -143,8 +143,13 @@ export const SCOPES: Readonly> = { /** * The narrow production writer, used ONLY by the gated promote apply, and only * for what that step actually does: create/modify invoices, attach payments. - * No thirdparty creation, no product creation, no proposals — those are - * rehearsed then applied by a human when they are genuinely needed. + * No product creation, no proposals — those are rehearsed then applied by a + * human when they are genuinely needed. + * `122` (thirdparties) WAS excluded on that same reasoning, and the reasoning + * did not survive contact: a supplier invoice needs a supplier, so the scope + * could create the document but not the party it names. The exclusion turned + * every new supplier into a manual step in the middle of a gated flow — which + * is where discipline erodes. * `162` (contracts) IS included: recording the engagement behind an invoice is * what the piste d'audit fiable asks for, and it recurs (Darnis, then KM). * @@ -162,7 +167,20 @@ export const SCOPES: Readonly> = { // modification de factures » — les factures fournisseur en sont, et leur // saisie est l'opération la plus courante du back-office. Ajouté après un // 403 en production sur la facture Darnis F1048. - rights: [...READ_ONLY, 12, 14, 162, 1232, 2503], + // + // 122 (tiers) : ajouté sur décision de l'opérateur du 2026-08-15, après un + // second 403 — 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. + // + // CE QUE CE DROIT COÛTE, et il faut le dire : 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 + // non seulement en créer. C'est la contrepartie assumée : sans lui, toute + // facture d'un fournisseur nouveau s'arrête au milieu du flux gated. + // La suppression (125) reste exclue, comme dans tous les scopes. + rights: [...READ_ONLY, 12, 14, 122, 162, 1232, 2503], }, } as const;