clinica-veterinaria/orchestration/_archive/directivas/triggers/TRIGGER-INVENTARIOS-SINCRONIZADOS.md
Adrian Flores Cortes 8bb46e4d08 [ESTANDAR-ORCHESTRATION] refactor: Consolidate to standard structure
- Move 6 non-standard folders to _archive/
- Update _MAP.md with standardized structure

Standard: SIMCO-ESTANDAR-ORCHESTRATION v1.0.0
Level: SUB-CONSUMER

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 14:38:02 -06:00

6.8 KiB

TRIGGER: INVENTARIOS SINCRONIZADOS

Versión: 1.0.0 Fecha: 2026-01-16 Sistema: SIMCO v4.0.0 Alias: @TRIGGER_INVENTARIOS


RESUMEN EJECUTIVO

Este trigger OBLIGA a mantener los inventarios sincronizados con el código real. Se activa al completar cualquier tarea que modifique código o estructura.

PRINCIPIO: "Los inventarios son la fuente de verdad. Si no está en el inventario, no existe oficialmente."


CONDICIONES DE ACTIVACIÓN

activar_cuando:
  - Se completa cualquier tarea con cambios de código
  - Se crea/modifica/elimina: tabla, entity, service, módulo, componente
  - Se ejecuta auditoría de proyecto
  - Han pasado más de 7 días desde última sincronización

INVENTARIOS REQUERIDOS POR PROYECTO

inventarios_obligatorios:
  DATABASE_INVENTORY.yml:
    contenido:
      - Lista completa de schemas
      - Lista completa de tablas por schema
      - Conteo de funciones, triggers, policies
      - Estado de cada objeto (active/deprecated/planned)
    actualizar_cuando:
      - Crear/modificar/eliminar tabla
      - Crear/modificar/eliminar schema
      - Agregar/modificar funciones o triggers

  BACKEND_INVENTORY.yml:
    contenido:
      - Lista completa de módulos
      - Lista completa de entities por módulo
      - Lista completa de services por módulo
      - Conteo de endpoints por módulo
      - Estado de cada objeto
    actualizar_cuando:
      - Crear/modificar/eliminar entity
      - Crear/modificar/eliminar service
      - Crear/modificar/eliminar módulo
      - Agregar/modificar endpoints

  FRONTEND_INVENTORY.yml:
    contenido:
      - Lista completa de componentes
      - Lista completa de páginas
      - Lista completa de hooks/stores
      - Estado de cada objeto
    actualizar_cuando:
      - Crear/modificar/eliminar componente
      - Crear/modificar/eliminar página
      - Crear/modificar/eliminar hook/store

  MASTER_INVENTORY.yml:
    contenido:
      - Resumen de todos los inventarios
      - Totales consolidados
      - Última fecha de sincronización
      - Score de coherencia
    actualizar_cuando:
      - Se actualiza cualquier otro inventario

VERIFICACIONES DE SINCRONIZACIÓN

1. Verificar Cobertura de Inventarios

cobertura_minima:
  DATABASE_INVENTORY:
    schemas: "100% de schemas en DDL"
    tablas: "100% de tablas en DDL"
    funciones: "100% de funciones en DDL"

  BACKEND_INVENTORY:
    modulos: "100% de carpetas en modules/"
    entities: "100% de archivos .entity.ts"
    services: "100% de archivos .service.ts"

  FRONTEND_INVENTORY:
    componentes: "100% de archivos .tsx en components/"
    paginas: "100% de archivos en pages/"
    stores: "100% de stores/hooks"

2. Verificar Consistencia de Conteos

validacion_conteos:
  comparar:
    - "Conteo en inventario vs archivos reales"
    - "Conteo reportado en _INDEX.yml vs inventario"
    - "Conteo entre inventarios relacionados"

  tolerancia: "0% - Debe ser exacto"

  si_discrepancia:
    accion: "BLOQUEAR hasta sincronizar"

3. Verificar Actualización Reciente

frescura:
  maxima_antiguedad: "7 días"

  verificar:
    - "Fecha de última actualización en inventario"
    - "Comparar con fecha de último commit en código"

  si_desactualizado:
    accion: "ADVERTIR y solicitar sincronización"

PROCESO DE SINCRONIZACIÓN

Sincronización Manual

# El agente debe ejecutar para cada inventario:

# 1. Contar objetos reales
find apps/database/ddl -name "*.sql" -exec grep -l "CREATE TABLE" {} \; | wc -l
find apps/backend/src/modules -name "*.entity.ts" | wc -l
find apps/backend/src/modules -name "*.service.ts" | wc -l

# 2. Comparar con inventario
# 3. Actualizar inventario si hay discrepancia
# 4. Actualizar timestamp de sincronización

Campos Obligatorios en Inventarios

metadata_obligatoria:
  version: "Semver del inventario"
  updated: "Fecha ISO de última actualización"
  updated_by: "Agente que actualizó"
  sync_status: "SYNCED | OUT_OF_SYNC | PARTIAL"
  coverage:
    total_expected: "N objetos esperados"
    total_documented: "N objetos documentados"
    percentage: "100%"

CHECKLIST DE SINCRONIZACIÓN

Al Completar Tarea

## Verificación de Inventarios

### DATABASE_INVENTORY.yml
[ ] Conteo de schemas correcto
[ ] Conteo de tablas correcto
[ ] Nuevos objetos agregados
[ ] Objetos eliminados removidos
[ ] Timestamp actualizado

### BACKEND_INVENTORY.yml
[ ] Conteo de módulos correcto
[ ] Conteo de entities correcto
[ ] Conteo de services correcto
[ ] Conteo de endpoints correcto
[ ] Nuevos objetos agregados
[ ] Timestamp actualizado

### FRONTEND_INVENTORY.yml
[ ] Conteo de componentes correcto
[ ] Conteo de páginas correcto
[ ] Nuevos objetos agregados
[ ] Timestamp actualizado

### MASTER_INVENTORY.yml
[ ] Totales consolidados correctos
[ ] Score de coherencia actualizado
[ ] Timestamp actualizado

INTEGRACIÓN CON TRIGGER-COHERENCIA-CAPAS

secuencia:
  1: "TRIGGER-COHERENCIA-CAPAS verifica estructura"
  2: "TRIGGER-INVENTARIOS-SINCRONIZADOS verifica documentación"
  3: "TRIGGER-DOCUMENTACION-OBLIGATORIA verifica gobernanza"

dependencia:
  - "Coherencia debe pasar ANTES de sincronizar inventarios"
  - "Inventarios deben estar sincronizados ANTES de documentar"

MENSAJES DE ERROR

errores:
  E-INV-001:
    mensaje: "Inventario desactualizado (más de 7 días)"
    accion: "Ejecutar sincronización de inventario"
    bloqueante: false (advertencia)

  E-INV-002:
    mensaje: "Discrepancia de conteo en inventario"
    accion: "Sincronizar inventario con código real"
    bloqueante: true

  E-INV-003:
    mensaje: "Objeto en código no documentado en inventario"
    accion: "Agregar objeto al inventario"
    bloqueante: true

  E-INV-004:
    mensaje: "Objeto en inventario no existe en código"
    accion: "Remover objeto del inventario o restaurar código"
    bloqueante: true

  E-INV-005:
    mensaje: "Inventario faltante"
    accion: "Crear inventario siguiendo template"
    bloqueante: true

AUTOMATIZACIÓN FUTURA

scripts_recomendados:
  sync-database-inventory:
    descripcion: "Sincronizar DATABASE_INVENTORY.yml automáticamente"
    implementar_en: "scripts/sync-inventories.sh"

  sync-backend-inventory:
    descripcion: "Sincronizar BACKEND_INVENTORY.yml automáticamente"
    implementar_en: "scripts/sync-inventories.sh"

  validate-inventories:
    descripcion: "Validar que todos los inventarios estén sincronizados"
    implementar_en: "scripts/validate-inventories.sh"

  estado: "DOCUMENTADO - Por implementar"

REFERENCIAS

Alias Descripción
@TRIGGER_INVENTARIOS Este trigger
@TRIGGER_COHERENCIA Coherencia entre capas
@DEF_CHK_POST Checklist post-tarea

Versión: 1.0.0 | Sistema: SIMCO v4.0.0 | Tipo: Trigger de Sincronización