PTENES
Saltar al contenido
MÓDULO 1.3

🧠 CLAUDE.md — el cerebro del proyecto

El archivo que convierte a Claude Code de genérico en especialista en tu proyecto. Jerarquía, sintaxis, ejemplos reales y mantenimiento.

6
Temas
~45
Minutos
1.1
Requisito previo
Fundamento
Tipo
Progreso: 0% 0 de 6
1

📄 Qué es y por qué existe

🧠 Imagínalo así: CLAUDE.md es como un manual de operaciones que dejas sobre el escritorio del nuevo empleado. Cada vez que Claude Code abre una sesión, lee primero este archivo. Es la forma de decirle al agente: "este proyecto funciona así, sigue estas reglas".

O CLAUDE.md es un archivo Markdown que Claude Code lee automáticamente al inicio de cada sesión. Funciona como un system prompt persistente: todo lo que escribas allí influirá en cómo se comporta Claude dentro de tu proyecto. No es una sugerencia, es una instrucción. El modelo trata el contenido del CLAUDE.md como una directriz de alta prioridad.

Sin CLAUDE.md, Claude Code es genérico. No sabe que tu proyecto usa TypeScript, que prefieres tabs en lugar de spaces ni que hay una convención de nombres específica. Con CLAUDE.md, se convierte en especialista en tu proyecto desde el primer mensaje. La diferencia es drástica: en vez de preguntar "¿qué framework usas?", ya lo sabe y actúa en consecuencia.

El mecanismo es sencillo: cuando inicias una sesión con claude, el agente busca archivos CLAUDE.md en tu entorno, lee el contenido y lo inyecta como parte del system prompt. Esto sucede antes de que escribas cualquier cosa. Es como un briefing automático que el agente recibe cada mañana antes de empezar a trabajar.

💡 Analogía práctica

Piensa en CLAUDE.md como el documento de incorporación de un equipo. Cuando se incorpora un desarrollador nuevo, no le explicas todo desde cero cada vez. Le entregas el documento de incorporación. CLAUDE.md es exactamente eso, pero para el agente de IA. La diferencia es que el "nuevo desarrollador" necesita este documento cada sesión, porque cada sesión es un comienzo desde cero.

CLAUDE.md leído automáticamente System Prompt contexto del proyecto Claude Especialista en tu proyecto

En 1 frase: CLAUDE.md = prompt del sistema persistente que convierte a Claude Code de genérico en especialista en tu proyecto.

2

🏗️ Jerarquía: global, proyecto y carpeta

🧠 Imagínalo así: imagina tres capas de instrucciones apiladas. La de abajo (global) se aplica a todo. La del medio (proyecto) es específica. La de arriba (carpeta) es hiperespecífica. Cada capa refina la anterior sin borrarla.

Claude Code lee CLAUDE.md de tres lugares, en este orden: ~/.claude/CLAUDE.md (global, se aplica a todos los proyectos), ./CLAUDE.md (en la raíz del proyecto) y subdir/CLAUDE.md (en cualquier subcarpeta donde estés trabajando). Los tres se leen y concatenan para formar el contexto completo.

La cascada funciona por adición: el contenido de cada nivel se suma al anterior. El global define preferencias personales («nunca uses em dashes», «prefiere TypeScript»). El del proyecto define el stack y las convenciones. El de carpeta define reglas específicas de esa área del código. Los tres juntos forman el contexto completo que recibe el agente.

Esta jerarquía es poderosa porque permite separar responsabilidades. Defines tus preferencias personales una vez (global) y ya no tienes que repetirlas en cada proyecto. Cada proyecto define sus propias reglas sin interferir con los demás. Y las subcarpetas especiales (como src/api/) pueden tener reglas adicionales sin recargar el CLAUDE.md principal.

~/.claude/CLAUDE.md global (personal) ./CLAUDE.md proyecto (raíz del repo) ./src/api/CLAUDE.md carpeta (subdirectorio) + + Contexto completo suma de los tres niveles Claude especialista
jerarquía de CLAUDE.md
~/.claude/CLAUDE.md          ← global (todas as sessoes)
./CLAUDE.md                  ← projeto (raiz do repo)
./src/CLAUDE.md              ← pasta (regras do /src)
./src/api/CLAUDE.md          ← subpasta (regras do /api)

# Todos sao lidos e somados. Mais especifico refina o geral.

En 1 frase: tres niveles (global > proyecto > carpeta) se suman para formar el contexto completo.

3

✏️ Sintaxis y convenciones eficaces

🧠 Imagínalo así: escribir CLAUDE.md es como redactar un briefing para un profesional competente. Sé directo, usa listas y da ejemplos concretos. Claude sigue instrucciones claras e ignora las vagas.

El formato es Markdown puro. Usa encabezados (## Stack, ## Convencoes), listas con viñetas y bloques de código para los ejemplos. El tono ideal es imperativo y concreto: «Siempre usa async/await» funciona mejor que «sería bueno considerar usar async/await cuando sea posible». El modelo obedece instrucciones directas con mucha más consistencia que sugerencias vagas.

Algunas convenciones que funcionan bien: agrupar por sección (Stack, Convenciones, Prohibiciones), usar negrita para destacar, incluir ejemplos de código cuando la regla sea técnica y mantener el archivo entre 50 y 200 líneas. Además, el beneficio disminuye y gastas contexto innecesariamente. Cada línea del CLAUDE.md consume tokens de la ventana de contexto.

Evita redundancias con lo que el modelo ya sabe. No hace falta decir "escribe código legible" o "usa buenas prácticas". Claude ya lo hace de forma predeterminada. El CLAUDE.md debe contener lo que diferente en este proyecto o en tu forma de trabajar. Si el patrón funciona, no gastes líneas en él.

✓ Buen CLAUDE.md

  • • Encabezados claros: ## Stack, ## Reglas
  • • Tono imperativo: "Siempre usa..."
  • • Ejemplos concretos de código
  • • 50-200 líneas, enfocado
  • • Prohibiciones explícitas en MAYÚSCULAS

✗ Mal CLAUDE.md

  • • Texto corrido sin estructura
  • • Tono vago: "quizás considera..."
  • • Sin ejemplos prácticos
  • • 500+ líneas (satura el contexto)
  • • Repite lo que el modelo ya sabe
estructura recomendada
# Projeto XYZ

## Stack
- Next.js 14 (App Router)
- TypeScript strict
- Tailwind CSS
- Prisma ORM + PostgreSQL

## Convencoes
- Arquivos: kebab-case (user-profile.ts)
- Componentes: PascalCase (UserProfile.tsx)
- NUNCA usar `any`. Sempre tipar explicitamente.

## Proibicoes
- NUNCA deletar arquivos sem confirmar
- NUNCA commitar .env ou secrets
- NUNCA usar console.log em producao

En 1 frase: sé directo, usa encabezados + listas + ejemplos, mantén entre 50-200 líneas.

4

🎯 Instrucciones que marcan la diferencia

🧠 Imagínalo así: no todas las instrucciones cambian el comportamiento. Las que funcionan son las que describen qué hacer de forma distinta al valor predeterminado. Si el estándar ya funciona, no gastes líneas en eso.

Los tipos de instrucciones que más influyen son: stack y tecnologías ("este proyecto usa Next.js 14 con App Router"), convenciones de código ("nombres de archivo en kebab-case"), prohibiciones explícitas ("NUNCA elimines archivos sin confirmar"), y estándares del proyecto ("usa el pattern de service layer en src/services/").

Las prohibiciones en mayúsculas (NUNCA, SIEMPRE) se respetan con más consistencia. Esto no es superstición: el modelo da más peso a los tokens enfáticos. Úsalas con moderación para que no se conviertan en ruido, pero no dudes en usarlas cuando la regla sea crítica. Un «NUNCA uses sudo» bien ubicado puede prevenir accidentes graves.

Otra categoría poderosa: instrucciones de workflow. "Siempre ejecuta pruebas antes de hacer commit", "pide confirmación antes de eliminar", "usa git commit con mensajes en portugués". Estas instrucciones moldean cómo trabaja el agente, no solo lo que produce. Transforman a Claude de una herramienta pasiva en un colega de trabajo disciplinado.

Stack y tecnologías

Define qué usa el proyecto. El agente elige las APIs y los patrones correctos desde la primera respuesta.

Convenciones de código

Nombres, formato, organización de carpetas. Garantiza la coherencia en todo el código generado.

Prohibiciones explícitas

NUNCA y SIEMPRE en mayúsculas. Previene errores críticos y garantiza la seguridad.

Patrones del proyecto

Patrones de arquitectura (service layer, repository, etc.). El agente replica la estructura existente.

Instrucciones de workflow

Cómo trabaja el agente: pruebas, confirmaciones, commits. Convierte a Claude en un colega disciplinado.

ejemplo de CLAUDE.md eficaz
## Stack
- Next.js 14 (App Router)
- TypeScript strict
- Tailwind CSS
- Prisma ORM + PostgreSQL

## Convencoes
- Arquivos: kebab-case (user-profile.ts)
- Componentes: PascalCase (UserProfile.tsx)
- NUNCA usar any. Sempre tipar explicitamente.
- Testes: colocar em __tests__/ ao lado do arquivo.

## Padroes
- API routes usam o pattern em src/app/api/[resource]/route.ts
- Validacao com Zod em todo input de API

## Workflow
- Sempre rode npm test antes de commitar
- Commit messages em portugues, imperativo

En 1 frase: enfócate en el stack, las convenciones, las prohibiciones, los patrones y el workflow; Claude ya hace el resto por su cuenta.

5

📂 Ejemplos reales de buenos CLAUDE.md

🧠 Imagínalo así: La mejor forma de aprender es ver ejemplos reales. Los proyectos open source y los repositorios de la propia Anthropic publican CLAUDE.md que puedes estudiar y copiar.

Los buenos ejemplos de CLAUDE.md comparten algunas características: son cortos (rara vez superan las 150 líneas), se centran en lo que es diferente en ese proyecto (no repiten conocimientos genéricos) e incluyen al menos una sección de prohibiciones explícitas. Estudiar ejemplos reales es el atajo más rápido para escribir un CLAUDE.md eficaz.

Un antipatrón común es el CLAUDE.md que intenta enseñarle programación al modelo ("usa buenas prácticas de código"). Claude ya conoce las buenas prácticas. Lo que necesita saber es cuáles son las tus prácticas específicas. Otro antipatrón: copiar toda la documentación del framework. El modelo ya conoce React, Next.js, etc. Di qué versión usas y cómo la usas, no qué es.

Un excelente ejemplo es el CLAUDE.md del propio repositorio de Claude Code de Anthropic. Es conciso, se centra en convenciones internas (cómo ejecutar pruebas, cómo hacer commits, qué patrones de arquitectura seguir) y tiene prohibiciones claras. Otro buen ejemplo: proyectos populares de código abierto que adoptaron esta práctica y publican sus CLAUDE.md en GitHub.

Proyecto SaaS

Stack, patrón de auth, convenciones del esquema de la base de datos, formato de respuesta de API. ~80 líneas.

Herramienta CLI

Build system, flag conventions, error handling pattern, release workflow. ~60 líneas.

Monorepo

Estructura de paquetes, tipos compartidos, reglas de dependencias, archivos CLAUDE.md por paquete en subcarpetas. ~120 líneas.

📊 Dónde encontrar ejemplos

Busca "CLAUDE.md" en GitHub. Proyectos como claude-code de Anthropic, además de repositorios populares que adoptaron la práctica, son buenas referencias. Copia la estructura y adapta el contenido a tu proyecto. No reinventes la rueda.

En 1 frase: estudia ejemplos reales, copia la estructura y adáptala a tu proyecto.

6

🔄 Mantenimiento y control de versiones

🧠 Imagínalo así: CLAUDE.md es un documento vivo. Haz commit en git, revísalo mensualmente y usa /memory como complemento rápido entre revisiones. Desactualizado es peor que inexistente.

El CLAUDE.md debe ir en el git, junto con el código. Esto garantiza que cualquier persona (o agente) que clone el repo reciba el contexto automáticamente. Trátalo como un archivo de configuración: versionado, revisado y actualizado junto con el proyecto. Los pull requests que cambien el stack o las convenciones deben incluir la actualización correspondiente en CLAUDE.md.

Una rutina saludable: revisa el CLAUDE.md una vez al mes o cuando cambie algo importante en el proyecto (nueva lib, nuevo estándar, nuevo integrante del equipo). Entre revisiones, usa /memory para agregar notas rápidas que persisten sin editar el archivo directamente. /memory es el atajo; CLAUDE.md es la fuente canónica.

Un CLAUDE.md desactualizado es peor que no tener ninguno, porque el agente seguirá instrucciones incorrectas con confianza. Si eliminaste una biblioteca del proyecto pero CLAUDE.md todavía dice "usa la biblioteca X", Claude intentará usarla y fallará. Si cambiaste de ORM, actualiza CLAUDE.md. Si cambiaste las convenciones de nomenclatura, actualízalo. La regla es simple: si cambió en el código, cámbialo en CLAUDE.md.

⚠️ CLAUDE.md desactualizado y peligroso

Las instrucciones obsoletas en CLAUDE.md generan errores sistemáticos. El agente sigue lo que está escrito, no lo que tienes en mente. Manténlo actualizado o elimina las secciones que hayan cambiado. Un CLAUDE.md vacío es mejor que un CLAUDE.md que miente.

lista de verificación de mantenimiento
Manutencao do CLAUDE.md:
[ ] Commitar no git junto com o codigo
[ ] Revisar mensalmente ou ao mudar stack
[ ] Remover instrucoes obsoletas imediatamente
[ ] Usar /memory pra notas rapidas entre revisoes
[ ] Incluir atualizacao em PRs que mudam convencoes
[ ] Manter entre 50-200 linhas (nao deixar inchar)

En 1 frase: haz commit en git, revisa mensualmente y recuerda: algo desactualizado es peor que inexistente.

🧾 Resumen del módulo

✓
System prompt persistente — CLAUDE.md se lee automáticamente e inyecta contexto en la sesión.
✓
Tres niveles — global (~/.claude/) > proyecto (./CLAUDE.md) > carpeta (subdir/).
✓
Formato directo — headings + listas + ejemplos + prohibiciones en 50-200 líneas.
✓
Versionado con git — haz commit, revisa mensualmente y mantén actualizado.

Siguiente módulo:

1.4 — Configuración avanzada: settings.json, permisos y providers.