Changer le thème

Configuration avancée des Cursor Rules : créer votre assistant de programmation IA sur mesure

Easton editorial illustration: Codex project workflow bench

Dans un même projet, Cursor génère parfois un code élégant, parfois totalement hors de vos habitudes. Vous avez pourtant rempli .cursorrules de règles, et l’IA semble les ignorer. Changez de projet, et tout est à reconfigurer…

La première fois avec Cursor Rules, j’ai fait la même erreur. Des heures passées à écrire des règles, sans changement visible dans le code généré. Le problème n’était pas les règles elles-mêmes, mais une mauvaise compréhension du système.

Cet article aborde les usages avancés des Cursor Rules. Pas un tutoriel « qu’est-ce que .cursorrules », mais de l’expérience terrain pour vraiment exploiter cet outil.

I. Refondre les concepts clés des Cursor Rules

1.1 De .cursorrules à .cursor/rules/ : l’évolution du système

Si vous utilisez Cursor depuis un moment, vous utilisez peut-être encore l’ancien fichier unique .cursorrules. Ça fonctionne, mais avec des limites nettes.

Le problème du fichier unique ? Toutes les règles s’entassent au même endroit, difficiles à maintenir ; impossible de définir des règles différentes selon le type de fichier. Projet avec composants React et scripts Python ? Impossible de séparer les règles dans un seul fichier.

En 2026, Cursor a introduit la structure .cursor/rules/ avec le format MDC, qui règle ces problèmes.

La nouvelle structure ressemble à ceci :

.cursor/
└── rules/
    ├── base.mdc          # Conventions de base
    ├── frontend.mdc      # Règles frontend
    ├── backend.mdc       # Règles backend
    └── testing.mdc       # Règles de test

Chaque fichier est un module indépendant, avec un motif glob pour définir sa portée. Par exemple, frontend.mdc ne s’applique qu’aux fichiers .tsx, backend.mdc qu’aux fichiers .py.

La migration est simple. L’ancien .cursorrules reste compatible ; les nouveaux projets adoptent directement le nouveau format. Pour migrer un ancien projet, scindez le fichier en plusieurs .mdc — rétrocompatibilité garantie.

1.2 Les trois types de règles et leurs cas d’usage

Le système de règles Cursor en compte trois, souvent mal compris.

Project Rules (règles projet) — dans .cursor/rules/, valables uniquement pour le projet courant. Idéal pour les spécificités du projet : React 18 + Tailwind, déclaration de stack, etc. Après un clone, l’équipe bénéficie automatiquement de ces règles.

Team Rules (règles équipe) — stockées dans le cloud, partagées entre membres. Pour les conventions d’équipe : exports nommés, format de réponse API unifié. Nécessite la version Team de Cursor.

User Rules (règles utilisateur) — configurées dans les paramètres Cursor, valables pour tous vos projets. Pour les préférences personnelles : tabulations ou espaces, commentaires en français ou en anglais.

Priorité : User Rules en tête, puis Team Rules, puis Project Rules. Si User Rules impose les espaces et Project Rules les tabulations, ce sont les User Rules qui l’emportent.

1.3 La logique sous-jacente d’activation des règles

Un peu technique, mais utile pour bien rédiger vos règles.

Lors du traitement d’une requête, l’IA injecte le contenu des règles dans le contexte du modèle. Les règles consomment des tokens : plus long n’est pas mieux ; le verbiage gaspille des tokens sans améliorer le résultat.

Le matching par globs fonctionne comme .gitignore. ["**/*.tsx"] cible tous les tsx ; ["app/api/**/*"] tout sous app/api/.

Si plusieurs règles s’appliquent au même fichier ? Cursor les charge par ordre alphabétique du nom de fichier ; les premières chargées ont priorité. Préfixez par des chiffres : 00-base.mdc, 01-frontend.mdc.

II. Configuration pratique : guide complet de A à Z

2.1 Configuration de base : projet React + TypeScript

Commençons par un projet React simple. Configuration complète à copier dans .cursor/rules/react.mdc :

---
description: Règles projet React + TypeScript
globs: ["**/*.{ts,tsx}"]
---

# Stack technique
- React 18+
- TypeScript 5.0+
- Tailwind CSS

# Style de code
- Composants fonctionnels, déclarés avec le mot-clé function
- Interfaces TypeScript pour les Props
- Structure de fichier : exported component → subcomponents → helpers → types
- Exports nommés, éviter default export

# Bonnes pratiques React
- Privilégier les Server Components (avec Next.js)
- État avec useState et useReducer
- Effets avec useEffect, inclure une fonction de nettoyage
- React.memo pour les composants sensibles aux performances

# Gestion des erreurs
- Privilégier le pattern early return
- Guard clauses pour les cas limites
- Messages d'erreur conviviaux, pas d'erreurs brutes exposées

Structure simple : stack technique, style de code, bonnes pratiques et gestion d’erreurs.

2.2 Configuration avancée : projet full stack Next.js 14

Un projet Next.js est plus complexe, frontend et backend. Organisation modulaire recommandée :

.cursor/
└── rules/
    ├── base.mdc          # Conventions de base
    ├── api.mdc           # Règles routes API
    ├── components.mdc    # Règles composants
    ├── database.mdc      # Règles base de données
    └── testing.mdc       # Règles de test

Exemple api.mdc :

---
globs: ["app/api/**/*.{ts,tsx}"]
---

# Conventions routes API
- Utiliser les Route Handlers (app/api/)
- Toutes les réponses avec le type unifié APIResponse
- Validation des paramètres avec Zod
- Gestion d'erreurs avec next-safe-action

# Format de réponse
- GET : retourner { success: boolean, data?: T, error?: string }
- POST : valider l'entrée → logique métier → réponse
- Erreurs : validation, métier, système — traitées séparément

Les règles API ne s’activent que lors de l’édition de fichiers sous app/api/. Pas de suggestions API intempestives en écrivant des composants.

2.3 Configuration avancée : backend Python FastAPI

Pour un backend Python, l’approche diffère :

---
description: Règles projet Python FastAPI
globs: ["**/*.py"]
---

# Stack technique
- Python 3.12+
- FastAPI 0.100+
- SQLAlchemy 2.0
- Pydantic v2

# Style de code
- Formatage avec Black
- Tri des imports avec isort
- Type hints obligatoires
- Nommage snake_case pour les fonctions

# Bonnes pratiques FastAPI
- Injection de dépendances pour les connexions DB
- Modèles Pydantic pour la validation
- Background tasks pour l'asynchrone
- Middleware de gestion d'erreurs unifié

# Base de données
- API asynchrone SQLAlchemy 2.0
- Migrations avec Alembic
- Soft delete et journaux d'audit

L’accent : outils de style (Black, isort) et annotations de type.

2.4 Configuration collaborative : gestion multi-personnes

En tant que Tech Lead, pour unifier le style de l’équipe :

racine du projet/
├── .cursor/
│   └── rules/
│       ├── README.md           # Guide d'utilisation des règles
│       ├── base.mdc            # Conventions globales
│       ├── frontend.mdc        # Règles frontend
│       ├── backend.mdc         # Règles backend
│       └── team-guidelines.mdc # Conventions d'équipe
└── .cursorrules                # Rétrocompatibilité (optionnel)

Quelques conseils :

Versionnez les règles. Chaque clone du projet en bénéficie sans configuration supplémentaire.

Commentez chaque fichier de règles. Les nouveaux membres comprennent les conventions en les lisant.

Revoyez et mettez à jour régulièrement. Le projet évolue, les règles aussi. Un bilan par itération est recommandé.

III. Débogage et optimisation : faire fonctionner les règles

3.1 Techniques de débogage

L’IA n’applique pas vos règles ? Problème très courant. Checklist de diagnostic :

1. Vérifier l’emplacement

Les fichiers doivent être au bon endroit :

  • sous .cursor/rules/ (recommandé)
  • ou .cursorrules à la racine du projet

Sinon, l’IA ne les lit pas.

2. Vérifier les motifs glob

Un glob incorrect désactive la règle. Ouvrez un fichier dans Cursor et demandez : « Quelles règles sont actuellement chargées ? »

3. Vérifier le format YAML

Le frontmatter MDC est du YAML. Indentation ou deux-points incorrects = échec de parsing.

4. Vérifier les conflits

Plusieurs règles peuvent se contredire. Fusionnez les exigences divergentes sur un même sujet.

3.2 Stratégies d’optimisation

« Plus de règles = mieux » est une erreur. Trop long, l’IA « digère mal ».

Principe 1 : concision

Placez l’essentiel en tête. L’IA lit de haut en bas ; le début est mieux retenu.

Principe 2 : précision

Comparaison :

Formulation vague :

# Style de code
- Écrire du code concis
- Suivre les bonnes pratiques
- Attention aux performances

Formulation précise :

# Style de code
- Composants fonctionnels, pas de class components
- Pattern early return, moins d'imbrication
- React.memo pour les composants sensibles aux perfs
- Éviter les fonctions inline dans les boucles

La seconde laisse l’IA savoir quoi faire ; la première ne laisse que deviner.

Principe 3 : organisation en couches

Ordre recommandé : stack → style → bonnes pratiques → gestion d’erreurs. Logique claire pour l’IA.

Principe 4 : itération continue

Les règles ne sont pas figées. Observez la qualité du code généré et ajustez.

3.3 Évaluation de l’efficacité

Indicateurs utiles :

  • Taux de réussite du premier coup : part du code généré utilisable tel quel
  • Cohérence de style : uniformité entre sessions
  • Nombre de bugs : baisse après activation des règles ?
  • Efficacité de développement : codage plus rapide ?

Comparez avant/après pour mesurer l’impact réel.

IV. Pratiques 2026 : format MDC et modularité

4.1 Analyse approfondie du format MDC

Le MDC est le nouveau format Cursor, bien plus flexible que .cursorrules.

Structure :

---
description: Description de la règle (optionnel)
globs: ["motif de correspondance"]
alwaysApply: false (optionnel, false par défaut)
---

# Contenu des règles
Le contenu concret va ici...

description — pour les humains, clarifie l’usage de la règle.

globs — motifs de correspondance :

  • ["**/*.tsx"] — tous les tsx
  • ["app/api/**/*"] — tout sous app/api/
  • ["*.test.{ts,tsx}"] — fichiers de test uniquement

alwaysApply à true : règle toujours active, sans filtrage par fichier. Déconseillé — gaspille des tokens.

4.2 Architecture modulaire

Grands projets : structure plus granulaire :

.cursor/
└── rules/
    ├── 00-base.mdc           # Conventions de base
    ├── 01-tech-stack.mdc     # Déclaration stack
    ├── 02-code-style.mdc     # Style de code
    ├── 10-frontend/          # Règles frontend (sous-répertoire)
    │   ├── react.mdc
    │   └── tailwind.mdc
    ├── 20-backend/           # Règles backend (sous-répertoire)
    │   ├── api.mdc
    │   └── database.mdc
    └── README.md             # Documentation des règles

Préfixes numériques pour l’ordre de chargement. 00- d’abord, 10- ensuite. Les conventions de base passent en premier.

Sous-répertoires pour une gestion fine : frontend dans 10-frontend/, backend dans 20-backend/.

4.3 Outils de génération recommandés

Pas envie de tout écrire from scratch ?

cursor.directory — bibliothèque en ligne, modèles par framework, copie directe.

cursorrules.org — générateur interactif, quelques questions → fichier généré.

awesome-cursorrules — collection GitHub, 100+ modèles, 20+ frameworks.

Partez d’un modèle, mais personnalisez. Comprenez le principe derrière chaque règle pour écrire ce qui vous convient vraiment.

V. Synthèse et plan d’action

5.1 Checklist de démarrage rapide

Pour commencer maintenant :

Étape 1 : identifiez le type de projet. React ? Next.js ? Python ? Autre ?

Étape 2 : choisissez un modèle proche sur cursor.directory ou awesome-cursorrules.

Étape 3 : adaptez — versions de stack, habitudes personnelles.

Étape 4 : testez — générez du code, vérifiez qu’il correspond à vos attentes.

Étape 5 : partagez en équipe — commitez les règles si le résultat convient.

5.2 Pièges à éviter

Quelques erreurs que j’ai commises :

Règles trop vagues — l’IA ne sait pas ce que vous voulez. Soyez concret.

Fichier trop long — 200 lignes max ; au-delà, l’IA ne lit pas tout.

Déploiement sans test — validez sur un périmètre restreint d’abord.

Jamais de mise à jour — le projet change, les règles aussi. Revoyez-les régulièrement.

5.3 Ressources pour aller plus loin

Ouvrez votre projet et configurez vos premières Cursor Rules. Commencez simple, affinez progressivement. Vous verrez l’IA devenir de plus en plus « à votre écoute ».

Configurer les Cursor Rules avancées

Configurer des Cursor Rules modulaires pour améliorer la compréhension de l'assistant IA

⏱️ Estimated time: 30 min

  1. 1

    Step 1: Créer la structure de répertoires des règles

    Créez le répertoire .cursor/rules/ à la racine du projet :

    ```bash
    mkdir -p .cursor/rules
    ```

    Si vous migrez depuis l'ancien .cursorrules, conservez d'abord le fichier original ; les deux formats peuvent coexister.
  2. 2

    Step 2: Créer le fichier de règles de base

    Créez le fichier base.mdc pour définir les conventions de base du projet :

    ```markdown
    ---
    description: Conventions de base du projet
    globs: ["**/*"]
    ---

    # Informations projet
    - Nom du projet : votre nom de projet
    - Stack technique : listez les technologies principales

    # Conventions générales
    - Points de style de code
    - Conventions de nommage
    - Règles de commentaires
    ```

    Ce fichier s'applique à tous les fichiers.
  3. 3

    Step 3: Créer des règles spécialisées par type de fichier

    Créez des règles pour des types de fichiers spécifiques, par exemple frontend.mdc :

    ```markdown
    ---
    globs: ["**/*.{ts,tsx}"]
    ---

    # Règles frontend
    - Conventions des composants
    - Conventions de gestion d'état
    - Conventions de style
    ```

    globs accepte plusieurs motifs : `["**/*.ts", "**/*.tsx"]`
  4. 4

    Step 4: Tester si les règles sont actives

    Ouvrez un fichier cible dans Cursor et demandez directement à l'IA :

    « Quelles règles sont actuellement chargées ? »

    L'IA listera les fichiers de règles qu'elle reconnaît. Sinon, vérifiez :
    - L'emplacement du fichier est-il correct ?
    - Le motif glob correspond-il au fichier actuel ?
    - Le YAML frontmatter contient-il des erreurs de syntaxe ?
  5. 5

    Step 5: Intégrer au contrôle de version

    Commitez les règles dans Git :

    ```bash
    git add .cursor/rules/
    git commit -m "feat: add cursor rules configuration"
    ```

    Les membres de l'équipe obtiennent automatiquement la configuration après un clone du projet.

FAQ

Dans quel répertoire placer les fichiers de règles Cursor ?
Recommandé : répertoire `.cursor/rules/` à la racine du projet, une règle par fichier `.mdc`. L'ancien format `.cursorrules` reste supporté, mais les nouveaux projets devraient utiliser la structure en répertoire.
Quelle est la différence entre .cursorrules et .cursor/rules/ ?
`.cursorrules` est le format traditionnel à fichier unique, toutes les règles dans un seul fichier. `.cursor/rules/` est la nouvelle structure en répertoire, avec plusieurs fichiers `.mdc` et des motifs glob pour contrôler précisément la portée de chaque règle — plus adapté aux projets de taille moyenne à grande.
Pourquoi mes règles ne s'appliquent-elles pas ?
Quatre causes fréquentes :

• Emplacement incorrect — doit être dans `.cursor/rules/` ou `.cursorrules` à la racine
• Motif glob erroné — ne correspond pas au fichier actuel
• Erreur de format YAML frontmatter
• Contenu trop long ou trop vague, l'IA ne peut pas en tirer l'essentiel

Dans Cursor, demandez à l'IA : « Quelles règles sont actuellement chargées ? » pour diagnostiquer.
Quelle longueur convient pour un fichier de règles ?
Recommandé : 200 lignes maximum. Un fichier trop long consomme beaucoup de tokens et l'IA peine à en saisir l'essentiel. Placez les règles les plus importantes en tête et privilégiez des exemples concrets plutôt que des descriptions vagues.
Quelle est la priorité entre User Rules, Team Rules et Project Rules ?
Priorité décroissante : User Rules (préférences personnelles, tous projets) → Team Rules (partagées en équipe, nécessite la version Team) → Project Rules (règles spécifiques au projet). Les règles de priorité supérieure prévalent.
Comment écrire les globs dans le format MDC ?
globs utilise des motifs glob pour faire correspondre les chemins de fichiers. Exemples courants :

• `["**/*.tsx"]` — tous les fichiers tsx
• `["app/api/**/*"]` — tous les fichiers sous app/api/
• `["*.test.{ts,tsx}"]` — uniquement les fichiers de test
• `["**/*.ts", "**/*.tsx"]` — plusieurs types de fichiers

Plusieurs motifs peuvent être passés sous forme de tableau.
Existe-t-il des modèles de règles prêts à l'emploi ?
Plusieurs ressources communautaires : cursor.directory (bibliothèque en ligne), cursorrules.org (générateur interactif), le dépôt GitHub awesome-cursorrules (100+ modèles, 20+ frameworks). Partez d'un modèle et adaptez-le à votre projet.

8 min de lecture · Publié le: 20 mars 2026 · Mis à jour le: 30 juil. 2026

Commentaires

Connectez-vous avec GitHub pour laisser un commentaire

Easton BlogEaston Blog