- 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>
6.7 KiB
6.7 KiB
TRIGGER-ANTI-DUPLICACION
ID: TRIGGER-ANTI-DUPLICACION Version: 1.0.0 Tipo: Automatico Fase CAPVED: Se activa en Fase A (Analisis)
Proposito
Prevenir la creacion de objetos duplicados verificando automaticamente el catalogo global y los inventarios del proyecto antes de crear cualquier archivo, componente, servicio, entidad o tabla nueva.
Cuando Se Activa
activadores:
palabras_clave:
- "crear"
- "nuevo"
- "agregar"
- "implementar"
- "anadir"
- "generar"
tipos_objeto:
- tabla (DDL)
- entity
- service
- controller
- componente
- hook
- modulo
- funcionalidad
ejemplos:
- "Crear nueva tabla de usuarios"
- "Agregar entidad PaymentMethod"
- "Implementar servicio de notificaciones"
- "Nuevo componente de dashboard"
Acciones del Trigger
Paso 1: Verificar Catalogo Global
accion: "Buscar en catalogo de funcionalidades reutilizables"
comando: |
grep -i "{funcionalidad}" shared/catalog/CATALOG-INDEX.yml
catalogo_contiene:
- auth (autenticacion y autorizacion)
- session-management (gestion de sesiones)
- rate-limiting (limitacion de tasa)
- notifications (notificaciones email/push)
- multi-tenancy (soporte multi-tenant)
- feature-flags (flags dinamicos)
- websocket (comunicacion tiempo real)
- payments (integracion pagos)
- audit-logs (auditoria)
- portales (templates de portales)
- template-saas (template SaaS completo)
si_existe_en_catalogo:
accion: "DETENER creacion"
mensaje: |
ATENCION: Esta funcionalidad ya existe en el catalogo global.
Ubicacion: shared/catalog/{funcionalidad}/
Documentacion: shared/catalog/{funcionalidad}/README.md
Recomendacion: Usar SIMCO-REUTILIZAR.md para integrar
el modulo existente en lugar de crear uno nuevo.
Si necesita modificaciones, considerar:
1. Extender el modulo existente
2. Contribuir mejoras al catalogo
Para continuar de todos modos, confirmar explicitamente.
Paso 2: Verificar Inventario del Proyecto
accion: "Buscar en inventarios del proyecto actual"
comandos:
- grep -i "{nombre}" orchestration/inventarios/MASTER_INVENTORY.yml
- grep -i "{nombre}" orchestration/inventarios/DATABASE_INVENTORY.yml
- grep -i "{nombre}" orchestration/inventarios/BACKEND_INVENTORY.yml
- grep -i "{nombre}" orchestration/inventarios/FRONTEND_INVENTORY.yml
si_existe_en_inventario:
accion: "DETENER creacion"
mensaje: |
ATENCION: Ya existe un objeto similar en este proyecto.
Nombre: {nombre_existente}
Tipo: {tipo}
Ubicacion: {ruta}
Opciones:
1. Reutilizar el existente
2. Extender el existente
3. Renombrar el nuevo si es diferente
Para continuar, clarificar la diferencia.
Paso 3: Buscar Archivos Similares
accion: "Buscar archivos con nombre similar en el codigo"
comandos:
- find apps/ libs/ -name "*{nombre}*" -type f
- find src/ -name "*{nombre}*" -type f
- grep -rn "class {Nombre}" apps/ libs/ src/
- grep -rn "interface {Nombre}" apps/ libs/ src/
- grep -rn "CREATE TABLE.*{nombre}" database/
si_encuentra_similar:
accion: "ALERTAR y preguntar"
mensaje: |
ATENCION: Se encontraron archivos similares:
{lista_archivos}
Por favor confirmar:
1. Es el mismo objeto? -> Usar el existente
2. Es diferente? -> Explicar la diferencia
3. Es un duplicado a consolidar? -> Usar @DELETE-SAFE primero
Paso 4: Evaluar Resultado
matriz_decision:
existe_en_catalogo:
accion: "REUTILIZAR del catalogo"
simco: "SIMCO-REUTILIZAR.md"
no_encontrado:
accion: "PROCEDER a crear"
simco: "SIMCO-CREAR.md"
existe_identico:
accion: "DETENER"
mensaje: "Ya existe, no crear duplicado"
existe_similar:
accion: "PREGUNTAR"
mensaje: "Clarificar diferencia antes de continuar"
Checklist Rapido Anti-Duplicacion
Antes de crear cualquier objeto nuevo, verificar:
[ ] Busque funcionalidad en shared/catalog/CATALOG-INDEX.yml
[ ] Busque "{nombre}" en orchestration/inventarios/
[ ] Busque archivos con find en apps/ y src/
[ ] Busque definiciones con grep (class, interface, CREATE TABLE)
[ ] Confirme que NO existe en catalogo NI en proyecto
[ ] Si existe en catalogo, use SIMCO-REUTILIZAR.md
[ ] Si existe similar, pregunte que hacer antes de continuar
Formato de Reporte
Cuando se activa este trigger, generar reporte:
## Verificacion Anti-Duplicacion
### Objeto a Crear
- Nombre: {nombre}
- Tipo: {tabla|entity|service|component|...}
- Proyecto: {proyecto}
### Resultado Catalogo Global
- Estado: {ENCONTRADO | NO_ENCONTRADO}
- Detalles: {ubicacion si encontrado}
### Resultado Inventario Proyecto
- Estado: {ENCONTRADO | NO_ENCONTRADO}
- Detalles: {nombre y ubicacion si encontrado}
### Resultado Busqueda Codigo
- Estado: {ENCONTRADO | NO_ENCONTRADO}
- Archivos similares: {lista si encontrados}
### Decision
- [ ] PROCEDER: No se encontraron duplicados
- [ ] REUTILIZAR: Usar modulo del catalogo
- [ ] DETENER: Ya existe en proyecto
- [ ] CONSULTAR: Existe similar, clarificar
Excepciones
Cuando NO aplicar este trigger
excepciones:
- Archivos de configuracion (no son objetos reutilizables)
- Tests (cada modulo tiene sus propios tests)
- Documentacion (puede haber docs similares)
- Migraciones de BD (tienen timestamp unico)
Integracion con SIMCO
Si se encuentra en catalogo
siguiente_paso: "Leer SIMCO-REUTILIZAR.md"
acciones:
1. Leer documentacion del modulo en catalogo
2. Verificar compatibilidad con proyecto
3. Seguir instrucciones de integracion
4. Registrar uso en inventario
Si no se encuentra
siguiente_paso: "Leer SIMCO-CREAR.md"
acciones:
1. Proceder con creacion normal
2. Seguir principio Doc-Primero
3. Registrar en inventario al crear
4. Evaluar si debe agregarse al catalogo
Ejemplo de Ejecucion
Usuario: Crear servicio de autenticacion para erp-construccion
Sistema:
== TRIGGER-ANTI-DUPLICACION ACTIVADO ==
Paso 1: Verificando catalogo global...
Buscando: "auth" en shared/catalog/CATALOG-INDEX.yml
ENCONTRADO: shared/catalog/auth/
Paso 2: Verificando inventario...
(No aplica - se encontro en catalogo)
Paso 3: Busqueda codigo...
(No aplica - se encontro en catalogo)
== RESULTADO ==
DETENIDO: Funcionalidad existe en catalogo global.
Ubicacion: shared/catalog/auth/
Contenido:
- NestJS + JWT + Passport
- Guards, strategies, decorators
- Documentacion completa
Recomendacion:
Usar SIMCO-REUTILIZAR.md para integrar el modulo
de autenticacion del catalogo.
Comando sugerido:
@CREATE-SAFE Integrar modulo auth del catalogo en erp-construccion
TRIGGER-ANTI-DUPLICACION v1.0.0 - Sistema SAAD