Sistema NEXUS v3.4 migrado con: Estructura principal: - core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles) - core/catalog: Catalogo de funcionalidades reutilizables - shared/knowledge-base: Base de conocimiento compartida - devtools/scripts: Herramientas de desarrollo - control-plane/registries: Control de servicios y CI/CD - orchestration/: Configuracion de orquestacion de agentes Proyectos incluidos (11): - gamilit (submodule -> GitHub) - trading-platform (OrbiquanTIA) - erp-suite con 5 verticales: - erp-core, construccion, vidrio-templado - mecanicas-diesel, retail, clinicas - betting-analytics - inmobiliaria-analytics - platform_marketing_content - pos-micro, erp-basico Configuracion: - .gitignore completo para Node.js/Python/Docker - gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git) - Sistema de puertos estandarizado (3005-3199) Generated with NEXUS v3.4 Migration System EPIC-010: Configuracion Git y Repositorios
168 lines
6.0 KiB
Bash
Executable File
168 lines
6.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# validate-structure.sh - Valida la estructura del workspace
|
|
# Uso: ./validate-structure.sh [proyecto]
|
|
|
|
set -e
|
|
|
|
WORKSPACE_ROOT="${HOME}/workspace"
|
|
PROJECT=$1
|
|
ERRORS=0
|
|
WARNINGS=0
|
|
|
|
# Colores
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
echo -e "${BLUE}=== Validación de Estructura del Workspace ===${NC}"
|
|
echo ""
|
|
|
|
# Función para verificar directorio
|
|
check_dir() {
|
|
local path=$1
|
|
local required=$2
|
|
|
|
if [ -d "$path" ]; then
|
|
echo -e " ${GREEN}✓${NC} $path"
|
|
return 0
|
|
else
|
|
if [ "$required" = "required" ]; then
|
|
echo -e " ${RED}✗${NC} $path (FALTA - requerido)"
|
|
((ERRORS++))
|
|
return 1
|
|
else
|
|
echo -e " ${YELLOW}○${NC} $path (no existe)"
|
|
((WARNINGS++))
|
|
return 0
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# Función para verificar archivo
|
|
check_file() {
|
|
local path=$1
|
|
local required=$2
|
|
|
|
if [ -f "$path" ]; then
|
|
echo -e " ${GREEN}✓${NC} $path"
|
|
return 0
|
|
else
|
|
if [ "$required" = "required" ]; then
|
|
echo -e " ${RED}✗${NC} $path (FALTA - requerido)"
|
|
((ERRORS++))
|
|
return 1
|
|
else
|
|
echo -e " ${YELLOW}○${NC} $path (no existe)"
|
|
((WARNINGS++))
|
|
return 0
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# Validar estructura principal
|
|
echo -e "${BLUE}1. Validando estructura principal...${NC}"
|
|
check_dir "${WORKSPACE_ROOT}/core" "required"
|
|
check_dir "${WORKSPACE_ROOT}/projects" "required"
|
|
check_dir "${WORKSPACE_ROOT}/customers" "required"
|
|
check_dir "${WORKSPACE_ROOT}/knowledge-base" "required"
|
|
check_dir "${WORKSPACE_ROOT}/workspaces" "required"
|
|
check_dir "${WORKSPACE_ROOT}/devtools" "required"
|
|
check_file "${WORKSPACE_ROOT}/README.md" "required"
|
|
echo ""
|
|
|
|
# Validar core
|
|
echo -e "${BLUE}2. Validando core/...${NC}"
|
|
check_dir "${WORKSPACE_ROOT}/core/orchestration" "required"
|
|
check_dir "${WORKSPACE_ROOT}/core/orchestration/agents" "required"
|
|
check_dir "${WORKSPACE_ROOT}/core/orchestration/directivas" "required"
|
|
check_dir "${WORKSPACE_ROOT}/core/orchestration/templates" "required"
|
|
check_dir "${WORKSPACE_ROOT}/core/orchestration/claude" "required"
|
|
check_dir "${WORKSPACE_ROOT}/core/modules" "required"
|
|
check_dir "${WORKSPACE_ROOT}/core/standards" "required"
|
|
check_file "${WORKSPACE_ROOT}/core/README.md" "required"
|
|
check_file "${WORKSPACE_ROOT}/core/orchestration/README.md" "required"
|
|
echo ""
|
|
|
|
# Validar knowledge-base
|
|
echo -e "${BLUE}3. Validando knowledge-base/...${NC}"
|
|
check_dir "${WORKSPACE_ROOT}/knowledge-base/patterns" "required"
|
|
check_dir "${WORKSPACE_ROOT}/knowledge-base/reference" "required"
|
|
check_dir "${WORKSPACE_ROOT}/knowledge-base/guides" "required"
|
|
check_dir "${WORKSPACE_ROOT}/knowledge-base/snippets" "optional"
|
|
check_dir "${WORKSPACE_ROOT}/knowledge-base/lessons-learned" "optional"
|
|
echo ""
|
|
|
|
# Validar devtools
|
|
echo -e "${BLUE}4. Validando devtools/...${NC}"
|
|
check_dir "${WORKSPACE_ROOT}/devtools/scripts" "required"
|
|
check_dir "${WORKSPACE_ROOT}/devtools/templates" "required"
|
|
check_dir "${WORKSPACE_ROOT}/devtools/docker" "optional"
|
|
echo ""
|
|
|
|
# Si se especificó un proyecto, validarlo
|
|
if [ -n "$PROJECT" ]; then
|
|
echo -e "${BLUE}5. Validando proyecto: ${PROJECT}...${NC}"
|
|
PROJECT_PATH="${WORKSPACE_ROOT}/projects/${PROJECT}"
|
|
|
|
if [ ! -d "$PROJECT_PATH" ]; then
|
|
echo -e " ${RED}✗${NC} Proyecto '${PROJECT}' no existe"
|
|
((ERRORS++))
|
|
else
|
|
# Estructura de apps
|
|
check_dir "${PROJECT_PATH}/apps" "required"
|
|
|
|
# Estructura de docs
|
|
check_dir "${PROJECT_PATH}/docs" "required"
|
|
check_dir "${PROJECT_PATH}/docs/00-overview" "required"
|
|
check_dir "${PROJECT_PATH}/docs/01-requerimientos" "required"
|
|
check_dir "${PROJECT_PATH}/docs/02-especificaciones-tecnicas" "required"
|
|
|
|
# Estructura de orchestration
|
|
check_dir "${PROJECT_PATH}/orchestration" "required"
|
|
check_dir "${PROJECT_PATH}/orchestration/00-guidelines" "required"
|
|
check_dir "${PROJECT_PATH}/orchestration/01-analisis" "required"
|
|
check_dir "${PROJECT_PATH}/orchestration/02-planeacion" "required"
|
|
check_dir "${PROJECT_PATH}/orchestration/03-tareas" "required"
|
|
check_dir "${PROJECT_PATH}/orchestration/estados" "required"
|
|
check_dir "${PROJECT_PATH}/orchestration/inventarios" "required"
|
|
|
|
# Archivos requeridos
|
|
check_file "${PROJECT_PATH}/README.md" "required"
|
|
check_file "${PROJECT_PATH}/orchestration/PROXIMA-ACCION.md" "required"
|
|
check_file "${PROJECT_PATH}/orchestration/estados/REGISTRO-SUBAGENTES.json" "required"
|
|
check_file "${PROJECT_PATH}/orchestration/00-guidelines/CONTEXTO-PROYECTO.md" "required"
|
|
fi
|
|
echo ""
|
|
else
|
|
# Validar todos los proyectos existentes
|
|
echo -e "${BLUE}5. Validando proyectos existentes...${NC}"
|
|
for project_dir in "${WORKSPACE_ROOT}/projects"/*; do
|
|
if [ -d "$project_dir" ]; then
|
|
project_name=$(basename "$project_dir")
|
|
echo -e " ${BLUE}→ ${project_name}${NC}"
|
|
|
|
# Verificaciones básicas
|
|
[ -f "${project_dir}/README.md" ] && echo -e " ${GREEN}✓${NC} README.md" || { echo -e " ${YELLOW}○${NC} README.md"; ((WARNINGS++)); }
|
|
[ -d "${project_dir}/orchestration" ] && echo -e " ${GREEN}✓${NC} orchestration/" || { echo -e " ${RED}✗${NC} orchestration/"; ((ERRORS++)); }
|
|
[ -d "${project_dir}/docs" ] && echo -e " ${GREEN}✓${NC} docs/" || { echo -e " ${RED}✗${NC} docs/"; ((ERRORS++)); }
|
|
[ -d "${project_dir}/apps" ] && echo -e " ${GREEN}✓${NC} apps/" || { echo -e " ${RED}✗${NC} apps/"; ((ERRORS++)); }
|
|
fi
|
|
done
|
|
echo ""
|
|
fi
|
|
|
|
# Resumen
|
|
echo -e "${BLUE}=== Resumen ===${NC}"
|
|
if [ $ERRORS -eq 0 ] && [ $WARNINGS -eq 0 ]; then
|
|
echo -e "${GREEN}✓ Validación exitosa: Estructura correcta${NC}"
|
|
exit 0
|
|
elif [ $ERRORS -eq 0 ]; then
|
|
echo -e "${YELLOW}⚠ Validación con advertencias: ${WARNINGS} warnings${NC}"
|
|
exit 0
|
|
else
|
|
echo -e "${RED}✗ Validación fallida: ${ERRORS} errores, ${WARNINGS} warnings${NC}"
|
|
exit 1
|
|
fi
|