diff --git a/orchestration/_archive/_definitions/_INDEX.yml b/orchestration/_archive/_definitions/_INDEX.yml deleted file mode 100644 index d159134..0000000 --- a/orchestration/_archive/_definitions/_INDEX.yml +++ /dev/null @@ -1,82 +0,0 @@ -# ═══════════════════════════════════════════════════════════════════════════════ -# ÍNDICE DE DEFINICIONES CANÓNICAS - CLINICA-DENTAL -# ═══════════════════════════════════════════════════════════════════════════════ - -version: "1.0.0" -created: "2026-01-18" -updated: "2026-01-18" -maintained_by: "@WS_ORCHESTRATOR" -propagated_from: "erp-clinicas/orchestration/_definitions/" -role: "CONSUMER" # Especialización de erp-clinicas - -# ───────────────────────────────────────────────────────────────────────────────── -# PROTOCOLOS -# ───────────────────────────────────────────────────────────────────────────────── - -protocols: - CCA-PROTOCOL: - alias: "@DEF_CCA" - path: "protocols/CCA-PROTOCOL.md" - estado: "PROPAGADO" - CAPVED-CYCLE: - alias: "@DEF_CAPVED" - path: "protocols/CAPVED-CYCLE.md" - estado: "PROPAGADO" - -validations: - VALIDATION-BACKEND: - alias: "@DEF_VAL_BE" - path: "validations/VALIDATION-BACKEND.md" - estado: "PROPAGADO" - VALIDATION-FRONTEND: - alias: "@DEF_VAL_FE" - path: "validations/VALIDATION-FRONTEND.md" - estado: "PROPAGADO" - VALIDATION-DDL: - alias: "@DEF_VAL_DDL" - path: "validations/VALIDATION-DDL.md" - estado: "PROPAGADO" - -checklists: - CHECKLIST-GOBERNANZA-TAREA: - alias: "@DEF_CHK_GOB" - path: "checklists/CHECKLIST-GOBERNANZA-TAREA.md" - estado: "PROPAGADO" - CHECKLIST-POST-TASK: - alias: "@DEF_CHK_POST" - path: "checklists/CHECKLIST-POST-TASK.md" - estado: "PROPAGADO" - CHECKLIST-PRE-CREATE: - alias: "@DEF_CHK_CREATE" - path: "checklists/CHECKLIST-PRE-CREATE.md" - estado: "PROPAGADO" - CHECKLIST-PRE-MODIFY: - alias: "@DEF_CHK_MODIFY" - path: "checklists/CHECKLIST-PRE-MODIFY.md" - estado: "PROPAGADO" - -statistics: - total_definitions: 9 - propagated: 9 - -# ───────────────────────────────────────────────────────────────────────────────── -# CONFIGURACIÓN DE HERENCIA (SPECIALIZES) -# ───────────────────────────────────────────────────────────────────────────────── - -consumer_config: - role: "CONSUMER" - inherits_from: "erp-clinicas" # Especialización de erp-clinicas - inherits_version: "1.0.0" - tipo_herencia: "SPECIALIZES" - modulos_heredados: - - pacientes (adaptado a odontología) - - citas - - expedientes (adaptado) - modulos_propios: - - odontograma - - ortodoncia - - protesis - propagates_to: [] - sync_strategy: "AUTO" - vertical: "clinica-dental" - nota: "Clínica dental especializada - hereda de erp-clinicas" diff --git a/orchestration/_archive/_definitions/checklists/CHECKLIST-GOBERNANZA-TAREA.md b/orchestration/_archive/_definitions/checklists/CHECKLIST-GOBERNANZA-TAREA.md deleted file mode 100644 index e71dd47..0000000 --- a/orchestration/_archive/_definitions/checklists/CHECKLIST-GOBERNANZA-TAREA.md +++ /dev/null @@ -1,223 +0,0 @@ -# CHECKLIST: GOBERNANZA DE TAREA - -**Versión:** 1.0.0 -**Alias:** @DEF_CHK_GOB -**Fecha:** 2026-01-16 -**Sistema:** SIMCO v4.0.0 -**Prioridad:** P0 - BLOQUEANTE - ---- - -## PROPÓSITO - -Este checklist es **OBLIGATORIO** y **BLOQUEANTE** para toda tarea que se marque como completada. -Debe ejecutarse ANTES de cualquier otra validación post-tarea. - -> **REGLA:** Sin gobernanza documentada, la tarea NO está completada. - ---- - -## SECUENCIA DE EJECUCIÓN - -``` -TAREA FINALIZA EJECUCIÓN - │ - ▼ -┌─────────────────────────────┐ -│ CHECKLIST-GOBERNANZA-TAREA │ ← PRIMERO (este checklist) -│ (BLOQUEANTE) │ -└─────────────┬───────────────┘ - │ - ▼ - ¿Todos los items pasan? - / \ - Sí No - │ │ - ▼ ▼ -CHECKLIST-POST-TASK BLOQUEAR -(validaciones (no continuar - técnicas) hasta resolver) -``` - ---- - -## CHECKLIST (8 Items) - -### 1. Carpeta de Tarea - -```markdown -[ ] Existe carpeta: orchestration/tareas/TASK-{YYYY-MM-DD}-{NNN}/ -``` - -**Si no existe:** -```bash -# Crear carpeta -mkdir -p orchestration/tareas/TASK-$(date +%Y-%m-%d)-00X - -# Copiar templates -cp -r orchestration/tareas/_templates/TASK-TEMPLATE/* orchestration/tareas/TASK-$(date +%Y-%m-%d)-00X/ -``` - -### 2. METADATA.yml - -```markdown -[ ] METADATA.yml existe y tiene campos obligatorios: - [ ] task_id - [ ] identificacion.titulo - [ ] identificacion.tipo - [ ] responsabilidad.agente_responsable - [ ] alcance.nivel - [ ] temporalidad.fecha_inicio - [ ] estado.actual = "completada" - [ ] artefactos.archivos_creados (lista) - [ ] artefactos.archivos_modificados (lista) -``` - -### 3. Fase C - Contexto (OBLIGATORIA) - -```markdown -[ ] 01-CONTEXTO.md existe y documenta: - [ ] Qué se solicitó - [ ] Por qué se necesita - [ ] Proyecto/módulo afectado - [ ] Contexto cargado -``` - -### 4. Fase E - Ejecución (OBLIGATORIA) - -```markdown -[ ] 05-EJECUCION.md existe y documenta: - [ ] Subtareas ejecutadas - [ ] Archivos creados/modificados - [ ] Validaciones ejecutadas - [ ] Problemas encontrados y cómo se resolvieron -``` - -### 5. Fase D - Documentación (OBLIGATORIA) - -```markdown -[ ] 06-DOCUMENTACION.md existe y documenta: - [ ] Resumen de cambios - [ ] Inventarios actualizados - [ ] Propagación evaluada - [ ] Referencias actualizadas -``` - -### 6. Índice de Tareas - -```markdown -[ ] orchestration/tareas/_INDEX.yml actualizado: - [ ] Estadísticas actualizadas - [ ] Tarea en historial_por_fecha - [ ] Tarea en por_proyecto - [ ] Tarea en por_agente - [ ] Tarea en por_tipo -``` - -### 7. Traza de Agente (Recomendado) - -```markdown -[ ] orchestration/agents/trazas/TRAZA-AGENTE-{PERFIL}.md actualizada - O -[ ] Excepción documentada en METADATA.yml -``` - -### 8. Validación Final - -```markdown -[ ] Carpeta de tarea contiene mínimo: - - METADATA.yml (completo) - - 01-CONTEXTO.md (documentado) - - 05-EJECUCION.md (documentado) - - 06-DOCUMENTACION.md (documentado) -``` - ---- - -## DECISIÓN - -```yaml -SI_PASA_TODO: - accion: "Continuar con CHECKLIST-POST-TASK" - nota: "Gobernanza validada" - -SI_FALLA_CUALQUIER_ITEM: - accion: "BLOQUEAR" - mensaje: | - ❌ GOBERNANZA INCOMPLETA - - La tarea NO puede marcarse como completada. - Items faltantes: - - {lista de items faltantes} - - Acciones requeridas: - 1. Completar items faltantes - 2. Re-ejecutar este checklist - 3. Continuar con validaciones técnicas -``` - ---- - -## TEMPLATE RÁPIDO - -Para crear documentación de gobernanza rápidamente: - -```bash -# Variables -TASK_ID="TASK-$(date +%Y-%m-%d)-00X" -TASK_DIR="orchestration/tareas/$TASK_ID" - -# 1. Crear estructura -mkdir -p $TASK_DIR -cp orchestration/tareas/_templates/TASK-TEMPLATE/* $TASK_DIR/ - -# 2. Completar METADATA.yml -# 3. Documentar 01-CONTEXTO.md -# 4. Documentar 05-EJECUCION.md -# 5. Documentar 06-DOCUMENTACION.md -# 6. Actualizar _INDEX.yml -``` - ---- - -## INTEGRACIÓN CON TODOLIST - -Al iniciar cualquier tarea, el TodoList DEBE incluir: - -```yaml -todos: - # ... otras tareas ... - - # SIEMPRE al final: - - content: "Crear documentación de gobernanza (TASK-{ID})" - status: "pending" - activeForm: "Documentando gobernanza" -``` - ---- - -## USO - -```yaml -# En cualquier perfil de agente: -al_completar_trabajo_tecnico: - - Cargar: "@DEF_CHK_GOB" - - Ejecutar: "8 items de gobernanza" - - Si pasa: "Continuar con @DEF_CHK_POST" - - Si falla: "Completar gobernanza primero" -``` - ---- - -## REFERENCIAS - -| Alias | Descripción | -|-------|-------------| -| @DEF_CHK_GOB | Este checklist | -| @DEF_CHK_POST | Checklist post-tarea (validaciones técnicas) | -| @TRIGGER-DOC | Trigger de documentación obligatoria | -| @TAREAS | Directorio de tareas | - ---- - -**Versión:** 1.0.0 | **Sistema:** SIMCO v4.0.0 | **Tipo:** Checklist Bloqueante diff --git a/orchestration/_archive/_definitions/checklists/CHECKLIST-POST-TASK.md b/orchestration/_archive/_definitions/checklists/CHECKLIST-POST-TASK.md deleted file mode 100644 index e1d036a..0000000 --- a/orchestration/_archive/_definitions/checklists/CHECKLIST-POST-TASK.md +++ /dev/null @@ -1,244 +0,0 @@ -# CHECKLIST: POST-TASK - -**Versión:** 1.1.0 -**Alias:** @DEF_CHK_POST -**Fecha:** 2026-01-16 -**Sistema:** SIMCO v4.0.0 - ---- - -## PROPÓSITO - -Verificaciones obligatorias DESPUÉS de completar cualquier tarea, antes de marcarla como terminada. - ---- - -## SECUENCIA OBLIGATORIA - -``` -TAREA FINALIZA EJECUCIÓN - │ - ▼ -┌─────────────────────────────┐ -│ 0. GOBERNANZA │ ← PRIMERO (BLOQUEANTE) -│ (@DEF_CHK_GOB) │ -└─────────────┬───────────────┘ - ¿Pasa? - / \ - No Sí - │ │ - BLOQUEAR ▼ - ┌─────────────────────────────┐ - │ 1-7. VALIDACIONES TÉCNICAS │ - │ (este checklist) │ - └─────────────────────────────┘ -``` - ---- - -## CHECKLIST - -### 0. Gobernanza de Tarea (BLOQUEANTE - EJECUTAR PRIMERO) - -> **OBLIGATORIO:** Ejecutar @DEF_CHK_GOB antes de continuar. - -```markdown -[ ] CHECKLIST-GOBERNANZA-TAREA.md ejecutado y PASADO - - Carpeta de tarea existe - - METADATA.yml completo - - Fases C, E, D documentadas - - _INDEX.yml actualizado - -SI NO PASA: DETENER. Completar gobernanza primero. -``` - ---- - -### 1. Validaciones Técnicas - -#### Backend (si aplica) -```markdown -[ ] npm run build - PASA -[ ] npm run lint - PASA -[ ] npm run test - PASA (si existen tests) -[ ] Servidor inicia sin errores -``` - -#### Frontend (si aplica) -```markdown -[ ] npm run build - PASA -[ ] npm run lint - PASA -[ ] npm run typecheck - PASA -[ ] Aplicación renderiza sin errores -``` - -#### Database (si aplica) -```markdown -[ ] DDL ejecuta sin errores -[ ] Datos de prueba cargan correctamente -[ ] Constraints funcionan como esperado -``` - -### 2. Coherencia Entre Capas (TRIGGER-COHERENCIA-CAPAS) - -```markdown -## DDL ↔ Backend -[ ] Toda tabla DDL tiene entity correspondiente (o excepción documentada) -[ ] Toda entity tiene tabla DDL correspondiente (o es View/Embeddable) -[ ] Campos de entity coinciden exactamente con columnas de tabla -[ ] Tipos TypeScript son compatibles con tipos PostgreSQL -[ ] Todo schema tiene al menos un módulo backend (o está marcado PLANNED) - -## Backend ↔ Frontend (si aplica) -[ ] Todo endpoint consumido tiene implementación en backend -[ ] Si hay nuevo endpoint: está documentado en Swagger -[ ] Si hay nuevo componente: está integrado donde corresponde - -## Verificación de Excepciones -[ ] Tablas M:N sin entity están documentadas en ENTITIES-CATALOG sección "Relaciones" -[ ] View entities (@ViewEntity) están documentadas como tal -[ ] Schemas PLANNED tienen fecha estimada de implementación -``` - -### 3. Actualización de Inventarios (TRIGGER-INVENTARIOS-SINCRONIZADOS) - -```markdown -## Sincronización Obligatoria -[ ] DATABASE_INVENTORY.yml actualizado (si cambió BD) - - Conteo de schemas correcto - - Conteo de tablas correcto - - Nuevos objetos agregados -[ ] BACKEND_INVENTORY.yml actualizado (si cambió BE) - - Conteo de módulos correcto - - Conteo de entities correcto - - Conteo de services correcto -[ ] FRONTEND_INVENTORY.yml actualizado (si cambió FE) - - Conteo de componentes correcto - - Conteo de páginas correcto -[ ] MASTER_INVENTORY.yml actualizado con totales - -## Verificación de Cobertura -[ ] Cobertura de inventarios = 100% -[ ] Timestamp de actualización = fecha de hoy -[ ] sync_status = "SYNCED" -``` - -### 4. Actualización de Trazas - -```markdown -[ ] Traza de tarea actualizada -[ ] Traza de agente actualizada -[ ] PROXIMA-ACCION.md actualizado -[ ] Commits con mensajes descriptivos -``` - -### 5. Documentación - -```markdown -[ ] README actualizado (si cambió significativamente) -[ ] Documentación técnica actualizada (si aplica) -[ ] ADR creado (si fue decisión arquitectural) -[ ] Comentarios en código donde la lógica no es obvia -``` - -### 6. Sistema de Gobernanza - -```markdown -[ ] Carpeta de tarea creada: orchestration/tareas/TASK-{ID}/ -[ ] METADATA.yml completado -[ ] Fases mínimas documentadas (C, E, D) -[ ] _INDEX.yml de tareas actualizado -[ ] Traza de agente actualizada -``` - -### 7. Evaluación de Propagación - -```markdown -[ ] ¿Cambio debe propagarse a otros proyectos? -[ ] Si es erp-core: ¿propagar a verticales? -[ ] Si es shared/catalog: ¿notificar proyectos que lo usan? -[ ] Si es security fix: ¿propagar inmediatamente? -``` - ---- - -## CRITERIOS DE COMPLETITUD - -### Tarea Completada SI: - -```yaml -obligatorio: - - Todas las validaciones técnicas pasan - - Inventarios actualizados - - Trazas actualizadas - - Documentación de gobernanza creada - -recomendado: - - Documentación técnica actualizada - - Tests agregados/actualizados - - Propagación evaluada -``` - -### Tarea NO Completada SI: - -```yaml -bloqueantes: - - Build falla - - Lint falla - - Tests fallan - - Inventarios no actualizados - - Sin documentación de gobernanza -``` - ---- - -## DECISIÓN - -```yaml -SI_PASA_TODO: - accion: "Marcar tarea como COMPLETADA" - documentar: "Resumen en METADATA.yml" - actualizar: "_INDEX.yml con estado COMPLETADO" - -SI_FALLA_VALIDACION: - accion: "MANTENER como EN_PROGRESO" - corregir: "Resolver validaciones fallidas" - reintentar: "Ejecutar checklist de nuevo" - -SI_FALTA_DOCUMENTACION: - accion: "MANTENER como EN_PROGRESO" - completar: "Documentación faltante" - nota: "Tarea no está completa sin documentación" -``` - ---- - -## USO - -```yaml -# En cualquier perfil de agente: -al_completar_tarea: - - Cargar: "@DEF_CHK_POST" - - Ejecutar: "Checklist completo" - - Si pasa: "Marcar tarea como completada" - - Si falla: "Resolver antes de marcar completada" -``` - ---- - -## INTEGRACIÓN CON TRIGGER-DOC - -Este checklist se activa junto con `TRIGGER-DOCUMENTACION-OBLIGATORIA.md` al intentar completar una tarea. - -```yaml -secuencia: - 1: "Agente intenta marcar tarea como completada" - 2: "TRIGGER-DOC se activa" - 3: "Se ejecuta CHECKLIST-POST-TASK" - 4: "Si pasa: tarea se marca completada" - 5: "Si falla: tarea permanece en progreso" -``` - ---- - -**Versión:** 1.0.0 | **Sistema:** SIMCO v4.0.0 | **Tipo:** Checklist diff --git a/orchestration/_archive/_definitions/checklists/CHECKLIST-PRE-CREATE.md b/orchestration/_archive/_definitions/checklists/CHECKLIST-PRE-CREATE.md deleted file mode 100644 index 7dac19c..0000000 --- a/orchestration/_archive/_definitions/checklists/CHECKLIST-PRE-CREATE.md +++ /dev/null @@ -1,107 +0,0 @@ -# CHECKLIST: PRE-CREATE - -**Versión:** 1.0.0 -**Alias:** @DEF_CHK_CREATE -**Fecha:** 2026-01-16 -**Sistema:** SIMCO v4.0.0 - ---- - -## PROPÓSITO - -Verificaciones obligatorias ANTES de crear cualquier objeto nuevo (tabla, entity, service, componente, etc.). - ---- - -## CHECKLIST - -### 1. Verificación Anti-Duplicación - -```markdown -[ ] Buscar en catálogo compartido (shared/catalog/CATALOG-INDEX.yml) -[ ] Buscar en inventario del proyecto (orchestration/inventarios/) -[ ] Buscar archivos similares con nombre parecido -[ ] Buscar funcionalidad similar en módulos existentes -[ ] Confirmar que NO existe funcionalidad equivalente -``` - -### 2. Verificación de Dependencias - -```markdown -[ ] Identificar de qué depende el nuevo objeto -[ ] Verificar que las dependencias existen -[ ] Si depende de DDL: tabla existe en base de datos -[ ] Si depende de entity: entity existe en backend -[ ] Si depende de endpoint: endpoint existe y funciona -``` - -### 3. Verificación de Ubicación - -```markdown -[ ] Identificar módulo/carpeta correcta según estándares -[ ] Verificar que la ruta sigue convenciones del proyecto -[ ] Confirmar que no hay conflicto de nombres -[ ] Verificar permisos de escritura en la ubicación -``` - -### 4. Verificación de Nomenclatura - -```markdown -[ ] Nombre sigue convenciones del proyecto -[ ] Nombre es descriptivo y no ambiguo -[ ] Prefijos/sufijos correctos según tipo de archivo -[ ] Formato de archivo correcto (PascalCase, kebab-case, etc.) -``` - -### 5. Verificación de Coherencia - -```markdown -[ ] Nuevo objeto es coherente con arquitectura existente -[ ] No introduce acoplamiento innecesario -[ ] Sigue patrones establecidos del proyecto -[ ] No duplica responsabilidades de otros objetos -``` - ---- - -## DECISIÓN - -```yaml -SI_PASA_TODO: - accion: "Proceder con creación" - siguiente: "Ejecutar SIMCO-CREAR.md" - -SI_FALLA_DUPLICACION: - accion: "DETENER - Evaluar uso del existente" - opciones: - - "Usar objeto existente" - - "Extender objeto existente" - - "Justificar creación de nuevo (documentar razón)" - -SI_FALLA_DEPENDENCIA: - accion: "DETENER - Resolver dependencia primero" - opciones: - - "Delegar creación de dependencia" - - "Crear dependencia primero" - - "Replanificar orden de tareas" - -SI_FALLA_NOMENCLATURA: - accion: "Corregir nombre antes de crear" - consultar: "@SIMCO/SIMCO-NOMENCLATURA.md" -``` - ---- - -## USO - -```yaml -# En perfil de agente: -antes_de_crear: - - Cargar: "@DEF_CHK_CREATE" - - Ejecutar: "Checklist completo" - - Documentar: "Resultado en traza" -``` - ---- - -**Versión:** 1.0.0 | **Sistema:** SIMCO v4.0.0 | **Tipo:** Checklist diff --git a/orchestration/_archive/_definitions/checklists/CHECKLIST-PRE-MODIFY.md b/orchestration/_archive/_definitions/checklists/CHECKLIST-PRE-MODIFY.md deleted file mode 100644 index edc8d54..0000000 --- a/orchestration/_archive/_definitions/checklists/CHECKLIST-PRE-MODIFY.md +++ /dev/null @@ -1,149 +0,0 @@ -# CHECKLIST: PRE-MODIFY - -**Versión:** 1.0.0 -**Alias:** @DEF_CHK_MODIFY -**Fecha:** 2026-01-16 -**Sistema:** SIMCO v4.0.0 - ---- - -## PROPÓSITO - -Verificaciones obligatorias ANTES de modificar cualquier archivo existente. - ---- - -## CHECKLIST - -### 1. Análisis de Dependientes - -```markdown -[ ] Identificar archivos que IMPORTAN el archivo a modificar -[ ] Listar todos los dependientes encontrados -[ ] Evaluar impacto del cambio en cada dependiente -[ ] Clasificar cambio como: aditivo | modificación | breaking -``` - -### 2. Análisis de Dependencias - -```markdown -[ ] Identificar archivos que el archivo IMPORTA -[ ] Verificar que las dependencias siguen siendo válidas post-cambio -[ ] Identificar si el cambio requiere actualizar dependencias -``` - -### 3. Evaluación de Impacto - -```markdown -[ ] Determinar alcance: local | módulo | proyecto | workspace -[ ] Identificar capas afectadas: DDL | BE | FE -[ ] Evaluar si cambio requiere migración de datos -[ ] Evaluar si cambio rompe compatibilidad hacia atrás -``` - -### 4. Plan de Actualización - -```markdown -[ ] Si hay dependientes afectados: incluir en plan de subtareas -[ ] Ordenar actualizaciones por dependencia (de más interno a más externo) -[ ] Identificar tests que deben actualizarse -[ ] Identificar documentación que debe actualizarse -``` - -### 5. Verificación de Seguridad - -```markdown -[ ] Cambio no introduce vulnerabilidades de seguridad -[ ] Cambio no expone datos sensibles -[ ] Cambio mantiene validaciones existentes -[ ] Si es API: cambio no rompe contratos existentes -``` - -### 6. Estrategia de Rollback - -```markdown -[ ] Identificar cómo revertir el cambio si falla -[ ] Confirmar que existe backup o commit previo -[ ] Documentar pasos de rollback si son complejos -``` - ---- - -## CLASIFICACIÓN DE CAMBIOS - -### Cambio Aditivo (BAJO RIESGO) -```yaml -caracteristicas: - - Agregar campo/método nuevo - - Agregar endpoint nuevo - - No modifica comportamiento existente -acciones: - - Actualizar dependientes que usarán lo nuevo - - Validación estándar -``` - -### Cambio de Modificación (MEDIO RIESGO) -```yaml -caracteristicas: - - Cambiar implementación interna - - Cambiar tipos de datos - - Renombrar elementos -acciones: - - Actualizar TODOS los dependientes - - Validación exhaustiva - - Pruebas de regresión -``` - -### Cambio Breaking (ALTO RIESGO) -```yaml -caracteristicas: - - Eliminar campo/método - - Cambiar firma de función/endpoint - - Cambiar comportamiento de API -acciones: - - DETENER y evaluar con Tech-Leader - - Plan de migración obligatorio - - Comunicar a equipos afectados -``` - ---- - -## DECISIÓN - -```yaml -SI_PASA_TODO: - accion: "Proceder con modificación" - siguiente: "Ejecutar SIMCO-MODIFICAR.md" - incluir: "Actualización de dependientes en plan" - -SI_CAMBIO_BREAKING: - accion: "ESCALAR a Tech-Leader" - documentar: - - Razón del cambio breaking - - Alternativas evaluadas - - Plan de migración propuesto - -SI_IMPACTO_ALTO: - accion: "Solicitar revisión antes de proceder" - documentar: - - Alcance del impacto - - Dependientes afectados - - Plan de actualización -``` - ---- - -## USO - -```yaml -# En perfil de agente: -antes_de_modificar: - - Cargar: "@DEF_CHK_MODIFY" - - Ejecutar: "Checklist completo" - - Documentar: "Resultado en traza" - - Si breaking: "Escalar antes de continuar" -``` - ---- - -**Versión:** 1.0.0 | **Sistema:** SIMCO v4.0.0 | **Tipo:** Checklist diff --git a/orchestration/_archive/_definitions/protocols/CAPVED-CYCLE.md b/orchestration/_archive/_definitions/protocols/CAPVED-CYCLE.md deleted file mode 100644 index 9f9a1cb..0000000 --- a/orchestration/_archive/_definitions/protocols/CAPVED-CYCLE.md +++ /dev/null @@ -1,347 +0,0 @@ ---- -tipo: especificacion-tecnica -nivel: 2-tecnico -ssot: /orchestration/directivas/principios/PRINCIPIO-CAPVED.md -audiencia: agentes IA, sistemas automaticos -proposito: Especificacion tecnica del protocolo CAPVED -actualizado: 2026-01-16 ---- - -# PROTOCOLO: CAPVED-CYCLE - -**Versión:** 1.0.0 -**Alias:** @DEF_CAPVED -**Fecha:** 2026-01-16 -**Sistema:** SIMCO v4.0.0 -**SSOT:** [PRINCIPIO-CAPVED.md](/orchestration/directivas/principios/PRINCIPIO-CAPVED.md) - ---- - -## RESUMEN - -CAPVED es el ciclo de vida obligatorio para toda tarea en el workspace. Define 6 fases secuenciales que aseguran calidad, trazabilidad y documentación completa. - -``` -C → A → P → V → E → D -│ │ │ │ │ │ -│ │ │ │ │ └─ DOCUMENTACIÓN (Registrar, trazar, propagar) -│ │ │ │ └───── EJECUCIÓN (Implementar cambios) -│ │ │ └───────── VALIDACIÓN (Gate pre-ejecución) -│ │ └───────────── PLANEACIÓN (Desglosar subtareas) -│ └───────────────── ANÁLISIS (Mapear impacto) -└───────────────────── CONTEXTO (Clasificar y vincular) -``` - ---- - -## FASES DEL CICLO - -### FASE C - CONTEXTO - -**Objetivo:** Clasificar tarea y vincular con proyecto/workspace. - -```yaml -actividades: - - Identificar tipo de tarea (feature/fix/refactor/analysis) - - Identificar proyecto(s) involucrado(s) - - Identificar nivel (workspace/proyecto/módulo) - - Cargar contexto requerido según perfil - - Vincular con épica/user story si aplica - -salidas: - - Tipo de tarea identificado - - Proyecto(s) identificado(s) - - Contexto mínimo viable cargado - - Vinculación establecida - -criterios_completitud: - - Proyecto claramente identificado - - Tipo de tarea determinado - - Contexto base cargado -``` - -### FASE A - ANÁLISIS - -**Objetivo:** Mapear impacto, dependencias y riesgos. - -```yaml -actividades: - - Ejecutar TRIGGER-ANTI-DUPLICACION si es creación - - Ejecutar TRIGGER-ANALISIS-DEPENDENCIAS si es modificación - - Identificar archivos afectados - - Mapear dependientes (quién usa lo que modifico) - - Mapear dependencias (qué usa lo que modifico) - - Evaluar riesgos y complejidad - -salidas: - - Mapa de impacto - - Lista de dependientes - - Lista de dependencias - - Evaluación de riesgos - - Complejidad estimada - -criterios_completitud: - - Impacto mapeado - - Dependencias identificadas - - Riesgos evaluados -``` - -### FASE P - PLANEACIÓN - -**Objetivo:** Desglosar en subtareas por dominio. - -```yaml -actividades: - - Crear lista de subtareas específicas - - Ordenar por dependencia (DDL → BE → FE) - - Identificar subtareas paralelizables - - Asignar perfil responsable por subtarea - - Definir criterios de aceptación por subtarea - -salidas: - - Lista de subtareas (ST-001, ST-002, ...) - - Orden de ejecución - - Asignación de perfiles - - Criterios de aceptación - -criterios_completitud: - - Subtareas definidas - - Orden establecido - - Criterios claros -``` - -### FASE V - VALIDACIÓN (Gate) - -**Objetivo:** Verificar antes de ejecutar. - -```yaml -actividades: - - Verificar que plan cubre todo el impacto - - Verificar que no hay scope creep - - Verificar que dependencias están resueltas - - Verificar que hay capacidad de rollback - - Confirmar alineación con estándares - -salidas: - - Checklist de validación completado - - Decisión GO/NO-GO - -criterios_completitud: - - Todas las verificaciones pasadas - - Decisión GO documentada - -decision: - GO: "Continuar a Fase E" - NO-GO: "Regresar a Fase A o P según hallazgo" -``` - -### FASE E - EJECUCIÓN - -**Objetivo:** Implementar cambios según plan. - -```yaml -actividades: - - Ejecutar subtareas en orden - - Validar cada subtarea (build/lint/test) - - Crear commits atómicos por subtarea - - Documentar problemas encontrados - - Escalar si hay bloqueos - -salidas: - - Código implementado - - Commits realizados - - Validaciones pasadas - - Problemas documentados - -criterios_completitud: - - Todas las subtareas completadas - - Build pasa - - Lint pasa - - Tests pasan (si existen) -``` - -### FASE D - DOCUMENTACIÓN - -**Objetivo:** Registrar, trazar y propagar. - -> **IMPORTANTE:** Esta fase tiene dos sub-fases en orden estricto: -> 1. **D1 - Gobernanza** (BLOQUEANTE) -> 2. **D2 - Técnica** (después de gobernanza) - -```yaml -actividades: - # D1 - GOBERNANZA (PRIMERO - BLOQUEANTE) - d1_gobernanza: - - Crear carpeta de tarea: orchestration/tareas/TASK-{ID}/ - - Completar METADATA.yml - - Documentar 01-CONTEXTO.md (qué y por qué) - - Documentar 05-EJECUCION.md (cómo y qué problemas) - - Documentar 06-DOCUMENTACION.md (resumen y referencias) - - Actualizar orchestration/tareas/_INDEX.yml - - Actualizar traza de agente (opcional pero recomendado) - - # D2 - TÉCNICA (después de gobernanza) - d2_tecnica: - - Actualizar inventarios afectados - - Evaluar propagación (TRIGGER-PROPAGACION-AUTOMATICA) - - Crear/actualizar documentación técnica si aplica - -salidas: - # Gobernanza - - Carpeta de tarea con documentación completa - - _INDEX.yml actualizado - # Técnica - - Inventarios actualizados - - Propagación evaluada/ejecutada - -criterios_completitud: - # Gobernanza (BLOQUEANTE) - - Carpeta TASK-{ID}/ existe - - METADATA.yml completo - - Fases C, E, D documentadas - - _INDEX.yml actualizado - # Técnica - - Inventarios al día - - Propagación evaluada - -validacion: - checklist: "@DEF_CHK_GOB (gobernanza) + @DEF_CHK_POST (técnica)" - orden: "Gobernanza PRIMERO, luego técnica" -``` - ---- - -## MODOS DE EJECUCIÓN - -### MODE-FULL (Por defecto) - -```yaml -fases: [C, A, P, V, E, D] -uso: "Features, bug fixes, refactorizaciones, cambios BD" -alias: "@FULL" -``` - -### MODE-QUICK - -```yaml -fases: [E, D] -uso: "Typos, fixes menores, updates de deps, config simple" -alias: "@QUICK" -condicion: "Cambio trivial sin riesgo de impacto" -``` - -### MODE-ANALYSIS - -```yaml -fases: [C, A, P] -uso: "Investigación, auditoría, exploración, propuestas" -alias: "@ANALYSIS" -nota: "No modifica código" -``` - -### MODE-PROPAGATION - -```yaml -fases: [C, A, P, E, V, D] # Por cada proyecto destino -uso: "Propagar cambio existente a proyectos relacionados" -alias: "@PROPAGATE" -``` - ---- - -## INTEGRACIÓN CON TRIGGERS - -```yaml -triggers_por_fase: - A: - - TRIGGER-ANTI-DUPLICACION (si creación) - - TRIGGER-ANALISIS-DEPENDENCIAS (si modificación) - V: - - TRIGGER-DUPLICADOS (si se detectan) - D: - - TRIGGER-PROPAGACION-AUTOMATICA - - TRIGGER-DOCUMENTACION-OBLIGATORIA -``` - ---- - -## INTEGRACIÓN CON GOBERNANZA - -> **OBLIGATORIO:** Toda tarea que complete el ciclo CAPVED DEBE crear documentación de gobernanza. -> **BLOQUEANTE:** Sin gobernanza, la tarea NO está completada. - -```yaml -gobernanza: - checklist: "@DEF_CHK_GOB" - - pasos: - 1_carpeta_tarea: - accion: "Crear orchestration/tareas/TASK-{ID}/" - bloqueante: true - - 2_metadata: - accion: "Completar METADATA.yml con todos los campos obligatorios" - bloqueante: true - - 3_fases_minimas: - accion: "Documentar 01-CONTEXTO.md, 05-EJECUCION.md, 06-DOCUMENTACION.md" - bloqueante: true - - 4_actualizar_indices: - accion: "Actualizar orchestration/tareas/_INDEX.yml" - bloqueante: true - - 5_traza_agente: - accion: "Actualizar traza del agente ejecutor" - bloqueante: false - nota: "Recomendado pero no bloquea" - - si_falta_gobernanza: - mensaje: "❌ TAREA NO COMPLETADA - Falta documentación de gobernanza" - accion: "BLOQUEAR hasta completar" - referencia: "@DEF_CHK_GOB" - - recordatorio_todolist: | - Al iniciar cualquier tarea, el TodoList DEBE incluir como último item: - - content: "Crear documentación de gobernanza (TASK-{ID})" - status: "pending" - activeForm: "Documentando gobernanza" -``` - ---- - -## VALIDACIONES POR DOMINIO - -### Backend (NestJS) -```bash -npm run build # DEBE pasar -npm run lint # DEBE pasar -npm run test # Si existen, DEBEN pasar -``` - -### Frontend (React) -```bash -npm run build # DEBE pasar -npm run lint # DEBE pasar -npm run typecheck # DEBE pasar -``` - -### Database (PostgreSQL) -```bash -./scripts/recreate-database.sh # DEBE ejecutar sin errores -``` - ---- - -## REFERENCIAS - -| Alias | Descripción | -|-------|-------------| -| @DEF_CAPVED | Este protocolo | -| @PRINCIPIOS/PRINCIPIO-CAPVED.md | Principio base | -| @SIMCO/SIMCO-TAREA.md | Punto de entrada | -| @TRIGGER-DOC | Documentación obligatoria | - ---- - -**Versión:** 1.0.0 | **Sistema:** SIMCO v4.0.0 | **Tipo:** Protocolo Base diff --git a/orchestration/_archive/_definitions/protocols/CCA-PROTOCOL.md b/orchestration/_archive/_definitions/protocols/CCA-PROTOCOL.md deleted file mode 100644 index 3f35e63..0000000 --- a/orchestration/_archive/_definitions/protocols/CCA-PROTOCOL.md +++ /dev/null @@ -1,245 +0,0 @@ -# Protocolo CCA - Carga de Contexto Automática -## Definición Canónica (Fuente Única de Verdad) - -**Versión:** 1.0.0 -**Fecha:** 2026-01-16 -**Alias:** @DEF_CCA -**Tipo:** Definición Canónica - ---- - -## PROPÓSITO - -Este documento es la **ÚNICA** fuente de verdad para el Protocolo CCA. -Todos los perfiles de agentes deben **REFERENCIAR** este archivo, no copiar su contenido. - ---- - -## USO EN PERFILES - -```markdown -## PROTOCOLO CCA -> Definición: @DEF_CCA -> Variante: {dominio} - -### Extensiones Específicas -[Solo contenido específico del dominio] -``` - ---- - -## PROTOCOLO BASE - -> **ANTES de cualquier acción, ejecutar Carga de Contexto Automática** - -```yaml -# Al recibir: "Serás {PERFIL}-Agent en {PROYECTO} para {TAREA}" - -# ═══════════════════════════════════════════════════════════════ -# PASO 0: IDENTIFICAR NIVEL (OBLIGATORIO PRIMERO) -# ═══════════════════════════════════════════════════════════════ -PASO_0_IDENTIFICAR_NIVEL: - leer: "orchestration/directivas/simco/SIMCO-NIVELES.md" - determinar: - working_directory: "{extraer del prompt}" - nivel: "{NIVEL_0|1|2A|2B|2B.1|2B.2|3}" - orchestration_path: "{calcular según nivel}" - propagate_to: ["{niveles superiores si aplica}"] - registrar: - nivel_actual: "{nivel identificado}" - ruta_inventario: "{orchestration_path}/inventarios/" - ruta_traza: "{orchestration_path}/trazas/" - -# ═══════════════════════════════════════════════════════════════ -# PASO 1: IDENTIFICAR CONTEXTO -# ═══════════════════════════════════════════════════════════════ -PASO_1_IDENTIFICAR: - perfil: "{PERFIL}" # Nombre del perfil activo - proyecto: "{PROYECTO}" # Extraer del prompt - tarea: "{TAREA}" # Extraer del prompt - operacion: "CREAR | MODIFICAR | VALIDAR | DOCUMENTAR | BUSCAR" - dominio: "{DOMINIO}" # BACKEND | FRONTEND | DDL | DEVOPS | ML | etc. - -# ═══════════════════════════════════════════════════════════════ -# PASO 2: CARGAR CONTEXTO CORE (SIEMPRE) -# ═══════════════════════════════════════════════════════════════ -PASO_2_CARGAR_CORE: - leer_obligatorio: - # Catálogo primero (evitar duplicados) - - shared/catalog/CATALOG-INDEX.yml - - # Principios fundamentales - - orchestration/directivas/principios/PRINCIPIO-CAPVED.md - - orchestration/directivas/principios/PRINCIPIO-DOC-PRIMERO.md - - orchestration/directivas/principios/PRINCIPIO-ANTI-DUPLICACION.md - - orchestration/directivas/principios/PRINCIPIO-VALIDACION-OBLIGATORIA.md - - orchestration/directivas/principios/PRINCIPIO-ECONOMIA-TOKENS.md - - # Índices y referencias - - orchestration/directivas/simco/_INDEX.md - - orchestration/directivas/simco/SIMCO-TAREA.md - - orchestration/referencias/ALIASES.yml - -# ═══════════════════════════════════════════════════════════════ -# PASO 3: CARGAR CONTEXTO DEL PROYECTO -# ═══════════════════════════════════════════════════════════════ -PASO_3_CARGAR_PROYECTO: - leer_obligatorio: - - projects/{PROYECTO}/orchestration/00-guidelines/CONTEXTO-PROYECTO.md - - projects/{PROYECTO}/orchestration/PROXIMA-ACCION.md - - leer_segun_dominio: - # Ver sección VARIANTES POR DOMINIO - -# ═══════════════════════════════════════════════════════════════ -# PASO 4: CARGAR DIRECTIVAS DE OPERACIÓN -# ═══════════════════════════════════════════════════════════════ -PASO_4_CARGAR_OPERACION: - verificar_catalogo_primero: - - "grep -i '{funcionalidad}' @CATALOG_INDEX" - - si_existe: "Seguir @REUTILIZAR en lugar de crear" - - segun_operacion: - crear: ["SIMCO-CREAR.md", "SIMCO-{DOMINIO}.md"] - modificar: ["SIMCO-MODIFICAR.md", "SIMCO-{DOMINIO}.md"] - validar: ["SIMCO-VALIDAR.md"] - documentar: ["SIMCO-DOCUMENTAR.md"] - buscar: ["SIMCO-BUSCAR.md"] - -# ═══════════════════════════════════════════════════════════════ -# PASO 5: CARGAR CONTEXTO ESPECÍFICO DE TAREA -# ═══════════════════════════════════════════════════════════════ -PASO_5_CARGAR_TAREA: - - "Documentación relevante en docs/" - - "Código existente similar (patrones)" - - "Archivos relacionados con la tarea" - - "Identificar dependencias" - -# ═══════════════════════════════════════════════════════════════ -# PASO 6: VERIFICAR DEPENDENCIAS -# ═══════════════════════════════════════════════════════════════ -PASO_6_VERIFICAR_DEPENDENCIAS: - si_dependencia_no_existe: - accion: "DELEGAR al agente correspondiente" - no_continuar_hasta: "Dependencia resuelta" - - dependencias_por_dominio: - backend: - requiere: "Tablas DDL existen" - delegar_a: "@PERFIL_DATABASE" - frontend: - requiere: "Endpoints API existen" - delegar_a: "@PERFIL_BACKEND" - devops: - requiere: "Código funcional existe" - delegar_a: "@PERFIL_BACKEND o @PERFIL_FRONTEND" - -# ═══════════════════════════════════════════════════════════════ -# RESULTADO -# ═══════════════════════════════════════════════════════════════ -RESULTADO: "READY_TO_EXECUTE - Contexto completo cargado" -``` - ---- - -## VARIANTES POR DOMINIO - -### #backend -```yaml -PASO_3_CARGAR_PROYECTO: - leer_segun_dominio: - - projects/{PROYECTO}/orchestration/inventarios/BACKEND_INVENTORY.yml - - projects/{PROYECTO}/orchestration/inventarios/DATABASE_INVENTORY.yml - -PASO_4_CARGAR_OPERACION: - segun_tarea: - crear_entity: [SIMCO-CREAR.md, SIMCO-BACKEND.md] - crear_service: [SIMCO-CREAR.md, SIMCO-BACKEND.md] - crear_controller: [SIMCO-CREAR.md, SIMCO-BACKEND.md] - crear_dto: [SIMCO-CREAR.md, SIMCO-BACKEND.md] -``` - -### #frontend -```yaml -PASO_3_CARGAR_PROYECTO: - leer_segun_dominio: - - projects/{PROYECTO}/orchestration/inventarios/FRONTEND_INVENTORY.yml - -PASO_4_CARGAR_OPERACION: - segun_tarea: - crear_componente: [SIMCO-CREAR.md, SIMCO-FRONTEND.md] - crear_hook: [SIMCO-CREAR.md, SIMCO-FRONTEND.md] - crear_page: [SIMCO-CREAR.md, SIMCO-FRONTEND.md] -``` - -### #ddl -```yaml -PASO_3_CARGAR_PROYECTO: - leer_segun_dominio: - - projects/{PROYECTO}/orchestration/inventarios/DATABASE_INVENTORY.yml - - projects/{PROYECTO}/ddl/ # Esquemas existentes - -PASO_4_CARGAR_OPERACION: - segun_tarea: - crear_tabla: [SIMCO-CREAR.md, SIMCO-DDL.md] - crear_funcion: [SIMCO-CREAR.md, SIMCO-DDL.md] - crear_trigger: [SIMCO-CREAR.md, SIMCO-DDL.md] - crear_rls: [SIMCO-CREAR.md, SIMCO-DDL.md] -``` - -### #devops -```yaml -PASO_3_CARGAR_PROYECTO: - leer_segun_dominio: - - projects/{PROYECTO}/docker-compose.yml - - projects/{PROYECTO}/.env.example - -PASO_4_CARGAR_OPERACION: - segun_tarea: - crear_dockerfile: [SIMCO-CREAR.md, SIMCO-DEVOPS.md] - crear_pipeline: [SIMCO-CREAR.md, SIMCO-DEVOPS.md] -``` - -### #ml -```yaml -PASO_3_CARGAR_PROYECTO: - leer_segun_dominio: - - projects/{PROYECTO}/orchestration/inventarios/ML_INVENTORY.yml - - projects/{PROYECTO}/models/ - -PASO_4_CARGAR_OPERACION: - segun_tarea: - crear_modelo: [SIMCO-CREAR.md, SIMCO-ML.md] - crear_pipeline_ml: [SIMCO-CREAR.md, SIMCO-ML.md] -``` - ---- - -## VERSIÓN LIGERA (SUBAGENTES) - -Para subagentes con tareas específicas, usar versión reducida: - -```yaml -# CCA Ligero - Solo para subagentes -CCA_LIGHT: - PASO_1: "Identificar perfil, proyecto, tarea" - PASO_2: "Cargar ALIASES.yml" - PASO_3: "Cargar inventario del dominio" - PASO_4: "Cargar SIMCO de operación" - RESULTADO: "READY_TO_EXECUTE" -``` - -Ver también: @DEF_CCA_LIGHT - ---- - -## REFERENCIAS - -- **Perfiles que usan este protocolo:** Todos los perfiles en agents/perfiles/ -- **Directiva relacionada:** SIMCO-INICIALIZACION.md -- **Versión ligera:** @DEF_CCA_LIGHT - ---- - -**Última actualización:** 2026-01-16 -**Mantenido por:** @WS_ORCHESTRATOR diff --git a/orchestration/_archive/_definitions/validations/VALIDATION-BACKEND.md b/orchestration/_archive/_definitions/validations/VALIDATION-BACKEND.md deleted file mode 100644 index 8c15c75..0000000 --- a/orchestration/_archive/_definitions/validations/VALIDATION-BACKEND.md +++ /dev/null @@ -1,81 +0,0 @@ -# Validación Backend - NestJS/TypeScript -## Definición Canónica - -**Alias:** @DEF_VAL_BE -**Dominio:** Backend NestJS/TypeScript - ---- - -## COMANDOS OBLIGATORIOS - -```bash -# ANTES de marcar tarea como completada: -npm run build # DEBE pasar sin errores -npm run lint # DEBE pasar sin errores -npm run test # Si existen tests, DEBEN pasar -``` - -## CRITERIOS DE ACEPTACIÓN - -```yaml -build: - resultado: "Compila sin errores" - archivos_generados: "dist/" - sin_warnings_criticos: true - -lint: - resultado: "0 errores de ESLint" - warnings_permitidos: "Solo menores" - reglas_obligatorias: - - "@typescript-eslint/no-explicit-any" - - "@typescript-eslint/no-unused-vars" - -test: - resultado: "100% tests pasan" - coverage_minimo: "70% (si configurado)" - nuevos_tests: "Crear para código nuevo" -``` - -## VALIDACIONES ADICIONALES - -```yaml -entities: - - "Alineadas con DDL (nombres, tipos)" - - "Relaciones correctamente definidas" - - "Decoradores TypeORM correctos" - -services: - - "Inyección de dependencias correcta" - - "Manejo de errores implementado" - - "Transacciones donde aplique" - -controllers: - - "Decoradores Swagger completos" - - "Validación de DTOs" - - "Guards aplicados" - -dtos: - - "class-validator decoradores" - - "Tipos correctos" - - "Documentación Swagger" -``` - -## ERRORES COMUNES - -```yaml -- error: "Cannot find module" - causa: "Import incorrecto o dependencia faltante" - solucion: "Verificar rutas y npm install" - -- error: "Type X is not assignable to type Y" - causa: "Tipos incompatibles" - solucion: "Alinear tipos con DDL/interfaces" - -- error: "Circular dependency" - causa: "Módulos se importan mutuamente" - solucion: "Extraer a módulo compartido o forwardRef" -``` - ---- - -**Referencia:** @PERFIL_BACKEND, @SIMCO_BACKEND diff --git a/orchestration/_archive/_definitions/validations/VALIDATION-DDL.md b/orchestration/_archive/_definitions/validations/VALIDATION-DDL.md deleted file mode 100644 index 4a08f80..0000000 --- a/orchestration/_archive/_definitions/validations/VALIDATION-DDL.md +++ /dev/null @@ -1,89 +0,0 @@ -# Validación DDL - PostgreSQL -## Definición Canónica - -**Alias:** @DEF_VAL_DDL -**Dominio:** Database DDL PostgreSQL - ---- - -## COMANDOS OBLIGATORIOS - -```bash -# ANTES de marcar tarea como completada: - -# 1. Validar sintaxis SQL -psql -h localhost -U postgres -d {DB} -f {archivo}.sql --set ON_ERROR_STOP=1 - -# 2. Verificar que no hay errores -echo $? # Debe ser 0 - -# 3. Si existe script de recreación: -./scripts/recreate-database.sh # DEBE ejecutar sin errores -``` - -## CRITERIOS DE ACEPTACIÓN - -```yaml -sintaxis: - resultado: "SQL ejecuta sin errores" - encoding: "UTF-8" - schema_correcto: true - -convenciones: - tablas: "snake_case, plural (users, products)" - columnas: "snake_case (created_at, user_id)" - constraints: "{tabla}_{columna}_{tipo} (users_email_unique)" - indices: "idx_{tabla}_{columnas}" - foreign_keys: "fk_{tabla_origen}_{tabla_destino}" - -integridad: - - "Primary keys definidas" - - "Foreign keys con ON DELETE/UPDATE" - - "NOT NULL donde aplique" - - "DEFAULT values apropiados" - - "CHECK constraints donde necesario" -``` - -## VALIDACIONES ADICIONALES - -```yaml -tablas: - - "Columnas id, created_at, updated_at presentes" - - "Tipos de datos apropiados" - - "Índices en columnas de búsqueda frecuente" - -rls_policies: - - "Habilitado en tablas multi-tenant" - - "Políticas para SELECT, INSERT, UPDATE, DELETE" - - "Usando tenant_id del contexto" - -funciones: - - "SECURITY DEFINER/INVOKER correcto" - - "Manejo de errores (EXCEPTION)" - - "Documentación en comentarios" - -triggers: - - "Timing correcto (BEFORE/AFTER)" - - "Operaciones correctas (INSERT/UPDATE/DELETE)" - - "Función trigger existe" -``` - -## ERRORES COMUNES - -```yaml -- error: "relation already exists" - causa: "Tabla/objeto ya existe" - solucion: "Usar IF NOT EXISTS o DROP primero" - -- error: "foreign key constraint violation" - causa: "Referencia a registro inexistente" - solucion: "Verificar orden de inserción o CASCADE" - -- error: "column does not exist" - causa: "Nombre de columna incorrecto" - solucion: "Verificar nombres y comillas" -``` - ---- - -**Referencia:** @PERFIL_DATABASE, @SIMCO_DDL diff --git a/orchestration/_archive/_definitions/validations/VALIDATION-FRONTEND.md b/orchestration/_archive/_definitions/validations/VALIDATION-FRONTEND.md deleted file mode 100644 index 794cf41..0000000 --- a/orchestration/_archive/_definitions/validations/VALIDATION-FRONTEND.md +++ /dev/null @@ -1,81 +0,0 @@ -# Validación Frontend - React/TypeScript -## Definición Canónica - -**Alias:** @DEF_VAL_FE -**Dominio:** Frontend React/TypeScript - ---- - -## COMANDOS OBLIGATORIOS - -```bash -# ANTES de marcar tarea como completada: -npm run build # DEBE pasar sin errores -npm run lint # DEBE pasar sin errores -npm run typecheck # DEBE pasar sin errores (tsc --noEmit) -``` - -## CRITERIOS DE ACEPTACIÓN - -```yaml -build: - resultado: "Build de producción exitoso" - sin_warnings_criticos: true - bundle_size: "Monitorear incrementos grandes" - -lint: - resultado: "0 errores de ESLint" - reglas_react: - - "react-hooks/rules-of-hooks" - - "react-hooks/exhaustive-deps" - -typecheck: - resultado: "0 errores de TypeScript" - strict_mode: true - no_any_implicito: true -``` - -## VALIDACIONES ADICIONALES - -```yaml -componentes: - - "Props tipadas correctamente" - - "Keys únicas en listas" - - "Manejo de loading/error states" - - "Accesibilidad básica (aria labels)" - -hooks: - - "Dependencias completas en useEffect" - - "Cleanup en useEffect si necesario" - - "useMemo/useCallback donde aplique" - -estado: - - "Estado mínimo necesario" - - "Derivar datos cuando posible" - - "Zustand/Context correctamente usado" - -api: - - "Manejo de errores de red" - - "Estados de carga" - - "Cancelación de requests" -``` - -## ERRORES COMUNES - -```yaml -- error: "React Hook useEffect has missing dependency" - causa: "Dependencia no incluida en array" - solucion: "Agregar dependencia o usar useCallback" - -- error: "Cannot read property of undefined" - causa: "Datos async no disponibles" - solucion: "Optional chaining o loading state" - -- error: "Each child should have unique key" - causa: "Key faltante o duplicada en map()" - solucion: "Usar ID único como key" -``` - ---- - -**Referencia:** @PERFIL_FRONTEND, @SIMCO_FRONTEND diff --git a/orchestration/_archive/_refs/WS-REFERENCES.yml b/orchestration/_archive/_refs/WS-REFERENCES.yml deleted file mode 100644 index 9206d98..0000000 --- a/orchestration/_archive/_refs/WS-REFERENCES.yml +++ /dev/null @@ -1,197 +0,0 @@ -# Referencias a Workspace -# Proyecto: clinica-dental -# Nivel de Herencia: 3 (erp-core -> erp-clinicas -> clinica-dental) - -version: "1.0.0" -proyecto: "clinica-dental" -fecha_creacion: "2026-01-16" - -# ============================================================================ -# REFERENCIAS A DEFINICIONES GLOBALES -# ============================================================================ -definiciones_workspace: - protocolos: - CCA: - alias: "@WS_DEF_CCA" - archivo: "orchestration/_definitions/protocols/CCA-PROTOCOL.md" - uso: "Protocolo de Carga de Contexto Automatica" - - CCA_LIGHT: - alias: "@WS_DEF_CCA_LIGHT" - archivo: "orchestration/_definitions/protocols/CCA-LIGHT.md" - uso: "Version ligera para subagentes" - - validaciones: - backend: - alias: "@WS_DEF_VAL_BE" - archivo: "orchestration/_definitions/validations/VALIDATION-BACKEND.md" - comandos: ["npm run build", "npm run lint", "npm run test"] - - frontend: - alias: "@WS_DEF_VAL_FE" - archivo: "orchestration/_definitions/validations/VALIDATION-FRONTEND.md" - comandos: ["npm run build", "npm run lint", "npm run typecheck"] - - ddl: - alias: "@WS_DEF_VAL_DDL" - archivo: "orchestration/_definitions/validations/VALIDATION-DDL.md" - - devops: - alias: "@WS_DEF_VAL_DEVOPS" - archivo: "orchestration/_definitions/validations/VALIDATION-DEVOPS.md" - -# ============================================================================ -# REFERENCIAS A NAVEGACION RAPIDA GLOBAL -# ============================================================================ -navegacion_workspace: - indice: - alias: "@WS_QUICK_INDEX" - archivo: "orchestration/_quick/QUICK-INDEX.yml" - - perfiles: - alias: "@WS_QUICK_PERFILES" - archivo: "orchestration/_quick/QUICK-PERFILES.yml" - - directivas: - alias: "@WS_QUICK_DIRECTIVAS" - archivo: "orchestration/_quick/QUICK-DIRECTIVAS.yml" - -# ============================================================================ -# REFERENCIAS A CATALOGO COMPARTIDO -# ============================================================================ -catalogo_compartido: - indice: - alias: "@WS_CATALOG" - archivo: "shared/catalog/CATALOG-INDEX.yml" - - funcionalidades: - auth: "shared/catalog/auth/" - notifications: "shared/catalog/notifications/" - payments: "shared/catalog/payments/" - multi_tenancy: "shared/catalog/multi-tenancy/" - -# ============================================================================ -# HERENCIA DE PROYECTO (Nivel 3) -# ============================================================================ -herencia: - padre: "erp-clinicas" - nivel: 3 - cadena_completa: - - proyecto: "erp-core" - nivel: 1 - tipo: "core" - hereda: "definiciones + codigo base" - - proyecto: "erp-clinicas" - nivel: 2 - tipo: "vertical" - hereda: "definiciones + codigo clinico" - - proyecto: "clinica-dental" - nivel: 3 - tipo: "sub-vertical" - hereda: "especializacion dental" - - hereda_de: - - proyecto: "erp-clinicas" - tipo: "definiciones + codigo" - modulos: - - CL-001 # Fundamentos - - CL-002 # Pacientes - - CL-003 # Citas - - CL-004 # Consultas - - CL-005 # Recetas - - CL-006 # Laboratorio (parcial) - - CL-008 # Facturacion - - CL-009 # Reportes - - CL-011 # Expediente - - CL-012 # Imagenologia - - proyecto: "erp-core" - tipo: "definiciones base + codigo core" - modulos: - - MGN-001 # Authentication - - MGN-002 # Users - - MGN-003 # Roles - - MGN-004 # Tenants - - MGN-005 # Catalogs - - MGN-007 # Audit - - MGN-008 # Notifications - - MGN-009 # Reports - - MGN-010 # Financial - - MGN-016 # Billing (SaaS) - - MGN-017 # Plans (SaaS) - - MGN-018 # Webhooks (SaaS) - - MGN-019 # Feature Flags (SaaS) - - MGN-020 # AI Integration (IA) - - MGN-021 # WhatsApp Business (IA) - - MGN-022 # MCP Server (IA) - -# ============================================================================ -# PROPAGACION -# ============================================================================ -propagacion: - mirror: "shared/mirrors/clinica-dental/" - status: "shared/mirrors/clinica-dental/PROPAGATION-STATUS.yml" - consumidores: [] # Sin sub-proyectos actualmente - proveedores: - - proyecto: "erp-clinicas" - tipo: "padre" - - proyecto: "erp-core" - tipo: "abuelo" - -# ============================================================================ -# DEFINICIONES LOCALES -# ============================================================================ -definiciones_locales: - database: - alias: "@PROJ_DEF_DB" - archivo: "docs/_definitions/DATABASE-SCHEMA.md" - entities: - alias: "@PROJ_DEF_ENTITIES" - archivo: "docs/_definitions/ENTITIES-CATALOG.md" - services: - alias: "@PROJ_DEF_SERVICES" - archivo: "docs/_definitions/SERVICES-CATALOG.md" - modules: - alias: "@PROJ_DEF_MODULES" - archivo: "docs/_definitions/MODULES-CATALOG.md" - -# ============================================================================ -# GOBERNANZA DE DOCUMENTACION (2026-01-16) -# ============================================================================ -gobernanza_ws: - tareas: - ruta: "orchestration/tareas/" - alias: "@WS_TAREAS" - descripcion: "Sistema de tracking de tareas" - template: "orchestration/tareas/_templates/TASK-TEMPLATE/" - - mapa_documentacion: - ruta: "orchestration/MAPA-DOCUMENTACION.yml" - alias: "@WS_MAPA_DOC" - descripcion: "Mapa central de documentacion del workspace" - - trazas_agentes: - ruta: "orchestration/agents/trazas/" - alias: "@WS_TRAZA_AGENTE" - descripcion: "Tracking de actividad por agente" - - trigger_documentacion: - ruta: "orchestration/directivas/triggers/TRIGGER-DOCUMENTACION-OBLIGATORIA.md" - alias: "@WS_TRIGGER_DOC" - descripcion: "Directiva obligatoria de documentacion" - -# ============================================================================ -# NAVEGACION RAPIDA LOCAL -# ============================================================================ -navegacion_local: - indice: - alias: "@PROJ_QUICK_INDEX" - archivo: "docs/_quick/QUICK-INDEX.yml" - modulos: - alias: "@PROJ_QUICK_MODULES" - archivo: "docs/_quick/QUICK-MODULES.yml" - database: - alias: "@PROJ_QUICK_DB" - archivo: "docs/_quick/QUICK-DATABASE.yml" - api: - alias: "@PROJ_QUICK_API" - archivo: "docs/_quick/QUICK-API.yml" diff --git a/orchestration/_archive/agents/perfiles/PERFIL-DDL-DENTAL-AGENT.yml b/orchestration/_archive/agents/perfiles/PERFIL-DDL-DENTAL-AGENT.yml deleted file mode 100644 index 0269185..0000000 --- a/orchestration/_archive/agents/perfiles/PERFIL-DDL-DENTAL-AGENT.yml +++ /dev/null @@ -1,202 +0,0 @@ -# =============================================================================== -# PERFIL DE AGENTE - DDL DENTAL -# =============================================================================== -# -# Proyecto: clinica-dental -# Rol: Agente especializado en base de datos para clinica dental -# Alias: @DENTAL_AGENT_DDL -# -# =============================================================================== - -version: "1.0.0" -created: "2026-01-16" -updated: "2026-01-16" -proyecto: "clinica-dental" - -# ------------------------------------------------------------------------------- -# IDENTIFICACION -# ------------------------------------------------------------------------------- - -perfil: - id: "DENTAL-AGENT-002" - nombre: "DDL Dental Agent" - alias: "@DENTAL_AGENT_DDL" - descripcion: "Agente especializado en esquema de BD para dominio dental" - tipo: "DATABASE_SPECIALIST" - -# ------------------------------------------------------------------------------- -# CADENA DE HERENCIA -# ------------------------------------------------------------------------------- - -herencia: - cadena: "template-saas -> erp-core -> erp-clinicas -> clinica-dental" - perfiles_padre: - - "@ERP_AGENT_DDL" - - "@CLINICAS_AGENT_DDL" - especializacion: "Schema sub_dental" - -# ------------------------------------------------------------------------------- -# COMPETENCIAS -# ------------------------------------------------------------------------------- - -competencias: - postgresql: - nivel: "experto" - areas: - - "Diseño de schemas multi-tenant" - - "Indices para busquedas clinicas" - - "JSONB para odontogramas" - - "Triggers de auditoria medica" - - "Row Level Security (RLS)" - - dominio_dental: - nivel: "avanzado" - conocimientos: - - "Modelado de odontogramas (32/20 piezas)" - - "Estados de piezas dentales (5 superficies)" - - "Tratamientos y procedimientos" - - "Historial radiografico" - - "Planes de tratamiento" - - normativa_datos: - nivel: "experto" - conocimientos: - - "NOM-024-SSA3: Expediente clinico electronico" - - "Ley Federal de Proteccion de Datos Personales" - - "Retencion de expedientes (5 años minimo)" - -# ------------------------------------------------------------------------------- -# RESPONSABILIDADES -# ------------------------------------------------------------------------------- - -responsabilidades: - principales: - - "Diseñar y mantener schema sub_dental" - - "Crear migraciones para tablas dentales" - - "Optimizar queries de odontograma" - - "Asegurar integridad referencial" - - "Implementar auditoria de expedientes" - - validaciones: - - validacion: "Schema correcto" - regla: "Todas las tablas dentales en sub_dental.*" - bloquea: true - - - validacion: "Auditoria" - regla: "Tablas clinicas deben tener triggers de auditoria" - bloquea: true - - - validacion: "RLS" - regla: "Datos de paciente protegidos por tenant_id" - bloquea: true - - - validacion: "Constraints FK" - regla: "Referencias cruzadas validadas" - bloquea: true - -# ------------------------------------------------------------------------------- -# SCHEMA SUB_DENTAL -# ------------------------------------------------------------------------------- - -schema: - nombre: "sub_dental" - descripcion: "Schema exclusivo para clinica dental" - - tablas_core: - - nombre: "odontograms" - descripcion: "Odontograma digital del paciente" - campos_clave: - - "id UUID PK" - - "patient_id FK" - - "teeth_data JSONB" - - "type ENUM (adult, child)" - - "exam_date TIMESTAMP" - - - nombre: "tooth_conditions" - descripcion: "Condiciones por pieza dental" - campos_clave: - - "odontogram_id FK" - - "tooth_number INT" - - "surface VARCHAR(5)" - - "condition_code VARCHAR(10)" - - - nombre: "dental_treatments" - descripcion: "Catalogo de tratamientos dentales" - campos_clave: - - "id UUID PK" - - "code VARCHAR(20)" - - "name VARCHAR(100)" - - "category VARCHAR(50)" - - "default_price DECIMAL" - - - nombre: "treatment_plans" - descripcion: "Planes de tratamiento por paciente" - campos_clave: - - "id UUID PK" - - "patient_id FK" - - "odontogram_id FK" - - "status ENUM" - - "total_cost DECIMAL" - - - nombre: "dental_xrays" - descripcion: "Radiografias dentales" - campos_clave: - - "id UUID PK" - - "patient_id FK" - - "type ENUM (panoramic, periapical, occlusal)" - - "image_url VARCHAR" - - "taken_at TIMESTAMP" - -# ------------------------------------------------------------------------------- -# DIRECTIVAS ACTIVAS -# ------------------------------------------------------------------------------- - -directivas: - obligatorias: - - "@DENTAL_TRIGGER_COHERENCIA" - - "@DENTAL_TRIGGER_INVENTARIOS" - - "@ERP_DIRECTIVA_DDL" - - "@WS_TRIGGER_COHERENCIA" - - opcionales: - - "@WS_TRIGGER_ANTI_DUPLICACION" - -# ------------------------------------------------------------------------------- -# MIGRACIONES -# ------------------------------------------------------------------------------- - -migraciones: - convencion: "YYYYMMDD_HHMMSS_descripcion.sql" - ubicacion: "database/migrations/" - - pendientes: - - "20260116_000001_create_schema_sub_dental.sql" - - "20260116_000002_create_odontograms_table.sql" - - "20260116_000003_create_tooth_conditions_table.sql" - - "20260116_000004_create_dental_treatments_table.sql" - - "20260116_000005_create_treatment_plans_table.sql" - - "20260116_000006_create_dental_xrays_table.sql" - -# ------------------------------------------------------------------------------- -# REFERENCIAS -# ------------------------------------------------------------------------------- - -referencias: - documentacion: - - "@DENTAL_DEF_DB" - - "@DENTAL_INV_DB" - - "@DENTAL_MAPA_DOC" - - schemas_relacionados: - - "clinicas.* (expedientes, citas, pacientes)" - - "core.* (usuarios, tenants)" - - "audit.* (trazas)" - - workspace: - - "@ERP_DEF_DB" - - "@CLINICAS_DEF_DB" - - "@TS_DEF_DB" - -# =============================================================================== -# FIN DEL PERFIL -# =============================================================================== diff --git a/orchestration/_archive/agents/perfiles/PERFIL-ODONTOLOGO-AGENT.yml b/orchestration/_archive/agents/perfiles/PERFIL-ODONTOLOGO-AGENT.yml deleted file mode 100644 index 19cfba8..0000000 --- a/orchestration/_archive/agents/perfiles/PERFIL-ODONTOLOGO-AGENT.yml +++ /dev/null @@ -1,193 +0,0 @@ -# =============================================================================== -# PERFIL DE AGENTE - ODONTOLOGO DIGITAL -# =============================================================================== -# -# Proyecto: clinica-dental -# Rol: Agente especializado en dominio odontologico -# Alias: @DENTAL_AGENT_ODONTOLOGO -# -# =============================================================================== - -version: "1.0.0" -created: "2026-01-16" -updated: "2026-01-16" -proyecto: "clinica-dental" - -# ------------------------------------------------------------------------------- -# IDENTIFICACION -# ------------------------------------------------------------------------------- - -perfil: - id: "DENTAL-AGENT-001" - nombre: "Odontologo Digital" - alias: "@DENTAL_AGENT_ODONTOLOGO" - descripcion: "Agente especializado en logica de negocio odontologica" - tipo: "DOMAIN_EXPERT" - -# ------------------------------------------------------------------------------- -# CADENA DE HERENCIA -# ------------------------------------------------------------------------------- - -herencia: - cadena: "template-saas -> erp-core -> erp-clinicas -> clinica-dental" - perfiles_padre: - - "@CLINICAS_AGENT_MEDICO" - - "@ERP_AGENT_BACKEND" - especializacion: "Dominio odontologico" - -# ------------------------------------------------------------------------------- -# COMPETENCIAS -# ------------------------------------------------------------------------------- - -competencias: - dominio_clinico: - nivel: "experto" - areas: - - "Anatomia dental (32 piezas permanentes, 20 deciduos)" - - "Nomenclatura FDI/Palmer/Universal" - - "Patologias dentales (caries, periodontal, endodontica)" - - "Tratamientos restauradores" - - "Ortodoncia y brackets" - - "Protesis fija y removible" - - "Radiografia dental (panoramica, periapical, oclusal)" - - normativa: - nivel: "experto" - conocimientos: - - nom_013_ssa2_2015: - descripcion: "Prevencion y control enfermedades bucales" - aplicacion: "Estructura de expediente, odontograma" - - nom_004_ssa3_2012: - descripcion: "Del expediente clinico" - aplicacion: "Historia clinica, consentimiento informado" - - cofepris: - descripcion: "Regulacion consultorios" - aplicacion: "Licencias, registro" - - tecnico: - nivel: "avanzado" - areas: - - "Modelado de odontogramas digitales" - - "Codigos CIE-10 dentales" - - "Integracion con imagenologia" - - "Presupuestos y planes de tratamiento" - -# ------------------------------------------------------------------------------- -# RESPONSABILIDADES -# ------------------------------------------------------------------------------- - -responsabilidades: - principales: - - "Validar logica de negocio odontologica" - - "Asegurar cumplimiento normativo NOM-013" - - "Disenar flujos de tratamiento dental" - - "Verificar integridad de odontogramas" - - "Revisar codificacion de diagnosticos" - - validaciones: - - validacion: "Odontograma completo" - regla: "32 piezas para adulto, 20 para nino" - bloquea: true - - - validacion: "Consentimiento informado" - regla: "Obligatorio antes de tratamiento invasivo" - bloquea: true - - - validacion: "Plan de tratamiento" - regla: "Debe incluir diagnostico, procedimientos, costos" - bloquea: false - - - validacion: "Historial radiografico" - regla: "Justificacion clinica requerida" - bloquea: true - -# ------------------------------------------------------------------------------- -# DIRECTIVAS ACTIVAS -# ------------------------------------------------------------------------------- - -directivas: - obligatorias: - - "@DENTAL_TRIGGER_COHERENCIA" - - "@DENTAL_TRIGGER_INVENTARIOS" - - "@CLINICAS_DIRECTIVA_EXPEDIENTE" - - "@ERP_DIRECTIVA_MULTI_TENANT" - - opcionales: - - "@WS_TRIGGER_ANTI_DUPLICACION" - - "@WS_TRIGGER_DEPENDENCIAS" - -# ------------------------------------------------------------------------------- -# FLUJOS DE TRABAJO -# ------------------------------------------------------------------------------- - -flujos: - nueva_consulta: - pasos: - 1: "Verificar paciente existente o crear nuevo" - 2: "Cargar odontograma vigente" - 3: "Registrar hallazgos del examen" - 4: "Actualizar odontograma" - 5: "Generar plan de tratamiento" - 6: "Presupuesto si aplica" - - tratamiento: - pasos: - 1: "Validar consentimiento informado" - 2: "Verificar historial alergias" - 3: "Registrar procedimiento" - 4: "Actualizar odontograma post-tratamiento" - 5: "Generar receta si aplica" - 6: "Agendar seguimiento" - - radiografia: - pasos: - 1: "Verificar justificacion clinica" - 2: "Seleccionar tipo (panoramica/periapical/oclusal)" - 3: "Registrar dosis estimada" - 4: "Almacenar imagen DICOM" - 5: "Vincular a expediente" - -# ------------------------------------------------------------------------------- -# INTEGRACIONES -# ------------------------------------------------------------------------------- - -integraciones: - modulos_CDT: - - "CDT-001: Odontograma" - - "CDT-002: Tratamientos dentales" - - "CDT-003: Ortodoncia" - - "CDT-004: Protesis" - - "CDT-005: Radiografias" - - "CDT-006: Presupuestos" - - modulos_heredados: - - "Pacientes (de erp-clinicas)" - - "Citas (de erp-clinicas)" - - "Expedientes (de erp-clinicas)" - - "Prescripciones (de erp-clinicas)" - -# ------------------------------------------------------------------------------- -# REFERENCIAS -# ------------------------------------------------------------------------------- - -referencias: - documentacion: - - "@DENTAL_MAPA_DOC" - - "@DENTAL_CONTEXT_MAP" - - "@DENTAL_INHERITANCE" - - inventarios: - - "@DENTAL_INV_MASTER" - - "@DENTAL_INV_DB" - - "@DENTAL_INV_BE" - - workspace: - - "@WS_DIRECTIVAS" - - "@WS_PERFILES" - - "@CLINICAS_MAPA_DOC" - - "@ERP_MAPA_DOC" - - "@TS_MAPA_DOC" - -# =============================================================================== -# FIN DEL PERFIL -# =============================================================================== diff --git a/orchestration/_archive/agents/perfiles/_INDEX.yml b/orchestration/_archive/agents/perfiles/_INDEX.yml deleted file mode 100644 index 343e184..0000000 --- a/orchestration/_archive/agents/perfiles/_INDEX.yml +++ /dev/null @@ -1,146 +0,0 @@ -# =============================================================================== -# INDICE DE PERFILES DE AGENTES - CLINICA DENTAL -# =============================================================================== -# -# Proyecto: clinica-dental -# Descripcion: Catalogo de agentes especializados para el dominio odontologico -# Alias: @DENTAL_AGENTS_INDEX -# -# =============================================================================== - -version: "1.0.0" -created: "2026-01-16" -updated: "2026-01-16" -proyecto: "clinica-dental" - -# ------------------------------------------------------------------------------- -# CADENA DE HERENCIA DE PERFILES -# ------------------------------------------------------------------------------- - -herencia: - cadena: "template-saas -> erp-core -> erp-clinicas -> clinica-dental" - perfiles_heredados: - desde_template_saas: - - "@TS_AGENT_DDL" - - "@TS_AGENT_BACKEND" - - "@TS_AGENT_FRONTEND" - desde_erp_core: - - "@ERP_AGENT_DDL" - - "@ERP_AGENT_BACKEND" - - "@ERP_AGENT_FRONTEND" - desde_erp_clinicas: - - "@CLINICAS_AGENT_MEDICO" - - "@CLINICAS_AGENT_DDL" - -# ------------------------------------------------------------------------------- -# PERFILES PROPIOS -# ------------------------------------------------------------------------------- - -perfiles: - dominio: - - id: "DENTAL-AGENT-001" - archivo: "PERFIL-ODONTOLOGO-AGENT.yml" - alias: "@DENTAL_AGENT_ODONTOLOGO" - tipo: "DOMAIN_EXPERT" - descripcion: "Agente experto en logica de negocio odontologica" - competencias_clave: - - "Anatomia y patologia dental" - - "Normativa NOM-013-SSA2" - - "Flujos clinicos dentales" - - tecnico: - - id: "DENTAL-AGENT-002" - archivo: "PERFIL-DDL-DENTAL-AGENT.yml" - alias: "@DENTAL_AGENT_DDL" - tipo: "DATABASE_SPECIALIST" - descripcion: "Agente especializado en schema sub_dental" - competencias_clave: - - "PostgreSQL avanzado" - - "Modelado odontograma" - - "Auditoria medica" - -# ------------------------------------------------------------------------------- -# MATRIZ DE COMPETENCIAS -# ------------------------------------------------------------------------------- - -matriz_competencias: - por_area: - dominio_dental: - principal: "@DENTAL_AGENT_ODONTOLOGO" - soporte: "@CLINICAS_AGENT_MEDICO" - - base_de_datos: - principal: "@DENTAL_AGENT_DDL" - soporte: "@CLINICAS_AGENT_DDL" - - backend: - principal: "@ERP_AGENT_BACKEND" - especializacion: "@DENTAL_AGENT_ODONTOLOGO" - - frontend: - principal: "@ERP_AGENT_FRONTEND" - especializacion: null # Por definir - - normativa: - principal: "@DENTAL_AGENT_ODONTOLOGO" - referencias: - - "NOM-013-SSA2-2015" - - "NOM-004-SSA3-2012" - -# ------------------------------------------------------------------------------- -# ASIGNACION POR TAREA -# ------------------------------------------------------------------------------- - -asignacion_tareas: - crear_tabla_dental: - agente_principal: "@DENTAL_AGENT_DDL" - validadores: - - "@DENTAL_AGENT_ODONTOLOGO" - - crear_entity_dental: - agente_principal: "@ERP_AGENT_BACKEND" - validadores: - - "@DENTAL_AGENT_DDL" - - "@DENTAL_AGENT_ODONTOLOGO" - - implementar_odontograma: - agente_principal: "@DENTAL_AGENT_ODONTOLOGO" - validadores: - - "@DENTAL_AGENT_DDL" - - validar_normativa: - agente_principal: "@DENTAL_AGENT_ODONTOLOGO" - validadores: [] - -# ------------------------------------------------------------------------------- -# ESTADISTICAS -# ------------------------------------------------------------------------------- - -estadisticas: - total_perfiles_propios: 2 - total_perfiles_heredados: 8 - cobertura_areas: - dominio: "100%" - ddl: "100%" - backend: "heredado" - frontend: "heredado" - ultima_actualizacion: "2026-01-16" - -# ------------------------------------------------------------------------------- -# REFERENCIAS -# ------------------------------------------------------------------------------- - -referencias: - documentacion: - - "@DENTAL_MAPA_DOC" - - "@DENTAL_TRIGGER_COHERENCIA" - - "@DENTAL_TRIGGER_INVENTARIOS" - - workspace: - - "@WS_PERFILES" - - "@CLINICAS_AGENTS_INDEX" - - "@ERP_AGENTS" - -# =============================================================================== -# FIN DEL INDICE -# =============================================================================== diff --git a/orchestration/_archive/environment/ENVIRONMENT-INVENTORY.yml b/orchestration/_archive/environment/ENVIRONMENT-INVENTORY.yml deleted file mode 100644 index bbdfbd8..0000000 --- a/orchestration/_archive/environment/ENVIRONMENT-INVENTORY.yml +++ /dev/null @@ -1,804 +0,0 @@ -# ============================================================================= -# ENVIRONMENT-INVENTORY.yml - CLINICA-DENTAL -# ============================================================================= -# Inventario Completo de Entorno de Desarrollo y Produccion -# Generado por: @PERFIL_DEVENV -# Basado en: orchestration/templates/TEMPLATE-ENVIRONMENT-INVENTORY.yml -# ============================================================================= - -version: "1.1.0" -fecha_creacion: "2026-01-04" -fecha_actualizacion: "2026-01-04" -responsable: "@PERFIL_DEVENV" - -# ----------------------------------------------------------------------------- -# IDENTIFICACION DEL PROYECTO -# ----------------------------------------------------------------------------- - -proyecto: - nombre: "Clinica Dental" - alias: "clinica-dental" - codigo: "CD" - nivel: "NIVEL_2B.3" - tipo: "vertical-especializada" - estado: "desarrollo" - descripcion: "Sistema de gestion para clinicas dentales y odontologicas" - parent: "erp-clinicas" - herencia: - - erp-core - - erp-clinicas - normativas: - - "NOM-024-SSA3-2012 (Expediente clinico electronico)" - - "NOM-013-SSA2-2015 (Prevencion y control enfermedades bucales)" - -# ----------------------------------------------------------------------------- -# HERRAMIENTAS Y RUNTIME -# ----------------------------------------------------------------------------- - -herramientas: - runtime: - node: - version: "20.x" - version_minima: "18.x" - requerido: true - notas: "LTS recomendado para NestJS y React" - python: - version: "" - requerido: false - notas: "No requerido para este proyecto" - - package_managers: - npm: - version: "10.x" - requerido: true - pnpm: - version: "8.x" - requerido: false - notas: "Alternativa opcional" - - build_tools: - - nombre: "Vite" - version: "5.x" - uso: "Frontend build y dev server" - - nombre: "TypeScript" - version: "5.x" - uso: "Compilacion de codigo" - - nombre: "NestJS CLI" - version: "10.x" - uso: "Backend scaffolding y build" - - linters: - - nombre: "ESLint" - version: "8.x" - config: ".eslintrc.js" - - nombre: "Prettier" - version: "3.x" - config: ".prettierrc" - - testing: - - nombre: "Jest" - version: "29.x" - tipo: "unit backend" - config: "jest.config.js" - - nombre: "Vitest" - version: "1.x" - tipo: "unit frontend" - config: "vitest.config.ts" - - nombre: "Supertest" - version: "6.x" - tipo: "e2e" - config: "jest-e2e.config.js" - -# ----------------------------------------------------------------------------- -# SERVICIOS Y PUERTOS -# ----------------------------------------------------------------------------- - -servicios: - frontend: - nombre: "clinica-dental-frontend" - framework: "React" - version: "18.x" - puerto: 3130 - comando_dev: "npm run dev" - comando_build: "npm run build" - comando_preview: "npm run preview" - ubicacion: "apps/frontend/" - url_local: "http://localhost:3130" - build_output: "dist/" - - backend: - nombre: "clinica-dental-backend" - framework: "NestJS" - version: "10.x" - puerto: 3131 - comando_dev: "npm run start:dev" - comando_build: "npm run build" - comando_prod: "npm run start:prod" - ubicacion: "apps/backend/" - url_local: "http://localhost:3131" - api_prefix: "/api/v1" - swagger_url: "http://localhost:3131/api/docs" - -# ----------------------------------------------------------------------------- -# BASE DE DATOS - CONFIGURACION COMPLETA -# ----------------------------------------------------------------------------- - -base_de_datos: - principal: - engine: "PostgreSQL" - version: "15" - host_variable: "DB_HOST" - puerto_variable: "DB_PORT" - - ambientes: - development: - host: "localhost" - puerto: 5441 - nombre: "clinica_dental_dev" - usuario: "dental_dev" - password_ref: "DB_PASSWORD en .env" - ssl: false - pool_size: 10 - conexion: "postgresql://dental_dev:{password}@localhost:5441/clinica_dental_dev" - - test: - host: "localhost" - puerto: 5441 - nombre: "clinica_dental_test" - usuario: "dental_dev" - password_ref: "DB_PASSWORD en .env" - ssl: false - pool_size: 5 - conexion: "postgresql://dental_dev:{password}@localhost:5441/clinica_dental_test" - - staging: - host: "${DB_HOST}" - puerto: 5432 - nombre: "clinica_dental_staging" - usuario: "dental_staging" - password_ref: "DB_PASSWORD en variables de CI/CD" - ssl: true - pool_size: 20 - conexion: "postgresql://dental_staging:{password}@${DB_HOST}:5432/clinica_dental_staging?sslmode=require" - - production: - host: "${DB_HOST}" - puerto: 5432 - nombre: "clinica_dental_prod" - usuario: "dental_prod" - password_ref: "DB_PASSWORD en secrets manager" - ssl: true - pool_size: 50 - conexion: "postgresql://dental_prod:{password}@${DB_HOST}:5432/clinica_dental_prod?sslmode=require" - - schemas: - - nombre: "public" - descripcion: "Schema principal PostgreSQL" - - nombre: "dental" - descripcion: "Entidades odontologicas (odontograma, piezas, tratamientos, ortodoncia)" - - nombre: "clinical" - descripcion: "Heredado de erp-clinicas (consultorios, citas, historiales)" - - nombre: "financial" - descripcion: "Heredado de erp-core (pagos, facturacion, presupuestos)" - - nombre: "hr" - descripcion: "Heredado de erp-core (empleados, especialidades)" - - nombre: "inventory" - descripcion: "Heredado de erp-core (materiales, insumos dentales)" - - scripts_inicializacion: - orden: - - "database/init/00-extensions.sql" - - "database/init/01-schemas.sql" - - "database/schemas/01-dental-schema-ddl.sql" - - "database/seeds/fase8/01-dental-catalogos.sql" - - "database/seeds/fase8/02-piezas-dentales-fdi.sql" - - datos_iniciales: - piezas_dentales: - total: 52 - nomenclatura: "FDI (Federation Dentaire Internationale)" - cuadrantes: - - id: 1 - nombre: "Superior derecho" - piezas: "18-11" - tipo: "permanente" - - id: 2 - nombre: "Superior izquierdo" - piezas: "21-28" - tipo: "permanente" - - id: 3 - nombre: "Inferior izquierdo" - piezas: "31-38" - tipo: "permanente" - - id: 4 - nombre: "Inferior derecho" - piezas: "41-48" - tipo: "permanente" - - id: 5 - nombre: "Superior derecho temporal" - piezas: "55-51" - tipo: "temporal" - - id: 6 - nombre: "Superior izquierdo temporal" - piezas: "61-65" - tipo: "temporal" - - id: 7 - nombre: "Inferior izquierdo temporal" - piezas: "71-75" - tipo: "temporal" - - id: 8 - nombre: "Inferior derecho temporal" - piezas: "81-85" - tipo: "temporal" - - redis: - host_variable: "REDIS_HOST" - puerto_variable: "REDIS_PORT" - - ambientes: - development: - host: "localhost" - puerto: 6388 - database: 0 - password: "" - conexion: "redis://localhost:6388/0" - - production: - host: "${REDIS_HOST}" - puerto: 6379 - database: 0 - password_ref: "REDIS_PASSWORD en secrets" - conexion: "redis://:${REDIS_PASSWORD}@${REDIS_HOST}:6379/0" - - uso: - - "Cache de sesiones" - - "Cache de odontogramas" - - "Rate limiting" - - "Queue de tareas (Bull)" - -# ----------------------------------------------------------------------------- -# VARIABLES DE ENTORNO - DESARROLLO -# ----------------------------------------------------------------------------- - -variables_entorno: - archivos: - ejemplo: ".env.example" - desarrollo: ".env" - test: ".env.test" - produccion: ".env.production" - - development: - - nombre: "NODE_ENV" - valor: "development" - descripcion: "Ambiente de ejecucion" - requerido: true - sensible: false - - - nombre: "APP_NAME" - valor: "clinica-dental" - descripcion: "Nombre de la aplicacion" - requerido: true - sensible: false - - - nombre: "APP_VERSION" - valor: "1.0.0" - descripcion: "Version de la aplicacion" - requerido: false - sensible: false - - # Puertos - - nombre: "FRONTEND_PORT" - valor: "3130" - descripcion: "Puerto del frontend React" - requerido: true - sensible: false - - - nombre: "BACKEND_PORT" - valor: "3131" - descripcion: "Puerto del backend NestJS" - requerido: true - sensible: false - - # Base de datos - - nombre: "DB_HOST" - valor: "localhost" - descripcion: "Host de PostgreSQL" - requerido: true - sensible: false - - - nombre: "DB_PORT" - valor: "5441" - descripcion: "Puerto de PostgreSQL" - requerido: true - sensible: false - - - nombre: "DB_NAME" - valor: "clinica_dental_dev" - descripcion: "Nombre de la base de datos" - requerido: true - sensible: false - - - nombre: "DB_USER" - valor: "dental_dev" - descripcion: "Usuario de PostgreSQL" - requerido: true - sensible: false - - - nombre: "DB_PASSWORD" - valor: "" - descripcion: "Password de PostgreSQL" - requerido: true - sensible: true - generacion: "openssl rand -base64 32" - - - nombre: "DATABASE_URL" - valor: "postgresql://dental_dev:${DB_PASSWORD}@localhost:5441/clinica_dental_dev" - descripcion: "Connection string completo" - requerido: true - sensible: true - - # Redis - - nombre: "REDIS_HOST" - valor: "localhost" - descripcion: "Host de Redis" - requerido: true - sensible: false - - - nombre: "REDIS_PORT" - valor: "6388" - descripcion: "Puerto de Redis" - requerido: true - sensible: false - - - nombre: "REDIS_URL" - valor: "redis://localhost:6388/0" - descripcion: "Connection string de Redis" - requerido: true - sensible: false - - # Autenticacion - - nombre: "JWT_SECRET" - valor: "" - descripcion: "Secreto para firmar JWT (min 32 caracteres)" - requerido: true - sensible: true - generacion: "openssl rand -base64 64" - - - nombre: "JWT_EXPIRES_IN" - valor: "24h" - descripcion: "Tiempo de expiracion del access token" - requerido: true - sensible: false - - - nombre: "JWT_REFRESH_EXPIRES_IN" - valor: "7d" - descripcion: "Tiempo de expiracion del refresh token" - requerido: true - sensible: false - - # CORS - - nombre: "FRONTEND_URL" - valor: "http://localhost:3130" - descripcion: "URL del frontend para CORS" - requerido: true - sensible: false - - - nombre: "ALLOWED_ORIGINS" - valor: "http://localhost:3130,http://localhost:3131" - descripcion: "Origenes permitidos (comma separated)" - requerido: true - sensible: false - - # Logging - - nombre: "LOG_LEVEL" - valor: "debug" - descripcion: "Nivel de logging (debug, info, warn, error)" - requerido: false - sensible: false - - - nombre: "LOG_FORMAT" - valor: "pretty" - descripcion: "Formato de logs (pretty, json)" - requerido: false - sensible: false - - # File Storage (radiografias, documentos) - - nombre: "STORAGE_TYPE" - valor: "local" - descripcion: "Tipo de storage (local, s3, minio)" - requerido: false - sensible: false - - - nombre: "STORAGE_PATH" - valor: "./uploads" - descripcion: "Path para almacenamiento local" - requerido: false - sensible: false - - - nombre: "MAX_FILE_SIZE" - valor: "20971520" - descripcion: "Tamano maximo de archivo en bytes (20MB para radiografias)" - requerido: false - sensible: false - - - nombre: "ALLOWED_FILE_TYPES" - valor: "image/jpeg,image/png,image/dicom,application/pdf" - descripcion: "Tipos de archivo permitidos" - requerido: false - sensible: false - - # Email (opcional) - - nombre: "SMTP_HOST" - valor: "localhost" - descripcion: "Host SMTP para emails" - requerido: false - sensible: false - - - nombre: "SMTP_PORT" - valor: "1025" - descripcion: "Puerto SMTP (1025 para MailHog)" - requerido: false - sensible: false - - # Configuracion Dental Especifica - - nombre: "DENTAL_FDI_NOTATION" - valor: "true" - descripcion: "Usar notacion FDI para piezas dentales" - requerido: false - sensible: false - - - nombre: "ODONTOGRAM_VERSION" - valor: "2.0" - descripcion: "Version del formato de odontograma" - requerido: false - sensible: false - - production: - notas: | - En produccion, las siguientes variables deben configurarse - via secrets manager o variables de CI/CD: - - DB_PASSWORD (secreto) - - JWT_SECRET (secreto) - - REDIS_PASSWORD (secreto) - - AWS_ACCESS_KEY_ID (si usa S3) - - AWS_SECRET_ACCESS_KEY (si usa S3) - - IMPORTANTE - Cumplimiento Normativo: - - NOM-024-SSA3-2012: Logs de auditoria obligatorios - - Encriptacion de datos sensibles (historiales) - - Backups diarios con retencion minima 5 anos - - diferencias: - - nombre: "NODE_ENV" - valor: "production" - - nombre: "LOG_LEVEL" - valor: "info" - - nombre: "LOG_FORMAT" - valor: "json" - - nombre: "DB_PORT" - valor: "5432" - - nombre: "REDIS_PORT" - valor: "6379" - - nombre: "STORAGE_TYPE" - valor: "s3" - - nombre: "AUDIT_ENABLED" - valor: "true" - - nombre: "DATA_ENCRYPTION" - valor: "true" - -# ----------------------------------------------------------------------------- -# CONTENEDORES DOCKER -# ----------------------------------------------------------------------------- - -docker: - compose_file: "docker-compose.yml" - compose_dev: "docker-compose.dev.yml" - compose_prod: "docker-compose.prod.yml" - - services: - - nombre: "db" - imagen: "postgres:15-alpine" - puerto_host: 5441 - puerto_container: 5432 - variables: - POSTGRES_DB: "clinica_dental_dev" - POSTGRES_USER: "dental_dev" - POSTGRES_PASSWORD: "${DB_PASSWORD}" - volumes: - - "postgres_data:/var/lib/postgresql/data" - healthcheck: "pg_isready -U dental_dev" - - - nombre: "redis" - imagen: "redis:7-alpine" - puerto_host: 6388 - puerto_container: 6379 - volumes: - - "redis_data:/data" - healthcheck: "redis-cli ping" - - - nombre: "mailhog" - imagen: "mailhog/mailhog" - puerto_smtp: 1025 - puerto_web: 8025 - uso: "Testing de emails en desarrollo" - - volumes: - - nombre: "postgres_data" - descripcion: "Datos persistentes de PostgreSQL" - - nombre: "redis_data" - descripcion: "Datos persistentes de Redis" - - nombre: "uploads_data" - descripcion: "Radiografias y documentos" - - networks: - - nombre: "clinica_dental_network" - driver: "bridge" - -# ----------------------------------------------------------------------------- -# MIGRACIONES Y SEEDS -# ----------------------------------------------------------------------------- - -migraciones: - herramienta: "TypeORM" - directorio: "apps/backend/src/database/migrations" - - comandos: - generar: "npm run migration:generate -- -n NombreMigracion" - ejecutar: "npm run migration:run" - revertir: "npm run migration:revert" - mostrar: "npm run migration:show" - -seeds: - directorio: "database/seeds" - orden: - - "fase8/01-dental-catalogos.sql" - - "fase8/02-piezas-dentales-fdi.sql" - - comandos: - ejecutar: "npm run seed" - desarrollo: "npm run seed:dev" - -# ----------------------------------------------------------------------------- -# SCRIPTS DE DESARROLLO -# ----------------------------------------------------------------------------- - -scripts: - setup: - descripcion: "Configurar entorno desde cero" - pasos: - - comando: "npm install" - descripcion: "Instalar dependencias" - - comando: "cp .env.example .env" - descripcion: "Crear archivo de configuracion" - - comando: "docker-compose up -d db redis" - descripcion: "Levantar servicios de infraestructura" - - comando: "npm run db:create" - descripcion: "Crear base de datos" - - comando: "npm run migration:run" - descripcion: "Ejecutar migraciones" - - comando: "npm run seed" - descripcion: "Cargar datos iniciales (incluye 52 piezas FDI)" - - desarrollo: - frontend: "cd apps/frontend && npm run dev" - backend: "cd apps/backend && npm run start:dev" - ambos: "npm run dev:all" - docker: "docker-compose up -d" - - testing: - unit: "npm run test" - unit_watch: "npm run test:watch" - e2e: "npm run test:e2e" - coverage: "npm run test:cov" - - build: - frontend: "cd apps/frontend && npm run build" - backend: "cd apps/backend && npm run build" - docker: "docker-compose -f docker-compose.prod.yml build" - - database: - create: "npm run db:create" - drop: "npm run db:drop" - reset: "npm run db:reset" - migrations_run: "npm run migration:run" - migrations_revert: "npm run migration:revert" - seed: "npm run seed" - - linting: - lint: "npm run lint" - lint_fix: "npm run lint:fix" - format: "npm run format" - -# ----------------------------------------------------------------------------- -# INSTRUCCIONES DE SETUP -# ----------------------------------------------------------------------------- - -setup_instrucciones: | - ## Setup del Entorno de Desarrollo - Clinica Dental - - ### Prerequisitos - - Node.js 20.x (LTS) - - PostgreSQL 15 (o Docker) - - Redis 7 (o Docker) - - npm 10.x - - Git - - ### Opcion 1: Setup con Docker (Recomendado) - - ```bash - # 1. Clonar repositorio - git clone - cd clinica-dental - - # 2. Instalar dependencias - npm install - - # 3. Configurar variables de entorno - cp .env.example .env - # Editar .env - generar passwords seguros: - # openssl rand -base64 32 # para DB_PASSWORD - # openssl rand -base64 64 # para JWT_SECRET - - # 4. Levantar infraestructura - docker-compose up -d db redis - - # 5. Crear base de datos y ejecutar migraciones - npm run db:create - npm run migration:run - npm run seed # Carga 52 piezas dentales FDI - - # 6. Iniciar desarrollo - npm run dev:all - ``` - - ### Opcion 2: Setup con PostgreSQL Local - - ```bash - # 1-3. Igual que arriba - - # 4. Crear usuario y base de datos en PostgreSQL - sudo -u postgres psql - CREATE USER dental_dev WITH PASSWORD 'tu_password'; - CREATE DATABASE clinica_dental_dev OWNER dental_dev; - GRANT ALL PRIVILEGES ON DATABASE clinica_dental_dev TO dental_dev; - \q - - # 5. Configurar Redis local o Docker - docker run -d --name redis-dental -p 6388:6379 redis:7-alpine - - # 6-7. Continuar con migraciones y seeds - ``` - - ### Verificar Instalacion - - Frontend: http://localhost:3130 - - Backend API: http://localhost:3131/api/v1 - - Swagger Docs: http://localhost:3131/api/docs - - Health Check: http://localhost:3131/health - - ### Usuarios de Prueba (despues de seed) - - Admin: admin@clinica-dental.local / Admin123! - - Odontologo: doctor@clinica-dental.local / Doctor123! - - Recepcion: recepcion@clinica-dental.local / Recep123! - - ### Nomenclatura Dental FDI - El sistema usa la nomenclatura FDI (Federation Dentaire Internationale): - - Cuadrante 1: Superior derecho (18-11) - - Cuadrante 2: Superior izquierdo (21-28) - - Cuadrante 3: Inferior izquierdo (31-38) - - Cuadrante 4: Inferior derecho (41-48) - - Cuadrantes 5-8: Denticion temporal - -# ----------------------------------------------------------------------------- -# TROUBLESHOOTING -# ----------------------------------------------------------------------------- - -troubleshooting: - - problema: "Puerto 3130 o 3131 en uso" - solucion: | - Verificar con: lsof -i :3130 - Terminar proceso: kill -9 - O cambiar puertos en .env - - - problema: "Error de conexion a PostgreSQL" - solucion: | - 1. Verificar que PostgreSQL esta corriendo: - docker-compose ps - # o: systemctl status postgresql - 2. Verificar credenciales en .env - 3. Verificar que la BD existe: - psql -h localhost -p 5441 -U dental_dev -l - - - problema: "Error de conexion a Redis" - solucion: | - 1. Verificar que Redis esta corriendo: - docker-compose ps - # o: redis-cli -p 6388 ping - 2. Verificar puerto en .env - - - problema: "Migraciones fallan" - solucion: | - 1. Verificar que la BD existe - 2. Verificar permisos del usuario - 3. Revisar logs: npm run migration:run --verbose - 4. Si es necesario, resetear: npm run db:reset - - - problema: "Piezas dentales no cargadas" - solucion: | - Ejecutar seeds manualmente: - npm run seed - Verificar: SELECT COUNT(*) FROM dental.piezas_dentales; - Debe retornar 52 (32 permanentes + 20 temporales) - - - problema: "Radiografias no se suben" - solucion: | - 1. Verificar STORAGE_PATH existe y tiene permisos - 2. Verificar MAX_FILE_SIZE en .env (default 20MB) - 3. Verificar ALLOWED_FILE_TYPES incluye el tipo de archivo - - - problema: "JWT errors" - solucion: | - Verificar que JWT_SECRET esta configurado (min 32 caracteres) - Generar nuevo: openssl rand -base64 64 - - - problema: "CORS errors en frontend" - solucion: | - Verificar FRONTEND_URL y ALLOWED_ORIGINS en .env - Deben coincidir con la URL del frontend - -# ----------------------------------------------------------------------------- -# CONFIGURACION DE PRODUCCION -# ----------------------------------------------------------------------------- - -produccion: - checklist: - - item: "Variables de entorno configuradas via secrets manager" - - item: "SSL/TLS habilitado para BD y Redis" - - item: "Backups automaticos configurados (retencion 5 anos)" - - item: "Monitoreo y alertas activas" - - item: "Rate limiting configurado" - - item: "CORS restringido a dominios autorizados" - - item: "Logs en formato JSON para agregacion" - - item: "Audit logging habilitado (NOM-024-SSA3-2012)" - - item: "Encriptacion de datos sensibles" - - infraestructura_recomendada: - base_de_datos: "AWS RDS PostgreSQL 15 o equivalente" - cache: "AWS ElastiCache Redis o equivalente" - storage: "AWS S3 o equivalente (para radiografias)" - cdn: "CloudFront o equivalente" - ci_cd: "GitHub Actions / GitLab CI" - - escalado: - backend_replicas: 2 - pool_db_size: 50 - redis_maxmemory: "512mb" - storage_bucket_region: "us-east-1" - - cumplimiento: - nom_024_ssa3: - descripcion: "Expediente clinico electronico" - requisitos: - - "Logs de auditoria inmutables" - - "Firma electronica de expedientes" - - "Control de versiones de historiales" - retencion_datos: - expedientes: "5 anos minimo" - radiografias: "5 anos minimo" - logs_auditoria: "5 anos" - -# ----------------------------------------------------------------------------- -# REFERENCIAS -# ----------------------------------------------------------------------------- - -referencias: - perfil_devenv: "orchestration/agents/perfiles/PERFIL-DEVENV.md" - inventario_master: "orchestration/inventarios/DEVENV-MASTER-INVENTORY.yml" - inventario_puertos: "orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml" - contexto_proyecto: "orchestration/00-guidelines/CONTEXTO-PROYECTO.md" - parent_clinicas: "../erp-clinicas/orchestration/environment/ENVIRONMENT-INVENTORY.yml" - schema_dental: "database/schemas/01-dental-schema-ddl.sql" - nomenclatura_fdi: "https://www.fdiworlddental.org/tooth-numbering-system" - -# ============================================================================= -# FIN DE INVENTARIO -# ============================================================================= diff --git a/orchestration/_archive/referencias/DEPENDENCIAS-ERP-CORE.yml b/orchestration/_archive/referencias/DEPENDENCIAS-ERP-CORE.yml deleted file mode 100644 index 63f9dc7..0000000 --- a/orchestration/_archive/referencias/DEPENDENCIAS-ERP-CORE.yml +++ /dev/null @@ -1,133 +0,0 @@ -# DEPENDENCIAS-ERP-CORE.yml - Clínica Dental -# Dependencias técnicas heredadas de erp-core via erp-clinicas -# Versión: 1.0.0 -# Fecha: 2026-01-13 - -version: "1.0.0" -updated: "2026-01-13" -project: "clinica-dental" - -inheritance_chain: - - source: "template-saas" - version: "1.2.1" - relation: "PROVIDES_TO" - - source: "erp-core" - version: "1.3.0" - relation: "DEPENDS_ON" - - source: "erp-clinicas" - version: "1.0.0" - relation: "EXTENDS" - - target: "clinica-dental" - version: "1.0.0" - relation: "SPECIALIZES" - -# Módulos heredados de ERP-CORE -modules_from_erp_core: - fase_03_core: - total: 15 - inherited: - - MGN-001-auth - - MGN-002-users - - MGN-003-roles - - MGN-004-tenants - - MGN-005-branches - - MGN-006-geo - - MGN-007-mobile - - MGN-008-terminals - - MGN-010-catalog - - MGN-011-products - - MGN-012-inventory - - MGN-013-customers - - MGN-014-sales - - MGN-015-invoicing - partial: - - MGN-009-biometrics # Solo si la clínica lo requiere - - fase_04_saas: - total: 4 - inherited: - - MGN-016-billing - - MGN-017-plans - - MGN-018-webhooks - - MGN-019-feature-flags - propagation_date: "2026-01-13" - propagation_id: "PROP-CORE-002" - - fase_05_ia: - total: 3 - inherited: - - MGN-020-ai-integration - - MGN-021-whatsapp-business - - MGN-022-mcp-server - propagation_date: "2026-01-13" - propagation_id: "PROP-CORE-002" - -# Dependencias técnicas (DDL) -ddl_dependencies: - from_erp_core: - reused: - - "01-extensions.sql" - - "02-core-schema.sql" - - "10-billing.sql" - - "15-ai-agents.sql" - - "16-messaging.sql" - created_fase_04_05: - - "19-webhooks.sql" - - "20-feature-flags.sql" - - from_erp_clinicas: - - "03-clinical-tables.sql" - - "04-financial-ext-schema-ddl.sql" - - "05-hr-ext-fase8-schema-ddl.sql" - - "06-inventory-ext-fase8-schema-ddl.sql" - - "07-purchase-ext-fase8-schema-ddl.sql" - - "08-clinica-ext-fase8-schema-ddl.sql" - - specific_dental: - - "01-dental-schema-ddl.sql" - -# Adaptaciones específicas dental -adaptations: - terminology: - Paciente: "Paciente odontológico" - Consulta: "Consulta dental" - Prescripción: "Receta dental" - Médico: "Odontólogo" - - ai_tools: - - name: "crear_cita_dental" - description: "Crear cita en agenda odontológica" - - name: "consultar_odontograma" - description: "Consultar estado dental del paciente" - - name: "presupuesto_tratamiento" - description: "Generar presupuesto de tratamiento dental" - - name: "historial_tratamientos" - description: "Consultar historial de tratamientos" - - whatsapp_templates: - - "recordatorio_cita_dental" - - "confirmacion_cita" - - "seguimiento_tratamiento" - - "promocion_limpieza" - -# Normativa -compliance: - - code: "NOM-013-SSA2-2015" - name: "Prevención y control enfermedades bucales" - - code: "NOM-004-SSA3-2012" - name: "Expediente clínico" - - code: "NOM-024-SSA3-2012" - name: "Sistemas de información" - - code: "LFPDPPP" - name: "Ley Federal de Protección de Datos Personales" - - code: "COFEPRIS" - name: "Registro de establecimientos" - -metadata: - created_by: "CLAUDE-CAPVED" - created_at: "2026-01-13" - propagation_ref: "PROP-CORE-002" - related_documents: - - "../00-guidelines/HERENCIA-ERP-CORE.md" - - "../00-guidelines/HERENCIA-ERP-CLINICAS.md" - - "shared/mirrors/erp-core/PROPAGATION-STATUS.yml" diff --git a/orchestration/_archive/tareas/_templates/TASK-TEMPLATE-UNIFIED/LESSONS-LEARNED.yml b/orchestration/_archive/tareas/_templates/TASK-TEMPLATE-UNIFIED/LESSONS-LEARNED.yml deleted file mode 100644 index a9e45c6..0000000 --- a/orchestration/_archive/tareas/_templates/TASK-TEMPLATE-UNIFIED/LESSONS-LEARNED.yml +++ /dev/null @@ -1,184 +0,0 @@ -# LESSONS-LEARNED.yml - Lecciones Aprendidas de la Tarea -# Version: 1.0.0 -# Actualizado: 2026-01-18 -# -# Proposito: Documentar aprendizajes para mejorar futuras tareas - -# ============================================================================= -# METADATA -# ============================================================================= - -metadata: - task_id: "TASK-YYYY-MM-DD-NNN" - task_title: "Titulo de la tarea" - completed_date: "YYYY-MM-DD" - author: "Agente" - -# ============================================================================= -# RESUMEN EJECUTIVO -# ============================================================================= - -summary: - outcome: "success" # success | partial | failed - key_achievement: "Descripcion breve del logro principal" - main_challenge: "Descripcion breve del desafio principal" - time_deviation: "+2h" # vs estimado (ej: +2h, -1h, on-time) - -# ============================================================================= -# QUE FUNCIONO BIEN -# ============================================================================= - -what_worked: - - id: WW-001 - category: "process" # process | technical | communication | tooling - description: "Descripcion de lo que funciono bien" - impact: "high" # high | medium | low - replicable: true - details: | - Contexto adicional sobre por que funciono - y como replicarlo en futuras tareas. - - - id: WW-002 - category: "technical" - description: "Descripcion de solucion tecnica efectiva" - impact: "medium" - replicable: true - code_example: | - // Ejemplo de codigo si aplica - const solution = ... - -# ============================================================================= -# QUE NO FUNCIONO / PROBLEMAS -# ============================================================================= - -what_didnt_work: - - id: WD-001 - category: "process" - description: "Descripcion del problema encontrado" - impact: "high" - root_cause: "Causa raiz del problema" - resolution: "Como se resolvio o mitigó" - prevention: "Como prevenir en el futuro" - - - id: WD-002 - category: "technical" - description: "Problema tecnico encontrado" - impact: "medium" - root_cause: "Causa raiz" - resolution: "Solucion aplicada" - prevention: "Medida preventiva" - related_docs: - - "Link a ADR o documentacion relacionada" - -# ============================================================================= -# SORPRESAS / DESCUBRIMIENTOS -# ============================================================================= - -surprises: - - id: SU-001 - type: "positive" # positive | negative | neutral - description: "Algo inesperado que se descubrio" - impact: "medium" - action_taken: "Que se hizo al respecto" - follow_up: "Acciones futuras si aplica" - -# ============================================================================= -# RECOMENDACIONES PARA FUTURAS TAREAS -# ============================================================================= - -recommendations: - immediate: - - id: REC-I-001 - description: "Accion inmediata recomendada" - priority: "high" - owner: "Quien debe ejecutar" - - short_term: - - id: REC-S-001 - description: "Mejora para proximas tareas similares" - priority: "medium" - estimated_effort: "1h" - - long_term: - - id: REC-L-001 - description: "Mejora sistemica para el proyecto" - priority: "low" - requires_approval: true - -# ============================================================================= -# ACTUALIZACIONES A PROCESOS/DOCS -# ============================================================================= - -process_updates: - triggers: - - file: "orchestration/directivas/triggers/TRIGGER-XXX.md" - action: "update" # create | update | deprecate - description: "Actualizacion sugerida al trigger" - - checklists: - - file: "orchestration/directivas/checklists/CHECKLIST-XXX.md" - action: "update" - description: "Item a agregar al checklist" - - templates: - - file: "orchestration/templates/TEMPLATE-XXX.md" - action: "update" - description: "Mejora al template" - -# ============================================================================= -# METRICAS DE LA TAREA -# ============================================================================= - -task_metrics: - time: - estimated: "Xh" - actual: "Yh" - variance: "+/-Zh" - - scope: - planned_items: 10 - completed_items: 10 - added_items: 2 - removed_items: 0 - - quality: - bugs_found: 0 - rework_required: false - first_time_right: true - - complexity: - estimated: "medium" # low | medium | high - actual: "high" - reason_for_variance: "Razon si cambio" - -# ============================================================================= -# TAGS PARA BUSQUEDA -# ============================================================================= - -tags: - domains: [database, backend, frontend] - topics: [performance, security, refactoring] - technologies: [typescript, postgresql, react] - patterns: [repository, factory, observer] - -# ============================================================================= -# PROPAGACION -# ============================================================================= - -propagation: - should_propagate: true - target_index: "workspace-v2/orchestration/retrospectivas/LECCIONES-INDEX.yml" - propagated: false - propagated_date: null - -# ============================================================================= -# REFERENCIAS -# ============================================================================= - -references: - metadata: "./METADATA.yml" - subtasks: "./SUBTASKS.yml" - related_tasks: - - "TASK-YYYY-MM-DD-XXX: Tarea relacionada" - external_docs: - - "Link a documentacion externa relevante" diff --git a/orchestration/_archive/tareas/_templates/TASK-TEMPLATE-UNIFIED/METADATA.yml b/orchestration/_archive/tareas/_templates/TASK-TEMPLATE-UNIFIED/METADATA.yml deleted file mode 100644 index bab359e..0000000 --- a/orchestration/_archive/tareas/_templates/TASK-TEMPLATE-UNIFIED/METADATA.yml +++ /dev/null @@ -1,230 +0,0 @@ -# METADATA.yml - Template Unificado de Tarea -# Version: 2.0.0 -# Actualizado: 2026-01-18 - -# ============================================================================= -# IDENTIFICACION -# ============================================================================= - -task: - id: "TASK-YYYY-MM-DD-NNN" - title: "Titulo descriptivo de la tarea" - created: "YYYY-MM-DD" - updated: "YYYY-MM-DD" - -# ============================================================================= -# CLASIFICACION -# ============================================================================= - -classification: - type: "feature" # feature | bug | refactor | audit | migration | documentation - priority: "P1" # P0 (critico) | P1 (alto) | P2 (medio) | P3 (bajo) - mode: "FULL" # FULL | QUICK | ANALYSIS | PROPAGATION - epic: "EAI-003" # Epica relacionada (si aplica) - sprint: "Sprint-XX" # Sprint actual (si aplica) - -# ============================================================================= -# ESTADO -# ============================================================================= - -status: - current: "pending" # pending | in_progress | blocked | completed - blocked_by: null # ID de tarea/issue bloqueante - completion: 0% - last_phase: null # C | A | P | V | E | D - -# ============================================================================= -# DOMINIOS AFECTADOS -# ============================================================================= - -domains: - - name: "database" - affected: true - details: "Descripcion de cambios en BD" - - - name: "backend" - affected: true - details: "Descripcion de cambios en backend" - - - name: "frontend" - affected: false - details: null - - - name: "documentation" - affected: true - details: "Actualizacion de inventarios" - -# ============================================================================= -# REQUERIMIENTOS Y DEPENDENCIAS -# ============================================================================= - -requirements: - functional: - - "RF-XXX-001: Descripcion" - technical: - - "ET-XXX-001: Descripcion" - user_stories: - - "US-XXX-001: Como usuario quiero..." - -dependencies: - tasks_required: - - "TASK-YYYY-MM-DD-NNN: Tarea previa necesaria" - tasks_blocked: - - "TASK-YYYY-MM-DD-NNN: Tarea que espera esta" - epics_related: - - "EAI-003: Gamificacion" - -# ============================================================================= -# FASES CAPVED -# ============================================================================= - -phases: - contexto: - status: "pending" # pending | in_progress | completed | skipped - started: null - completed: null - file: "01-CONTEXTO.md" - checklist: "CHECKLIST-FASE-C.md" - - analisis: - status: "pending" - started: null - completed: null - file: "02-ANALISIS.md" - checklist: "CHECKLIST-FASE-A.md" - - plan: - status: "pending" - started: null - completed: null - file: "03-PLAN.md" - checklist: "CHECKLIST-FASE-P.md" - - validacion: - status: "pending" - started: null - completed: null - file: "04-VALIDACION.md" - checklist: "CHECKLIST-FASE-V.md" - - ejecucion: - status: "pending" - started: null - completed: null - file: "05-EJECUCION.md" - checklist: "CHECKLIST-FASE-E.md" - checkpoints: - CP1_database: "pending" - CP2_backend: "pending" - CP3_frontend: "pending" - CP4_coherencia: "pending" - - documentacion: - status: "pending" - started: null - completed: null - file: "06-DOCUMENTACION.md" - checklist: "CHECKLIST-FASE-D.md" - -# ============================================================================= -# SUBTAREAS -# ============================================================================= - -subtasks_file: "SUBTASKS.yml" - -subtasks_summary: - total: 0 - completed: 0 - in_progress: 0 - pending: 0 - blocked: 0 - -# ============================================================================= -# ENTREGABLES -# ============================================================================= - -deliverables: - code: - - path: "apps/backend/src/..." - type: "new" # new | modified | deleted - description: "Descripcion del cambio" - - documentation: - - path: "docs/..." - type: "modified" - description: "Actualizacion de documentacion" - - reports: - - name: "REPORT-XXX.md" - description: "Reporte generado" - -# ============================================================================= -# VALIDACIONES -# ============================================================================= - -validations: - build: - backend: null # pass | fail | pending - frontend: null - database: null - - lint: - backend: null - frontend: null - - tests: - backend: null - frontend: null - - coherence: - ddl_backend: null - backend_frontend: null - -# ============================================================================= -# METRICAS -# ============================================================================= - -metrics: - time: - estimated_hours: null - actual_hours: null - changes: - files_created: 0 - files_modified: 0 - files_deleted: 0 - lines_added: 0 - lines_removed: 0 - issues: - found: 0 - fixed: 0 - deferred: 0 - -# ============================================================================= -# AGENTE -# ============================================================================= - -agent: - id: "agente-principal" - session: "session-id" - workspace: "workspace-v2" - -# ============================================================================= -# HISTORIAL -# ============================================================================= - -changelog: - - date: "YYYY-MM-DD" - author: "Agente" - action: "created" - details: "Tarea creada" - -# ============================================================================= -# REFERENCIAS -# ============================================================================= - -references: - subtasks: "./SUBTASKS.yml" - lessons: "./LESSONS-LEARNED.yml" - ssot: "docs/_SSOT/" - epic_manifest: "docs/XX-fase-*/EPIC-XXX/EPIC-MANIFEST.yml" - checklist_cierre: "orchestration/directivas/checklists/CHECKLIST-CIERRE.md" diff --git a/orchestration/_archive/tareas/_templates/TASK-TEMPLATE-UNIFIED/README.md b/orchestration/_archive/tareas/_templates/TASK-TEMPLATE-UNIFIED/README.md deleted file mode 100644 index b2c8a85..0000000 --- a/orchestration/_archive/tareas/_templates/TASK-TEMPLATE-UNIFIED/README.md +++ /dev/null @@ -1,129 +0,0 @@ -# TASK-TEMPLATE-UNIFIED - -**Version:** 2.0.0 -**Actualizado:** 2026-01-18 - -## Proposito - -Template unificado para tareas que integra: -- Metadata estructurada (METADATA.yml) -- Sistema recursivo de subtareas N niveles (SUBTASKS.yml) -- Registro de lecciones aprendidas (LESSONS-LEARNED.yml) - -## Archivos - -| Archivo | Proposito | -|---------|-----------| -| `METADATA.yml` | Identificacion, clasificacion, estado, fases CAPVED | -| `SUBTASKS.yml` | Desglose recursivo hasta 5 niveles | -| `LESSONS-LEARNED.yml` | Documentacion de aprendizajes post-tarea | -| `README.md` | Este archivo | - -## Como Usar - -### 1. Crear nueva tarea - -```bash -# Crear carpeta con ID de tarea -mkdir orchestration/tareas/TASK-2026-01-18-001 - -# Copiar template -cp -r orchestration/tareas/_templates/TASK-TEMPLATE-UNIFIED/* orchestration/tareas/TASK-2026-01-18-001/ -``` - -### 2. Actualizar METADATA.yml - -```yaml -task: - id: "TASK-2026-01-18-001" - title: "Titulo real de la tarea" - created: "2026-01-18" -``` - -### 3. Definir subtareas en SUBTASKS.yml - -Adaptar las subtareas segun los dominios afectados: -- Eliminar grupos no necesarios (ej: E.FE si no hay cambios frontend) -- Agregar subtareas especificas -- Definir criterios de aceptacion - -### 4. Ejecutar tarea siguiendo CAPVED - -1. **C** - Contexto: Vincular con RF/ET/US -2. **A** - Analisis: Mapear dependencias e impacto -3. **P** - Plan: Detallar subtareas en SUBTASKS.yml -4. **V** - Validacion: Gate de aprobacion -5. **E** - Ejecucion: Implementar por checkpoints (CP1-CP4) -6. **D** - Documentacion: Actualizar inventarios, trazas, lecciones - -### 5. Completar LESSONS-LEARNED.yml - -Al finalizar la tarea: -- Documentar que funciono bien -- Documentar problemas y resoluciones -- Agregar recomendaciones - -## Estructura de Niveles (SUBTASKS.yml) - -``` -NIVEL 1: FASE -├── C (Contexto) -├── A (Analisis) -├── P (Plan) -├── V (Validacion) -├── E (Ejecucion) ← NIVEL 2: GRUPO -│ ├── E.DB (Database) -│ ├── E.BE (Backend) ← NIVEL 3: SUBTAREA -│ │ ├── E.BE.01 -│ │ │ ├── E.BE.01.AC1 ← NIVEL 4: CRITERIO -│ │ │ │ └── AC1.1 ← NIVEL 5: SUB-CRITERIO -│ │ │ └── E.BE.01.AC2 -│ │ └── E.BE.02 -│ ├── E.FE (Frontend) -│ └── E.COH (Coherencia) -└── D (Documentacion) -``` - -## Checkpoints de Ejecucion - -| Checkpoint | Validaciones | -|------------|--------------| -| CP1: Post-Database | DDL ejecuta, recreate-database.sh exitoso | -| CP2: Post-Backend | npm run build, lint, test - PASAN | -| CP3: Post-Frontend | npm run build, typecheck - PASAN | -| CP4: Coherencia | Entity↔DDL, DTO↔Entity, FE↔BE alineados | - -## Estados de Subtareas - -| Estado | Descripcion | -|--------|-------------| -| `pending` | No iniciado | -| `in_progress` | En ejecucion | -| `completed` | Terminado exitosamente | -| `blocked` | Bloqueado por dependencia | -| `skipped` | Omitido (documentar razon) | - -## Integracion con Sistema - -### Actualizar _INDEX.yml al completar - -```yaml -tasks: - - id: TASK-2026-01-18-001 - title: "Titulo de la tarea" - date: "2026-01-18" - status: completed - path: "orchestration/tareas/TASK-2026-01-18-001/" -``` - -### Propagar lecciones al workspace - -Si `propagation.should_propagate: true` en LESSONS-LEARNED.yml: -1. Copiar entrada relevante a `workspace-v2/orchestration/retrospectivas/LECCIONES-INDEX.yml` -2. Marcar `propagated: true` - -## Referencias - -- SSOT: `docs/_SSOT/` -- Checklists CAPVED: `orchestration/directivas/checklists/` -- Template anterior: `workspace-v2/orchestration/tareas/_templates/TASK-TEMPLATE/` diff --git a/orchestration/_archive/tareas/_templates/TASK-TEMPLATE-UNIFIED/SUBTASKS.yml b/orchestration/_archive/tareas/_templates/TASK-TEMPLATE-UNIFIED/SUBTASKS.yml deleted file mode 100644 index 50b25b9..0000000 --- a/orchestration/_archive/tareas/_templates/TASK-TEMPLATE-UNIFIED/SUBTASKS.yml +++ /dev/null @@ -1,353 +0,0 @@ -# SUBTASKS.yml - Sistema Recursivo de Subtareas (N Niveles) -# Version: 1.0.0 -# Actualizado: 2026-01-18 -# -# ESTRUCTURA DE NIVELES: -# Nivel 1: FASE (C, A, P, V, E, D) -# Nivel 2: GRUPO/DOMINIO (E.DB, E.BE, E.FE) -# Nivel 3: SUBTAREA -# Nivel 4: CRITERIO DE ACEPTACION -# Nivel 5: SUB-CRITERIO (si necesario) - -# ============================================================================= -# METADATA -# ============================================================================= - -metadata: - task_id: "TASK-YYYY-MM-DD-NNN" - version: "1.0.0" - max_depth: 5 - total_items: 0 - completed_items: 0 - -# ============================================================================= -# RESUMEN POR FASE -# ============================================================================= - -summary: - C: - total: 0 - completed: 0 - percentage: 0% - A: - total: 0 - completed: 0 - percentage: 0% - P: - total: 0 - completed: 0 - percentage: 0% - V: - total: 0 - completed: 0 - percentage: 0% - E: - total: 0 - completed: 0 - percentage: 0% - D: - total: 0 - completed: 0 - percentage: 0% - -# ============================================================================= -# SUBTAREAS - NIVEL 1: FASES -# ============================================================================= - -subtasks: - # ------------------------------------------------------------------------- - # FASE C: CONTEXTO - # ------------------------------------------------------------------------- - - id: "C" - tipo: "fase" - nombre: "Contexto" - status: "pending" # pending | in_progress | completed | blocked | skipped - descripcion: "Clasificar y vincular tarea con objetivos del proyecto" - children: - - id: "C.01" - tipo: "subtarea" - titulo: "Identificar requerimientos relacionados" - status: "pending" - acceptance_criteria: - - id: "C.01.AC1" - descripcion: "RF/ET/US vinculados en METADATA.yml" - status: "pending" - - - id: "C.02" - tipo: "subtarea" - titulo: "Verificar catalogo de funcionalidades" - status: "pending" - acceptance_criteria: - - id: "C.02.AC1" - descripcion: "No hay duplicacion con funcionalidades existentes" - status: "pending" - - # ------------------------------------------------------------------------- - # FASE A: ANALISIS - # ------------------------------------------------------------------------- - - id: "A" - tipo: "fase" - nombre: "Analisis" - status: "pending" - descripcion: "Mapear impacto, dependencias y riesgos" - children: - - id: "A.01" - tipo: "subtarea" - titulo: "Analizar dependencias de codigo" - status: "pending" - acceptance_criteria: - - id: "A.01.AC1" - descripcion: "Archivos dependientes identificados" - status: "pending" - - id: "A.01.AC2" - descripcion: "Impacto de cambios evaluado" - status: "pending" - - - id: "A.02" - tipo: "subtarea" - titulo: "Identificar riesgos" - status: "pending" - acceptance_criteria: - - id: "A.02.AC1" - descripcion: "Riesgos documentados con mitigacion" - status: "pending" - - # ------------------------------------------------------------------------- - # FASE P: PLAN - # ------------------------------------------------------------------------- - - id: "P" - tipo: "fase" - nombre: "Plan" - status: "pending" - descripcion: "Desglosar subtareas por dominio" - children: - - id: "P.01" - tipo: "subtarea" - titulo: "Definir subtareas de ejecucion" - status: "pending" - acceptance_criteria: - - id: "P.01.AC1" - descripcion: "Subtareas E.DB, E.BE, E.FE definidas" - status: "pending" - - - id: "P.02" - tipo: "subtarea" - titulo: "Establecer orden de ejecucion" - status: "pending" - acceptance_criteria: - - id: "P.02.AC1" - descripcion: "Dependencias entre subtareas claras" - status: "pending" - - # ------------------------------------------------------------------------- - # FASE V: VALIDACION (Gate) - # ------------------------------------------------------------------------- - - id: "V" - tipo: "fase" - nombre: "Validacion Pre-Ejecucion" - status: "pending" - descripcion: "Gate de validacion antes de ejecutar" - children: - - id: "V.01" - tipo: "subtarea" - titulo: "Validar alineacion con requerimientos" - status: "pending" - acceptance_criteria: - - id: "V.01.AC1" - descripcion: "Plan alineado con RF/ET" - status: "pending" - - - id: "V.02" - tipo: "subtarea" - titulo: "Aprobar plan de ejecucion" - status: "pending" - acceptance_criteria: - - id: "V.02.AC1" - descripcion: "Plan aprobado para continuar" - status: "pending" - - # ------------------------------------------------------------------------- - # FASE E: EJECUCION (Nivel 2: Grupos por Dominio) - # ------------------------------------------------------------------------- - - id: "E" - tipo: "fase" - nombre: "Ejecucion" - status: "pending" - descripcion: "Implementar cambios por dominio" - children: - # --- GRUPO E.DB: Database --- - - id: "E.DB" - tipo: "grupo" - dominio: "database" - nombre: "Cambios en Base de Datos" - status: "pending" - checkpoint: "CP1" - children: - - id: "E.DB.01" - tipo: "subtarea" - titulo: "[Descripcion de cambio DDL]" - status: "pending" - dependencias: [] - acceptance_criteria: - - id: "E.DB.01.AC1" - descripcion: "DDL ejecuta sin errores" - status: "pending" - - id: "E.DB.01.AC2" - descripcion: "recreate-database.sh exitoso" - status: "pending" - - # --- GRUPO E.BE: Backend --- - - id: "E.BE" - tipo: "grupo" - dominio: "backend" - nombre: "Cambios en Backend" - status: "pending" - checkpoint: "CP2" - dependencias: ["E.DB"] # Depende de que BD este lista - children: - - id: "E.BE.01" - tipo: "subtarea" - titulo: "[Descripcion de cambio backend]" - status: "pending" - acceptance_criteria: - - id: "E.BE.01.AC1" - descripcion: "Entity creada/modificada" - status: "pending" - - id: "E.BE.01.AC2" - descripcion: "npm run build - PASA" - status: "pending" - - id: "E.BE.01.AC3" - descripcion: "npm run lint - PASA" - status: "pending" - - id: "E.BE.01.AC4" - descripcion: "npm run test - PASA" - status: "pending" - - # --- GRUPO E.FE: Frontend --- - - id: "E.FE" - tipo: "grupo" - dominio: "frontend" - nombre: "Cambios en Frontend" - status: "pending" - checkpoint: "CP3" - dependencias: ["E.BE"] # Depende de que backend este listo - children: - - id: "E.FE.01" - tipo: "subtarea" - titulo: "[Descripcion de cambio frontend]" - status: "pending" - acceptance_criteria: - - id: "E.FE.01.AC1" - descripcion: "Componente creado/modificado" - status: "pending" - - id: "E.FE.01.AC2" - descripcion: "npm run build - PASA" - status: "pending" - - id: "E.FE.01.AC3" - descripcion: "npm run typecheck - PASA" - status: "pending" - - # --- GRUPO E.COH: Coherencia --- - - id: "E.COH" - tipo: "grupo" - dominio: "coherencia" - nombre: "Validacion de Coherencia" - status: "pending" - checkpoint: "CP4" - dependencias: ["E.DB", "E.BE", "E.FE"] - children: - - id: "E.COH.01" - tipo: "subtarea" - titulo: "Verificar coherencia entre capas" - status: "pending" - acceptance_criteria: - - id: "E.COH.01.AC1" - descripcion: "Entity alineada con DDL" - status: "pending" - - id: "E.COH.01.AC2" - descripcion: "DTO alineado con Entity" - status: "pending" - - id: "E.COH.01.AC3" - descripcion: "Frontend consume endpoints correctos" - status: "pending" - - # ------------------------------------------------------------------------- - # FASE D: DOCUMENTACION - # ------------------------------------------------------------------------- - - id: "D" - tipo: "fase" - nombre: "Documentacion" - status: "pending" - descripcion: "Actualizar inventarios, trazas y propagar" - children: - - id: "D.01" - tipo: "subtarea" - titulo: "Actualizar inventarios" - status: "pending" - acceptance_criteria: - - id: "D.01.AC1" - descripcion: "DATABASE_INVENTORY.yml actualizado (si aplica)" - status: "pending" - - id: "D.01.AC2" - descripcion: "BACKEND_INVENTORY.yml actualizado (si aplica)" - status: "pending" - - id: "D.01.AC3" - descripcion: "FRONTEND_INVENTORY.yml actualizado (si aplica)" - status: "pending" - - id: "D.01.AC4" - descripcion: "MASTER_INVENTORY.yml actualizado" - status: "pending" - - - id: "D.02" - tipo: "subtarea" - titulo: "Actualizar trazas" - status: "pending" - acceptance_criteria: - - id: "D.02.AC1" - descripcion: "TRAZA-TAREAS-*.md actualizado" - status: "pending" - - id: "D.02.AC2" - descripcion: "_INDEX.yml actualizado" - status: "pending" - - - id: "D.03" - tipo: "subtarea" - titulo: "Registrar lecciones aprendidas" - status: "pending" - acceptance_criteria: - - id: "D.03.AC1" - descripcion: "LESSONS-LEARNED.yml completado" - status: "pending" - - - id: "D.04" - tipo: "subtarea" - titulo: "Ejecutar CHECKLIST-CIERRE.md" - status: "pending" - acceptance_criteria: - - id: "D.04.AC1" - descripcion: "Todos los items del checklist pasan" - status: "pending" - -# ============================================================================= -# INSTRUCCIONES DE USO -# ============================================================================= -# -# 1. Copiar este archivo a la carpeta de la tarea -# 2. Actualizar metadata.task_id -# 3. Completar/eliminar subtareas segun necesidad -# 4. Para agregar niveles adicionales, usar children recursivamente -# 5. Actualizar status conforme avanza la ejecucion -# 6. Mantener summary actualizado -# -# ESTADOS: -# pending - No iniciado -# in_progress - En ejecucion -# completed - Terminado exitosamente -# blocked - Bloqueado por dependencia -# skipped - Omitido (documentar razon) -# -# CHECKPOINTS (en Fase E): -# CP1 - Post-Database: DDL ejecuta, recreate exitoso -# CP2 - Post-Backend: build, lint, test pasan -# CP3 - Post-Frontend: build, typecheck pasan -# CP4 - Coherencia: Capas alineadas