Écrire des Cursor Rules : fichier projet et usage par l’agent
Créez un .mdc dans .cursor/rules, choisissez le mode, gardez un texte actionnable. Les règles qui matchent vont en tête de contexte.
Cursor Agent ne garde pas les consignes orales d’un chat à l’autre. Si vous collez « ne réécris pas le routeur » une troisième fois, mettez-le dans une règle projet pour que la session suivante démarre avec.
Les docs appellent cela Cursor Rules. Les règles projet vivent dans .cursor/rules et doivent user de l’extension .mdc. Un .md brut dans ce dossier est ignoré. C’est un guide éditeur, pas un mode d’emploi brainstorm.
Ce qu’est une règle projet
Voir cursor.com/docs/context/rules. Parmi quatre sources, un fichier du dépôt suffit pour commencer. Si la règle s’applique, le texte est en tête du contexte modèle.
| Source | Emplacement | Quand ça entre |
|---|---|---|
| Project Rules | .cursor/rules/*.mdc | selon le frontmatter |
| User Rules | Customize → Rules | Agent (Chat), tous les projets |
| Team Rules | Tableau de bord (Team / Enterprise) | Tous les dépôts ; forçable |
| AGENTS.md | Racine ou sous-dossier | Markdown sans frontmatter |
Écrire la première règle en quatre étapes
- 1
Créer le fichier
Ajoutez
.cursor/rules/your-name.mdcdans le dépôt. Ou tapez/create-ruledans Agent, ou Customize → Rules → Add Rule. Les dossiers sont permis. L’extension doit être.mdc. - 2
Choisir le mode
alwaysApply: trueà chaque chat.globsquand un fichier correspondant est dans le contexte. Description seule : l’Agent décide. Tout vide : seulement@nom-de-règledans le chat. - 3
Écrire un texte actionnable
Comme une doc interne : interdits, noms, frontières de dossiers. Pointez des exemples avec
@filename.tsau lieu de coller le fichier. Plafond officiel : moins de 500 lignes. - 4
Committer et vérifier
Placez la règle dans git pour que l’équipe la partage. Vérifiez l’état dans Customize. Si l’Agent la rate encore, mentionnez-la par
@dans le chat.
Quoi mettre dans le texte
Ce qu’un linter ne voit pas
Exemples : ne pas éditer les fichiers générés ; les nouveaux services renvoient des erreurs structurées. Le style courant à ESLint ou rustfmt. Pas de guide entier.
Frontières d’architecture
Quelle couche touche la base, quels dossiers ne s’importent pas. L’Agent connaît déjà git et npm. Laissez les commandes quotidiennes.
Pointer des exemples du dépôt
Utilisez @ vers un modèle déjà là. Si le code change, la règle reste courte. Ajoutez une règle quand l’Agent répète une erreur — pas vingt fichiers d’emblée.
---
description: TypeScript conventions for this repo
globs: **/*.{ts,tsx}
alwaysApply: false
---
# TypeScript
- Prefer named exports
- Do not edit files under dist/
- New API clients follow @src/api/client.tsComment l’agent utilise la règle
Après correspondance, le texte est en tête de contexte pour le code, les explications de diff et les flux. Ordre officiel de conflit : Team Rules → Project Rules → User Rules ; les sources plus tôt l’emportent. Les Rules n’affectent pas Cursor Tab. Les User Rules ne s’appliquent pas à Inline Edit (Cmd/Ctrl+K).
Quand préférer AGENTS.md
Une note lisible suffit ? Placez AGENTS.md à la racine ou dans un sous-dossier. Les fichiers imbriqués se combinent dans cet arbre ; le plus spécifique gagne. Pour les globs ou le @ manuel, restez sur .mdc.
La règle posée, pour un croquis partagé, wbstorm est un identifiant de salle — voir créer ou rejoindre une salle et bases du tableau.
Pourquoi ma règle ne s’applique pas ?
Vérifiez le type. Apply Intelligently exige une description. Une règle fichier a besoin d’un glob qui matche un chemin déjà dans le contexte. Un .md brut dans .cursor/rules est ignoré.
FAQ officielle : les Rules n’affectent pas Cursor Tab ni les autres fonctions hors Agent. Les User Rules ne s’appliquent pas non plus à Inline Edit.
Une règle peut-elle citer d’autres fichiers ?
Oui. Écrivez @filename.ts dans le texte. Vous pouvez aussi @-mentionner une règle dans le chat pour l’attacher à la main.
Est-ce un guide wbstorm ?
Non. Cet article ne traite que des règles projet Cursor. wbstorm est une salle de brainstorm dans le navigateur, sans lien avec le fichier de règles.