Configuración

Reglas personalizadas

Las reglas personalizadas influyen en cómo Bob Shell responde a tus solicitudes en el entorno de terminal, alineando la salida con tus preferencias específicas y los requisitos del proyecto. Puedes controlar el estilo de código, el enfoque de documentación y los procesos de toma de decisiones.

¿Qué son las reglas personalizadas?

Las reglas personalizadas amplían el comportamiento predeterminado de Bob Shell al definir preferencias, restricciones y directrices que dirigen cómo Bob Shell aborda las tareas para adaptarse a tus necesidades cuando trabajas en el entorno de terminal.

Los usos comunes incluyen:

  • Preferencias de estilo de código (sangría, convenciones de nombres)
  • Formatos y estándares de documentación
  • Metodologías y requisitos de pruebas
  • Flujos de trabajo y procesos del proyecto
  • Convenciones específicas del equipo

Alcances de las reglas

Bob Shell admite dos alcances de reglas que determinan dónde se aplican tus reglas:

  • Reglas globales: Se aplican automáticamente en todos tus proyectos
  • Reglas del workspace: Se aplican solo en tu proyecto actual

Usa las reglas globales para estándares personales o de toda la organización. Usa las reglas del workspace para requisitos específicos del proyecto.

Métodos de configuración

Bob Shell usa el mismo sistema de reglas personalizadas que IBM Bob IDE.

Configuración basada en archivos

El enfoque más simple usa archivos únicos en la raíz de tu workspace:

  • .bobrules - Reglas generales del workspace
  • .bobrules-code - Reglas para el modo Code
  • .bobrules-{modeSlug} - Reglas para cualquier modo

Crea un archivo .bobrules:

# En la raíz de tu proyecto
echo "Use 4 spaces for indentation" > .bobrules

Configuración basada en directorios

Para una mejor organización, usa directorios:

Estructura del workspace:

.bob/
├── rules/              # Reglas generales
│   └── coding-style.md
└── rules-code/         # Reglas para el modo Code
    └── typescript.md

Estructura global:

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

Crear reglas del workspace:

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

Crear reglas 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

Prioridad de las reglas

Bob Shell combina reglas de múltiples fuentes en este orden:

  1. Reglas globales (~/.bob/rules/)
  2. Reglas del workspace (.bob/rules/)

Dentro de cada nivel, las reglas específicas del modo se cargan antes que las reglas generales. Las reglas del workspace pueden sobreescribir las reglas globales.

Escribir reglas efectivas

Sé específico y orientado a la acción

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

Evita: "Use good paths"

Usa una estructura clara

Organiza las reglas por tema:

# 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

Ejemplos de reglas efectivas

  • "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"

Configuración avanzada

Reglas específicas del modo

Apunta a modos específicos con directorios dedicados:

DirectorioPropósito
rules/Reglas generales para todos los modos
rules-code/Solo para el modo Code
rules-plan/Solo para el modo Plan
rules-{mode}/Cualquier modo personalizado

Usar archivos AGENTS.md

Para la estandarización del equipo, puedes usar un archivo AGENTS.md en la raíz de tu workspace:

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

Detalles clave:

  • Se carga automáticamente por defecto
  • Controla las versiones con tu proyecto
  • Desactívalo con "bob-shell.useAgentRules": false en la configuración
  • Se carga después de las reglas específicas del modo pero antes de las reglas generales del workspace

Comportamiento de los archivos

  • Lectura recursiva: Bob Shell lee todos los archivos en los directorios de reglas, incluyendo subdirectorios
  • Orden alfabético: Los archivos se procesan en orden alfabético por nombre de archivo
  • Filtrado automático: Excluye archivos de caché (.DS_Store, *.bak, *.cache, *.log, *.tmp, Thumbs.db)
  • Enlazados simbólicos: Compatibles con profundidad máxima de 5
  • Archivos vacíos: Se omiten silenciosamente

Estandarización del equipo

Estándares a nivel de proyecto

Usa los directorios .bob/rules/ del workspace bajo control de versiones:

# Agregar al control de versiones
git add .bob/rules/
git commit -m "Add Bob custom rules"

Esto garantiza un comportamiento consistente entre los miembros del equipo que usan Bob Shell para proyectos específicos.

Estándares de toda la organización

Distribuye las reglas globales a los miembros del equipo:

  1. Crea un repositorio de reglas compartido
  2. Los miembros del equipo clonan a ~/.bob/rules/
  3. Actualiza periódicamente para mantener la consistencia

Enfoque híbrido

Puedes combinar ambos enfoques:

  • Reglas globales para los estándares de la organización
  • Reglas del workspace para los requisitos específicos del proyecto
  • Las reglas del workspace sobreescriben las reglas globales cuando es necesario
¿Cómo es este tema?