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
435 lines
9.4 KiB
Markdown
435 lines
9.4 KiB
Markdown
# VALIDACIÓN: {TAREA-ID} - {Nombre de la Tarea}
|
||
|
||
**Agente:** {Database-Agent | Backend-Agent | Frontend-Agent | etc}
|
||
**Fecha validación:** {YYYY-MM-DD HH:MM}
|
||
**Relacionado con:** [{REQ-XXX}], [{DB-XXX}], [{BE-XXX}]
|
||
|
||
---
|
||
|
||
## 📋 CHECKLIST DE VALIDACIÓN
|
||
|
||
### Base de Datos (si aplica)
|
||
|
||
**DDL - Ejecución:**
|
||
- [ ] Script `create-database.sh` ejecuta sin errores
|
||
- [ ] Todas las tablas creadas correctamente
|
||
- [ ] Índices creados según plan
|
||
- [ ] Constraints aplicados (PK, FK, CHECK)
|
||
- [ ] Funciones funcionan correctamente
|
||
- [ ] Triggers activados correctamente
|
||
|
||
**Estructura:**
|
||
```bash
|
||
$ ./apps/database/create-database.sh
|
||
{Pegar output completo o resumen}
|
||
|
||
✅ Resultado: EXITOSO | ❌ ERROR
|
||
```
|
||
|
||
**Validación de Tablas:**
|
||
```sql
|
||
-- Verificar tabla
|
||
\d {schema}.{tabla}
|
||
|
||
{Pegar output}
|
||
|
||
✅ Columnas: {N}/{N esperadas}
|
||
✅ Índices: {M}/{M esperados}
|
||
```
|
||
|
||
**Seeds:**
|
||
- [ ] Seeds de desarrollo cargados
|
||
- [ ] Datos de prueba insertados correctamente
|
||
- [ ] Sin errores de FK
|
||
|
||
```bash
|
||
$ psql $DATABASE_URL -c "SELECT COUNT(*) FROM {schema}.{tabla};"
|
||
|
||
✅ Registros cargados: {N}
|
||
```
|
||
|
||
---
|
||
|
||
### Backend (si aplica)
|
||
|
||
**Compilación:**
|
||
- [ ] TypeScript compila sin errores
|
||
- [ ] No hay warnings críticos
|
||
|
||
```bash
|
||
$ cd apps/backend && npm run build
|
||
|
||
{Pegar output}
|
||
|
||
✅ Compilación: EXITOSA | ❌ ERROR
|
||
⚠️ Warnings: {N} (listar si son críticos)
|
||
```
|
||
|
||
**Entities:**
|
||
- [ ] Entities mapeadas correctamente a tablas
|
||
- [ ] Relaciones configuradas (OneToMany, ManyToOne, etc.)
|
||
- [ ] Decoradores correctos (@Entity, @Column, @PrimaryGeneratedColumn)
|
||
|
||
**Validación de Entity:**
|
||
```typescript
|
||
// Verificar entity cargada
|
||
import { ProjectEntity } from './modules/projects/entities/project.entity';
|
||
|
||
✅ Entity importa sin errores
|
||
✅ Decoradores correctos
|
||
✅ Relaciones definidas: {N}
|
||
```
|
||
|
||
**Services:**
|
||
- [ ] Servicios implementan lógica de negocio
|
||
- [ ] Métodos CRUD funcionan
|
||
- [ ] Manejo de errores implementado
|
||
- [ ] Validaciones de negocio aplicadas
|
||
|
||
**Controllers:**
|
||
- [ ] Controllers exponen endpoints correctamente
|
||
- [ ] Swagger completo y correcto
|
||
- [ ] DTOs con validaciones
|
||
- [ ] Response types correctos
|
||
|
||
**Swagger:**
|
||
```bash
|
||
# Iniciar backend
|
||
$ npm run dev
|
||
|
||
# Abrir http://localhost:3000/api/docs
|
||
✅ Swagger carga correctamente
|
||
✅ Endpoints documentados: {N}
|
||
✅ DTOs con @ApiProperty: {M}
|
||
```
|
||
|
||
**Tests Unitarios (si aplica):**
|
||
```bash
|
||
$ npm test
|
||
|
||
{Pegar output}
|
||
|
||
✅ Tests: {N} passed, {M} failed
|
||
✅ Coverage: {X}%
|
||
```
|
||
|
||
---
|
||
|
||
### Frontend (si aplica)
|
||
|
||
**Compilación:**
|
||
- [ ] TypeScript compila sin errores
|
||
- [ ] Vite build exitoso
|
||
- [ ] No hay errores de linter críticos
|
||
|
||
```bash
|
||
$ cd apps/frontend/web && npm run build
|
||
|
||
{Pegar output}
|
||
|
||
✅ Build: EXITOSO | ❌ ERROR
|
||
```
|
||
|
||
**Stores (Zustand):**
|
||
- [ ] Store inicializa correctamente
|
||
- [ ] State definido con tipos correctos
|
||
- [ ] Actions funcionan
|
||
- [ ] No hay memory leaks
|
||
|
||
**Validación de Store:**
|
||
```typescript
|
||
import { useProjectStore } from '@/stores/projectStore';
|
||
|
||
✅ Store importa sin errores
|
||
✅ State initial correcto
|
||
✅ Actions implementadas: {N}
|
||
```
|
||
|
||
**Páginas:**
|
||
- [ ] Páginas renderizan sin errores
|
||
- [ ] Routing funciona correctamente
|
||
- [ ] No hay errores en consola
|
||
- [ ] Responsive design validado
|
||
|
||
**Componentes:**
|
||
- [ ] Componentes renderizan correctamente
|
||
- [ ] Props tipadas correctamente
|
||
- [ ] No hay warnings de React
|
||
- [ ] Estilos aplicados correctamente
|
||
|
||
**Integración con API:**
|
||
- [ ] Llamadas a API funcionan
|
||
- [ ] Manejo de errores implementado
|
||
- [ ] Loading states funcionan
|
||
- [ ] Datos se muestran correctamente
|
||
|
||
**Validación de Integración:**
|
||
```bash
|
||
# Backend corriendo en :3000
|
||
# Frontend corriendo en :5173
|
||
|
||
# Test manual:
|
||
1. Abrir http://localhost:5173/admin/projects
|
||
2. Verificar que carga lista de proyectos
|
||
3. Crear nuevo proyecto
|
||
4. Editar proyecto
|
||
5. Eliminar proyecto
|
||
|
||
✅ CRUD completo funciona
|
||
```
|
||
|
||
---
|
||
|
||
### Integración Cross-Stack
|
||
|
||
**Alineación DB ↔ Backend:**
|
||
- [ ] Nombres de tablas coinciden con entities
|
||
- [ ] Columnas DB coinciden con properties de entity
|
||
- [ ] Tipos de datos compatibles
|
||
- [ ] Relaciones consistentes
|
||
|
||
**Validación:**
|
||
```typescript
|
||
// Entity
|
||
@Entity({ schema: 'gamification_system', name: 'user_points' })
|
||
export class ProjectEntity {
|
||
@Column({ type: 'varchar', length: 50 })
|
||
code: string; // ✅ Coincide con DB: code VARCHAR(50)
|
||
}
|
||
```
|
||
|
||
**Alineación Backend ↔ Frontend:**
|
||
- [ ] Tipos TypeScript sincronizados
|
||
- [ ] Endpoints coinciden entre API y cliente
|
||
- [ ] Response types coinciden
|
||
- [ ] ENUMs sincronizados
|
||
|
||
**Validación:**
|
||
```typescript
|
||
// Backend Controller
|
||
@Get()
|
||
@ApiResponse({ type: [ProjectEntity] })
|
||
async findAll(): Promise<ProjectEntity[]> { }
|
||
|
||
// Frontend Service
|
||
async getAll(): Promise<Project[]> { } // ✅ Tipos coinciden
|
||
```
|
||
|
||
**Constantes Sincronizadas:**
|
||
- [ ] Constantes DB en backend actualizadas
|
||
- [ ] ENUMs en frontend sincronizados
|
||
- [ ] API endpoints coinciden
|
||
|
||
```typescript
|
||
// Verificar sincronización
|
||
// apps/backend/src/shared/constants/database.constants.ts
|
||
export const DB_SCHEMAS = {
|
||
PROJECT_MANAGEMENT: 'gamification_system', // ✅
|
||
};
|
||
|
||
// apps/frontend/web/src/shared/constants/api-endpoints.ts
|
||
export const API_ENDPOINTS = {
|
||
PROJECTS: '/api/projects', // ✅ Coincide con backend
|
||
};
|
||
```
|
||
|
||
---
|
||
|
||
## 🧪 PRUEBAS FUNCIONALES
|
||
|
||
### Pruebas de Backend
|
||
|
||
**Test 1: Crear proyecto**
|
||
```bash
|
||
$ curl -X POST http://localhost:3000/api/projects \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"code": "PROJ-2025-001",
|
||
"name": "Fraccionamiento Las Palmas",
|
||
"state": "Jalisco",
|
||
"city": "Guadalajara"
|
||
}'
|
||
|
||
✅ Respuesta: 201 Created
|
||
✅ Objeto creado correctamente
|
||
```
|
||
|
||
**Test 2: Obtener proyectos**
|
||
```bash
|
||
$ curl -X GET http://localhost:3000/api/projects
|
||
|
||
✅ Respuesta: 200 OK
|
||
✅ Array de proyectos retornado
|
||
```
|
||
|
||
**Test 3: Actualizar proyecto**
|
||
```bash
|
||
$ curl -X PUT http://localhost:3000/api/projects/{id} \
|
||
-H "Content-Type: application/json" \
|
||
-d '{"name": "Fraccionamiento Las Palmas II"}'
|
||
|
||
✅ Respuesta: 200 OK
|
||
✅ Objeto actualizado
|
||
```
|
||
|
||
**Test 4: Eliminar proyecto**
|
||
```bash
|
||
$ curl -X DELETE http://localhost:3000/api/projects/{id}
|
||
|
||
✅ Respuesta: 200 OK | 204 No Content
|
||
✅ Objeto eliminado
|
||
```
|
||
|
||
### Pruebas de Frontend
|
||
|
||
**Test Manual:**
|
||
1. ✅ Página carga sin errores
|
||
2. ✅ Lista de proyectos se muestra
|
||
3. ✅ Botón "Nuevo Proyecto" funciona
|
||
4. ✅ Formulario de creación valida correctamente
|
||
5. ✅ Proyecto se crea y aparece en lista
|
||
6. ✅ Edición funciona
|
||
7. ✅ Eliminación funciona con confirmación
|
||
|
||
**Errores de Consola:**
|
||
```
|
||
{Listar errores encontrados o "Ninguno"}
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 MÉTRICAS DE CALIDAD
|
||
|
||
### Cobertura de Tests
|
||
- **Unit tests:** {N} tests, {X}% coverage
|
||
- **Integration tests:** {M} tests
|
||
- **E2E tests:** {P} tests
|
||
|
||
**Objetivo:** >80% coverage ✅ Alcanzado | ⚠️ Por debajo
|
||
|
||
### Complejidad de Código
|
||
- **Complejidad ciclomática promedio:** {valor}
|
||
- **Funciones complejas (>10):** {N}
|
||
|
||
**Objetivo:** <10 ✅ Alcanzado | ⚠️ Revisar
|
||
|
||
### Performance
|
||
- **Tiempo de respuesta API (promedio):** {ms}
|
||
- **Tiempo de carga página (FCP):** {ms}
|
||
|
||
**Objetivo:** API <200ms, FCP <2s ✅ Alcanzado | ⚠️ Optimizar
|
||
|
||
---
|
||
|
||
## 🔒 SEGURIDAD
|
||
|
||
### Validaciones
|
||
- [ ] Validación de inputs (class-validator en DTOs)
|
||
- [ ] Sanitización de datos
|
||
- [ ] Protection contra SQL Injection (TypeORM parametrizado)
|
||
- [ ] Protection contra XSS (React sanitiza por defecto)
|
||
|
||
### Autenticación/Autorización
|
||
- [ ] Endpoints protegidos con guards
|
||
- [ ] RLS policies aplicadas (si aplica)
|
||
- [ ] Roles validados
|
||
|
||
---
|
||
|
||
## ⚠️ PROBLEMAS ENCONTRADOS
|
||
|
||
### Errores Críticos
|
||
{Listar errores críticos encontrados durante validación}
|
||
|
||
**Ninguno** |
|
||
|
||
**Error 1:**
|
||
- **Descripción:** {descripción}
|
||
- **Severidad:** Alta | Media | Baja
|
||
- **Solución aplicada:** {descripción}
|
||
- **Estado:** ✅ Resuelto | ⏳ En progreso
|
||
|
||
### Warnings
|
||
{Listar warnings no críticos}
|
||
|
||
**Ninguno** |
|
||
|
||
**Warning 1:**
|
||
- **Descripción:** {descripción}
|
||
- **Impacto:** {descripción}
|
||
- **Acción:** {ignorar | corregir | mejorar después}
|
||
|
||
---
|
||
|
||
## 📝 DEUDA TÉCNICA IDENTIFICADA
|
||
|
||
### Items de Deuda Técnica
|
||
{Listar items que quedaron pendientes o requieren mejora}
|
||
|
||
**Ninguno** |
|
||
|
||
**Item 1:**
|
||
- **Descripción:** {qué falta o qué se puede mejorar}
|
||
- **Prioridad:** P1 | P2 | P3
|
||
- **Estimación:** {tiempo}
|
||
- **Cuándo abordar:** {este sprint | próximo sprint | backlog}
|
||
|
||
---
|
||
|
||
## ✅ CRITERIOS DE ACEPTACIÓN
|
||
|
||
### Del Plan Original
|
||
{Copiar criterios de aceptación del 02-PLAN.md}
|
||
|
||
- [ ] Criterio 1
|
||
- [ ] Criterio 2
|
||
- [ ] Criterio 3
|
||
|
||
**Estado:** ✅ Todos cumplidos | ⚠️ Pendientes: {lista}
|
||
|
||
---
|
||
|
||
## 🎯 RESULTADO FINAL
|
||
|
||
### Resumen
|
||
{Párrafo resumiendo la validación completa}
|
||
|
||
### Métricas Finales
|
||
- **Tests:** {N} passed / {M} total ({X}% pass rate)
|
||
- **Coverage:** {Y}%
|
||
- **Errores críticos:** {N}
|
||
- **Warnings:** {M}
|
||
- **Deuda técnica:** {P} items ({Alta|Media|Baja})
|
||
|
||
### Estado de Tarea
|
||
- [ ] ✅ **VALIDACIÓN EXITOSA** - Tarea completada satisfactoriamente
|
||
- [ ] ⚠️ **VALIDACIÓN CON OBSERVACIONES** - Funciona pero requiere mejoras
|
||
- [ ] ❌ **VALIDACIÓN FALLIDA** - Requiere correcciones antes de completar
|
||
|
||
### Aprobación
|
||
- [ ] Código funciona correctamente
|
||
- [ ] Tests pasan
|
||
- [ ] Documentación completa
|
||
- [ ] Inventarios actualizados
|
||
- [ ] Sin errores críticos
|
||
- [ ] **APROBADO PARA DOCUMENTACIÓN FINAL**
|
||
|
||
---
|
||
|
||
## 🚀 PRÓXIMOS PASOS
|
||
|
||
**Acción inmediata:**
|
||
- Crear documento de documentación final (05-DOCUMENTACION.md)
|
||
- Actualizar inventarios
|
||
- Actualizar trazas
|
||
|
||
**Seguimiento:**
|
||
- {Lista de acciones de seguimiento si las hay}
|
||
|
||
---
|
||
|
||
**Validado por:** {nombre-agente}
|
||
**Fecha:** {YYYY-MM-DD HH:MM}
|
||
**Versión:** 1.0
|
||
**Estado:** {Aprobado | Aprobado con observaciones | Rechazado}
|