# SIMCO: NIVELES JERÁRQUICOS DEL WORKSPACE **Versión:** 1.0.0 **Fecha:** 2025-12-08 **Aplica a:** Todos los agentes **Prioridad:** OBLIGATORIA - Identificar nivel ANTES de cualquier acción --- ## RESUMEN EJECUTIVO > **Todo agente DEBE identificar en qué nivel del workspace está trabajando.** > El nivel determina: dónde crear documentación, qué contexto cargar, y qué actualizar al completar. > Documentación en nivel incorrecto = caos organizacional. --- ## JERARQUÍA DE NIVELES ``` NIVEL 0: WORKSPACE ROOT (/home/isem/workspace/) │ ├── NIVEL 1: CORE (core/) │ ├── orchestration/ → Directivas globales, SIMCO, perfiles │ ├── catalog/ → Funcionalidades reutilizables │ └── modules/ → Módulos compartidos (futuro) │ ├── NIVEL 2A: PROYECTOS STANDALONE (projects/{proyecto}/) │ └── Proyectos independientes sin subproyectos │ Ejemplos: nexus-sgi, demo-poc, nexus-hr │ ├── NIVEL 2B: PROYECTOS MULTI-VERTICAL (projects/{suite}/) │ │ Ejemplos: nexus-erp-suite │ │ │ ├── NIVEL 2B.1: SUITE CORE ({suite}/core/) │ │ └── Componentes compartidos de la suite │ │ │ └── NIVEL 2B.2: VERTICALES ({suite}/verticals/{vertical}/) │ └── Subproyectos especializados │ Ejemplos: construccion, manufactura, retail │ └── NIVEL 3: CATÁLOGO (core/catalog/functionalities/) └── Funcionalidades genéricas reutilizables Ejemplos: auth, session, notifications ``` --- ## IDENTIFICACIÓN DE NIVEL ### Matriz de Identificación | Ruta del Archivo | Nivel | Tipo | |------------------|-------|------| | `core/orchestration/**` | 1 | CORE | | `core/catalog/**` | 3 | CATÁLOGO | | `core/modules/**` | 1 | CORE | | `projects/{p}/` (sin verticals/) | 2A | STANDALONE | | `projects/{p}/verticals/` existe | 2B | MULTI-VERTICAL | | `projects/{p}/core/` | 2B.1 | SUITE-CORE | | `projects/{p}/verticals/{v}/` | 2B.2 | VERTICAL | ### Protocolo de Identificación ```yaml # EJECUTAR al inicio de cualquier tarea PASO_1_EXTRAER_RUTA: working_directory: "{extraer del prompt o contexto}" PASO_2_CLASIFICAR: si_contiene: "core/orchestration" → NIVEL_1_CORE si_contiene: "core/catalog" → NIVEL_3_CATALOGO si_contiene: "verticals/" → NIVEL_2B2_VERTICAL si_contiene: "/core/" AND proyecto_tiene_verticals → NIVEL_2B1_SUITE_CORE si_es: "projects/{p}/" AND tiene_verticals/ → NIVEL_2B_MULTI_VERTICAL si_es: "projects/{p}/" AND no_tiene_verticals → NIVEL_2A_STANDALONE default: NIVEL_0_WORKSPACE PASO_3_REGISTRAR: nivel_actual: "{nivel identificado}" ruta_orchestration: "{calcular según nivel}" niveles_superiores: "{lista de niveles a propagar}" ``` --- ## ESTRUCTURA ORCHESTRATION POR NIVEL ### NIVEL 0: Workspace Root ``` /home/isem/workspace/ └── orchestration/ # Mínimo, solo referencias globales ├── WORKSPACE-INDEX.md # Índice de todos los proyectos ├── WORKSPACE-STATUS.md # Estado general del workspace └── referencias/ └── PROYECTOS-ACTIVOS.yml # Lista de proyectos y su estado ``` ### NIVEL 1: Core ``` core/orchestration/ ├── 00-guidelines/ ├── directivas/ │ ├── principios/ │ └── simco/ ├── agents/ │ └── perfiles/ ├── referencias/ ├── templates/ └── inventarios/ └── CORE_INVENTORY.yml ``` ### NIVEL 2A: Proyecto Standalone ``` projects/{proyecto}/orchestration/ ├── 00-guidelines/ │ └── CONTEXTO-PROYECTO.md ├── PROXIMA-ACCION.md ├── inventarios/ │ ├── MASTER_INVENTORY.yml │ ├── DATABASE_INVENTORY.yml │ ├── BACKEND_INVENTORY.yml │ └── FRONTEND_INVENTORY.yml ├── trazas/ │ ├── TRAZA-TAREAS-DATABASE.md │ ├── TRAZA-TAREAS-BACKEND.md │ └── TRAZA-TAREAS-FRONTEND.md └── referencias/ └── DEPENDENCIAS.yml ``` ### NIVEL 2B: Proyecto Multi-Vertical (Suite) ``` projects/{suite}/orchestration/ ├── 00-guidelines/ │ └── CONTEXTO-SUITE.md ├── PROXIMA-ACCION.md ├── inventarios/ │ ├── SUITE_MASTER_INVENTORY.yml # Agregado de todos los verticales │ └── VERTICALES-STATUS.yml # Estado de cada vertical ├── trazas/ │ └── TRAZA-SUITE.md # Cambios a nivel suite └── referencias/ ├── VERTICALES-INDEX.yml # Lista de verticales └── DEPENDENCIAS-CRUZADAS.yml # Dependencias entre verticales ``` ### NIVEL 2B.1: Suite Core ``` projects/{suite}/core/orchestration/ ├── 00-guidelines/ │ └── CONTEXTO-SUITE-CORE.md ├── inventarios/ │ ├── CORE_DATABASE_INVENTORY.yml │ ├── CORE_BACKEND_INVENTORY.yml │ └── CORE_FRONTEND_INVENTORY.yml ├── trazas/ │ └── TRAZA-CORE.md └── referencias/ └── CONSUMIDORES.yml # Qué verticales usan qué del core ``` ### NIVEL 2B.2: Vertical ``` projects/{suite}/verticals/{vertical}/orchestration/ ├── 00-guidelines/ │ └── CONTEXTO-VERTICAL.md ├── PROXIMA-ACCION.md ├── inventarios/ │ ├── VERTICAL_INVENTORY.yml │ ├── DATABASE_INVENTORY.yml │ ├── BACKEND_INVENTORY.yml │ └── FRONTEND_INVENTORY.yml ├── trazas/ │ ├── TRAZA-TAREAS-DATABASE.md │ ├── TRAZA-TAREAS-BACKEND.md │ └── TRAZA-TAREAS-FRONTEND.md └── referencias/ ├── DEPENDENCIAS-CORE.yml # Qué usa del suite/core └── DEPENDENCIAS-EXTERNAS.yml # Qué usa de otros verticales ``` ### NIVEL 3: Catálogo ``` core/catalog/ ├── CATALOG-INDEX.yml ├── functionalities/ │ └── {funcionalidad}/ │ ├── README.md │ ├── orchestration/ │ │ ├── CONTEXTO-FUNCIONALIDAD.md │ │ └── CONSUMIDORES.yml # Proyectos que lo usan │ └── implementation/ └── templates/ ``` --- ## REGLAS DE DOCUMENTACIÓN POR NIVEL ### Principio Fundamental ``` ╔══════════════════════════════════════════════════════════════════════╗ ║ TODA documentación se genera en el nivel donde se trabaja. ║ ║ TODA documentación se propaga hacia niveles superiores. ║ ║ NUNCA se documenta en nivel inferior al de trabajo. ║ ╚══════════════════════════════════════════════════════════════════════╝ ``` ### Matriz de Documentación | Trabajo en | Documenta en | Propaga a | |------------|--------------|-----------| | NIVEL 2B.2 (Vertical) | vertical/orchestration/ | Suite → Workspace | | NIVEL 2B.1 (Suite Core) | suite/core/orchestration/ | Suite → Workspace | | NIVEL 2A (Standalone) | proyecto/orchestration/ | Workspace | | NIVEL 1 (Core) | core/orchestration/ | Workspace | | NIVEL 3 (Catálogo) | catalog/functionalities/{f}/orchestration/ | Core → Workspace | ### Qué Documentar en Cada Nivel ```yaml NIVEL_TRABAJO: inventario: "Artefactos creados/modificados" traza: "Registro de tarea completada" proxima_accion: "Si aplica, siguiente paso" NIVELES_SUPERIORES: inventario: "Referencia al artefacto (no duplicar)" status: "Actualizar estado del componente" referencias: "Actualizar índices si es nuevo artefacto" ``` --- ## VARIABLES POR NIVEL ### Resolución de Variables ```yaml # Variables que cambian según el nivel NIVEL_2B2_VERTICAL: PROJECT_ROOT: "projects/{suite}/verticals/{vertical}" ORCHESTRATION_PATH: "{PROJECT_ROOT}/orchestration" PARENT_LEVEL: "NIVEL_2B" PARENT_PATH: "projects/{suite}" PROPAGATE_TO: - "projects/{suite}/orchestration" - "orchestration" # workspace root NIVEL_2B1_SUITE_CORE: PROJECT_ROOT: "projects/{suite}/core" ORCHESTRATION_PATH: "{PROJECT_ROOT}/orchestration" PARENT_LEVEL: "NIVEL_2B" PARENT_PATH: "projects/{suite}" PROPAGATE_TO: - "projects/{suite}/orchestration" - "orchestration" NIVEL_2A_STANDALONE: PROJECT_ROOT: "projects/{proyecto}" ORCHESTRATION_PATH: "{PROJECT_ROOT}/orchestration" PARENT_LEVEL: "NIVEL_0" PARENT_PATH: "" PROPAGATE_TO: - "orchestration" NIVEL_1_CORE: PROJECT_ROOT: "core" ORCHESTRATION_PATH: "core/orchestration" PARENT_LEVEL: "NIVEL_0" PARENT_PATH: "" PROPAGATE_TO: - "orchestration" NIVEL_3_CATALOGO: PROJECT_ROOT: "core/catalog/functionalities/{funcionalidad}" ORCHESTRATION_PATH: "{PROJECT_ROOT}/orchestration" PARENT_LEVEL: "NIVEL_1" PARENT_PATH: "core" PROPAGATE_TO: - "core/orchestration" - "orchestration" ``` --- ## PROTOCOLO DE INICIO POR NIVEL ### Template de Identificación ```markdown ## IDENTIFICACIÓN DE NIVEL ### Análisis de Ruta - **Working Directory:** {ruta} - **Contiene verticals/:** {sí|no} - **Está en core/:** {sí|no} - **Está en catalog/:** {sí|no} ### Nivel Identificado - **Nivel:** {NIVEL_X} - **Tipo:** {CORE|STANDALONE|MULTI-VERTICAL|SUITE-CORE|VERTICAL|CATALOGO} - **Orchestration Path:** {ruta calculada} ### Propagación Requerida 1. {nivel superior 1} → {ruta} 2. {nivel superior 2} → {ruta} ... ``` --- ## VALIDACIÓN DE NIVEL ### Checklist Pre-Ejecución ```markdown - [ ] Nivel identificado correctamente - [ ] Ruta de orchestration existe - [ ] Inventarios del nivel accesibles - [ ] Rutas de propagación identificadas - [ ] Variables del nivel resueltas ``` ### Errores Comunes | Error | Causa | Solución | |-------|-------|----------| | Documentación en nivel incorrecto | No identificó nivel | Ejecutar protocolo de identificación | | Propagación incompleta | Olvidó niveles superiores | Verificar PROPAGATE_TO | | Inventario no encontrado | Ruta mal calculada | Validar ORCHESTRATION_PATH | | Referencias rotas | No actualizó índices | Ejecutar propagación completa | --- ## INTEGRACIÓN CON CCA ### Extensión del Protocolo CCA ```yaml # Agregar como PASO_0 en CCA PASO_0_IDENTIFICAR_NIVEL: accion: "Identificar nivel jerárquico" ejecutar: "Protocolo de SIMCO-NIVELES.md" resultado: nivel: "{NIVEL_X}" orchestration_path: "{ruta}" propagate_to: ["{rutas}"] siguiente: "PASO_1_IDENTIFICAR (CCA estándar)" ``` --- ## REFERENCIAS - **Propagación:** `SIMCO-PROPAGACION.md` (actualización en cascada) - **CCA:** `SIMCO-INICIALIZACION.md` (carga de contexto) - **Delegación:** `SIMCO-DELEGACION.md` (heredar nivel a subagentes) - **Templates:** `templates/CONTEXTO-NIVEL-*.md` --- **Versión:** 1.0.0 | **Sistema:** SIMCO | **Tipo:** Directiva de Niveles