workspace-v1/orchestration/checklists/CHECKLIST-REFACTORIZACION.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

470 lines
12 KiB
Markdown

# CHECKLIST DE REFACTORIZACIÓN
**Versión:** 1.0.0
**Fecha creación:** 2025-11-23
**Proyecto:** GAMILIT - Sistema de Gamificación Educativa
**Estado:** Directiva Obligatoria
---
## 🎯 PROPÓSITO
Este checklist es **OBLIGATORIO** para toda refactorización de código en el proyecto GAMILIT. Su objetivo es prevenir bugs, imports rotos y regresiones.
**Problemas que previene:**
- ❌ Imports rotos que causan caída del frontend (BUG-FRONTEND-001)
- ❌ Rutas hard-coded incorrectas (BUG-FRONTEND-002)
- ❌ Refactorizaciones incompletas
- ❌ Breaking changes no detectados
---
## ✅ CHECKLIST COMPLETO
### FASE 1: PRE-REFACTORIZACIÓN (Planificación)
#### 1.1 Análisis de Dependencias
- [ ] **Identificar archivos a modificar/mover/eliminar**
- Listar TODOS los archivos afectados
- Incluir archivos de código, tests, docs, configs
- [ ] **Identificar dependencias**
```bash
# Para archivos a mover/eliminar:
grep -r "from.*nombre-archivo" apps/
grep -r "import.*nombre-archivo" apps/
```
- Listar TODOS los archivos que importan el código a refactorizar
- Verificar imports relativos vs absolutos
- Buscar dynamic imports (`import()`)
- [ ] **Analizar impacto**
- ¿Cuántos archivos se verán afectados?
- ¿Hay código crítico que depende de esto?
- ¿Afecta a múltiples módulos/capas?
#### 1.2 Documentación del Plan
- [ ] **Crear documento de plan de refactorización**
- Ubicación: `orchestration/agentes/{agente}/refactor-{nombre}-{fecha}/PLAN.md`
- Incluir: objetivo, archivos afectados, estrategia, rollback plan
- [ ] **Estimar esfuerzo completo**
- Tiempo de implementación de cambios
- Tiempo de actualización de referencias
- Tiempo de testing
- Tiempo de documentación
- **NO subestimar** (considerar TODO el trabajo, no solo el cambio principal)
- [ ] **Definir criterios de éxito**
- ¿Cómo validar que refactorización fue exitosa?
- ¿Qué tests deben pasar?
- ¿Qué funcionalidades deben seguir funcionando?
#### 1.3 Preparación del Entorno
- [ ] **Crear rama nueva**
```bash
git checkout -b refactor/nombre-descriptivo
```
- [ ] **Asegurar que código actual funciona**
```bash
npm run build
npm run test
npm run dev # Validar que servidor inicia
```
- ✅ Build exitoso
- ✅ Tests pasando
- ✅ Servidor inicia sin errores
- [ ] **Commit inicial (snapshot)**
```bash
git add .
git commit -m "chore: snapshot before refactor {nombre}"
```
---
### FASE 2: DURANTE REFACTORIZACIÓN (Implementación)
#### 2.1 Implementación de Cambios
- [ ] **Mover/crear archivos nuevos**
- Usar herramientas de refactorización del IDE cuando sea posible
- Copiar primero, eliminar después (mantener versión anterior temporalmente)
- [ ] **Actualizar TODOS los imports**
- Usar búsqueda global para encontrar ALL references
- Actualizar imports en archivos de código
- Actualizar imports en tests
- Actualizar dynamic imports
- Actualizar re-exports (`index.ts`)
- [ ] **Verificar imports con búsqueda global**
```bash
# Verificar que NO queden referencias al archivo antiguo
grep -r "from.*nombre-archivo-antiguo" apps/
grep -r "import.*nombre-archivo-antiguo" apps/
# Debe devolver 0 matches
```
- [ ] **Actualizar configuraciones**
- tsconfig paths (si aplica)
- Jest config (mocks, setup files)
- ESLint ignores
- Webpack/Vite aliases
#### 2.2 Commits Incrementales
- [ ] **Hacer commits pequeños y frecuentes**
```bash
git add .
git commit -m "refactor: move {file} to {new-location}"
git commit -m "refactor: update imports in {module}"
git commit -m "refactor: update tests"
```
- Commits atómicos (un tipo de cambio por commit)
- Mensajes descriptivos
---
### FASE 3: POST-REFACTORIZACIÓN (Validación)
#### 3.1 Validación de Código
- [ ] **Verificar compilación**
```bash
npm run type-check # TypeScript check
npm run build # Build completo
```
- ✅ 0 TypeScript errors
- ✅ Build exitoso
- [ ] **Ejecutar linter**
```bash
npm run lint
```
- ✅ 0 lint errors
- Resolver warnings si son relevantes
- [ ] **Ejecutar tests**
```bash
npm run test # Unit tests
npm run test:e2e # E2E tests (si aplica)
npm run test:coverage # Coverage (si aplica)
```
- ✅ TODOS los tests pasando
- ✅ Sin regresiones en cobertura
#### 3.2 Validación Funcional
- [ ] **Iniciar servidor de desarrollo**
```bash
npm run dev
```
- ✅ Servidor inicia sin errores
- ✅ Sin warnings críticos en console
- [ ] **Validar funcionalidad en browser**
- Abrir aplicación en browser
- Verificar console (NO debe haber errores)
- Navegar páginas afectadas
- Probar funcionalidades relacionadas
- Verificar que todo funciona como antes
- [ ] **Validar hot reload / HMR**
- Hacer cambio menor en archivo refactorizado
- Verificar que hot reload funciona
- Sin errores en console
#### 3.3 Validación de Búsquedas
- [ ] **Verificar NO quedan referencias al código antiguo**
```bash
# Buscar nombre de archivo antiguo
grep -r "nombre-archivo-antiguo" apps/
# Buscar ruta antigua
grep -r "ruta/antigua" apps/
# Debe devolver 0 matches (o solo comentarios/docs)
```
- [ ] **Verificar imports correctos**
```bash
# Buscar nuevo path
grep -r "nueva/ruta" apps/
# Verificar que todos usan nueva ruta
```
#### 3.4 Limpieza
- [ ] **Eliminar archivos antiguos**
```bash
git rm ruta/antigua/archivo-antiguo.ts
```
- Solo después de confirmar que NADA lo usa
- [ ] **Eliminar código comentado (dead code)**
- NO dejar código antiguo comentado "por las dudas"
- Git history mantiene el código si se necesita después
- [ ] **Eliminar imports no usados**
- ESLint debería detectarlos
- Usar herramienta del IDE para organizar imports
---
### FASE 4: DOCUMENTACIÓN
#### 4.1 Actualizar Documentación
- [ ] **Actualizar documentación afectada**
- README.md (si aplica)
- docs/architecture/ (si cambió arquitectura)
- docs/97-adr/ (crear ADR si decisión arquitectónica)
- orchestration/inventarios/ (si cambió inventario)
- [ ] **Documentar cambios en CHANGELOG**
- Tipo de cambio (refactor)
- Qué se movió/cambió
- Impacto en otros desarrolladores
- [ ] **Actualizar comentarios de código**
- Actualizar JSDoc si paths cambiaron
- Actualizar ejemplos en comentarios
#### 4.2 Crear Traza
- [ ] **Crear reporte de refactorización**
- Ubicación: `orchestration/agentes/{agente}/refactor-{nombre}-{fecha}/REPORTE.md`
- Incluir:
- Objetivo de la refactorización
- Archivos modificados
- Validaciones realizadas
- Problemas encontrados y soluciones
- Lecciones aprendidas
---
### FASE 5: CODE REVIEW
#### 5.1 Preparación para PR
- [ ] **Self-review**
- Revisar TODOS los cambios en diff
- Verificar que NO hay cambios no relacionados
- Verificar que NO hay console.logs olvidados
- Verificar formateo consistente
- [ ] **Crear PR con contexto completo**
```markdown
## Tipo de Cambio
- [ ] Refactorización
## Objetivo
{Descripción clara del objetivo de la refactorización}
## Cambios Principales
- Movido {archivo A} → {ubicación B}
- Actualizado {N} imports en {módulos}
- ...
## Archivos Afectados
- {número} archivos modificados
- {número} archivos movidos
- {número} archivos eliminados
## Validaciones Realizadas
- ✅ Build exitoso
- ✅ Tests pasando (X/X)
- ✅ Servidor inicia correctamente
- ✅ Funcionalidad validada en browser
- ✅ 0 imports rotos
## Checklist de Refactorización
- ✅ Pre-refactorización completada
- ✅ Durante refactorización completada
- ✅ Post-refactorización completada
- ✅ Documentación actualizada
```
#### 5.2 Responder a Code Review
- [ ] **Atender comentarios de reviewers**
- Responder TODOS los comentarios
- Implementar cambios solicitados
- Re-validar después de cambios
- [ ] **Re-ejecutar validaciones después de cambios**
- Build, tests, servidor funcionando
- No romper lo que ya funcionaba
---
### FASE 6: DEPLOYMENT
#### 6.1 Pre-merge
- [ ] **Merge/rebase con main/master**
```bash
git checkout main
git pull
git checkout refactor/nombre-descriptivo
git rebase main # o merge, según política del proyecto
```
- [ ] **Resolver conflictos (si los hay)**
- Resolver con cuidado
- Re-ejecutar TODAS las validaciones después de resolver
- [ ] **Validación final**
```bash
npm run build
npm run test
npm run dev
```
- ✅ Todo funciona después de merge/rebase
#### 6.2 Post-merge
- [ ] **Merge a main/master**
- Usar squash merge si muchos commits pequeños
- O mantener commits si son significativos
- [ ] **Validar en CI/CD**
- Esperar que pipeline pase
- Si falla, investigar inmediatamente
- [ ] **Monitorear después del merge**
- Revisar logs de errores
- Monitorear alerts/monitoring
- Estar disponible para hotfixes
---
## 🚨 SIGNALS DE ALERTA
### Cuando DETENER y Re-planificar
- 🚨 **Refactorización toma >2x el tiempo estimado**
→ Pausar, re-evaluar estrategia
- 🚨 **Encontraste >10 archivos no planeados que dependen del código**
→ Pausar, actualizar plan
- 🚨 **Tests empiezan a fallar en módulos no relacionados**
→ Rollback, investigar
- 🚨 **Build roto después de múltiples intentos**
→ Rollback, pedir ayuda
---
## 📊 MÉTRICAS DE ÉXITO
### Refactorización Exitosa
- ✅ 0 imports rotos
- ✅ 0 regresiones funcionales
- ✅ 100% tests pasando
- ✅ Build exitoso en < mismo tiempo que antes
- Código más limpio/mantenible que antes
### Refactorización Fallida (Requiere Mejora)
- Imports rotos encontrados después de merge
- Bugs introducidos por la refactorización
- Tests fallando
- Performance degradada
---
## 🔧 HERRAMIENTAS ÚTILES
### Búsqueda Global
```bash
# Encontrar TODAS las referencias
grep -r "nombre-busqueda" apps/
rg "nombre-busqueda" apps/ # (ripgrep, más rápido)
# Con contexto (3 líneas antes/después)
grep -r -C 3 "nombre-busqueda" apps/
# Solo nombres de archivo
grep -r -l "nombre-busqueda" apps/
# Excluir node_modules, dist, build
grep -r "nombre-busqueda" apps/ --exclude-dir={node_modules,dist,build}
```
### Refactorización en IDE
**VS Code:**
- `F2` Rename symbol (actualiza imports automáticamente)
- `Ctrl+Shift+H` Find and replace in files
- Command Palette "Organize Imports"
**WebStorm:**
- `Shift+F6` Rename
- `Ctrl+Alt+Shift+T` Refactor menu
- `Ctrl+Alt+O` Optimize imports
### Git
```bash
# Ver archivos modificados
git status
# Ver diff detallado
git diff
# Commit parcial (stage por partes)
git add -p
# Revert cambio específico
git checkout -- ruta/archivo.ts
```
---
## 📚 REFERENCIAS
### Documentos Relacionados
- [Directiva de Calidad de Código](DIRECTIVA-CALIDAD-CODIGO.md)
- [Estándares de Nomenclatura](ESTANDARES-NOMENCLATURA.md)
- [Documentación Obligatoria](DIRECTIVA-DOCUMENTACION-OBLIGATORIA.md)
- [Frontend API Architecture](../../docs/frontend/api-architecture.md)
### Ejemplos de Refactorizaciones
- [BUG-FRONTEND-001](../agentes/architecture-analyst/frontend-api-broken-imports-2025-11-23/) - Imports rotos por refactorización incompleta
- [BUG-FRONTEND-002](../agentes/architecture-analyst/frontend-api-routes-404-2025-11-23/) - Rutas hard-coded incorrectas
---
## ✅ RESUMEN: GOLDEN RULES
1. **NUNCA** elimines un archivo sin verificar que NADA lo usa
2. **SIEMPRE** actualiza TODOS los imports (usa búsqueda global)
3. **SIEMPRE** valida que servidor/tests funcionan DESPUÉS del cambio
4. **NUNCA** hagas múltiples refactorizaciones en el mismo PR
5. **SIEMPRE** documenta en CHANGELOG/traza lo que hiciste
6. **SIEMPRE** haz commits pequeños y frecuentes
7. **NUNCA** merges código que no has validado localmente
8. **SIEMPRE** pide code review para refactorizaciones no triviales
---
**Versión:** 1.0.0
**Última actualización:** 2025-11-23
**Estado:** Directiva Obligatoria
**Proyecto:** GAMILIT
**Mantenido por:** Architecture Team