Configuration

Règles personnalisées

Les règles personnalisées influencent la façon dont Bob Shell répond à tes demandes dans l'environnement terminal, alignant la sortie avec tes préférences spécifiques et les exigences de ton projet. Tu peux contrôler le style de codage, l'approche de documentation et les processus de prise de décision.

Que sont les règles personnalisées ?

Les règles personnalisées étendent le comportement par défaut de Bob Shell en définissant des préférences, contraintes et directives qui orientent la façon dont Bob Shell aborde les tâches pour correspondre à tes besoins lors du travail dans l'environnement terminal.

Les utilisations courantes incluent :

  • Les préférences de style de codage (indentation, conventions de nommage)
  • Les formats et standards de documentation
  • Les méthodologies et exigences de test
  • Les workflows et processus du projet
  • Les conventions spécifiques à l'équipe

Portées des règles

Bob Shell prend en charge deux portées de règles qui déterminent où tes règles s'appliquent :

  • Règles globales : S'appliquent automatiquement à tous tes projets
  • Règles d'espace de travail : S'appliquent uniquement dans ton projet actuel

Utilise les règles globales pour les standards personnels ou à l'échelle de l'organisation. Utilise les règles d'espace de travail pour les exigences spécifiques au projet.

Méthodes de configuration

Bob Shell utilise le même système de règles personnalisées que IBM Bob IDE.

Configuration basée sur des fichiers

L'approche la plus simple utilise des fichiers uniques à la racine de ton espace de travail :

  • .bobrules - Règles générales de l'espace de travail
  • .bobrules-code - Règles pour le mode Code
  • .bobrules-{modeSlug} - Règles pour n'importe quel mode

Crée un fichier .bobrules :

# Dans la racine de ton projet
echo "Use 4 spaces for indentation" > .bobrules

Configuration basée sur des répertoires

Pour une meilleure organisation, utilise des répertoires :

Structure de l'espace de travail :

.bob/
├── rules/              # Règles générales
│   └── coding-style.md
└── rules-code/         # Règles du mode Code
    └── typescript.md

Structure globale :

Linux/macOS : ~/.bob/rules/ Windows : %USERPROFILE%\.bob\rules\

Crée des règles d'espace de travail :

mkdir -p .bob/rules
echo "# Project standards" > .bob/rules/coding-style.md

Crée des règles globales :

# Linux/macOS
mkdir -p ~/.bob/rules
echo "# Global standards" > ~/.bob/rules/coding-standards.md

# Windows
mkdir %USERPROFILE%\.bob\rules
echo # Global standards > %USERPROFILE%\.bob\rules\coding-standards.md

Priorité des règles

Bob Shell combine les règles de plusieurs sources dans cet ordre :

  1. Règles globales (~/.bob/rules/)
  2. Règles d'espace de travail (.bob/rules/)

Au sein de chaque niveau, les règles spécifiques au mode se chargent avant les règles générales. Les règles d'espace de travail peuvent remplacer les règles globales.

Écrire des règles efficaces

Sois précis et actionnable

Bon : "Always use relative paths when suggesting file operations in the terminal"

À éviter : "Use good paths"

Utilise une structure claire

Organise les règles par sujet :

# Shell Commands
- Prefer using standard Unix commands over specialized tools when possible
- Include explanations of what each flag does

# Script Style
- Format shell script examples with proper error handling
- Use portable shell syntax that works across bash, zsh, and other common shells

# File Operations
- Always check for file existence before operations in shell scripts
- Always use relative paths when suggesting file operations

Exemples de règles efficaces

  • "Always use relative paths when suggesting file operations in the terminal"
  • "Prefer using standard Unix commands over specialized tools when possible"
  • "Format shell script examples with proper error handling"
  • "When suggesting commands, include explanations of what each flag does"
  • "Always check for file existence before operations in shell scripts"
  • "Use portable shell syntax that works across bash, zsh, and other common shells"

Configuration avancée

Règles spécifiques aux modes

Cible des modes spécifiques avec des répertoires dédiés :

RépertoireObjectif
rules/Règles générales pour tous les modes
rules-code/Mode Code uniquement
rules-plan/Mode Plan uniquement
rules-{mode}/N'importe quel mode personnalisé

Utiliser des fichiers AGENTS.md

Pour la standardisation de l'équipe, tu peux utiliser un fichier AGENTS.md à la racine de ton espace de travail :

# Team Standards
- Follow company coding guidelines
- Use approved libraries only
- Document all API changes

Détails clés :

  • Chargé automatiquement par défaut
  • Soumis au contrôle de version avec ton projet
  • Désactiver avec "bob-shell.useAgentRules": false dans les paramètres
  • Chargé après les règles spécifiques au mode mais avant les règles générales de l'espace de travail

Comportement des fichiers

  • Lecture récursive : Bob Shell lit tous les fichiers dans les répertoires de règles, y compris les sous-répertoires
  • Ordre alphabétique : Les fichiers sont traités dans l'ordre alphabétique par nom de fichier
  • Filtrage automatique : Exclut les fichiers cache (.DS_Store, *.bak, *.cache, *.log, *.tmp, Thumbs.db)
  • Liens symboliques : Supportés avec une profondeur maximale de 5
  • Fichiers vides : Ignorés silencieusement

Standardisation de l'équipe

Standards au niveau du projet

Utilise les répertoires .bob/rules/ de l'espace de travail sous contrôle de version :

# Ajouter au contrôle de version
git add .bob/rules/
git commit -m "Add Bob custom rules"

Cela assure un comportement cohérent entre les membres de l'équipe utilisant Bob Shell pour des projets spécifiques.

Standards à l'échelle de l'organisation

Distribue les règles globales aux membres de l'équipe :

  1. Crée un repository de règles partagées
  2. Les membres de l'équipe le clonent dans ~/.bob/rules/
  3. Mets à jour périodiquement pour la cohérence

Approche hybride

Tu peux combiner les deux approches :

  • Règles globales pour les standards de l'organisation
  • Règles d'espace de travail pour les exigences spécifiques au projet
  • Les règles d'espace de travail remplacent les règles globales si nécessaire
Comment trouvez-vous ce sujet ?