Capítulo 7: Rules: Convenciones Siempre Activas
¿Qué son las Rules?
Las rules son directivas que el agente siempre sigue. A diferencia de los skills (que se invocan), las rules están activas permanentemente. Definen cómo el agente debe comportarse en todo momento.
Estructura de Rules
rules/
├── common/ # Universales (siempre instalar)
│ ├── coding-style.md # Inmutabilidad, organización de archivos
│ ├── git-workflow.md # Formato de commits, proceso de PR
│ ├── testing.md # TDD, 80% cobertura
│ ├── performance.md # Selección de modelo, gestión de contexto
│ ├── patterns.md # Design patterns, skeleton projects
│ ├── hooks.md # Arquitectura de hooks
│ ├── agents.md # Cuándo delegar a subagentes
│ └── security.md # Checks de seguridad obligatorios
├── typescript/ # TypeScript/JavaScript
├── python/ # Python
├── golang/ # Go
├── swift/ # Swift
└── php/ # PHP
Rules Common (universales)
coding-style.md
- Preferir inmutabilidad (
const,readonly) - Archivos de menos de 200 líneas
- Una responsabilidad por archivo
- Naming descriptivo
git-workflow.md
- Commits atómicos con formato convencional
- Branch naming:
feat/,fix/,refactor/ - PR con descripción clara
testing.md
- TDD: Red → Green → Refactor
- Mínimo 80% cobertura
- Tests unitarios para lógica de negocio
- Tests de integración para APIs
security.md
- Validar todos los inputs del usuario
- No exponer secrets en código
- Sanitizar datos antes de renderizar
- Usar parametrized queries (no concatenar SQL)
performance.md
- Usar Sonnet para 80% de las tareas
- Reservar Opus para razonamiento profundo
- Compactar en puntos lógicos
- Mantener bajo 10 MCPs activos
Instalación por Lenguaje
Instalar siempre common/ + tu lenguaje:
# Common (obligatorio)
cp -r rules/common/* ~/.claude/rules/
# Tu stack
cp -r rules/typescript/* ~/.claude/rules/
# o
cp -r rules/python/* ~/.claude/rules/
# o
cp -r rules/golang/* ~/.claude/rules/
Nivel de Instalación
User-level (todos los proyectos)
mkdir -p ~/.claude/rules
cp -r rules/common/* ~/.claude/rules/
cp -r rules/typescript/* ~/.claude/rules/
Project-level (solo este proyecto)
mkdir -p .claude/rules
cp -r rules/common/* .claude/rules/
cp -r rules/typescript/* .claude/rules/
Rules en Cursor
Cursor usa frontmatter YAML con campos adicionales:
---
description: "TypeScript coding style extending common rules"
globs: ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx"]
alwaysApply: false
---
globs— aplicar solo a archivos que matcheen el patrónalwaysApply— sitrue, se aplica siempre; sifalse, solo cuando matchea
Personalizar Rules
Las rules de ECC son un punto de partida. Personalizá:
- Empezá con las rules de
common/ - Agregá las de tu lenguaje
- Modificá lo que no aplique a tu proyecto
- Eliminá lo que no uses
- Agregá tus propias convenciones