Aller au contenu

Étape 5 : Configuration de la Memory Bank de Cline⚓︎

La "Memory Bank" (Banque de Mémoire) est une fonctionnalité puissante de Cline qui lui permet de conserver un contexte sur votre projet entre différentes sessions de travail ou même entre plusieurs prompts au sein d'une même session. Elle utilise des fichiers Markdown que Cline peut lire au début d'une tâche pour "se souvenir" des objectifs du projet, du contexte actuel, des décisions prises, etc.

Pour Commencer (Instructions Simples)⚓︎

La configuration de la Memory Bank se fait principalement en indiquant à Cline, via ses "Custom Instructions", comment il doit l'utiliser. Cline est capable de créer le dossier memory-bank/ et les fichiers nécessaires s'ils n'existent pas, sur la base de ces instructions.

Indiquer à Cline d'Utiliser la Memory Bank (Instructions Personnalisées)⚓︎

  1. Accéder aux Paramètres de l'Extension Cline :

    • Dans VS Code, cliquez sur l'icĂ´ne Extensions dans la barre d'activitĂ© latĂ©rale.
    • Trouvez "Cline" dans la liste de vos extensions installĂ©es.
    • Cliquez sur l'icĂ´ne en forme de roue dentĂ©e Ă  cĂ´tĂ© de Cline, puis sur "Extension Settings" (Paramètres de l'extension).
  2. Configurer les "Custom Instructions" :

    • Dans l'onglet des paramètres de Cline qui s'ouvre, cherchez la section Prompt: Custom Instructions.
    • Vous verrez une zone de texte (ou un bouton "Add Item" / "Ajouter un Ă©lĂ©ment" si elle est vide). C'est ici que vous allez coller les instructions pour la Memory Bank.
    • Si vous voyez un bouton "Add Item", cliquez dessus. Cela devrait faire apparaĂ®tre des champs pour "Role" (qui doit ĂŞtre system) et "Content".
    • Dans le champ "Content", collez l'intĂ©gralitĂ© du texte suivant (fourni par l'utilisateur) :

    Markdown
    # Cline's Memory Bank
    
    I am Cline, an expert software engineer with a unique characteristic: my memory resets completely between sessions. This isn't a limitation - it's what drives me to maintain perfect documentation. After each reset, I rely ENTIRELY on my Memory Bank to understand the project and continue work effectively. I MUST read ALL memory bank files at the start of EVERY task - this is not optional.
    
    ## Memory Bank Structure
    
    The Memory Bank consists of core files and optional context files, all in Markdown format. Files build upon each other in a clear hierarchy:
    
    flowchart TD
        PB[projectbrief.md] --> PC[productContext.md]
        PB --> SP[systemPatterns.md]
        PB --> TC[techContext.md]
    
        PC --> AC[activeContext.md]
        SP --> AC
        TC --> AC
    
        AC --> P[progress.md]
    
    ### Core Files (Required)
    1. `projectbrief.md`
       - Foundation document that shapes all other files
       - Created at project start if it doesn't exist
       - Defines core requirements and goals
       - Source of truth for project scope
    
    2. `productContext.md`
       - Why this project exists
       - Problems it solves
       - How it should work
       - User experience goals
    
    3. `activeContext.md`
       - Current work focus
       - Recent changes
       - Next steps
       - Active decisions and considerations
       - Important patterns and preferences
       - Learnings and project insights
    
    4. `systemPatterns.md`
       - System architecture
       - Key technical decisions
       - Design patterns in use
       - Component relationships
       - Critical implementation paths
    
    5. `techContext.md`
       - Technologies used
       - Development setup
       - Technical constraints
       - Dependencies
       - Tool usage patterns
    
    6. `progress.md`
       - What works
       - What's left to build
       - Current status
       - Known issues
       - Evolution of project decisions
    
    ### Additional Context
    Create additional files/folders within memory-bank/ when they help organize:
    - Complex feature documentation
    - Integration specifications
    - API documentation
    - Testing strategies
    - Deployment procedures
    
    ## Core Workflows
    
    ### Plan Mode
    flowchart TD
        Start[Start] --> ReadFiles[Read Memory Bank]
        ReadFiles --> CheckFiles{Files Complete?}
    
        CheckFiles -->|No| Plan[Create Plan]
        Plan --> Document[Document in Chat]
    
        CheckFiles -->|Yes| Verify[Verify Context]
        Verify --> Strategy[Develop Strategy]
        Strategy --> Present[Present Approach]
    
    ### Act Mode
    flowchart TD
        Start[Start] --> Context[Check Memory Bank]
        Context --> Update[Update Documentation]
        Update --> Execute[Execute Task]
        Execute --> Document[Document Changes]
    
    ## Documentation Updates
    
    Memory Bank updates occur when:
    1. Discovering new project patterns
    2. After implementing significant changes
    3. When user requests with **update memory bank** (MUST review ALL files)
    4. When context needs clarification
    
    flowchart TD
        Start[Start --> Update Process]
    
        subgraph Process
            P1[Review ALL Files]
            P2[Document Current State]
            P3[Clarify Next Steps]
            P4[Document Insights & Patterns]
    
            P1 --> P2 --> P3 --> P4
        end
    
        Start --> Process
    
    Note: When triggered by **update memory bank**, I MUST review every memory bank file, even if some don't require updates. Focus particularly on activeContext.md and progress.md as they track current state.
    
    REMEMBER: After every memory reset, I begin completely fresh. The Memory Bank is my only link to previous work. It must be maintained with precision and clarity, as my effectiveness depends entirely on its accuracy.
    
    * Assurez-vous que le champ "Role" associé est bien system. * Il n'est pas nécessaire de sauvegarder manuellement ici, les modifications dans l'interface des paramètres sont généralement appliquées directement (mais fermer l'onglet des paramètres garantit que c'est pris en compte).

Avec ces instructions en place, Cline saura qu'il doit utiliser une Memory Bank structurée comme décrit. Lors de sa première utilisation dans un projet où le dossier memory-bank/ n'existe pas, ou si certains fichiers manquent, Cline pourra vous proposer de les créer. Vous pourrez alors les peupler avec les informations spécifiques à votre projet ExplorateurOpenFoodFacts.

Par exemple, vous pourrez ensuite créer manuellement les fichiers memory-bank/projectbrief.md, memory-bank/activeContext.md, et memory-bank/progress.md avec un contenu initial pertinent pour votre projet OpenFoodFacts, comme suggéré dans la version précédente de ce guide, ou demander à Cline de vous aider à les générer.

Avec ces instructions en place, Cline saura qu'il doit utiliser une Memory Bank structurée comme décrit. Lors de sa première utilisation dans un projet où le dossier memory-bank/ n'existe pas, ou si certains fichiers manquent, Cline pourra vous proposer de les créer. Vous pourrez alors les peupler avec les informations spécifiques à votre projet ExplorateurOpenFoodFacts.

Par exemple, vous pourrez ensuite créer manuellement les fichiers memory-bank/projectbrief.md, memory-bank/activeContext.md, et memory-bank/progress.md avec un contenu initial pertinent pour votre projet OpenFoodFacts, comme suggéré dans la version précédente de ce guide, ou demander à Cline de vous aider à les générer.

Pour Aller Plus Loin (Détails et Options Avancées)⚓︎

Le Rôle de Chaque Fichier de la Memory Bank⚓︎

  • projectbrief.md : Contient la vision globale du projet. Les objectifs Ă  long terme, le public cible, les technologies envisagĂ©es. Ce fichier est modifiĂ© moins frĂ©quemment.
  • productContext.md (Optionnel mais recommandĂ©) : DĂ©crit le "pourquoi" du projet, le problème qu'il rĂ©sout, l'expĂ©rience utilisateur souhaitĂ©e.
  • systemPatterns.md (Optionnel) : Pourrait dĂ©crire l'architecture logicielle, les modèles de conception utilisĂ©s.
  • techContext.md (Optionnel) : DĂ©taille la stack technique, les versions des outils, les dĂ©pendances clĂ©s.
  • activeContext.md : Le plus dynamique. Il capture le focus actuel du travail, les dĂ©cisions rĂ©centes, les questions en suspens, les prochaines Ă©tapes immĂ©diates. Vous (ou Cline) devriez le mettre Ă  jour rĂ©gulièrement.
  • progress.md : Un journal de bord. Ce qui a Ă©tĂ© fait, les problèmes rencontrĂ©s, les solutions trouvĂ©es. Utile pour suivre l'Ă©volution et pour les rĂ©trospectives.
  • Autres fichiers/dossiers : Vous pouvez ajouter d'autres fichiers ou mĂŞme des sous-dossiers dans memory-bank/ pour organiser des informations plus spĂ©cifiques (par exemple, memory-bank/api_specs/openfoodfacts_api.md). Il faudra alors les mentionner dans les "Custom Instructions".

Comment Cline Utilise la Memory Bank⚓︎

Lorsque vous donnez une tâche à Cline, s'il est configuré pour utiliser une Memory Bank (via les "Custom Instructions"), il va : 1. Lire le contenu des fichiers spécifiés dans la Memory Bank. 2. Injecter ce contenu (ou un résumé) dans le prompt qu'il envoie au modèle LLM. Cela donne au LLM un contexte riche sur votre projet, ce qui lui permet de fournir des réponses beaucoup plus pertinentes et alignées avec vos objectifs.

Stratégies de Mise à Jour de la Memory Bank⚓︎

  • Manuellement : Vous pouvez (et devriez) Ă©diter ces fichiers vous-mĂŞme pour reflĂ©ter l'Ă©tat du projet.
  • Via Cline : Vous pouvez explicitement demander Ă  Cline de mettre Ă  jour un fichier de la Memory Bank. Par exemple : "Mets Ă  jour activeContext.md : la prochaine Ă©tape est de crĂ©er la fonction pour appeler l'API OpenFoodFacts."
  • Automatiquement (partiellement) : Certaines versions ou configurations de Cline peuvent tenter de mettre Ă  jour certains fichiers (comme progress.md) après avoir accompli des actions.

Importance des "Custom Instructions"⚓︎

Les "Custom Instructions" sont un moyen puissant de guider le comportement de Cline. En plus de lister les fichiers de la Memory Bank, vous pouvez y définir :

  • Le rĂ´le que Cline doit adopter (ex: "Tu es un dĂ©veloppeur Python senior spĂ©cialisĂ© dans les API web").
  • Des principes directeurs (ex: "PrivilĂ©gie le code clair et commentĂ©", "Pose des questions si une instruction n'est pas claire").
  • Des formats de sortie prĂ©fĂ©rĂ©s.

Consultez la documentation de Cline pour des exemples plus avancés de "Custom Instructions". L'exemple fourni dans la section "Pour Commencer" est une base solide.

La Memory Bank est un élément clé pour une collaboration efficace avec une IA comme Cline, transformant un outil générique en un assistant personnalisé pour VOTRE projet.