Les règles fournissent des instructions au niveau système à Agent et Inline Edit. Pense-les comme un contexte persistant, des préférences ou des workflows pour tes projets. Cursor prend en charge quatre types de règles :

Project Rules

Stockées dans .cursor/rules, versionnées et limitées à ta base de code.

User Rules

Globales à ton environnement Cursor. Définies dans les paramètres et toujours appliquées.

AGENTS.md

Instructions d’Agent au format Markdown. Alternative simple à .cursor/rules.

.cursorrules (Legacy)

Toujours pris en charge, mais obsolète. Utilise plutôt les Project Rules.

Comment fonctionnent les règles

Les grands modèles de langage ne gardent pas de mémoire entre les complétions. Les règles fournissent un contexte persistant et réutilisable au niveau du prompt. Quand elles sont appliquées, le contenu des règles est inclus au début du contexte du modèle. Ça donne à l’IA des consignes cohérentes pour générer du code, interpréter des modifications ou aider dans les workflows.
Règle appliquée dans le contexte avec le chat
Les règles s’appliquent à Chat et à Inline Edit. Les règles actives s’affichent dans la barre latérale de l’Agent.

Règles du projet

Les règles du projet se trouvent dans .cursor/rules. Chaque règle est un fichier versionné. Elles peuvent être ciblées via des motifs de chemin, invoquées manuellement, ou incluses en fonction de leur pertinence. Les sous-répertoires peuvent inclure leur propre dossier .cursor/rules limité à ce dossier. Utilise les règles du projet pour :
  • Encoder des connaissances spécifiques à ton codebase
  • Automatiser des workflows ou des templates propres au projet
  • Standardiser les décisions de style ou d’architecture

Anatomie d’une règle

Chaque fichier de règle est écrit en MDC (.mdc), un format qui prend en charge les métadonnées et le contenu. Gère comment les règles sont appliquées via la liste déroulante du type, qui modifie les propriétés description, globs, alwaysApply.
Rule TypeDescription
AlwaysToujours inclus dans le contexte du modèle
Auto AttachedInclus quand des fichiers correspondant à un motif glob sont référencés
Agent RequestedDisponible pour l’IA, qui décide s’il faut l’inclure. Doit fournir une description
ManualInclus uniquement quand il est explicitement mentionné avec @ruleName
---
description: Modèle de service RPC
globs:
alwaysApply: false
---

- Utilise notre schéma RPC interne pour définir les services
- Utilise toujours snake_case pour les noms de services.

@service-template.ts

Règles imbriquées

Organise les règles en les plaçant dans des répertoires .cursor/rules à travers ton projet. Les règles imbriquées s’appliquent automatiquement quand des fichiers de leur répertoire sont référencés.
project/
  .cursor/rules/        # Règles à l’échelle du projet
  backend/
    server/
      .cursor/rules/    # Règles spécifiques au backend
  frontend/
    .cursor/rules/      # Règles spécifiques au frontend

Créer une règle

Crée des règles avec la commande New Cursor Rule ou via Cursor Settings > Rules. Ça crée un nouveau fichier de règle dans .cursor/rules. Depuis les paramètres, tu peux voir toutes les règles et leur état.
Comparaison entre règles concises et longues

Génération de règles

Génère des règles directement dans les conversations avec la commande /Generate Cursor Rules. Pratique quand t’as défini le comportement de l’agent et que tu veux le réutiliser.

Bonnes pratiques

De bonnes règles sont ciblées, actionnables et bien délimitées.
  • Garde les règles sous la barre des 500 lignes
  • Scinde les règles volumineuses en plusieurs règles composables
  • Fournis des exemples concrets ou des fichiers de référence
  • Évite les consignes vagues. Écris les règles comme une doc interne claire
  • Réutilise les règles quand tu répètes des prompts dans le chat

Exemples

Cette règle définit des normes pour les composants frontend :Dans le répertoire components :
  • Utilise toujours Tailwind pour le style
  • Utilise Framer Motion pour les animations
  • Suis les conventions de nommage des composants
Cette règle impose la validation des endpoints d’API :Dans le répertoire API :
  • Utilise zod pour toute validation
  • Définit les types de retour avec des schémas zod
  • Exporte les types générés à partir des schémas
Cette règle fournit un modèle pour les services Express :Utilise ce modèle lors de la création d’un service Express :
  • Suis les principes RESTful
  • Inclue un middleware de gestion des erreurs
  • Mets en place une journalisation adéquate
@express-service-template.tsCette règle définit la structure des composants React :Les composants React doivent suivre cette structure :
  • Interface des props en haut
  • Composant exporté nommément
  • Styles en bas
@component-template.tsx
Cette règle automatise l’analyse de l’app :Quand on te demande d’analyser l’app :
  1. Lance le serveur de dev avec npm run dev
  2. Récupère les logs depuis la console
  3. Propose des améliorations de performance
Cette règle aide à générer la documentation :Aide à rédiger la doc en :
  • Extrayant les commentaires de code
  • Analysant README.md
  • Générant de la documentation Markdown
Commence par créer une propriété à basculer dans @reactiveStorageTypes.ts.Ajoute une valeur par défaut dans INIT_APPLICATION_USER_PERSISTENT_STORAGE dans @reactiveStorageService.tsx.Pour les fonctionnalités bêta, ajoute un toggle dans @settingsBetaTab.tsx, sinon ajoute-le dans @settingsGeneralTab.tsx. Les toggles peuvent être ajoutés comme <SettingsSubSection> pour les cases à cocher générales. Regarde le reste du fichier pour des exemples.
<SettingsSubSection
				label="Your feature name"
				description="Your feature description"
				value={
					vsContext.reactiveStorageService.applicationUserPersistentStorage
						.myNewProperty ?? false
				}
				onChange={(newVal) => {
					vsContext.reactiveStorageService.setApplicationUserPersistentStorage(
						'myNewProperty',
						newVal
					);
				}}
			/>
Pour l’utiliser dans l’app, importe reactiveStorageService et utilise la propriété :
const flagIsEnabled = vsContext.reactiveStorageService.applicationUserPersistentStorage.myNewProperty
De nombreux exemples sont disponibles auprès des fournisseurs et des frameworks. Des règles proposées par la communauté se trouvent dans des collections et dépôts collaboratifs en ligne.

AGENTS.md

AGENTS.md est un simple fichier Markdown pour définir des instructions d’agent. Place-le à la racine de ton projet comme alternative à .cursor/rules pour des cas d’usage simples. Contrairement aux règles de projet, AGENTS.md est un fichier Markdown brut, sans métadonnées ni configurations complexes. C’est parfait pour les projets qui ont besoin d’instructions simples et lisibles, sans le surcoût de règles structurées.
# Instructions du projet

## Style de code
- Utilise TypeScript pour tous les nouveaux fichiers
- Privilégie les composants fonctionnels dans React
- Utilise snake_case pour les colonnes de la base de données

## Architecture
- Suis le pattern « repository »
- Conserve la logique métier dans les couches de service

Règles utilisateur

Les règles utilisateur sont des préférences globales définies dans Cursor Settings → Rules et qui s’appliquent à tous les projets. Elles sont en texte brut, idéal pour définir ton style de communication préféré ou tes conventions de code :
Réponds de façon concise. Évite les répétitions inutiles et le remplissage.

.cursorrules (Ancien)

Le fichier .cursorrules à la racine de ton projet est toujours pris en charge, mais il sera bientôt obsolète. On te recommande de migrer vers Project Rules pour plus de contrôle, de flexibilité et de visibilité.

FAQ

Vérifie le type de règle. Pour Agent Requested, assure-toi qu’une description est définie. Pour Auto Attached, assure-toi que le pattern de fichier correspond aux fichiers référencés.
Oui. Utilise @filename.ts pour inclure des fichiers dans le contexte de ta règle.
Oui, génère des règles de projet depuis le chat avec la commande /Generate Cursor Rules. Si Memories est activé, des memories sont générées automatiquement.
Non. Les règles s’appliquent uniquement à Agent et à Inline Edit.