Hasta ahora el proyecto carecía de convenciones documentadas. Esta configuración inicial consolida code style, git conventions, política de tests, comandos /audit y /check, y las skills locales del repo (sf-backend-architecture y clean-ddd-hexagonal) en una estructura reutilizable: defaults estrictos al copiar a otros repos, con excepciones específicas de sf-sim documentadas por su carácter legacy. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.9 KiB
2.9 KiB
Code style — reglas mínimas
Subset siempre cargado. Para detalle completo (ejemplos, casos borde, justificaciones) ver .agents/skills/sf-backend-architecture/references/CODE-STYLE.md — invoca la skill sf-backend-architecture para cargarlo bajo demanda.
Reglas que aplican siempre
- Comentarios en español. Inline, JSDoc, TODO. Sin excepciones.
- Identificadores: español para dominio (
iccid,activarLinea), inglés para infraestructura técnica (httpClient,eventBus). - Funciones y métodos:
camelCase, verbo en infinitivo (getUsuario,activarLinea,publishEvent). - Variables locales y parámetros:
camelCase(activationDate,msgData). - Constantes literales de módulo:
UPPER_SNAKE_CASE(DEFAULT_LIMIT = 1000). Instancias configuradas (aunque seanconst) van encamelCase(const eventBus = new RabbitMQEventBus(...)). - Clases, interfaces y tipos:
PascalCase. - Sin prefijo
Ien interfaces (EventBus, noIEventBus). typepor defecto,interfacesolo para ports (contratos implementados por adapters).- Sin
enum— usar uniones de strings literales (type X = 'a' | 'b'). - Sin
anyen código nuevo salvo en boundaries de I/O externo con comentario justificando. Preferencia:unknown+ type guard. async/awaitsiempre. Nada de.then().catch()salvo fire-and-forget consciente con comentario.- Tests en español:
describeeitambos (it('debería ...')). - Política de tests (TDD por defecto): todo código nuevo se escribe con TDD y el repo mantiene ≥70% de cobertura. Tests del nivel apropiado (domain puro / application con mocks de ports / infrastructure cuando añade adapter). Bugs corregidos requieren test de regresión que reproduzca el fallo. Estrategia detallada en
HOUSE-STYLE.md§ Tests. - Errores:
Result<E, D>para fallos esperables,throwsolo para invariantes rotas. - Aplicación: estricto en código nuevo, oportunista al tocar código existente. No PRs masivos de retrofit.
Excepciones de este repo
Estas excepciones son específicas de sf-sim. Al copiar este fichero a un repo nuevo, sustituye esta sección (o bórrala) — los defaults de arriba aplican sin estas relajaciones.
- Política de tests: sf-sim es legacy con cobertura ~12%. La regla TDD + 70% es aspiracional, no bloqueante. Estricta para código nuevo; al tocar legacy retrofittear tests es opcional pero valorado; nada de retrofits masivos. La excepción decae cuando alcancemos el 70% global.
sim-objenious-cron/no sigue las convenciones arquitectónicas: sus desvíos son intencionales por la API que consume. No auditar contra este documento salvo petición explícita.- Carpeta
aplication/(con typo) se mantiene tal cual hasta refactor coordinado de los path aliases del monorepo.