Memories est le système qui permet de partager et de conserver le contexte entre les conversations. Windsurf propose deux mécanismes à cet effet : les Memories, qui peuvent être générées automatiquement par Cascade, et les règles, définies manuellement par l’utilisateur aux niveaux local et global.

Comment gérer les Memories

Les Memories et les Rules sont accessibles et configurables à tout moment en cliquant sur l’icône Customisations dans le menu latéral en haut à droite de Cascade, ou via “Windsurf - Settings” dans le coin inférieur droit. Pour modifier une Memory existante, cliquez simplement dessus puis sur le bouton Edit.

Mémoires

Au cours d’une conversation, Cascade peut générer et stocker automatiquement des mémoires lorsqu’il rencontre un contexte qu’il juge utile de conserver. Vous pouvez également demander à tout moment à Cascade de créer une mémoire. Il suffit de lui demander de « créer une mémoire de … ». Les mémoires générées automatiquement par Cascade sont associées au workspace dans lequel elles ont été créées, et Cascade les retrouvera lorsqu’il les jugera pertinentes. Les mémoires générées dans un workspace ne seront pas disponibles dans un autre.
La création et l’utilisation de mémoires générées automatiquement ne consomment PAS de crédits

Règles

Les utilisateurs peuvent définir explicitement leurs propres règles que Cascade doit suivre. Les règles peuvent être définies au niveau global ou au niveau du workspace. global_rules.md - règles appliquées à tous les workspaces .windsurf/rules - répertoire du workspace contenant des règles associées à des globs ou à des descriptions en langage naturel.

Découverte des règles

Windsurf découvre automatiquement des règles à partir de plusieurs emplacements pour offrir une organisation flexible :
  • Workspace actuel et sous-répertoires : Tous les répertoires .windsurf/rules au sein de votre workspace actuel et de ses sous-répertoires
  • Structure du dépôt Git : Pour les dépôts Git, Windsurf recherche également jusqu’à la racine du dépôt afin de trouver des règles dans les répertoires parents
  • Prise en charge de plusieurs workspaces : Lorsque plusieurs dossiers sont ouverts dans le même workspace, les règles sont dédupliquées et affichées avec le chemin relatif le plus court

Emplacements de stockage des règles

Les règles peuvent être stockées dans l’un de ces emplacements :
  • .windsurf/rules dans le répertoire de votre workspace actuel
  • .windsurf/rules dans n’importe quel sous-répertoire de votre workspace
  • .windsurf/rules dans les répertoires parents jusqu’à la racine Git (pour les dépôts Git)
Lorsque vous créez une nouvelle règle, elle est enregistrée dans le répertoire .windsurf/rules de votre workspace actuel, pas nécessairement à la racine Git. Pour commencer avec les Rules, cliquez sur l’icône Customisations dans le menu coulissant en haut à droite de Cascade, puis accédez au panneau Rules. Là, vous pouvez cliquer sur le bouton + Global ou + Workspace pour créer de nouvelles règles au niveau global ou au niveau du workspace, respectivement.
Vous pouvez trouver des modèles de règles d’exemple sélectionnés par l’équipe Windsurf à l’adresse https://windsurf.com/editor/directory pour vous aider à démarrer.
Les fichiers de règles sont limités à 12 000 caractères chacun.

Modes d’activation

Au niveau de la règle, vous pouvez définir comment une règle doit être activée pour Cascade. Il existe 4 modes :
  1. Manuel : cette règle peut être activée manuellement via une @mention dans le champ de saisie de Cascade
  2. Toujours actif : cette règle est toujours appliquée
  3. Décision du modèle : à partir d’une description en langage naturel de la règle définie par l’utilisateur, le modèle d’IA décide s’il faut l’appliquer.
  4. Glob : en fonction du motif glob défini par l’utilisateur (p. ex. .js, src/**/.ts), cette règle sera appliquée à tous les fichiers correspondant à ce motif.

Bonnes pratiques

Pour aider Cascade à appliquer efficacement vos règles, suivez ces bonnes pratiques :
  • Gardez des règles simples, concises et précises. Des règles trop longues ou vagues peuvent dérouter Cascade.
  • Inutile d’ajouter des règles génériques (p. ex. « write good code »), car elles sont déjà intégrées aux données d’entraînement de Cascade.
  • Formatez vos règles avec des listes à puces, des listes numérotées et du Markdown. Elles sont plus faciles à suivre pour Cascade qu’un long paragraphe. Par exemple :
# Directives de codage 
- Le langage de programmation de mon projet est Python
- Utiliser les retours anticipés lorsque c'est possible
- Toujours ajouter de la documentation lors de la création de nouvelles fonctions et classes
  • Les balises XML sont un moyen efficace de communiquer et de regrouper des règles similaires. Par exemple :
<coding_guidelines>
- Le langage de programmation de mon projet est Python
- Utilisez des retours anticipés lorsque c'est possible
- Ajoutez toujours de la documentation lors de la création de nouvelles fonctions et classes
</coding_guidelines>