clinica-dental/orchestration/directivas/principios/PROPAGACION-ARCHITECTURE.md
rckrdmrd dc8c5dcc52 [CLINICA-DENTAL] chore: Update orchestration and inventories
- Updated database submodule
- Added SIMCO directivas
- Updated inventory files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 04:37:06 -06:00

317 lines
14 KiB
Markdown

# PROPAGACION-ARCHITECTURE: Arquitectura de Propagacion del Workspace
**ID:** PROPAGACION-ARCHITECTURE
**Version:** 1.0.0
**Fecha:** 2026-01-13
**Autor:** CLAUDE-CAPVED
---
## Proposito
Este documento clarifica la arquitectura de propagacion del workspace, cuando usar cada mecanismo, y como se relacionan los diferentes componentes del sistema de propagacion.
---
## Jerarquia de Propagacion
```
┌─────────────────────────────────────────────────────────────────────────────┐
│ NIVELES DE PROPAGACION │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ NIVEL 0: PROVIDER │
│ ┌──────────────────┐ │
│ │ template-saas │ → Provee funcionalidades base a todos │
│ │ (v1.2.1) │ │
│ └────────┬─────────┘ │
│ │ │
│ ▼ │
│ NIVEL 1: INTERMEDIATE │
│ ┌──────────────────┐ │
│ │ erp-core │ → Extiende y adapta para verticales ERP │
│ │ (v1.3.0) │ │
│ └────────┬─────────┘ │
│ │ │
│ ├─────────────────────────────────────────────────┐ │
│ ▼ ▼ │
│ NIVEL 2: CONSUMERS NIVEL 2: INTERMEDIATE │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ erp-construccion │ │ erp-clinicas │ │
│ │ erp-mecanicas │ │ (v1.0.0) │ │
│ │ erp-retail │ └────────┬─────────┘ │
│ │ erp-vidrio │ │ │
│ └──────────────────┘ ▼ │
│ NIVEL 3: SUB-CONSUMERS │
│ ┌──────────────────┐ │
│ │ clinica-dental │ │
│ │ clinica-veterina │ │
│ └──────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
```
---
## Componentes del Sistema de Propagacion
### 1. Directivas
| Componente | Ubicacion | Proposito |
|------------|-----------|-----------|
| **MODE-PROPAGATION** | `directivas/modos/` | Modo de ejecucion para propagar cambios entre proyectos |
| **TRIGGER-PROPAGACION-AUTOMATICA** | `directivas/triggers/` | Activa automaticamente en Fase D para evaluar propagacion |
| **SIMCO-PROPAGACION** | `directivas/simco/` | Propagacion de documentacion en verticales (interno) |
### 2. Referencias
| Componente | Ubicacion | Proposito |
|------------|-----------|-----------|
| **PROPAGATION-CRITERIA-MATRIX** | `referencias/` | Matriz de criterios para decidir propagacion |
| **DEPENDENCY-GRAPH** | `orchestration/` | Grafo de dependencias entre proyectos |
| **TRACEABILITY-MASTER** | `orchestration/` | Trazabilidad centralizada del workspace |
### 3. Mirrors
| Componente | Ubicacion | Proposito |
|------------|-----------|-----------|
| **MIRRORS-INDEX** | `shared/mirrors/` | Indice de todos los repositorios espejo |
| **PROPAGATION-STATUS** | `shared/mirrors/{proyecto}/` | Estado de propagacion por proyecto |
---
## Cuando Usar Cada Mecanismo
### MODE-PROPAGATION (@PROPAGATE)
**Usar cuando:**
- Necesitas propagar un cambio especifico a multiples proyectos
- Cambio en erp-core que debe ir a verticales
- Fix de seguridad que afecta multiples proyectos
- Bug fix en modulo compartido
- Actualizacion de dependencias compartidas
**Ejemplos:**
```bash
@PROPAGATE-ERP Distribuir fix de JWT a verticales
@PROPAGATE-SECURITY Fix de vulnerabilidad XSS
@PROPAGATE-CATALOG Actualizar modulo de notificaciones
```
**Flujo:**
```
Cambio en origen → CAPVED completo → Aplicar en cada destino → Validar → Documentar
```
---
### TRIGGER-PROPAGACION-AUTOMATICA
**Usar cuando:**
- Se activa automaticamente al completar Fase D
- No lo invocas directamente, el sistema lo evalua
**Cuando se activa:**
1. Completas una tarea en proyecto con propagacion (erp-core, shared/catalog)
2. El trigger evalua tipo de cambio
3. Sugiere o inicia propagacion segun reglas
**Flujo:**
```
Tarea completada → Trigger evalua → Decide accion → Notifica o propaga
```
---
### SIMCO-PROPAGACION
**Usar cuando:**
- Propagas documentacion DENTRO de un proyecto vertical
- No es para propagacion ENTRE proyectos
- Es para estructurar documentacion de modulos heredados
**Cuando se usa:**
- Al documentar un modulo heredado en una vertical
- Para asegurar que la documentacion refleja la herencia
**NO usar para:**
- Propagar codigo entre proyectos (usar MODE-PROPAGATION)
- Propagar cambios de core a verticales (usar MODE-PROPAGATION)
---
## Flujo de Decision
```
┌─────────────────────────────────────────────────────────────────┐
│ PREGUNTA: Que necesitas propagar? │
└────────────────────────────┬────────────────────────────────────┘
┌──────────────┴──────────────┐
▼ ▼
┌────────────────┐ ┌─────────────────┐
│ CODIGO/CAMBIO │ │ DOCUMENTACION │
│ entre proyectos│ │ dentro de │
└───────┬────────┘ │ proyecto │
│ └────────┬────────┘
▼ │
┌────────────────────┐ ▼
│ Es security fix? │ ┌─────────────────┐
└─────────┬──────────┘ │ SIMCO-PROPAGACION│
│ │ (interno) │
┌────────┴────────┐ └─────────────────┘
▼ ▼
┌─────────┐ ┌─────────┐
│ SI │ │ NO │
└────┬────┘ └────┬────┘
│ │
▼ ▼
┌──────────────┐ ┌───────────────────────┐
│ @PROPAGATE- │ │ Es bug fix? │
│ SECURITY │ └───────────┬───────────┘
│ (inmediato) │ ┌──────┴──────┐
└──────────────┘ ▼ ▼
┌─────────┐ ┌─────────┐
│ SI │ │ NO │
└────┬────┘ └────┬────┘
│ │
▼ ▼
┌──────────────┐ ┌───────────────┐
│ @PROPAGATE- │ │ @PROPAGATE │
│ ERP │ │ (evaluar) │
│ (72h SLA) │ │ │
└──────────────┘ └───────────────┘
```
---
## SLAs Unificados
| Tipo de Cambio | SLA | Prioridad | Accion |
|----------------|-----|-----------|--------|
| **Security Fix** | 24 horas | CRITICA | Propagar inmediatamente |
| **Bug Fix** | 72 horas | ALTA | Propagar con prioridad |
| **Feature** | 1 semana | MEDIA | Evaluar si aplica |
| **Refactor** | 2 semanas | BAJA | Opcional |
| **Documentacion** | Inmediato | N/A | Auto-sync via mirrors |
| **Definiciones** | Inmediato | N/A | Auto-sync via mirrors |
---
## Sistema de Mirrors
### Proposito
Los mirrors son repositorios espejo que facilitan la propagacion automatica de:
- Documentacion (README, CHANGELOG)
- Definiciones (YAML de modulos)
- Interfaces (TypeScript .d.ts)
### Mirrors Activos
| Mirror | Version | Consumidores |
|--------|---------|--------------|
| template-saas | 1.2.1 | erp-core |
| erp-core | 1.3.0 | 5 verticales + 2 sub-verticales |
| erp-clinicas | 1.0.0 | clinica-dental, clinica-veterinaria |
### Auto-Propagacion via Mirrors
```yaml
Tipo: Documentacion/Definiciones
Flujo:
1. Cambio en proyecto origen
2. Sync automatico a shared/mirrors/{proyecto}/
3. Consumidores leen del mirror
4. Actualizacion inmediata disponible
Tipo: Codigo
Flujo:
1. Cambio en proyecto origen
2. Validacion local (build+lint+tests)
3. Propagar manualmente via MODE-PROPAGATION
4. Actualizar PROPAGATION-STATUS.yml
```
---
## Trazabilidad
### Donde se registra cada propagacion
| Registro | Ubicacion | Contenido |
|----------|-----------|-----------|
| **TRACEABILITY-MASTER** | `orchestration/` | Registro centralizado de todas las propagaciones |
| **PROPAGATION-STATUS** | `shared/mirrors/{proyecto}/` | Estado por proyecto mirror |
| **MASTER_INVENTORY** | `{proyecto}/orchestration/inventarios/` | Referencia a ultima propagacion recibida |
### Formato de Registro
```yaml
propagacion:
id: "PROP-CORE-002"
fecha: "2026-01-13"
tipo: "bulk_propagation"
origen: "erp-core"
destinos:
- erp-construccion
- erp-clinicas
- erp-mecanicas-diesel
- erp-retail
- erp-vidrio-templado
sub_destinos:
- clinica-dental (via erp-clinicas)
- clinica-veterinaria (via erp-clinicas)
modulos: MGN-016 a MGN-022
estado: "completed"
```
---
## Comandos Rapidos
| Alias | Descripcion | Ejemplo |
|-------|-------------|---------|
| `@PROPAGATE-ERP` | Propagar de erp-core a verticales | `@PROPAGATE-ERP Fix de autenticacion` |
| `@PROPAGATE-CATALOG` | Propagar cambio de catalogo | `@PROPAGATE-CATALOG Actualizar notifications` |
| `@PROPAGATE-SECURITY` | Propagacion urgente de seguridad | `@PROPAGATE-SECURITY Vulnerabilidad XSS` |
| `@SYNC-MIRRORS` | Sincronizar todos los mirrors | `@SYNC-MIRRORS` |
| `@PROPAGATE-DOC` | Propagar documentacion | `@PROPAGATE-DOC {proyecto}` |
| `@PROPAGATE-DEF` | Propagar definiciones | `@PROPAGATE-DEF {proyecto}` |
| `@PROPAGATE-CODE` | Propagar codigo validado | `@PROPAGATE-CODE {proyecto}` |
---
## Errores Comunes
### 1. Confundir MODE-PROPAGATION con SIMCO-PROPAGACION
- **MODE-PROPAGATION:** Entre proyectos (erp-core → verticales)
- **SIMCO-PROPAGACION:** Dentro de un proyecto (documentacion interna)
### 2. Propagar sin validar
- **Correcto:** Siempre ejecutar build+lint+tests antes de propagar
- **Incorrecto:** Propagar directamente sin validacion
### 3. Olvidar actualizar trazabilidad
- **Correcto:** Registrar en TRACEABILITY-MASTER y PROPAGATION-STATUS
- **Incorrecto:** Propagar sin documentar
### 4. Propagar codigo no validado
- **Documentacion/Definiciones:** OK propagar inmediatamente
- **Codigo:** SIEMPRE validar antes de propagar
---
## Referencias
- `orchestration/directivas/modos/MODE-PROPAGATION.md`
- `orchestration/directivas/triggers/TRIGGER-PROPAGACION-AUTOMATICA.md`
- `orchestration/directivas/simco/SIMCO-PROPAGACION.md`
- `orchestration/referencias/PROPAGATION-CRITERIA-MATRIX.yml`
- `orchestration/TRACEABILITY-MASTER.yml`
- `orchestration/DEPENDENCY-GRAPH.yml`
- `shared/mirrors/MIRRORS-INDEX.yml`
---
*PROPAGACION-ARCHITECTURE v1.0.0 - Sistema SAAD*