El archivo CLAUDE.md: qué va aquí dentro.
El CLAUDE.md es el único archivo que Claude lee automáticamente en cada sesión. No es un manual de usuario ni una documentación técnica. Es el briefing permanente del proyecto — escrito para que una IA lo entienda.
Cuatro principios antes de escribir una línea
Las reglas fundamentales que guían la escritura de un buen CLAUDE.md.
01 — Conciso por encima de completo
PrincipioMenos de 300 líneas. Cada línea que añades compite con el trabajo real por la ventana de contexto del agente. Si tienes dudas, fuera.
02 — Permanente, no específico
PrincipioSolo lo que es cierto en todas las sesiones. Lo específico de una tarea va en una skill o en el propio prompt, no aquí.
03 — Las restricciones primero
PrincipioLo que el agente no debe hacer es más valioso que lo que sí puede hacer. Una restricción bien puesta evita trabajo rehecho.
04 — Vivo, no un documento estático
PrincipioSe actualiza con el proyecto. Cambia de stack, cambia el CLAUDE.md. Nuevo sprint, actualiza el bloque de sprint. Es parte del ritual del equipo.
Las secciones del archivo, explicadas
8 secciones ordenadas de más a menos permanente. Cada una con su ejemplo de código y su explicación.
01 — Qué es el proyecto
IdentidadEl punto de partida. Nombre, tipo de producto y estado actual. Dos o tres frases que describan qué problema resuelve y para quién. No escribas un brief de 20 líneas. Si el agente necesita más contexto sobre la visión del producto, tiene /docs/product-vision.md para eso.
# Qué es este proyecto**Nombre:** Plataforma de gestión editorial**Tipo:** Web app B2B**Estado:** Diseño — fase 2Herramienta para equipos de contenidoque necesitan coordinar publicación...Tip
El estado actual importa. "Fase Discovery" y "Optimización post-lanzamiento" dan instrucciones muy distintas al agente sobre cómo priorizar.
02 — Quién trabaja en esto
EquipoLista de personas con sus roles. Parece básico pero es muy útil: el agente adapta el nivel de detalle técnico de sus entregables según sepa si el receptor es un diseñador, un developer o un PM. Añade también el canal de comunicación preferido si es relevante.
# Equipo y roles- **Ana** — Lead diseño de producto- **Marc** — Frontend- **Laia** — Product ManagerEntregables principales -> desarrollo.Nivel técnico: intermedio.Tip
"Entregables principales -> equipo de desarrollo. Nivel técnico: intermedio." es suficiente para que el agente ajuste su tono sin más instrucciones.
03 — Con qué herramientas trabajáis
StackEl stack tecnológico y de diseño que usa el proyecto. Figma, librería de componentes, framework de frontend, sistema de tokens, control de versiones. No necesitas documentar cómo funcionan. Solo que existen y se usan en este proyecto.
# Stack y herramientas- Figma (componentes + tokens)- Style Dictionary -> tokens.md- Next.js + Tailwind + shadcn/ui- Storybook (componentes)- Git / GitHubTip
Menciona dónde vive la documentación de cada herramienta. "Style Dictionary -> exportado en /design-system/tokens.md" es mucho más útil que solo "Style Dictionary".
04 — Cómo se llaman las cosas
NomenclaturaLas convenciones de naming son críticas para que el código generado encaje sin retrabajo. PascalCase para componentes, kebab-case para tokens y archivos. Una tabla simple es suficiente. Si hay casos especiales o excepciones, inclúyelos aquí.
# Convenciones de nomenclaturaComponentes -> PascalCase ej: ProductCard, UserAvatarTokens -> kebab-case ej: color-brand-primaryArchivos -> kebab-case ej: product-card.jsxTip
Añade ejemplos reales del proyecto, no ejemplos genéricos. "ej: ProductCard, UserAvatar" evita ambigüedades que los ejemplos abstractos dejan abiertas.
05 — Los criterios de decisión de diseño
Principios2 o 3 principios de diseño específicos del proyecto. No los valores genéricos de "simplicidad y elegancia" que aplican a cualquier producto — los que son propios de este proyecto y de sus usuarios. El agente los usa como criterio cuando propone soluciones o evalúa alternativas.
# Principios de diseño1. Claridad antes que densidad2. El flujo manda sobre la forma3. Consistencia > originalidadValida cualquier propuesta contraestos principios antes de presentarla.Tip
"Valida cualquier propuesta contra estos principios antes de presentarla." es una instrucción que vale mucho. Añádela explícitamente.
06 — Qué no debe hacer el agente
Restricciones· la sección más valiosaLa sección más infrautilizada y la más poderosa. Una lista de prohibiciones concretas evita los errores más costosos: proponer componentes que no existen, generar copy en el idioma equivocado, inventar tokens. Cada restricción viene de un error que ya cometiste o que anticipas. Añádela la primera vez que pase.
# Restricciones — qué NO hacer- No usar iconos externos (usamos Phosphor)- No generar copy en inglés- No inventar tokens nuevos- No proponer componentes inexistentes- No asumir usuario tech-savvyTip
Escríbelas en negativo explícito. "No usar iconos externos" es mejor que "usar solo iconos del sistema". El cerebro (humano y artificial) procesa mejor los límites claros.
07 — Dónde están los documentos importantes
ReferenciasUna lista de los archivos clave del proyecto con una línea de descripción de cada uno. No copies el contenido aquí — apunta dónde está. Añade la instrucción de cuándo leerlos: "Lee el archivo relevante antes de actuar en tareas relacionadas."
# Archivos de referencia/docs/product-vision.md/docs/users.md/docs/decisions-log.md/design-system/tokens.md/design-system/components.mdLee el archivo relevante antes de actuar.Tip
Esta sección convierte el CLAUDE.md en un índice que el agente puede navegar. Sin ella, el agente puede no saber que esos documentos existen.
08 — En qué está el equipo ahora mismo
Sprint· actualizar cada 2 semanasEl único bloque que cambia regularmente. Objetivo del sprint, en qué pantallas o flujos se está trabajando y qué decisiones están pendientes. Actualízalo al inicio de cada sprint. Sin esto, el agente puede proponer trabajo en áreas que ya están cerradas o ignorar el foco actual del equipo.
# Sprint actual**Objetivo:** rediseño del flujo de publicación**Trabajando en:** pantallas de revisión**Pendiente:** decidir patrón de aprobación# <- esto cambia cada 2 semanasTip
Añade la fecha del sprint. "Sprint 2025-03-17" le da al agente información temporal para contextualizar el trabajo sin que tengas que decírselo.
Lo que funciona y lo que no
Patrones que funcionan y antipatrones comunes al escribir el CLAUDE.md.
| Aspecto | Hacer | Evitar |
|---|---|---|
| Restricciones | Concretas y en negativo: "No usar Heroicons, usamos Phosphor." | Principios genéricos: "Nuestro diseño es simple, claro y elegante." |
| Referencias | Con ruta y descripción: "/docs/users.md — arquetipos y JTBD" | Documentación técnica exhaustiva — para eso están los archivos de referencia. |
| Sprint | Actualizado con fecha y foco concreto. | Credenciales, API keys o datos sensibles. Nunca aquí. |
| Naming | Ejemplos de naming reales del proyecto, no genéricos. | El mismo archivo para proyectos distintos — cada proyecto, su propio CLAUDE.md. |
| Estado | Estado del proyecto explícito: discovery, diseño, optimización. | Más de 300 líneas. Si llegaste aquí, estás documentando de más. |
| Archivos | Instrucciones de cuándo leer cada archivo de referencia. | Olvidar actualizarlo cuando cambia el stack o el equipo. |
Cuándo y cómo mantenerlo
Tres momentos clave para mantener el CLAUDE.md actualizado.
Genera el primer borrador con /init
Día 0· inicio de proyectoClaude Code analiza tu proyecto y propone un CLAUDE.md inicial. Úsalo como punto de partida, no como producto final. Elimina lo que no aplique y añade las restricciones del proyecto.
$ claude /init-> genera CLAUDE.md-> revisa y eliminaActualiza el bloque de sprint
Cada sprint· 5 minutosSolo el bloque 08. Hazte estas tres preguntas antes de cerrar la planning:
- ¿En qué pantallas o flujos vamos a trabajar esta semana?
- ¿Qué decisiones de diseño están abiertas o bloqueadas?
- ¿Cambió algo del sprint anterior que el agente deba saber?
Ejemplo real: "Arrancamos el sprint con el equipo preguntando al agente por el estado del flujo de onboarding. Como no habíamos actualizado el CLAUDE.md, propuso trabajo sobre pantallas que ya estaban cerradas."
Actualiza solo lo que cambió
Cuando algo cambieNo hace falta una revisión completa. Basta con identificar el disparador:
- Se incorpora alguien nuevo -> actualiza Equipo y roles
- Cambiáis de Tailwind a CSS Modules -> actualiza Stack
- El agente propone algo que ya rechazasteis -> añade una Restricción
- Cambia el foco del producto -> actualiza Principios
- Os dais cuenta de que los usuarios no son técnicos -> actualiza Audiencia
Ejemplo real: "El agente seguía proponiendo componentes en inglés. Añadimos 'No generar copy en inglés' a restricciones. No volvió a pasar."
Regla de oro
Un CLAUDE.md bien escrito es un documento que el equipo también puede leer para entender el proyecto. Si solo lo entiende el agente, probablemente está demasiado técnico. Si el equipo lo entiende, el agente también.
Template completo de CLAUDE.md
Copia este template como punto de partida y adáptalo a tu proyecto.
1# CLAUDE.md — [Nombre del proyecto]23> Archivo de contexto principal. Claude lo lee al inicio de cada sesión.4> Mantenlo conciso: máx. ~300 líneas. Lo específico de cada tarea va en /skills.56---78## 01 — Qué es este proyecto910**Nombre:** [Nombre del producto]11**Tipo:** [Web app / Marketing site / Design system / Portfolio]12**Estado actual:** [Discovery / Diseño / Desarrollo / Optimización]1314Descripción breve en 2-3 frases: qué problema resuelve, para quién y por qué importa.1516---1718## 02 — Equipo y roles1920- **[Nombre]** — Lead de diseño de producto21- **[Nombre]** — Frontend developer22- **[Nombre]** — Product Manager2324Cuando generes entregables, el receptor principal es el equipo de desarrollo.25Adapta el nivel de detalle técnico en consecuencia.2627---2829## 03 — Stack y herramientas3031- **Diseño:** Figma (componentes y tokens)32- **Tokens:** Style Dictionary -> exportados en `/design-system/tokens.md`33- **Frontend:** Next.js + Tailwind + shadcn/ui34- **Componentes documentados en:** Storybook35- **Control de versiones:** Git / GitHub3637---3839## 04 — Convenciones de nomenclatura4041| Tipo | Convención | Ejemplo |42|------|-----------|---------|43| Componentes | PascalCase | `ProductCard` |44| Tokens | kebab-case | `color-brand-primary` |45| Archivos | kebab-case | `product-card.jsx` |46| Ramas git | kebab-case | `feat/onboarding-flow` |4748---4950## 05 — Principios de diseño del proyecto51521. **[Principio 1]** — descripción breve532. **[Principio 2]** — descripción breve543. **[Principio 3]** — descripción breve5556Antes de proponer cualquier solución de diseño, valídala contra estos principios.5758---5960## 06 — Restricciones — qué NO hacer6162- No usar librerías de iconos externas. Usamos [Phosphor / Lucide / etc.]63- No generar copy en inglés. El producto es completamente en español.64- No proponer componentes que no existan en `/design-system/components.md`65- No modificar tokens directamente. Siempre a través de Style Dictionary.66- No asumir que el usuario es tech-savvy. Audiencia: [descripción].6768---6970## 07 — Archivos de referencia clave7172- `/docs/product-vision.md` — objetivos, KPIs, roadmap73- `/docs/users.md` — arquetipos y jobs-to-be-done74- `/docs/decisions-log.md` — decisiones tomadas y descartadas75- `/design-system/tokens.md` — valores de color, tipo y espacio76- `/design-system/components.md` — inventario de componentes7778Lee el archivo relevante antes de actuar en tareas relacionadas.7980---8182## 08 — Sprint actual8384**Objetivo del sprint:** [descripción en una frase]85**En qué estamos trabajando:** [pantallas / flujos / componentes]86**Decisiones pendientes:** [lista de decisiones abiertas]8788*Actualizar al inicio de cada sprint.*