Guía de Configuración del Archivo CLAUDE.md

Define estándares y restricciones del proyecto a través del archivo CLAUDE.md, para que Claude Code comprenda y siga mejor los requisitos del proyecto.

Qué es CLAUDE.md

CLAUDE.md es el archivo de configuración del proyecto para Claude Code, que se carga automáticamente al inicio de cada conversación como parte del prompt del sistema. Al configurar correctamente este archivo, puede:

  • Definir estándares de codificación específicos del proyecto
  • Establecer restricciones de stack tecnológico y framework
  • Establecer estándares de calidad de código
  • Estandarizar flujos de trabajo de desarrollo
  • Documentar decisiones de arquitectura

Plantilla de Configuración Principal

Estructura de Plantilla Básica

# Nombre del Proyecto

## Descripción del Proyecto

[Breve descripción del propósito del proyecto, funciones principales y usuarios objetivo]

## Stack Tecnológico

- Frontend: [Framework y bibliotecas principales]
- Backend: [Lenguaje y framework]
- Base de datos: [Tipo de base de datos]
- Despliegue: [Plataforma de despliegue]

## Estructura del Proyecto

\```
project/
├── src/ # Código fuente
├── tests/ # Archivos de prueba
├── docs/ # Documentación
└── scripts/ # Archivos de script
\```

## Estándares de Desarrollo

[Estándares de codificación específicos del proyecto]

## Notas

[Notas y restricciones específicas del proyecto]

Ejemplo de Configuración Completa

# CLAUDE.md - Archivo de Configuración del Proyecto

## Reglas Generales (obligatorias para todos los proyectos)

### Idioma de Comunicación

- Siempre usar chino simplificado para pensar y dialogar
- Comentarios de código en inglés, documentación en chino

### Gestión de Documentos

- Documentación oficial en el directorio `docs/`
- Propuestas de discusión en el directorio `discuss/`
- Mantener README conciso, documentación detallada separada

## Estándares de Arquitectura de Código

### Límites de Tamaño de Archivo

- Python/JavaScript/TypeScript: cada archivo no más de 300 líneas
- Java/Go/Rust: cada archivo no más de 400 líneas
- No más de 8 archivos por carpeta
- Si se excede, se requiere refactorización o división

### Indicadores de Calidad de Código

Evitar los siguientes code smells:

1. **Rigidez**: Sistema difícil de cambiar
2. **Redundancia**: Demasiado código duplicado
3. **Dependencias Circulares**: Módulos interdependientes
4. **Fragilidad**: Cambios causan problemas en cadena
5. **Obscuridad**: Intención del código no clara
6. **Data Clumps**: Elementos de datos siempre aparecen juntos
7. **Sobrediseño**: Complejidad innecesaria

## Restricciones de Stack Tecnológico

### Stack Tecnológico Frontend

- React 19+ (no usar versión 18 o inferior)
- Next.js 15.4+ (no usar versión 14 o inferior)
- Tailwind CSS v4 (no usar v3)
- Preferir TypeScript, evitar JavaScript
- Prohibir CommonJS, usar solo ES Modules

### Stack Tecnológico Backend

- Node.js 18+
- Usar TypeScript
- Express/Fastify como framework web
- Prisma como ORM

### Proyectos Python

- Usar uv para gestión de dependencias (no pip/poetry/conda)
- Nombre de directorio de entorno virtual: `.venv`
- Tipado fuerte, evitar uso de dict
- Mantener directorio raíz del proyecto limpio

## Flujo de Trabajo de Desarrollo

### Gestión de Scripts

- Todos los scripts en el directorio `scripts/`
- Usar scripts `.sh` para operaciones de inicio-parada
- No usar comandos npm/pnpm/python directamente
- Los fallos de script deben corregirse inmediatamente

### Gestión de Logs

- Archivos de configuración generan logs
- Salida unificada al directorio `logs/`
- Incluir marca de tiempo y nivel de log
- Almacenar logs de error por separado

### Requisitos de Pruebas

- Cobertura de pruebas unitarias > 80%
- Funciones críticas deben tener pruebas de integración
- Archivos de prueba en el directorio `tests/`
- Usar CI/CD para ejecutar pruebas automáticamente

## Convenciones de Nomenclatura

### Nombres de Archivo

- Componentes: PascalCase (ej. UserProfile.tsx)
- Funciones utilitarias: camelCase (ej. formatDate.ts)
- Archivos de constantes: UPPER_SNAKE_CASE (ej. API_CONSTANTS.ts)
- Archivos de estilo: kebab-case (ej. user-profile.css)

### Nombres de Variables

- Variables/Funciones: camelCase
- Constantes: UPPER_SNAKE_CASE
- Clases/Interfaces: PascalCase
- Propiedades privadas: \_camelCase

## Flujo de Trabajo Git

### Estrategia de Branching

- main: Código de producción
- develop: Código de desarrollo
- feature/\*: Ramas de características
- hotfix/\*: Ramas de corrección de emergencia

### Convenciones de Commit

- feat: Nueva funcionalidad
- fix: Corrección de errores
- docs: Actualización de documentación
- style: Formato de código
- refactor: Refactorización de código
- test: Relacionado con pruebas
- chore: Cambios de build/herramientas

## Estándares de Diseño de API

### Principios RESTful

- GET: Obtener recurso
- POST: Crear recurso
- PUT: Actualizar recurso (completo)
- PATCH: Actualizar recurso (parcial)
- DELETE: Eliminar recurso

### Formato de Respuesta

\```json
{
"success": true,
"data": {},
"message": "Operación exitosa",
"timestamp": "2024-01-01T00:00:00Z"
}
\```

### Manejo de Errores

\```json
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Descripción del error",
"details": {}
}
}
\```

## Estándares de Seguridad

### Información Sensible

- No codificar claves en el código
- Usar variables de entorno para gestión de configuración
- No hacer commit del archivo `.env` en Git
- Actualizar dependencias regularmente

### Validación de Datos

- Validación de datos tanto en frontend como backend
- Usar bibliotecas de validación de esquemas (ej. zod)
- Parametrizar consultas SQL
- Prevenir ataques XSS y CSRF

## Optimización de Rendimiento

### Optimización Frontend

- Lazy loading para imágenes
- Code splitting
- Estrategia de caché
- Scroll virtual (listas grandes)

### Optimización Backend

- Optimización de consultas de base de datos
- Usar caché (Redis)
- Compresión de respuestas API
- Control de concurrencia

## Configuración de Despliegue

### Variables de Entorno

- development: Entorno de desarrollo
- staging: Entorno de pruebas
- production: Entorno de producción

### Containerización

- Usar Docker para despliegue
- Builds multi-etapa para optimizar tamaño de imagen
- Usar docker-compose para orquestación de servicios

## Monitoreo y Logs

### Métricas de Monitoreo

- Tiempo de respuesta de API
- Tasa de error
- Uso de recursos
- Análisis de comportamiento del usuario

### Niveles de Log

- ERROR: Información de error
- WARN: Información de advertencia
- INFO: Información general
- DEBUG: Información de depuración

## Notas Especiales

⚠️ **Recordatorios Importantes**:

1. Abordar problemas de código inmediatamente
2. Preguntar activamente al usuario cuando haya incertidumbre
3. Mantener código limpio y mantenible
4. Seguir estándares establecidos del proyecto

Plantillas Específicas por Tipo de Proyecto

Proyectos React/Next.js

## Estándares de Proyecto React/Next.js

### Estándares de Componentes

- Usar componentes funcionales + Hooks
- Archivo de componente con mismo nombre que componente
- Un archivo, un componente
- Props definidas con interfaces TypeScript

### Gestión de Estado

- Estado simple: useState
- Estado complejo: useReducer
- Estado global: Context API / Zustand
- Estado del servidor: TanStack Query

### Solución de Estilos

- Tailwind CSS v4 como principal
- CSS Modules como complemento
- Evitar estilos inline
- Priorizar diseño responsive

### Optimización de Rendimiento

- Usar React.memo para evitar renderizado innecesario
- useMemo/useCallback para optimización de cálculos
- Importaciones dinámicas para code splitting
- Usar componente next/image para imágenes

Proyectos Python

## Estándares de Proyecto Python

### Estructura del Proyecto

\```
project/
├── src/
│ ├── **init**.py
│ ├── main.py
│ ├── models/
│ ├── services/
│ └── utils/
├── tests/
├── .venv/
└── pyproject.toml
\```

### Gestión de Dependencias

- Usar uv para todas las dependencias
- pyproject.toml para definir configuración del proyecto
- requirements.txt para despliegue de producción
- requirements-dev.txt para dependencias de desarrollo

### Anotaciones de Tipo

- Todas las funciones deben tener anotaciones de tipo
- Usar dataclass para definir estructuras de datos
- Combinar con mypy para verificación de tipos
- Evitar usar tipo Any

### Programación Asíncrona

- Priorizar async/await
- Usar asyncio para gestión de concurrencia
- Usar drivers asíncronos para operaciones de base de datos
- Usar httpx para peticiones HTTP

Proyectos de Microservicios

## Estándares de Arquitectura de Microservicios

### División de Servicios

- Dividir servicios por dominio de negocio
- Cada servicio se despliega independientemente
- Comunicación entre servicios vía API
- Código compartido mediante gestión de paquetes

### API Gateway

- Gestión de entrada unificada
- Autenticación y autorización
- Rate limiting y circuit breaking
- Enrutamiento de peticiones

### Comunicación de Servicios

- HTTP/REST: Llamadas síncronas
- Colas de mensajes: Comunicación asíncrona
- gRPC: Escenarios de alto rendimiento
- WebSocket: Comunicación en tiempo real

### Gestión de Datos

- Cada servicio tiene su propia base de datos
- Evitar transacciones entre servicios
- Usar event-driven para mantener consistencia
- Implementar operaciones idempotentes

Recomendaciones de Uso

Configuración de Inicialización

Use el comando /init para generar automáticamente la configuración básica:

> /init

Claude Code analizará la estructura del proyecto y generará un archivo inicial CLAUDE.md.

Actualización Continua

A medida que el proyecto evoluciona, actualice continuamente el archivo de configuración:

Documentar decisiones de arquitectura

Registrar decisiones técnicas importantes

Actualizar stack tecnológico

Actualizar cambios de stack tecnológico de manera oportuna

Mejorar estándares

Complementar estándares oportunamente al descubrir problemas

Optimizar flujo de trabajo

Optimizar proceso de desarrollo basado en la práctica

Colaboración en Equipo

Asegurar que todos los miembros del equipo conozcan y sigan la configuración:

  • Nuevos miembros leen CLAUDE.md primero
  • Revisiones regulares de actualizaciones de configuración
  • Comunicar cambios de configuración a todos
  • Mantener la practicidad de la configuración

Mejores Prácticas

DO - Prácticas Recomendadas

Mantener simplicidad y claridad

  • Reglas claras y fáciles de entender
  • Evitar sobreconfiguración
  • Enfocarse en restricciones clave

Sincronizar con el proyecto

  • Configuración refleja situación actual
  • Actualizar contenido obsoleto oportunamente
  • Eliminar reglas que ya no aplican

Enfocarse en efectividad

  • Reglas ayudan a mejorar eficiencia
  • Evitar formalismo
  • Mejorar continuamente basado en retroalimentación

DON'T - Prácticas a Evitar

Sobrerestricción

  • No establecer reglas demasiado estrictas
  • Dejar espacio flexible para desarrollo
  • Evitar sofocar la innovación

Desconectado de la realidad

  • No copiar ciegamente configuraciones de otros proyectos
  • Las reglas deben ajustarse a las capacidades del equipo
  • Considerar necesidades reales del proyecto

Descuidar mantenimiento

  • No configurar una vez y nunca actualizar
  • Revisar regularmente efectividad de la configuración
  • Limpiar configuraciones no utilizadas oportunamente

💡 Consejo: CLAUDE.md es la "constitución" del proyecto, define las reglas de comportamiento de Claude Code en el proyecto. Una configuración adecuada puede mejorar significativamente la eficiencia de desarrollo y la calidad del código, pero evite la carga de sobreconfiguración. Recuerde siempre: la configuración sirve al desarrollo, no el desarrollo a la configuración.

Con la IA: innovación sin límites y oportunidades infinitas
Acerca de
Funciones
Documentación
Precios
Contáctanos
Términos y políticas
Términos de uso
Política de privacidad
Ley de transacciones comerciales específicas