Módulo 03

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

Principio

Menos 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

Principio

Solo 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

Principio

Lo 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

Principio

Se 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

Identidad

El 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.

sección 01
# Qué es este proyecto
**Nombre:** Plataforma de gestión editorial
**Tipo:** Web app B2B
**Estado:** Diseño — fase 2
Herramienta para equipos de contenido
que 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

Equipo

Lista 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.

sección 02
# Equipo y roles
- **Ana** — Lead diseño de producto
- **Marc** — Frontend
- **Laia** — Product Manager
Entregables 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

Stack

El 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.

sección 03
# Stack y herramientas
- Figma (componentes + tokens)
- Style Dictionary -> tokens.md
- Next.js + Tailwind + shadcn/ui
- Storybook (componentes)
- Git / GitHub

Tip

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

Nomenclatura

Las 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í.

sección 04
# Convenciones de nomenclatura
Componentes -> PascalCase
ej: ProductCard, UserAvatar
Tokens -> kebab-case
ej: color-brand-primary
Archivos -> kebab-case
ej: product-card.jsx

Tip

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

Principios

2 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.

sección 05
# Principios de diseño
1. Claridad antes que densidad
2. El flujo manda sobre la forma
3. Consistencia > originalidad
Valida cualquier propuesta contra
estos 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 valiosa

La 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.

sección 06 — la más importante
# 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-savvy

Tip

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

Referencias

Una 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."

sección 07
# Archivos de referencia
/docs/product-vision.md
/docs/users.md
/docs/decisions-log.md
/design-system/tokens.md
/design-system/components.md
Lee 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 semanas

El ú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.

sección 08 — actualizar cada sprint
# 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 semanas

Tip

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.

AspectoHacerEvitar
RestriccionesConcretas y en negativo: "No usar Heroicons, usamos Phosphor."Principios genéricos: "Nuestro diseño es simple, claro y elegante."
ReferenciasCon ruta y descripción: "/docs/users.md — arquetipos y JTBD"Documentación técnica exhaustiva — para eso están los archivos de referencia.
SprintActualizado con fecha y foco concreto.Credenciales, API keys o datos sensibles. Nunca aquí.
NamingEjemplos de naming reales del proyecto, no genéricos.El mismo archivo para proyectos distintos — cada proyecto, su propio CLAUDE.md.
EstadoEstado del proyecto explícito: discovery, diseño, optimización.Más de 300 líneas. Si llegaste aquí, estás documentando de más.
ArchivosInstrucciones 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 proyecto

Claude 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 elimina

Actualiza el bloque de sprint

Cada sprint· 5 minutos

Solo 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 cambie

No 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.

CLAUDE.md — Template
1# CLAUDE.md — [Nombre del proyecto]
2
3> 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.
5
6---
7
8## 01 — Qué es este proyecto
9
10**Nombre:** [Nombre del producto]
11**Tipo:** [Web app / Marketing site / Design system / Portfolio]
12**Estado actual:** [Discovery / Diseño / Desarrollo / Optimización]
13
14Descripción breve en 2-3 frases: qué problema resuelve, para quién y por qué importa.
15
16---
17
18## 02 — Equipo y roles
19
20- **[Nombre]** — Lead de diseño de producto
21- **[Nombre]** — Frontend developer
22- **[Nombre]** — Product Manager
23
24Cuando generes entregables, el receptor principal es el equipo de desarrollo.
25Adapta el nivel de detalle técnico en consecuencia.
26
27---
28
29## 03 — Stack y herramientas
30
31- **Diseño:** Figma (componentes y tokens)
32- **Tokens:** Style Dictionary -> exportados en `/design-system/tokens.md`
33- **Frontend:** Next.js + Tailwind + shadcn/ui
34- **Componentes documentados en:** Storybook
35- **Control de versiones:** Git / GitHub
36
37---
38
39## 04 — Convenciones de nomenclatura
40
41| 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` |
47
48---
49
50## 05 — Principios de diseño del proyecto
51
521. **[Principio 1]** — descripción breve
532. **[Principio 2]** — descripción breve
543. **[Principio 3]** — descripción breve
55
56Antes de proponer cualquier solución de diseño, valídala contra estos principios.
57
58---
59
60## 06 — Restricciones — qué NO hacer
61
62- 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].
67
68---
69
70## 07 — Archivos de referencia clave
71
72- `/docs/product-vision.md` — objetivos, KPIs, roadmap
73- `/docs/users.md` — arquetipos y jobs-to-be-done
74- `/docs/decisions-log.md` — decisiones tomadas y descartadas
75- `/design-system/tokens.md` — valores de color, tipo y espacio
76- `/design-system/components.md` — inventario de componentes
77
78Lee el archivo relevante antes de actuar en tareas relacionadas.
79
80---
81
82## 08 — Sprint actual
83
84**Objetivo del sprint:** [descripción en una frase]
85**En qué estamos trabajando:** [pantallas / flujos / componentes]
86**Decisiones pendientes:** [lista de decisiones abiertas]
87
88*Actualizar al inicio de cada sprint.*