- Concise: <100 lines. If it grows, modularize with rules/.
- Actionable: every line must change Claude's behavior.
- Specific: exact commands, real paths, concrete versions.
- Up to date: reflect current state, not the past.
## Build & Development
- Build: `npm run build`
- Test: `npm run test`
- Lint: `npm run lint`
- Dev: `npm run dev`Why first? It's what Claude needs most frequently.
## Stack
Python 3.12, FastAPI, Redis 7 Streams, React 19, TypeScript strict, Tailwind CSSOne line. No unnecessary explanations.
## Architecture
/api → REST endpoints (thin, logic in /services)
/services → business logic
/models → types and validation
/tests → pytest (unit + integration)Folder map + responsibility of each one.
## Conventions
- snake_case for functions, PascalCase for classes
- Type hints on public functions
- Tests required for new functionality
- Error handling: never empty catchOnly what's not obvious from the language/framework.
## Working rules
- Plan Mode for >3 files
- Don't refactor what wasn't asked
- Tests must pass before reporting "done"## Known errors
See CLAUDE_ERRORS.md| Do | Don't |
|---|---|
| Exact commands | "Run tests" without command |
| Specific versions | "Modern Python" |
| Rules in .claude/rules/ | Everything in CLAUDE.md (200+ lines) |
| Update post-session | Leave outdated |
| One rule per concept | Paragraphs of explanation |
Before finalizing a CLAUDE.md:
- Can a fresh Claude build the project reading only this file?
- Would each line change Claude's behavior if removed?
- Is anything duplicated with rules/ or README?
- Do the commands work if I copy-paste them?
- Conciso: <100 líneas. Si crece, modularizar con rules/.
- Actionable: cada línea debe cambiar el comportamiento de Claude.
- Específico: comandos exactos, paths reales, versiones concretas.
- Actualizado: reflejar el estado actual, no el pasado.
## Build & Development
- Build: `npm run build`
- Test: `npm run test`
- Lint: `npm run lint`
- Dev: `npm run dev`¿Por qué primero? Es lo que Claude necesita más frecuentemente.
## Stack
Python 3.12, FastAPI, Redis 7 Streams, React 19, TypeScript strict, Tailwind CSSUna línea. Sin explicaciones innecesarias.
## Arquitectura
/api → endpoints REST (thin, lógica en /services)
/services → lógica de negocio
/models → tipos y validación
/tests → pytest (unit + integration)Mapa de carpetas + responsabilidad de cada una.
## Convenciones
- snake_case para funciones, PascalCase para clases
- Type hints en funciones públicas
- Tests obligatorios para funcionalidad nueva
- Error handling: nunca catch vacíoSolo lo que no es obvio del lenguaje/framework.
## Reglas de trabajo
- Plan Mode para >3 archivos
- No refactorizar lo que no se pidió
- Tests deben pasar antes de reportar "listo"## Errores conocidos
Ver CLAUDE_ERRORS.md| Hacer | No hacer |
|---|---|
| Comandos exactos | "Ejecutar tests" sin comando |
| Versiones específicas | "Python moderno" |
| Rules en .claude/rules/ | Todo en CLAUDE.md (200+ líneas) |
| Actualizar post-sesión | Dejar desactualizado |
| Una regla por concepto | Párrafos de explicación |
Antes de dar por terminado un CLAUDE.md:
- ¿Un Claude nuevo puede buildear el proyecto leyendo solo este archivo?
- ¿Cada línea cambiaría el comportamiento de Claude si se borrara?
- ¿Hay algo duplicado con rules/ o README?
- ¿Los comandos funcionan si los copio y pego?