Initial: desk + ncantu placeholder + per-project cursor configs

**Motivations:**
- Centraliser les fichiers Cursor (rules, skills, agents, commands, hooks) par user et par projet

**Root causes:**
- N/A

**Correctifs:**
- N/A

**Evolutions:**
- desk: rules, skills-cursor, agents, commands, hooks, argv/hooks/mcp.json
- ncantu: README placeholder
- 4NK_node, algo, builazoo, ia_local, lecoffre_ng, lecoffre_ng_pprod, lecoffre_ng_test: .cursor contents

**Pages affectées:**
- cursor/desk/, cursor/ncantu/, cursor/<project>/
This commit is contained in:
2026-03-03 23:29:29 +01:00
commit 785868b53b
114 changed files with 6455 additions and 0 deletions

34
desk/agents/README.md Normal file
View File

@@ -0,0 +1,34 @@
# Subagents Cursor (niveau utilisateur)
Les subagents dans `~/.cursor/agents/` sont disponibles pour tous les projets de l'utilisateur.
## Tâches de fond (background tasks)
Un subagent avec `is_background: true` dans son frontmatter YAML est une **tâche de fond**.
### Fonctionnement
- **Foreground** : Bloque jusqu'à la fin. Retourne le résultat immédiatement. Pour les tâches séquentielles où le résultat est nécessaire.
- **Background** : Retourne immédiatement. Le subagent travaille en parallèle. Pour les tâches longues ou le travail en parallèle.
### Comportement des tâches de fond
1. **Lancement** : L'agent parent lance le subagent et reçoit immédiatement une réponse (sans attendre la fin).
2. **Exécution** : Le subagent s'exécute dans son propre contexte, isolé de la conversation principale.
3. **Sortie** : Les subagents en arrière-plan écrivent leur état dans `~/.cursor/subagents/`.
4. **Reprise** : L'agent parent peut reprendre un subagent après sa complétion via son ID pour continuer avec le contexte préservé.
### Invocation
- **Explicite** : `/fix-lint` dans le chat, ou « Utilise le subagent fix-lint pour corriger les erreurs de lint ».
- **Automatique** : L'agent peut déléguer au subagent si la description correspond à la tâche.
### Avantages des tâches de fond
- **Non bloquant** : La conversation principale reste disponible.
- **Parallélisme** : Plusieurs subagents peuvent tourner en même temps.
- **Isolation** : Le contexte lourd (logs lint, refactors) reste dans le subagent.
### Hooks associés
Les hooks dans `~/.cursor/hooks/` journalisent les événements (sessionStart, subagentStart, subagentStop, etc.) dans `~/.cursor/logs/hooks.log`. Le hook `subagentStop` ajoute un message de suivi quand fix-lint se termine.

31
desk/agents/deploy.md Normal file
View File

@@ -0,0 +1,31 @@
---
name: deploy
description: Lance le déploiement (test, pprod, prod). Use when deploy is requested.
model: inherit
is_background: false
---
# Déployer (test, pprod, prod)
Lance le déploiement via `deploy/scripts_v2/deploy.sh`.
## Usage
Spécifier l'environnement : `test`, `pprod` ou `prod`.
## Processus
1. Le script deploy.sh exécute un hook pre-deploy qui arrête (SIGTERM) les processus concurrents (lint, fix-lint, typecheck, turbopack) dont le cwd est dans le projet. Après déploiement, suggérer de relancer /fix-lint si nécessaire.
2. Vérifier que les modifications sont commitées (règle projet)
3. Exécuter `./deploy/scripts_v2/deploy.sh <env>`
4. En cas d'erreur : ne pas contourner ; analyser la cause, corriger puis retenter
## Options
- `--skipSetupHost` : ignorer setup-host (idempotent)
- `--checkLint` : activer lint/typecheck/build avant déploiement
## Référence
- `deploy/scripts_v2/deploy.sh`
- `docs/DEPLOYMENT.md`

71
desk/agents/fix-lint.md Normal file
View File

@@ -0,0 +1,71 @@
---
name: fix-lint
description: Corrige les erreurs de lint backend, frontend et ressources partagées. Use when lint errors need to be fixed across the monorepo.
model: inherit
is_background: true
---
# Corriger les erreurs de lint (backend, frontend, ressources)
Vérifie que les règles de lint n'ont pas été réduites ou desactivées dans les configurations et dans le code.
Corrige toutes les erreurs de lint du projet sans contournement ni désactivation des règles.
## Contrainte absolue
**NE JAMAIS modifier ni ce fichier ni aucun fichier dans `~/.cursor/`.** Ta tâche est UNIQUEMENT de corriger les erreurs de lint dans le code du projet (lecoffre-back-main, lecoffre-front-main, lecoffre-ressources-dev). Ne pas modifier ni améliorer la définition de cet agent.
## Première action obligatoire
Exécuter immédiatement `npm run lint` dans chaque application pour lister les erreurs. Ne pas modifier de fichiers avant d'avoir la liste des erreurs.
## Périmètre
- **Backend** : `lecoffre-back-main``npm run lint`
- **Frontend** : `lecoffre-front-main``npm run lint`
- **Ressources partagées** : `lecoffre-ressources-dev``npm run lint`
## Concurrence
Ne pas lancer si un déploiement est en cours. Si un déploiement est demandé pendant l'exécution, s'arrêter proprement. Voir docs/WORKFLOWS_AND_COMPONENTS.md §10.2.1.
## Processus
1. Exécuter `npm run lint` dans chaque application pour lister les erreurs
2. Corriger par lots de 10 erreurs maximum
3. Entre chaque lot : lancer un test de build/typecheck pour valider
4. Ne jamais contourner : pas de `eslint-disable`, pas de désactivation de règles
5. Appliquer les patterns du projet : extraction de helpers, découpage de fichiers, objets de configuration pour réduire les paramètres
## Règles applicables (docs/CODE_STANDARDS.md)
- max-lines : 250
- max-lines-per-function : 40
- max-params : 4
- max-depth : 4
- complexity : 8
- max-nested-callbacks : 3
- Autres règles du projet
## Stratégies de correction
Dans l'ordre:
1. Autres règles du projet
2. - **max-params** : regrouper dans un objet de configuration typé
3. - **complexity** : extraire des branches dans des fonctions dédiées
4. - **max-depth** : aplatir les imbrications avec early return
5. - **max-lines / max-lines-per-function** : extraire des helpers, découper en sous-composants
## Finalisation
- Si des variables ont été préfixées de "_" les supprimer et mettre à jour le code
- Si des mutualisations/contralisations/simplifications sont possibles fait le
- Si du texte peut être passsé sous i18n fait le
- Supprime le code mort.
- Lance le subagent `/docupdate`
## Références
- `docs/CODE_STANDARDS.md`
- `docs/OPERATIONS.md` (section Transition ESLint 250/40)
- `.cursor/rules/rules.mdc`