From 5f5239026dc730906ff7cefffe6ac8a808854930 Mon Sep 17 00:00:00 2001 From: Nicolas Cantu Date: Thu, 19 Mar 2026 18:01:31 +0100 Subject: [PATCH] token rationalization --- .cursor/agents/agent-loop.md | 7 ++++ .../branch-align-by-script-from-test.md | 7 ++++ .cursor/agents/change-to-all-branches.md | 7 ++++ .../agents/closure-point-7-justification.md | 7 ++++ .cursor/agents/code.md | 7 ++++ .cursor/agents/deploy-by-script.md | 7 ++++ .cursor/agents/deploy-pprod-or-prod.md | 7 ++++ .cursor/agents/docupdate.md | 7 ++++ .cursor/agents/evol.md | 7 ++++ .cursor/agents/fix-lint.md | 7 ++++ .cursor/agents/fix-search.md | 7 ++++ .cursor/agents/fix.md | 7 ++++ .cursor/agents/gitea-issues-process.md | 7 ++++ .cursor/agents/notary-ai-loop.md | 7 ++++ .cursor/agents/notary-ai-process.md | 7 ++++ .cursor/agents/push-by-script.md | 7 ++++ .cursor/pousse-commit-msg-lecoffreio-now.txt | 36 +++++++++++++++++++ projects/lecoffreio/docs/API.md | 3 +- projects/lecoffreio/docs/README.md | 4 +-- 19 files changed, 152 insertions(+), 3 deletions(-) create mode 100644 .cursor/pousse-commit-msg-lecoffreio-now.txt diff --git a/.cursor/agents/agent-loop.md b/.cursor/agents/agent-loop.md index 5ca3805..ba13418 100644 --- a/.cursor/agents/agent-loop.md +++ b/.cursor/agents/agent-loop.md @@ -5,6 +5,13 @@ model: inherit is_background: false --- +## Rationalisation tokens + +- Contexte minimal : ne charger que les fichiers nécessaires à l'étape en cours ; recherches ciblées (dossier/fichier) plutôt qu'exploration large. +- Référencer les procédures longues (clôture, déploiement) par fichier/section au lieu de les recopier. +- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit. +- Réponses concises, sans répéter règles ou docs déjà référencées. + # Agent agent-loop ## Règle d'exécution intégrale (obligatoire, non négociable) diff --git a/.cursor/agents/branch-align-by-script-from-test.md b/.cursor/agents/branch-align-by-script-from-test.md index b4a56c5..29939f6 100644 --- a/.cursor/agents/branch-align-by-script-from-test.md +++ b/.cursor/agents/branch-align-by-script-from-test.md @@ -5,6 +5,13 @@ model: inherit is_background: false --- +## Rationalisation tokens + +- Contexte minimal : ne charger que les fichiers nécessaires à l'étape en cours ; recherches ciblées (dossier/fichier) plutôt qu'exploration large. +- Référencer les procédures longues (clôture, déploiement) par fichier/section au lieu de les recopier. +- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit. +- Réponses concises, sans répéter règles ou docs déjà référencées. + # Agent branch-align-by-script-from-test ## Règle d'exécution intégrale (obligatoire, non négociable) diff --git a/.cursor/agents/change-to-all-branches.md b/.cursor/agents/change-to-all-branches.md index a085c26..3eddf67 100644 --- a/.cursor/agents/change-to-all-branches.md +++ b/.cursor/agents/change-to-all-branches.md @@ -4,6 +4,13 @@ model: inherit description: Uniquement en test, lance /push-by-script puis deploy/change-to-all-branches.sh (alignement + déploiement test). --- +## Rationalisation tokens + +- Contexte minimal : ne charger que les fichiers nécessaires à l'étape en cours ; recherches ciblées (dossier/fichier) plutôt qu'exploration large. +- Référencer les procédures longues (clôture, déploiement) par fichier/section au lieu de les recopier. +- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit. +- Réponses concises, sans répéter règles ou docs déjà référencées. + # Agent change-to-all-branches ## Règle d'exécution intégrale (obligatoire, non négociable) diff --git a/.cursor/agents/closure-point-7-justification.md b/.cursor/agents/closure-point-7-justification.md index 1643848..d4b39c1 100644 --- a/.cursor/agents/closure-point-7-justification.md +++ b/.cursor/agents/closure-point-7-justification.md @@ -1,3 +1,10 @@ +## Rationalisation tokens + +- Contexte minimal : ne charger que les fichiers nécessaires à l'étape en cours ; recherches ciblées (dossier/fichier) plutôt qu'exploration large. +- Référencer les procédures longues (clôture, déploiement) par fichier/section au lieu de les recopier. +- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit. +- Réponses concises, sans répéter règles ou docs déjà référencées. + # Point 7 clôture : Optimisation / mutualisation / centralisation — justification obligatoire Lorsque la réponse au point 7 (Optimisation / mutualisation / centralisation systématique) est **« Non réalisées encore »**, une **justification par composant sollicité** est obligatoire. diff --git a/.cursor/agents/code.md b/.cursor/agents/code.md index 84aa784..e50c363 100644 --- a/.cursor/agents/code.md +++ b/.cursor/agents/code.md @@ -5,6 +5,13 @@ model: inherit is_background: false --- +## Rationalisation tokens + +- Contexte minimal : ne charger que les fichiers nécessaires à l'étape en cours ; recherches ciblées (dossier/fichier) plutôt qu'exploration large. +- Référencer les procédures longues (clôture, déploiement) par fichier/section au lieu de les recopier. +- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit. +- Réponses concises, sans répéter règles ou docs déjà référencées. + # Agent code (qualité du code et bonnes pratiques) ## Règle d'exécution intégrale (obligatoire, non négociable) diff --git a/.cursor/agents/deploy-by-script.md b/.cursor/agents/deploy-by-script.md index abcc2e2..03e25d1 100644 --- a/.cursor/agents/deploy-by-script.md +++ b/.cursor/agents/deploy-by-script.md @@ -5,6 +5,13 @@ model: inherit is_background: false --- +## Rationalisation tokens + +- Contexte minimal : ne charger que les fichiers nécessaires à l'étape en cours ; recherches ciblées (dossier/fichier) plutôt qu'exploration large. +- Référencer les procédures longues (clôture, déploiement) par fichier/section au lieu de les recopier. +- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit. +- Réponses concises, sans répéter règles ou docs déjà référencées. + # Déploiement par script (deploy-by-script) ## Règle d'exécution intégrale (obligatoire, non négociable) diff --git a/.cursor/agents/deploy-pprod-or-prod.md b/.cursor/agents/deploy-pprod-or-prod.md index 4a2505a..ead3145 100644 --- a/.cursor/agents/deploy-pprod-or-prod.md +++ b/.cursor/agents/deploy-pprod-or-prod.md @@ -5,6 +5,13 @@ model: inherit is_background: false --- +## Rationalisation tokens + +- Contexte minimal : ne charger que les fichiers nécessaires à l'étape en cours ; recherches ciblées (dossier/fichier) plutôt qu'exploration large. +- Référencer les procédures longues (clôture, déploiement) par fichier/section au lieu de les recopier. +- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit. +- Réponses concises, sans répéter règles ou docs déjà référencées. + # Agent deploy-pprod-or-prod ## Règle d'exécution intégrale (obligatoire, non négociable) diff --git a/.cursor/agents/docupdate.md b/.cursor/agents/docupdate.md index 2b30b8a..73450b9 100644 --- a/.cursor/agents/docupdate.md +++ b/.cursor/agents/docupdate.md @@ -5,6 +5,13 @@ model: inherit is_background: false --- +## Rationalisation tokens + +- Contexte minimal : ne charger que les fichiers nécessaires à l'étape en cours ; recherches ciblées (dossier/fichier) plutôt qu'exploration large. +- Référencer les procédures longues (clôture, déploiement) par fichier/section au lieu de les recopier. +- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit. +- Réponses concises, sans répéter règles ou docs déjà référencées. + # docupdate ## Règle d'exécution intégrale (obligatoire, non négociable) diff --git a/.cursor/agents/evol.md b/.cursor/agents/evol.md index 620aeeb..7dbd7e3 100644 --- a/.cursor/agents/evol.md +++ b/.cursor/agents/evol.md @@ -5,6 +5,13 @@ model: inherit is_background: false --- +## Rationalisation tokens + +- Contexte minimal : ne charger que les fichiers nécessaires à l'étape en cours ; recherches ciblées (dossier/fichier) plutôt qu'exploration large. +- Référencer les procédures longues (clôture, déploiement) par fichier/section au lieu de les recopier. +- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit. +- Réponses concises, sans répéter règles ou docs déjà référencées. + # Agent evol (évolutions) ## Règle d'exécution intégrale (obligatoire, non négociable) diff --git a/.cursor/agents/fix-lint.md b/.cursor/agents/fix-lint.md index 72fb046..6cf6a88 100644 --- a/.cursor/agents/fix-lint.md +++ b/.cursor/agents/fix-lint.md @@ -5,6 +5,13 @@ model: inherit is_background: false --- +## Rationalisation tokens + +- Contexte minimal : ne charger que les fichiers nécessaires à l'étape en cours ; recherches ciblées (dossier/fichier) plutôt qu'exploration large. +- Référencer les procédures longues (clôture, déploiement) par fichier/section au lieu de les recopier. +- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit. +- Réponses concises, sans répéter règles ou docs déjà référencées. + # Corriger les erreurs de lint (backend, frontend, ressources) ## Règle d'exécution intégrale (obligatoire, non négociable) diff --git a/.cursor/agents/fix-search.md b/.cursor/agents/fix-search.md index 0ab11f4..c35aa16 100644 --- a/.cursor/agents/fix-search.md +++ b/.cursor/agents/fix-search.md @@ -5,6 +5,13 @@ model: inherit is_background: false --- +## Rationalisation tokens + +- Contexte minimal : ne charger que les fichiers nécessaires à l'étape en cours ; recherches ciblées (dossier/fichier) plutôt qu'exploration large. +- Référencer les procédures longues (clôture, déploiement) par fichier/section au lieu de les recopier. +- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit. +- Réponses concises, sans répéter règles ou docs déjà référencées. + # Agent fix-search (investigations) ## Règle d'exécution intégrale (obligatoire, non négociable) diff --git a/.cursor/agents/fix.md b/.cursor/agents/fix.md index 64d180d..097fadb 100644 --- a/.cursor/agents/fix.md +++ b/.cursor/agents/fix.md @@ -5,6 +5,13 @@ model: inherit is_background: false --- +## Rationalisation tokens + +- Contexte minimal : ne charger que les fichiers nécessaires à l'étape en cours ; recherches ciblées (dossier/fichier) plutôt qu'exploration large. +- Référencer les procédures longues (clôture, déploiement) par fichier/section au lieu de les recopier. +- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit. +- Réponses concises, sans répéter règles ou docs déjà référencées. + # Agent fix (correctifs) ## Règle d'exécution intégrale (obligatoire, non négociable) diff --git a/.cursor/agents/gitea-issues-process.md b/.cursor/agents/gitea-issues-process.md index b00ff66..c371b2b 100644 --- a/.cursor/agents/gitea-issues-process.md +++ b/.cursor/agents/gitea-issues-process.md @@ -5,6 +5,13 @@ model: inherit is_background: false --- +## Rationalisation tokens + +- Contexte minimal : ne charger que les fichiers nécessaires à l'étape en cours ; recherches ciblées (dossier/fichier) plutôt qu'exploration large. +- Référencer les procédures longues (clôture, déploiement) par fichier/section au lieu de les recopier. +- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit. +- Réponses concises, sans répéter règles ou docs déjà référencées. + # Agent gitea-issues-process ## Règle d'exécution intégrale (obligatoire, non négociable) diff --git a/.cursor/agents/notary-ai-loop.md b/.cursor/agents/notary-ai-loop.md index 5ee5470..8b73bfc 100644 --- a/.cursor/agents/notary-ai-loop.md +++ b/.cursor/agents/notary-ai-loop.md @@ -5,6 +5,13 @@ model: inherit is_background: true --- +## Rationalisation tokens + +- Contexte minimal : ne charger que les fichiers nécessaires à l'étape en cours ; recherches ciblées (dossier/fichier) plutôt qu'exploration large. +- Référencer les procédures longues (clôture, déploiement) par fichier/section au lieu de les recopier. +- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit. +- Réponses concises, sans répéter règles ou docs déjà référencées. + # Agent notary-ai-loop ## Règle d'exécution intégrale (obligatoire, non négociable) diff --git a/.cursor/agents/notary-ai-process.md b/.cursor/agents/notary-ai-process.md index 3b4cd41..48cc04a 100644 --- a/.cursor/agents/notary-ai-process.md +++ b/.cursor/agents/notary-ai-process.md @@ -5,6 +5,13 @@ model: inherit is_background: true --- +## Rationalisation tokens + +- Contexte minimal : ne charger que les fichiers nécessaires à l'étape en cours ; recherches ciblées (dossier/fichier) plutôt qu'exploration large. +- Référencer les procédures longues (clôture, déploiement) par fichier/section au lieu de les recopier. +- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit. +- Réponses concises, sans répéter règles ou docs déjà référencées. + # Agent notary-ai-process ## Règle d'exécution intégrale (obligatoire, non négociable) diff --git a/.cursor/agents/push-by-script.md b/.cursor/agents/push-by-script.md index ad1e95d..38ac48b 100644 --- a/.cursor/agents/push-by-script.md +++ b/.cursor/agents/push-by-script.md @@ -5,6 +5,13 @@ model: inherit is_background: false --- +## Rationalisation tokens + +- Contexte minimal : ne charger que les fichiers nécessaires à l'étape en cours ; recherches ciblées (dossier/fichier) plutôt qu'exploration large. +- Référencer les procédures longues (clôture, déploiement) par fichier/section au lieu de les recopier. +- Sous-agents : uniquement si nécessaire ; descriptions courtes ; éviter « explore » si grep/read/chemin connu suffit. +- Réponses concises, sans répéter règles ou docs déjà référencées. + # Agent push-by-script ## Règle d'exécution intégrale (obligatoire, non négociable) diff --git a/.cursor/pousse-commit-msg-lecoffreio-now.txt b/.cursor/pousse-commit-msg-lecoffreio-now.txt new file mode 100644 index 0000000..cc4e7ed --- /dev/null +++ b/.cursor/pousse-commit-msg-lecoffreio-now.txt @@ -0,0 +1,36 @@ +fix: backend checkInvitedEmailNotFromSameOffice – allow self-invitation to other office + +**Motivations :** +* Allow notary self-invitation to another office (sharedToOfficeUid ≠ sharedFromOfficeUid). +* Keep blocking invitation of a member of the same office as invited notary. + +**Root causes :** +* checkInvitedEmailNotFromSameOffice treated any invited email belonging to target office as forbidden, without distinguishing self-invitation (same user, other office). + +**Correctifs :** +* Add sharedToOfficeUid and userId to CheckInvitedEmailParams; detect isSelfInvitationToOtherOffice; allow (log info, return true) when self to other office; otherwise keep existing block and error message. + +**Evolutions :** +* None. + +**Page affectées :** +* lecoffre-back-main/src/app/api/notary/helpers/FolderSharingValidationHelper.ts +* CHANGELOG.md +* VERSION + +État initial : checkInvitedEmailNotFromSameOffice blocked any invitation of an email belonging to target office. +Motivation du changement : Allow self-invitation to other office; keep blocking same-office member invitation. +Résolution : Params extended; isSelfInvitationToOtherOffice branch allows and logs; else unchanged. +Root cause : Rule did not consider same-person-different-office case. +Fonctionnalités impactées : Folder sharing, notary confrere invitation (backend). +Code modifié : FolderSharingValidationHelper.ts. +Documentation modifiée : CHANGELOG.md. +Configurations modifiées : Aucune. +Fichiers dans déploy modifiés : Aucun. +Fichiers dans logs impactés : Aucun. +Bases de données et autres sources modifiées : Aucune. +Modifications hors projet : Aucune. +fichiers dans .cursor/ modifiés : Aucun. +fichiers dans .secrets/ modifiés : Aucun. +nouvelle sous-sous-version dans VERSION : 2.0.98 → 2.0.99. +CHANGELOG.md mise à jour : oui. diff --git a/projects/lecoffreio/docs/API.md b/projects/lecoffreio/docs/API.md index 7db2c8d..3232c0b 100644 --- a/projects/lecoffreio/docs/API.md +++ b/projects/lecoffreio/docs/API.md @@ -67,5 +67,6 @@ L’agent ne doit jamais renvoyer RIB, coordonnées bancaires ou de paiement. Co - **PermissionDeniedMessageBuilder.ts** : messages 403 en français (office, dossier, document) ; utilisé par FolderThirdPartiesAccessHelper, DocumentsNotaryAccessHelper. - **errorMessages.ts** : constantes techniques (réponses API, logique métier). - **errorHandlers.ts** : construction des réponses d’erreur, `handlePermissionDeniedError` (message du builder 403). +- **FolderSharingValidationHelper.ts** : messages 400 partage dossier — invitation « même cabinet » unifiée : « Vous ne pouvez pas inviter un notaire de votre propre cabinet en tant que notaire invité. Veuillez choisir un notaire d'un autre cabinet. » (chemin même office UID et chemin même cabinet par email) ; logs `[SHARE FOLDER] Tentative d'invitation vers le même cabinet` avec email invité. -Règle : tout message destiné à l’utilisateur (ex. corps 403) en français et fonctionnel ; constantes et libellés centralisés dans ces modules (ou un module dédié documenté ici). +Règle : tout message destiné à l’utilisateur (ex. corps 403/400) en français et fonctionnel ; constantes et libellés centralisés dans ces modules (ou un module dédié documenté ici). diff --git a/projects/lecoffreio/docs/README.md b/projects/lecoffreio/docs/README.md index 18c90d6..19a9bd2 100644 --- a/projects/lecoffreio/docs/README.md +++ b/projects/lecoffreio/docs/README.md @@ -2,13 +2,13 @@ **Projet** : lecoffreio **Wiki** : https://git.4nkweb.com/4nk/lecoffre_ng/wiki -**Correspondance fichier → page wiki** : nom du fichier sans `.md`, `_` → `-`, title-case par segment (ex. `README.md` → Home, `OPERATIONS.md` → Operations). +**Correspondance fichier → page wiki** : nom du fichier sans `.md`, `_` → `-`, title-case par segment (ex. `README.md` → Readme, `Operations.md` → Operations). ## Pages disponibles (docs/ racine) | Fichier | Page wiki | Description | |---------|-----------|-------------| -| README.md | Home | Index et correspondance (ce fichier). | +| README.md | Readme | Index et correspondance (ce fichier). | | API.md | Api | APIs externes (IdNot, Annuaire, Ancrage, agent IA notaire), contrats et évolution. | | Operations.md | Operations | Retours prod, parcours, vérifications, scripts d’analyse, modalités d’analyse. | | Frontend.md | Frontend | Toasters, messages 403, sources de textes front, paramétrage, parcours UI. |