CLAUDE.md
Claude.MD/CLAUDE.mdCLAUDE.md
Quality
70/100
Scores the file, not the repository.Length
539 words
8 headings · 3 code blocksRepository
0
— · pushed 91 days agoLast changed
3 days ago
First indexed 3 days ago.1# CLAUDE.md — Guía Principal del Proyecto23## Stack4Python/Django · PostgreSQL · Redis · Celery · MinIO · Nginx · Docker56## 🔐 MODO AUDITOR DE SEGURIDAD — SIEMPRE ACTIVO78Actuás simultáneamente como desarrollador y auditor de seguridad.9Antes de confirmar cualquier cambio, ejecutá mentalmente los checks del archivo correspondiente.1011---1213## REGLAS ABSOLUTAS (no negociables)1415```16❌ NUNCA hardcodear secrets, API keys o passwords en el código17❌ NUNCA commitear .env, *.pem, *.key ni credenciales de ningún tipo18❌ NUNCA usar DEBUG=True en producción19❌ NUNCA exponer stack traces al usuario final20❌ NUNCA confiar en input del usuario sin validación y sanitización21❌ NUNCA correr contenedores Docker como root22❌ NUNCA saltear autenticación en endpoints de API23❌ NUNCA loguear passwords, tokens, datos de tarjetas o respuestas completas de APIs externas24❌ NUNCA usar .env en producción — usar Docker Secrets25❌ NUNCA exponer puertos de base de datos, Redis o servicios internos al exterior26❌ NUNCA usar tags :latest en imágenes Docker27```2829---3031## SECRETS — REGLA CRÍTICA3233| Entorno | Método | .env |34|-------------|----------------------------------|------------|35| Desarrollo | `.env` local (en `.gitignore`) | ✅ permitido |36| Producción | Docker Secrets | ❌ prohibido |3738En producción, todas las credenciales se inyectan via Docker Secrets.39Django las lee desde `/run/secrets/` o variables de entorno del sistema.40El `.env` nunca existe en producción ni se commitea bajo ninguna circunstancia.4142---4344## CUÁNDO LEER CADA ARCHIVO4546Claude lee estos archivos SOLO cuando la tarea lo requiere, no por defecto:4748| Estás trabajando en... | Leer |49|-------------------------------------------------------------------------------------|---------------------------|50| Docker, Nginx, volúmenes, infraestructura | `docs/INFRA.md` |51| Settings, auth, permisos, headers, ataques | `docs/SECURITY.md` |52| Modelos, vistas, serializers, servicios, ORM, comentarios | `docs/CODING.md` |53| Try/except, logging, excepciones, errores en tasks o signals | `docs/ERROR_HANDLING.md` |54| Tests, factories, mocks, coverage | `docs/TESTING.md` |55| Logs, métricas, Grafana, Flower, trazabilidad | `docs/OBSERVABILITY.md` |56| Celery tasks, emails, Resend, colas | `docs/EMAIL.md` |57| Datos de usuarios, consentimiento, privacidad | `docs/GDPR.md` |58| Antes de un PR o deploy | `docs/VERIFICATION.md` |59| API versioning, feature flags, i18n, timezones, search, migrations, archivos estáticos | `docs/DAY1.md` |6061---6263## ESTRUCTURA DEL PROYECTO6465```66config/67├── settings/68│ ├── base.py # Settings base compartidos69│ ├── development.py # Solo desarrollo local70│ ├── production.py # Producción — sin DEBUG, con Docker Secrets71│ └── test.py # Tests — SQLite en memoria, Celery eager72├── urls.py73├── wsgi.py74└── asgi.py75manage.py76apps/77├── users/ # Autenticación, perfil, RBAC78├── tracing/ # Middleware de trazabilidad (ver OBSERVABILITY.md)79└── [tu_app]/80docs/ # Estos archivos de contexto81docker/ # Dockerfiles y configs de servicios82```8384---8586## PRE-COMMIT CHECKLIST (mínimo antes de cada commit)8788```89[ ] Sin secrets ni API keys en el código90[ ] .env en .gitignore y no commiteado91[ ] Sin print() o logger.debug() con datos sensibles92[ ] Nuevos endpoints tienen autenticación y permisos93[ ] Inputs de usuario validados antes de usar94[ ] Errores retornan mensajes genéricos al cliente95[ ] Nuevas dependencias con versiones pinneadas96[ ] Dockerfiles no corren como root97[ ] Nuevas acciones de negocio agregadas al ActionType enum (tracing)98[ ] Nuevos params en tracing pasan por _sanitize_params()99```100
