Skip to content

Convenciones transversales del Universo

  • TypeScript estricto. Sin any salvo justificación documentada.
  • Clean Architecture / DDD cuando el dominio lo justifique.
  • Commits: Conventional Commits (feat:, fix:, refactor:, docs:, chore:).
  • docs/adr/NNNN-titulo.md por decisión arquitectónica.
  • CLAUDE.md por mundo hereda del global con @../../CLAUDE.md.
  • COWORK.md por mundo = briefing para Claude Cowork.
  • docs/design-system.md por mundo = tokens para Claude Design.
  • No todo mundo usa Supabase — depende del stack elegido (ej. ShipFree usa Drizzle + Better-Auth).
  • RLS siempre en tablas con datos de usuario.
  • Migraciones versionadas en supabase/migrations/.
  • Secrets fuera del repo.
  • Un par (o N:M) de mundos front/backend comparte contrato via _shared/contracts/<producto>/api-contract.yaml.
  • El backend es la única fuente de verdad — ese archivo es siempre un symlink al artefacto real del mundo backend, nunca una copia.
  • Registrar el par en _shared/contracts/registry.json; sin entrada ahí, el hook de drift-check no hace nada.
  • Ver _shared/contracts/README.md para el procedimiento completo y ADR-G017.
  • Un test harness que apunta a un server legacy “real” nunca defaultea al puerto donde corre producción real, aunque sea “solo para desarrollo”. Agregar guard que falle duro (no warning) si la URL resuelta coincide con el puerto de producción conocido. Ver ADR-G027.
  • Interno/casual: español. Código/comentarios públicos: inglés.
  • Toda tarea nueva en cualquier TASKS.md lleva marca [P] o [S] junto al tag de módulo.
  • [P] = paralelizable: no toca los mismos archivos ni depende de otra tarea pending/doing. Segura para lanzar en subagente/mundo distinto al mismo tiempo que otras [P].
  • [S] = secuencial: toca archivos compartidos con otra tarea activa, o depende de que otra termine antes.
  • Formato: - [ ] [P] [modulo][id] **Título** — descripción. (fecha).
  • Al mover una tarea a ## done, conservar la marca [P]/[S] en la entrada final.

Auto-memory es para hallazgos operativos (comandos descubiertos, gotchas, correcciones puntuales). Decisiones de arquitectura van SIEMPRE a docs/adr/, nunca solo a memory. Convenciones de código van SIEMPRE a CONVENTIONS.md, nunca solo a memory. Si detectas conflicto entre un memory file y CLAUDE.md/CONVENTIONS.md/ADR, el documento escrito manda.