workspace-v1/orchestration/directivas/principios/PRINCIPIO-VALIDACION-OBLIGATORIA.md
rckrdmrd 66161b1566 feat: Workspace-v1 complete migration with NEXUS v3.4
Sistema NEXUS v3.4 migrado con:

Estructura principal:
- core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles)
- core/catalog: Catalogo de funcionalidades reutilizables
- shared/knowledge-base: Base de conocimiento compartida
- devtools/scripts: Herramientas de desarrollo
- control-plane/registries: Control de servicios y CI/CD
- orchestration/: Configuracion de orquestacion de agentes

Proyectos incluidos (11):
- gamilit (submodule -> GitHub)
- trading-platform (OrbiquanTIA)
- erp-suite con 5 verticales:
  - erp-core, construccion, vidrio-templado
  - mecanicas-diesel, retail, clinicas
- betting-analytics
- inmobiliaria-analytics
- platform_marketing_content
- pos-micro, erp-basico

Configuracion:
- .gitignore completo para Node.js/Python/Docker
- gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git)
- Sistema de puertos estandarizado (3005-3199)

Generated with NEXUS v3.4 Migration System
EPIC-010: Configuracion Git y Repositorios
2026-01-04 03:37:42 -06:00

249 lines
7.9 KiB
Markdown

# PRINCIPIO: VALIDACIÓN OBLIGATORIA
**Versión:** 1.0.0
**Fecha:** 2025-12-08
**Tipo:** Principio Fundamental - HERENCIA OBLIGATORIA
**Aplica a:** TODOS los agentes sin excepción
---
## DECLARACIÓN DEL PRINCIPIO
```
╔══════════════════════════════════════════════════════════════════════╗
║ ║
║ BUILD PASA + LINT PASA = REQUISITO MÍNIMO ║
║ ║
║ "Código que no compila NO está terminado." ║
║ "Tarea con errores NO está completada." ║
║ ║
╚══════════════════════════════════════════════════════════════════════╝
```
---
## REGLA INQUEBRANTABLE
```
┌─────────────────────────────────────────────────────────────────────┐
│ │
│ NINGUNA tarea se marca como COMPLETADA si: │
│ │
│ • Build falla │
│ • Lint tiene errores críticos │
│ • Carga limpia falla (para DDL) │
│ • Tests fallan (si existen) │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
---
## VALIDACIONES POR CAPA
### Database (DDL)
```bash
# OBLIGATORIO
cd @DB_SCRIPTS
./{RECREATE_CMD} # Carga limpia DEBE pasar
# Verificación
psql -d {DB_NAME} -c "\dt {schema}.*" # Tablas creadas
psql -d {DB_NAME} -c "\di {schema}.*" # Índices creados
```
### Backend (NestJS)
```bash
# OBLIGATORIO
cd @BACKEND_ROOT
npm run build # DEBE pasar
npm run lint # DEBE pasar
# Adicional
npm run test # Si hay tests, DEBEN pasar
npm run start:dev # DEBE iniciar sin errores
```
### Frontend (React)
```bash
# OBLIGATORIO
cd @FRONTEND_ROOT
npm run build # DEBE pasar
npm run lint # DEBE pasar
# Adicional
npm run typecheck # DEBE pasar
npm run dev # DEBE iniciar sin errores
```
---
## FLUJO DE VALIDACIÓN
```
TERMINAR IMPLEMENTACIÓN
┌─────────────────────┐
│ EJECUTAR BUILD │
└──────────┬──────────┘
┌─────────────────────┐ ┌─────────────────────┐
│ ¿BUILD PASA? │──NO──►│ CORREGIR ERRORES │
└──────────┬──────────┘ └──────────┬──────────┘
│ SÍ │
│◄────────────────────────────┘
┌─────────────────────┐ ┌─────────────────────┐
│ EJECUTAR LINT │──NO──►│ CORREGIR ERRORES │
│ ¿LINT PASA? │ └──────────┬──────────┘
└──────────┬──────────┘ │
│ SÍ │
│◄────────────────────────────┘
┌─────────────────────┐ ┌─────────────────────┐
│ EJECUTAR TESTS │──NO──►│ CORREGIR TESTS │
│ ¿TESTS PASAN? │ └──────────┬──────────┘
└──────────┬──────────┘ │
│ SÍ │
│◄────────────────────────────┘
┌─────────────────────┐
│ ✅ TAREA COMPLETA │
└─────────────────────┘
```
---
## QUÉ HACER CUANDO FALLA
### Build Falla
```markdown
1. NO marcar tarea como completada
2. Leer el error completo
3. Identificar archivo y línea
4. Corregir el error
5. Volver a ejecutar build
6. Repetir hasta que pase
```
### Lint Falla (Errores)
```markdown
1. NO marcar tarea como completada
2. Distinguir errores de warnings
- Errores (error): DEBEN corregirse
- Warnings (warn): Pueden ignorarse (pero mejor corregir)
3. Corregir todos los errores
4. Volver a ejecutar lint
5. Repetir hasta que pase
```
### Carga Limpia Falla (DDL)
```markdown
1. NO marcar tarea como completada
2. NO ejecutar fix manual en BD
3. Leer el error de PostgreSQL
4. Corregir archivo DDL
5. Volver a ejecutar carga limpia completa
6. Repetir hasta que pase
```
### Tests Fallan
```markdown
1. NO marcar tarea como completada
2. Identificar test que falla
3. Determinar si:
a. El código tiene bug → Corregir código
b. El test está desactualizado → Actualizar test
4. Volver a ejecutar tests
5. Repetir hasta que pasen
```
---
## EXCEPCIONES (MUY LIMITADAS)
```yaml
Puede marcarse completa SIN tests:
- Si no existen tests para el módulo (pero build y lint DEBEN pasar)
- Se documenta: "Tests pendientes de crear"
Puede tener warnings de lint:
- Si son warnings menores (no errores)
- Se documenta: "N warnings de lint pendientes"
NUNCA puede marcarse completa:
- Con build fallando
- Con errores de lint
- Con carga limpia fallando
```
---
## REPORTE DE VALIDACIÓN
En toda entrega incluir:
```markdown
## Validaciones
| Validación | Comando | Resultado |
|------------|---------|-----------|
| Build | `npm run build` | ✅ Pasa / ❌ Falla |
| Lint | `npm run lint` | ✅ Pasa / ⚠️ Warnings / ❌ Errores |
| Tests | `npm run test` | ✅ Pasa / ❌ Falla / ⏭️ N/A |
| Carga Limpia | `./{RECREATE_CMD}` | ✅ Pasa / ❌ Falla / ⏭️ N/A |
**Estado:** ✅ Validaciones completas / ❌ Pendiente corrección
```
---
## CONSECUENCIAS DE IGNORAR
```
❌ Código que no compila entregado
→ Bloquea a otros agentes/desarrolladores
❌ Errores de lint ignorados
→ Código inconsistente, bugs potenciales
❌ Tests fallando ignorados
→ Regresiones, bugs en producción
❌ DDL con errores
→ BD inconsistente, datos corruptos
```
---
## CHECKLIST RÁPIDO
```
Antes de marcar CUALQUIER tarea como completada:
[ ] Build pasa sin errores
[ ] Lint pasa sin errores (warnings OK)
[ ] Tests pasan (si existen)
[ ] Carga limpia pasa (si es DDL)
[ ] Aplicación inicia correctamente
```
---
## REFERENCIAS SIMCO
- **@VALIDAR** - Proceso completo de validación
- **@OP_DDL** - Validación específica de database
- **@OP_BACKEND** - Validación específica de backend
- **@OP_FRONTEND** - Validación específica de frontend
---
**Este principio es OBLIGATORIO y NO puede ser ignorado por ningún agente.**
---
**Versión:** 1.0.0 | **Sistema:** SIMCO | **Tipo:** Principio Fundamental