token rationalization

This commit is contained in:
Nicolas Cantu 2026-03-19 18:01:31 +01:00
parent 5f30d5435d
commit 5f5239026d
19 changed files with 152 additions and 3 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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.

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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.

View File

@ -67,5 +67,6 @@ Lagent 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 derreur, `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é à lutilisateur (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é à lutilisateur (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).

View File

@ -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 danalyse, modalités danalyse. |
| Frontend.md | Frontend | Toasters, messages 403, sources de textes front, paramétrage, parcours UI. |