Rules en Claude Code: instrucciones por carpeta con .claude/rules
Hola, bienvenido. En la lección anterior dejamos el CLAUDE.md de claude-tasks en menos de 30 líneas, con lo que Claude necesita saber en cada sesión, y en esta lección vamos a ver qué hacemos con las instrucciones que solo importan en una parte del proyecto. Para eso están las rules. Veremos qué son, cómo se limitan a ciertas rutas con el campo paths, en qué momento exacto se cargan y cómo comprobarlo, y cómo repartir las instrucciones entre CLAUDE.md, rules, skills y hooks para que cada cosa vaya en su sitio. Es una lección de conceptos: las 2 rules de claude-tasks las escribiremos y las probaremos en la siguiente.
¿Qué problema resuelven? Piensa en las convenciones de los modelos de Eloquent de un proyecto: cómo se declaran los campos asignables, dónde van los casts o cómo se escriben los scopes. Son instrucciones útiles, pero solo cuando Claude está tocando un modelo. Si las metes en CLAUDE.md, se cargan en cada sesión, también cuando le pides que revise una ruta o que arregle un estilo en una vista, y ya vimos en la lección anterior que cada línea de más la pagas en contexto y en atención. Con las convenciones de los tests pasa lo mismo, y con las de los controladores, y con las de las migraciones. Si todo eso acaba en CLAUDE.md, el archivo crece hasta que las instrucciones importantes se pierden entre las que no aplican a la tarea.
Las rules son la forma que tiene Claude Code de partir esas instrucciones en archivos pequeños, uno por tema, y de cargar cada uno solo cuando hace falta. La documentación lo resume así: las rules se pueden limitar a rutas concretas, de modo que solo entran en el contexto cuando Claude trabaja con archivos que encajan, y así el contexto se mantiene limpio.
Qué son las rules
Una rule es un archivo de markdown dentro de la carpeta .claude/rules/ del proyecto. La documentación recomienda que cada archivo cubra un solo tema y que tenga un nombre descriptivo, como testing.md o api-design.md. Claude Code descubre todos los .md de esa carpeta de forma recursiva, así que puedes organizarlos en subcarpetas si el proyecto crece:
Hay 2 tipos de rules según su cabecera:
- Sin
paths. Se cargan al arrancar la sesión, con la misma prioridad que un.claude/CLAUDE.md. Sirven para trocear unCLAUDE.mdgrande por temas, aunque en contexto ocupan lo mismo que si estuvieran en él. - Con
paths. Se cargan solo cuando Claude lee un archivo que encaja con alguno de sus patrones. Son las que nos interesan enclaude-tasks.
Además de las del proyecto, puedes tener rules personales en ~/.claude/rules/, que se aplican en todos los proyectos de tu máquina. Claude Code las carga antes que las del proyecto, pero ninguna de las 2 sobrescribe a la otra: si una rule tuya y una del proyecto se contradicen, Claude puede seguir cualquiera de las 2, así que conviene que sean coherentes.
Y un detalle que comparten con CLAUDE.md: una rule es una instrucción que Claude lee e intenta seguir, y Claude Code no la impone. La documentación lo deja claro en la página del directorio .claude: si necesitas un comportamiento garantizado, lo que toca es un hook o una regla de permisos.
- 02El campo paths
- 03Cuándo se cargan
- 04Comprobar qué rules se han cargado
- 05CLAUDE.md, rules, skills y hooks: qué va en cada sitio