Aller au contenu principal

Gérer le contexte entre les outils de codage IA et les sessions Cursor

Cursor Context Management

L'un des plus grands défis lorsqu'on travaille avec des assistants de codage IA est de maintenir le contexte entre les sessions et les outils. Cursor propose plusieurs mécanismes pour préserver et partager le contexte du projet, garantissant que votre assistant IA dispose toujours des informations nécessaires. Ce guide couvre les meilleures pratiques pour la gestion du contexte.

Le problème de contexte

Lorsque vous travaillez avec des outils IA, vous faites souvent face à ces défis :

  • Amnésie de session : Chaque nouveau chat commence à zéro sans mémoire du travail précédent
  • Changement d'outil : Passer entre Cursor, Claude, ChatGPT ou d'autres outils fait perdre le contexte
  • Partage d'équipe : Les membres de l'équipe ont besoin d'accéder au même contexte de projet
  • Dérive de contexte : Au cours de longues sessions, l'IA perd la trace des objectifs originaux

Solution 1 : AGENTS.md - La Constitution du Projet

Créez un fichier AGENTS.md à la racine de votre dépôt. C'est la source unique de vérité pour tous les outils IA.

Structure de AGENTS.md

# Projet : MyApp

## Vue d'ensemble
Brève description de ce que fait ce projet et de sa stack technique.

## Stack Technique
- Frontend : React 18 + TypeScript + Tailwind CSS
- Backend : Node.js + Express + PostgreSQL
- Tests : Jest + React Testing Library
- Build : Vite

## Structure du Projet

src/ components/ # Composants UI réutilisables pages/ # Pages au niveau des routes hooks/ # Hooks React personnalisés utils/ # Fonctions utilitaires types/ # Types TypeScript api/ # Fonctions client API


## Commandes de Build & Test
```bash
npm run dev # Démarrer le serveur de développement
npm run build # Build de production
npm run test # Exécuter les tests
npm run lint # Exécuter ESLint

Standards de Codage

  • Utiliser des composants fonctionnels avec hooks
  • Suivre l'organisation de fichiers existante
  • Écrire des tests pour toutes les nouvelles fonctionnalités
  • Utiliser le mode strict TypeScript

Décisions Clés

  • Utilisation de React Query pour la gestion de l'état serveur
  • Tokens JWT stockés dans des cookies httpOnly
  • Structure monorepo avec package de types partagés

### Référencer AGENTS.md dans Cursor

Au début de chaque nouveau chat :

Lis AGENTS.md et aide-moi à implémenter [fonctionnalité]. Suis tous les standards de codage et utilise les patterns existants.


## Solution 2 : Règles Spécifiques à Cursor

Créez `.cursor/rules/` pour les directives spécifiques à Cursor :

```markdown
---
description: 'Comportement Cursor spécifique au projet'
globs: ['**/*.ts', '**/*.tsx']
alwaysApply: true
---

# Directives Cursor

## Avant de faire des modifications
1. Lire AGENTS.md pour le contexte du projet
2. Vérifier les implémentations similaires existantes
3. Suivre les patterns établis

## Préférences de génération de code
- Générer du TypeScript avec des types explicites
- Inclure des commentaires JSDoc pour les APIs publiques
- Utiliser le pattern de gestion d'erreurs existant

## Exigences de test
- Toujours suggérer des tests pour les nouvelles fonctionnalités
- Utiliser React Testing Library pour les composants
- Simuler les appels API avec MSW

Solution 3 : Mémoire de Session avec MCP

Utilisez des serveurs MCP (Model Context Protocol) pour une mémoire persistante :

Configuration de la mémoire MCP

Ajoutez à vos paramètres MCP de Cursor :

{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@cursor-memory/server"]
}
}
}

Utilisation de la mémoire

Stockez des faits importants :

Souviens-toi que nous utilisons PostgreSQL avec une table users qui contient :
- id (UUID, clé primaire)
- email (unique, indexé)
- created_at (timestamp)
- preferences (JSONB)

Rappelez-vous dans les sessions futures :

Que te souviens-tu de notre schéma de base de données ?

Solution 4 : Le Pattern CONTRACT.md

Pour les projets complexes, utilisez un fichier de contrat qui définit les invariants :

# Contrat du Projet

## Invariants (Ne jamais violer)
1. Toutes les réponses API doivent inclure un booléen `success`
2. Les IDs utilisateur sont toujours des UUIDs, jamais des entiers
3. Les mots de passe ne sont jamais journalisés ni retournés dans les réponses

## Règles d'Architecture
1. La logique métier réside dans `src/domain/`
2. Les routes API délèguent uniquement aux services
3. L'accès à la base de données se fait uniquement via le pattern repository

## Objectifs du Sprint Actuel
- Implémenter l'authentification utilisateur
- Ajouter le flux de réinitialisation de mot de passe
- Configurer les notifications par email

Mettez à jour ce fichier après chaque changement significatif.

Solution 5 : Résumés de Session

À la fin de chaque session, créez un résumé :

# Résumé de Session : 2026-06-22

## Terminé
- [x] Configurer le middleware d'authentification JWT
- [x] Créer les endpoints de connexion et d'inscription
- [x] Ajouter le hachage de mot de passe avec bcrypt

## En Cours
- [ ] Flux de vérification par email (commencé, besoin de tests)

## Prochaines Étapes
1. Implémenter la réinitialisation de mot de passe avec expiration de token
2. Ajouter du rate limiting aux endpoints d'authentification
3. Écrire des tests d'intégration

## Fichiers Clés Modifiés
- src/middleware/auth.ts (nouveau)
- src/routes/auth.ts (nouveau)
- src/services/auth.ts (nouveau)
- src/models/user.ts (modifié)

## Décisions Prises
- Utilisation d'une expiration JWT de 15 minutes avec tokens de rafraîchissement
- Stockage des tokens de rafraîchissement dans Redis

Sauvegardez ceci sous docs/session-summaries/YYYY-MM-DD.md.

Solution 6 : Contexte Inter-Outils avec Markdown

Lors du passage entre les outils, utilisez un format de contexte standardisé :

# Transfert de Contexte

## Tâche Actuelle
Implémentation de la page de profil utilisateur

## Fichiers Pertinents
- src/pages/Profile.tsx
- src/components/UserForm.tsx
- src/api/users.ts

## État Actuel
- Squelette de la page de profil créé
- Le composant UserForm a besoin de validation
- Le endpoint API /api/users/me retourne les bonnes données

## Blocages
- Besoin de décider de l'approche de téléchargement d'images

## Prochaine Action
Ajouter la validation de formulaire et le gestionnaire de soumission

Copiez ceci dans n'importe quel outil IA pour continuer de manière transparente.

Résumé des Meilleures Pratiques

À Faire

  • Créer AGENTS.md au démarrage du projet
  • Mettre à jour AGENTS.md lorsque l'architecture change
  • Utiliser les règles Cursor pour les directives spécifiques à l'outil
  • Résumer chaque session avant de fermer
  • Stocker les faits persistants avec la mémoire MCP
  • Utiliser le contrôle de version pour tous les fichiers de contexte

À Ne Pas Faire

  • Ne pas compter uniquement sur la mémoire de session de l'IA
  • Ne pas garder le contexte dans des notes externes (Obsidian/Notion) sans synchronisation
  • Ne pas laisser les fichiers de contexte devenir obsolètes
  • Ne pas dupliquer des informations entre plusieurs fichiers

Checklist de Démarrage Rapide

Pour un nouveau projet :

  1. Créer AGENTS.md avec la vue d'ensemble du projet
  2. Configurer .cursor/rules/ pour le comportement de Cursor
  3. Configurer le serveur de mémoire MCP
  4. Créer CONTRACT.md pour les invariants d'architecture
  5. Configurer le répertoire docs/session-summaries/
  6. Ajouter tous les fichiers de contexte au contrôle de version

Ressources Connexes