6.9 KiB
| name | description | model | is_background |
|---|---|---|---|
| code | Règles de qualité du code, patterns, architecture et tests. À appliquer lorsqu'il y a du code à produire (évolutions ou correctifs). | inherit | false |
Agent code (qualité du code et bonnes pratiques)
Règle d'exécution intégrale (obligatoire, non négociable)
- Tout dérouler : exécuter toutes les étapes décrites dans cet agent dans l'ordre, sans en omettre aucune. Tout doit se dérouler effectivement.
- Sans priorisation : aucune étape n'est optionnelle ou "secondaire" ; chacune est obligatoire.
- Sans jugement d'intérêt : ne jamais juger de la pertinence d'une étape pour la sauter ; tout appliquer tel que décrit, sans exception.
- Vérification en fin d'agent : avant clôture, cocher explicitement chaque étape (réalisée / non réalisée).
Contexte projet : La configuration et la documentation du projet sont dans projects/<id>/. L'identifiant <id> est résolu uniquement par MAIL_TO (adresse « to » des mails) ou AI_AGENT_TOKEN (token des requêtes) ; pas de fallback. Voir projects/README.md. Rappeler ce chemin en début d'exécution.
Documentation : La doc des projets gérés est dans projects/<id>/docs ; la doc ia_dev est dans projects/ia_dev/docs.
Tu appliques les règles ci-dessous lorsqu'il y a du code à produire (évolution ou correctif). Les agents evol et fix invoquent cet agent dans ce cas.
Liste ordonnée d'actions obligatoires pour coder
-
Texte i18n et secrets Utiliser un texte i18n systématique pour tout libellé utilisateur. Tenir à jour
.secrets/<env>/env-full-<env>-for-bdd-injection.txtselon l'environnement. -
Référence aux standards Consulter et respecter la page wiki Code-Standards du projet (URL dans
projects/<id>/conf.json→git.wiki_url) pour la qualité, la sécurité, les patterns et la documentation fonctionnelle comme point d'entrée unique. -
Conventions du projet Adhérer au style de code et aux conventions existantes du projet.
-
Sécurité Ne jamais coder en dur d'informations sensibles (y compris dans la documentation) ; valider systématiquement les entrées utilisateur.
-
Performances Optimiser les performances du code, en particulier pour les opérations critiques et les boucles.
-
Clarté et maintenabilité S'assurer que le code est clair, lisible et facile à maintenir par d'autres développeurs.
-
Backend – helpers centralisés Utiliser les helpers centralisés :
errorHandlers.ts(handleInternalError, handleValidationError, etc.),errorLoggers.ts(logError, logValidationError, etc.),errorMessages.ts,userHelpers.ts(isSuperAdminUser, extractUserData, etc.). -
Frontend – hooks et services Utiliser
useApiClientpour les appels API, le pattern Controller/Vue (hook contrôleur + sous-composants présentateurs), et LoggerService pour le logging (pas de console brut). -
Frontend – feature complexe Pour chaque feature complexe : (1) hook contrôleur
useFeatureControllerpour états, appels API et calculs ; (2) sous-composants présentateurs pour découper l'UI ; (3) helpers mutualisés dans utils/services. -
Environnement – .env Ne pas modifier les fichiers
.envde production (inaccessibles) ; ne jamais intégrer de paramétrage sensible directement dans le code. -
Environnement – env.example Maintenir
env.examplesystématiquement à jour. -
Environnement – ports Ne jamais modifier les ports, même s'ils ne sont pas ceux par défaut ; fixer en 1 lorsque possible.
-
Environnement – configurations Privilégier les configurations en base de données plutôt que dans les
.env. -
Logging – centralisation Centraliser les logs dans les répertoires
logs/des applications et dans le répertoirelogs/du projet pour les logs hors applications (déploiement, etc.). -
Logging – système Implémenter une gestion d'erreurs robuste et utiliser le système de logging Winston pour toutes les sorties (info, warn, error, debug, etc.).
-
Logging – traçabilité Logger toutes les valeurs, états clés et retours d'API.
-
Interactions – base de données Être vigilant lors des interactions avec la base de données, notamment pour les migrations et les requêtes complexes.
-
Interactions – APIs externes Gérer les interactions avec les API de manière appropriée, en respectant les limites d'utilisation et en gérant les erreurs.
-
Interactions – emails Gérer les envois d'emails de manière appropriée pour éviter le spam et gérer les erreurs.
-
Lancer obligatoirement un lint Utiliser l'agent
.cursor/agents/fix-lint.md(commande /fix-lint) -
Documentation : Compléter le wiki avec l'objectif, les impacts, les modifications, les modalités de déploiement et d'analyse.
docs/est hors versionnement : maintenir les fichiers dansdocs/localement (ne pas les supprimer), puis exécuter./gitea-issues/wiki-migrate-docs.shpour pousser vers le wiki ; ou éditer la page wiki directement. Ne pas committerdocs/. Avant d'exécuter wiki-migrate-docs.sh : lire le script, présenter un résumé de ce qu'il fait, puis l'exécuter. -
Commit : Préparer le commit avec le format de
.cursor/agents/push-by-script.md(lignes 15-32) :
- Etat initial
- Motivation du changement
- Résolution
- Root cause (si non applicable : N/A ou cause du besoin d'évolution)
- Fonctionnalités impactées
- Code modifié
- Documentation modifiée
- Configurations modifiées
- Fichiers dans déploy modifiés
- Fichiers dans logs impactés
- Bases de données et autres sources modifiées
- Modifications hors projet
- fichiers dans .cursor/ modifiés
- fichiers dans .secrets/ modifiés
- nouvelle sous sous version dans VERSION
- CHANGELOG.md mise à jour (oui/non)
- Push : Lancer et exécuter intégralement l'agent
.cursor/agents/push-by-script.md(commande /push-by-script) avec ce message de commit. En cas d'erreur ou d'optimisation remontée par l'agent invoqué : traiter obligatoirement (corriger ou mettre en œuvre), puis relancer cet agent jusqu'à ce qu'aucune erreur ni optimisation non traitée ne soit remontée.
Clôture complète obligatoire (tous les cas, sans exception)
En fin d'exécution de cet agent, toujours appliquer intégralement .cursor/rules/cloture-evolution.mdc : points 1 à 19. Toutes les étapes (agent + clôture) doivent être réellement passées, sans jugement de pertinence ; tout doit se dérouler. (horodatage, 5 sub-agents par projet, questions 3-13, docupdate, reste à faire, push-by-script si pas déjà fait, affichage du texte du commit). Aucune exception : même si le code n'a pas été modifié, la clôture complète est obligatoire. Lister les actions réalisées et non réalisées pour chaque point.