Guide Technique20 min de lecture

Guide Ultra-Complet des Modes dans Roocode

Maîtrisez les modes personnalisés dans Roocode : de la création à l'orchestration avancée. Guide exhaustif pour développeurs, lead devs et architectes souhaitant exploiter tout le potentiel des agents IA spécialisés.

🧠 Qu'est-ce qu'un mode dans Roocode ?

Un mode est une configuration dédiée qui détermine le comportement de Roocode dans un contexte donné :

  • • Quelles tâches l'IA est censée accomplir
  • • Quels outils elle peut utiliser (lecture, édition, terminal...)
  • • Quels fichiers elle peut consulter ou modifier
  • • Quelles instructions spécifiques elle doit respecter

💡 Concept clé

Chaque mode est donc un agent IA spécialisé, contextuel et délimité.

🎯 Pourquoi créer des modes personnalisés ?

🔧 Spécialisation

Un mode pour écrire la documentation, un autre pour auditer la sécurité, un pour faire des refactors.

🔒 Sécurité

Limiter un mode à la lecture seule, ou restreindre l'édition à certains fichiers sensibles.

👥 Collaboration

Tous les membres utilisent les mêmes modes (globaux ou partagés par projet).

🧪 Expérimentation

Tester un comportement IA sans impacter les autres modes.

🧩 Concepts fondamentaux d'un mode

PropriétéDescription
slugIdentifiant unique, utilisé en interne et pour les règles/files associés
nameNom lisible dans l'UI (peut inclure des emojis)
roleDefinitionIdentité du mode : décrit son expertise, son rôle, ses objectifs
whenToUse(optionnel) Condition d'activation automatique (utile pour l'orchestrateur)
groupsOutils autorisés (read, edit, browser, command, etc.) + restrictions de fichiers
customInstructionsConsignes comportementales ajoutées à la fin du prompt système

🧱 Structure complète d'un mode en YAML

- slug: doc-writer
  name: 📝 Rédacteur Technique
  roleDefinition: >-
    You are a documentation expert. You write precise, clear, and well-structured Markdown.
  whenToUse: Use when editing or creating documentation files.
  customInstructions: |-
    - Avoid redundancy.
    - Respect the style guide.
  groups:
    - read
    - - edit
      - fileRegex: \.md$
        description: Only Markdown files

🛠️ Les groupes d'outils (groups)

Voici les groupes disponibles que vous pouvez activer :

📖 read

Lecture des fichiers

✏️ edit

Modification autorisée (avec restrictions possibles)

🌐 browser

Navigation web

⚡ command

Exécution de commandes système

🔌 mcp

Accès aux fonctions internes de Roocode

⚠️ Recommandation

Il est recommandé de limiter chaque mode à ce qui est strictement nécessaire pour des raisons de sécurité et de performance.

🧾 Gestion des fichiers éditables avec fileRegex

Le groupe edit peut être affiné grâce à des expressions régulières (fileRegex) pour ne permettre la modification que de certains types de fichiers.

Exemple : Fichiers Python uniquement

- - edit
  - fileRegex: \.py$
    description: Only Python files

Exemple : TypeScript dans src/ uniquement

- - edit
  - fileRegex: ^src/.*\.ts$
    description: Source TypeScript only

📝 Note importante

Les regex sont appliquées au chemin complet relatif depuis la racine du projet.

🌍 Où sont stockés les modes ?

EmplacementFichierPortée
Global~/.roo/custom_modes.yamlTous projets
Projet./.roomodesProjet local

🎯 Priorité

Les modes projet ont priorité sur les modes globaux en cas de slug identique.

✨ Créer un mode personnalisé : 3 méthodes

A. En demandant à Roocode

"Create a new mode called `Auditeur`. It should only read files."

B. Via l'interface

  • • Ouvrir le Prompts Tab
  • • Cliquer sur "Create Mode"
  • • Renseigner les champs (nom, slug, outils, etc.)

C. Manuellement

Éditer custom_modes.yaml ou.roomodes directement en YAML ou JSON.

📁 Instructions liées aux modes

Vous pouvez compléter customInstructions avec des fichiers :

📂 .roo/rules-[slug]/

Dossier contenant plusieurs fichiers Markdown ou texte, triés par nom

📄 .roorules-[slug]

Fichier unique (fallback)

🔄 Injection automatique

Ces instructions sont lues et injectées dans le prompt système du mode actif.

📌 Sticky Models : un modèle IA par mode

Roocode mémorise le dernier modèle utilisé dans chaque mode :

📝 doc-writer

GPT-3.5 Turbo

Tâches légères de documentation

💻 code

GPT-4 Turbo

Développement complexe

💡 Avantage

Cela évite d'avoir à changer de modèle manuellement à chaque fois. Idéal pour alterner entre tâches légères et lourdes.

🪃 Orchestration automatique des modes

Roocode intègre un mode spécial appelé Orchestrator. Il permet à Roocode de choisir automatiquement quel mode utiliser en fonction de la tâche à accomplir.

🧠 Comment ça fonctionne ?

  • • Chaque mode peut définir un champ whenToUse
  • • L'orchestrateur utilise cette propriété pour évaluer la pertinence d'un mode
  • • Si aucun whenToUse n'est défini, il se rabat sur la première phrase de roleDefinition

📋 Exemple de scénario orchestré

Tâche : "Prépare une documentation technique pour ce fichier JS."

Roocode pourrait :

  1. 1. Lire le code avec le mode reader (lecture seule)
  2. 2. Générer la doc avec le mode doc-writer
  3. 3. Proposer une PR avec dev-helper

Cela crée un pipeline intelligent multi-agents.

🛠️ Overrider les modes par défaut

Vous pouvez remplacer un mode natif (comme code,debug,ask,architect) par un mode personnalisé :

Exemple : override du mode code pour JS uniquement

- slug: code
  name: 💻 Code (JS uniquement)
  roleDefinition: You are a JS engineer using strict linting and modern practices.
  groups:
    - read
    - - edit
      - fileRegex: \.js$
        description: Only JavaScript files
  customInstructions: |-
    - Use Prettier format
    - Always write clear function names

📌 Note importante

Le slug code est suffisant pour overrider le mode par défaut !

💼 Exemples concrets de modes utiles

🔍 Auditeur (lecture seule)

- slug: audit
  name: 👀 Auditeur
  roleDefinition: You review code without modifying anything. Focus on issues.
  groups:
    - read

🧪 Test Engineer

- slug: test-engineer
  name: 🧪 Test Engineer
  roleDefinition: You write and review unit and integration tests.
  customInstructions: |-
    - Use describe/it
    - Cover edge cases
    - Mock dependencies
  groups:
    - read
    - - edit
      - fileRegex: \.test\.(js|ts)$

📚 Rédacteur Markdown

- slug: md-writer
  name: 📚 Rédacteur Markdown
  roleDefinition: You are a Markdown specialist.
  groups:
    - read
    - - edit
      - fileRegex: \.md$

Bonnes pratiques & erreurs fréquentes

✅ À faire

  • • Spécifier whenToUse si le mode doit participer à l'orchestration
  • • Utiliser fileRegex pour restreindre l'édition
  • • Regrouper les instructions avancées dans .roo/rules-[slug]/

❌ À éviter

  • • Donner le même slug à deux modes dans le même fichier
  • • Oublier de limiter les permissions (groups) d'un mode sensible
  • • Modifier un mode global sans sauvegarde préalable

FAQ détaillée

Est-ce qu'un mode est un agent IA ?

Oui. Chaque mode est un prompt spécialisé avec outils, règles et instructions.

Peut-on chaîner plusieurs modes ?

Oui. Grâce à l'orchestrateur et au champ whenToUse.

Comment partager un mode ?

Partage le contenu YAML ou JSON du mode, ou le fichier .roomodes du projet.

Peut-on réutiliser un mode dans tous les projets ?

Oui, via custom_modes.yaml (global). Sinon, .roomodes est local.

Roocode supporte-t-il JSON et YAML ?

Oui, mais YAML est recommandé car plus lisible et commentable.

🎉 Conclusion

Ce guide complet sur les modes Roocode est désormais un référentiel robustepour toute équipe souhaitant structurer et spécialiser l'usage de l'IA au quotidien.

🚀 Prochaines étapes

  • • Créez votre premier mode personnalisé
  • • Expérimentez avec l'orchestration automatique
  • • Partagez vos modes avec votre équipe
  • • Explorez les possibilités avancées avec MCP

Restez Informé

Recevez les dernières actualités sur l'IA et le développement directement dans votre boîte mail. Conseils exclusifs, nouveautés Roocode et analyses approfondies.

En vous inscrivant, vous acceptez de recevoir nos emails. Vous pouvez vous désinscrire à tout moment.