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
429 lines
12 KiB
Bash
Executable File
429 lines
12 KiB
Bash
Executable File
#!/bin/bash
|
|
# bootstrap-project.sh - Crea un nuevo proyecto con estructura estándar
|
|
# Uso: ./bootstrap-project.sh <nombre> [tipo]
|
|
# Tipos: saas, erp-vertical, analytics, edtech
|
|
|
|
set -e
|
|
|
|
PROJECT_NAME=$1
|
|
PROJECT_TYPE=${2:-saas}
|
|
WORKSPACE_ROOT="${HOME}/workspace"
|
|
PROJECTS_DIR="${WORKSPACE_ROOT}/projects"
|
|
|
|
# Colores para output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Validar argumentos
|
|
if [ -z "$PROJECT_NAME" ]; then
|
|
echo -e "${RED}Error: Nombre del proyecto requerido${NC}"
|
|
echo "Uso: ./bootstrap-project.sh <nombre> [tipo]"
|
|
echo "Tipos disponibles: saas, erp-vertical, analytics, edtech"
|
|
exit 1
|
|
fi
|
|
|
|
# Validar que no exista
|
|
if [ -d "${PROJECTS_DIR}/${PROJECT_NAME}" ]; then
|
|
echo -e "${RED}Error: El proyecto '${PROJECT_NAME}' ya existe${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${GREEN}Creando proyecto: ${PROJECT_NAME} (tipo: ${PROJECT_TYPE})${NC}"
|
|
|
|
# Crear estructura base
|
|
echo "Creando estructura de directorios..."
|
|
mkdir -p "${PROJECTS_DIR}/${PROJECT_NAME}"/{apps,docs,orchestration}
|
|
|
|
# Crear apps según tipo
|
|
case $PROJECT_TYPE in
|
|
"saas"|"edtech")
|
|
mkdir -p "${PROJECTS_DIR}/${PROJECT_NAME}/apps"/{backend,frontend,database,devops}
|
|
;;
|
|
"erp-vertical")
|
|
mkdir -p "${PROJECTS_DIR}/${PROJECT_NAME}/apps"/{backend,frontend,database}
|
|
;;
|
|
"analytics")
|
|
mkdir -p "${PROJECTS_DIR}/${PROJECT_NAME}/apps"/{backend,frontend,database,ml}
|
|
;;
|
|
*)
|
|
mkdir -p "${PROJECTS_DIR}/${PROJECT_NAME}/apps"/{backend,frontend,database}
|
|
;;
|
|
esac
|
|
|
|
# Crear estructura de docs según estándar
|
|
# Ver: core/standards/ESTANDAR-ESTRUCTURA-DOCUMENTACION.md
|
|
echo "Creando estructura de documentación (estándar NEXUS)..."
|
|
mkdir -p "${PROJECTS_DIR}/${PROJECT_NAME}/docs"/{00-vision-general,01-fase-mvp,90-transversal,95-guias-desarrollo,96-quick-reference,97-adr,98-standards}
|
|
|
|
# Crear estructura de orchestration
|
|
echo "Creando estructura de orquestación..."
|
|
mkdir -p "${PROJECTS_DIR}/${PROJECT_NAME}/orchestration"/{00-guidelines,01-analisis,02-planeacion,03-tareas,04-ejecucion-logs,05-validaciones,06-subagentes,agentes,directivas,prompts,templates,estados,inventarios,trazas,reportes}
|
|
mkdir -p "${PROJECTS_DIR}/${PROJECT_NAME}/orchestration/05-validaciones"/{pre,durante,post}
|
|
|
|
# Crear archivo de herencia de directivas
|
|
cat > "${PROJECTS_DIR}/${PROJECT_NAME}/orchestration/00-guidelines/HERENCIA-DIRECTIVAS.md" << 'HERENCIA'
|
|
# Herencia de Directivas - Sistema NEXUS
|
|
|
|
## Arquitectura de Directivas
|
|
|
|
Este proyecto hereda directivas del workspace (core) y define directivas específicas.
|
|
|
|
### Directivas Globales (core)
|
|
**Path:** `~/workspace/core/orchestration/directivas/`
|
|
|
|
Estas directivas aplican a TODOS los proyectos:
|
|
- `DIRECTIVA-FLUJO-5-FASES.md` - Workflow obligatorio
|
|
- `DIRECTIVA-VALIDACION-SUBAGENTES.md` - Validación de entregables
|
|
- `POLITICAS-USO-AGENTES.md` - Reglas de delegación
|
|
- `DIRECTIVA-DOCUMENTACION-OBLIGATORIA.md` - Documentación requerida
|
|
- `DIRECTIVA-CALIDAD-CODIGO.md` - Estándares de código
|
|
- `DIRECTIVA-CONTROL-VERSIONES.md` - Git y versionado
|
|
- `PROTOCOLO-ESCALAMIENTO-PO.md` - Escalamiento
|
|
|
|
### Directivas Específicas (proyecto)
|
|
**Path:** `./directivas/`
|
|
|
|
Directivas que aplican solo a este proyecto.
|
|
|
|
### Prompts Base (core)
|
|
**Path:** `~/workspace/core/orchestration/prompts/base/`
|
|
|
|
Prompts genéricos reutilizables:
|
|
- `PROMPT-SUBAGENTES-BASE.md` - Instrucciones generales subagentes
|
|
- `PROMPT-BUG-FIXER.md` - Corrección de bugs
|
|
- `PROMPT-CODE-REVIEWER.md` - Revisión de código
|
|
- `PROMPT-FEATURE-DEVELOPER.md` - Desarrollo de features
|
|
- `PROMPT-DOCUMENTATION-VALIDATOR.md` - Validación de docs
|
|
|
|
### Prompts Específicos (proyecto)
|
|
**Path:** `./prompts/`
|
|
|
|
Prompts especializados para este proyecto.
|
|
|
|
## Orden de Precedencia
|
|
|
|
1. Directivas específicas del proyecto (mayor prioridad)
|
|
2. Directivas globales del workspace
|
|
3. Prompts específicos del proyecto
|
|
4. Prompts base del workspace
|
|
|
|
---
|
|
*Sistema NEXUS - Orquestación de Agentes*
|
|
HERENCIA
|
|
|
|
# Crear README.md
|
|
cat > "${PROJECTS_DIR}/${PROJECT_NAME}/README.md" << EOF
|
|
# ${PROJECT_NAME}
|
|
|
|
## Descripción
|
|
|
|
[Descripción del proyecto pendiente de definir]
|
|
|
|
## Estado del Proyecto
|
|
|
|
- **Tipo:** ${PROJECT_TYPE}
|
|
- **Creado:** $(date +%Y-%m-%d)
|
|
- **Estado:** Planificación
|
|
|
|
## Estructura
|
|
|
|
\`\`\`
|
|
${PROJECT_NAME}/
|
|
├── apps/
|
|
│ ├── backend/
|
|
│ ├── frontend/
|
|
│ └── database/
|
|
├── docs/
|
|
│ ├── 00-vision-general/ # Visión y arquitectura
|
|
│ ├── 01-fase-mvp/ # Primera fase
|
|
│ ├── 90-transversal/ # Documentación transversal
|
|
│ ├── 95-guias-desarrollo/ # Guías técnicas
|
|
│ ├── 96-quick-reference/ # Referencias rápidas
|
|
│ ├── 97-adr/ # Decisiones de arquitectura
|
|
│ └── 98-standards/ # Estándares del proyecto
|
|
└── orchestration/
|
|
├── 00-guidelines/ # Directivas del proyecto
|
|
├── agentes/ # Configuración por agente
|
|
├── directivas/ # Directivas específicas
|
|
├── templates/ # Templates de tareas
|
|
└── estados/ # Estado de subagentes
|
|
\`\`\`
|
|
|
|
## Inicio Rápido
|
|
|
|
\`\`\`bash
|
|
# Ver siguiente tarea
|
|
cat orchestration/PROXIMA-ACCION.md
|
|
|
|
# Ver contexto del proyecto
|
|
cat orchestration/00-guidelines/CONTEXTO-PROYECTO.md
|
|
\`\`\`
|
|
|
|
## Sistema de Agentes
|
|
|
|
Este proyecto usa el sistema NEXUS de orquestación de agentes.
|
|
Ver \`orchestration/README.md\` para más detalles.
|
|
|
|
---
|
|
*Proyecto parte del workspace de Fábrica de Software con Agentes IA*
|
|
EOF
|
|
|
|
# Crear docs/README.md
|
|
cat > "${PROJECTS_DIR}/${PROJECT_NAME}/docs/README.md" << EOF
|
|
# Documentación - ${PROJECT_NAME}
|
|
|
|
## Estructura
|
|
|
|
\`\`\`
|
|
docs/
|
|
├── 00-vision-general/ # Visión, arquitectura, contexto
|
|
├── 01-fase-mvp/ # Primera fase del proyecto
|
|
├── 90-transversal/ # Documentación transversal
|
|
├── 95-guias-desarrollo/ # Guías técnicas de desarrollo
|
|
├── 96-quick-reference/ # Referencias rápidas
|
|
├── 97-adr/ # Architecture Decision Records
|
|
└── 98-standards/ # Estándares del proyecto
|
|
\`\`\`
|
|
|
|
## Estado
|
|
|
|
| Fase | Estado | Descripción |
|
|
|------|--------|-------------|
|
|
| 00-vision-general | Pendiente | Definir visión y arquitectura |
|
|
| 01-fase-mvp | Pendiente | Definir alcance MVP |
|
|
|
|
## Navegación
|
|
|
|
### Por Fase
|
|
- [Visión General](./00-vision-general/)
|
|
- [Fase MVP](./01-fase-mvp/)
|
|
|
|
### Por Tipo
|
|
- [Guías de Desarrollo](./95-guias-desarrollo/)
|
|
- [Quick Reference](./96-quick-reference/)
|
|
- [ADR](./97-adr/)
|
|
- [Estándares](./98-standards/)
|
|
|
|
---
|
|
*Documentación del proyecto ${PROJECT_NAME} - Sistema NEXUS*
|
|
EOF
|
|
|
|
# Crear PROXIMA-ACCION.md
|
|
cat > "${PROJECTS_DIR}/${PROJECT_NAME}/orchestration/PROXIMA-ACCION.md" << EOF
|
|
# Próxima Acción - ${PROJECT_NAME}
|
|
|
|
## Estado Actual
|
|
- **Fecha:** $(date +%Y-%m-%d)
|
|
- **Estado:** Proyecto recién creado
|
|
|
|
## Próxima Tarea Prioritaria
|
|
|
|
### Tarea: Definir alcance y requerimientos iniciales
|
|
- **Prioridad:** P0
|
|
- **Agente sugerido:** NEXUS-ARCHITECTURE-ANALYST
|
|
|
|
### Pasos:
|
|
1. Definir visión y alcance en docs/00-vision-general/
|
|
2. Documentar requerimientos iniciales
|
|
3. Crear épicas para la fase MVP
|
|
4. Configurar stack tecnológico
|
|
|
|
---
|
|
*Actualizado: $(date +%Y-%m-%d)*
|
|
EOF
|
|
|
|
# Crear REGISTRO-SUBAGENTES.json
|
|
cat > "${PROJECTS_DIR}/${PROJECT_NAME}/orchestration/estados/REGISTRO-SUBAGENTES.json" << EOF
|
|
{
|
|
"proyecto": "${PROJECT_NAME}",
|
|
"limite_maximo": 15,
|
|
"slots_disponibles": 15,
|
|
"ultima_actualizacion": "$(date -Iseconds)",
|
|
"activos": [],
|
|
"completados": [],
|
|
"fallidos": []
|
|
}
|
|
EOF
|
|
|
|
# Crear CONTEXTO-PROYECTO.md básico
|
|
cat > "${PROJECTS_DIR}/${PROJECT_NAME}/orchestration/00-guidelines/CONTEXTO-PROYECTO.md" << EOF
|
|
# Contexto del Proyecto - ${PROJECT_NAME}
|
|
|
|
## Identificación
|
|
|
|
| Campo | Valor |
|
|
|-------|-------|
|
|
| **Nombre** | ${PROJECT_NAME} |
|
|
| **Tipo** | ${PROJECT_TYPE} |
|
|
| **Estado** | Planificación |
|
|
| **Creado** | $(date +%Y-%m-%d) |
|
|
|
|
## Descripción
|
|
|
|
[Pendiente de definir]
|
|
|
|
## Stack Tecnológico
|
|
|
|
[Pendiente de definir]
|
|
|
|
## Paths de Trabajo
|
|
|
|
\`\`\`
|
|
~/workspace/projects/${PROJECT_NAME}/
|
|
├── apps/ → Código fuente
|
|
├── docs/ → Documentación del proyecto
|
|
└── orchestration/ → Sistema de orquestación local
|
|
\`\`\`
|
|
|
|
## Convenciones Específicas
|
|
|
|
[Pendiente de definir]
|
|
|
|
## Documentación de Referencia
|
|
|
|
### Dentro del Proyecto
|
|
- \`docs/00-vision-general/\`
|
|
- \`docs/01-fase-mvp/\`
|
|
|
|
### En Core
|
|
- \`~/workspace/core/orchestration/directivas/\`
|
|
- \`~/workspace/core/standards/\`
|
|
|
|
---
|
|
*Contexto del proyecto ${PROJECT_NAME} - Sistema NEXUS*
|
|
EOF
|
|
|
|
# Crear orchestration/README.md
|
|
cat > "${PROJECTS_DIR}/${PROJECT_NAME}/orchestration/README.md" << EOF
|
|
# Orquestación - ${PROJECT_NAME}
|
|
|
|
## Sistema NEXUS
|
|
|
|
Este proyecto usa el sistema NEXUS de orquestación de agentes.
|
|
|
|
## Estructura
|
|
|
|
\`\`\`
|
|
orchestration/
|
|
├── 00-guidelines/ # Directivas del proyecto
|
|
├── 01-analisis/ # Análisis de tareas
|
|
├── 02-planeacion/ # Planes de ejecución
|
|
├── 03-tareas/ # Tareas en curso
|
|
├── 04-ejecucion-logs/ # Logs de ejecución
|
|
├── 05-validaciones/ # Validaciones (pre/durante/post)
|
|
├── 06-subagentes/ # Contexto de subagentes
|
|
├── agentes/ # Configuración por agente
|
|
├── directivas/ # Directivas específicas
|
|
├── templates/ # Templates de tareas
|
|
├── estados/ # Estado de subagentes
|
|
├── inventarios/ # Inventarios del proyecto
|
|
├── trazas/ # Trazas de ejecución
|
|
└── reportes/ # Reportes generados
|
|
\`\`\`
|
|
|
|
## Archivos Clave
|
|
|
|
- \`PROXIMA-ACCION.md\` - Siguiente tarea prioritaria
|
|
- \`00-guidelines/CONTEXTO-PROYECTO.md\` - Contexto del proyecto
|
|
- \`estados/REGISTRO-SUBAGENTES.json\` - Estado de subagentes
|
|
|
|
## Directivas Core
|
|
|
|
Las directivas globales están en:
|
|
\`~/workspace/core/orchestration/directivas/\`
|
|
|
|
---
|
|
*Sistema NEXUS - ${PROJECT_NAME}*
|
|
EOF
|
|
|
|
# Copiar y personalizar .gitignore desde template
|
|
echo "Creando .gitignore..."
|
|
GITIGNORE_TEMPLATE="${WORKSPACE_ROOT}/devtools/templates/gitignore-proyecto.template"
|
|
if [ -f "$GITIGNORE_TEMPLATE" ]; then
|
|
sed -e "s/{PROJECT_NAME}/${PROJECT_NAME}/g" \
|
|
-e "s/{DATE}/$(date +%Y-%m-%d)/g" \
|
|
"$GITIGNORE_TEMPLATE" > "${PROJECTS_DIR}/${PROJECT_NAME}/.gitignore"
|
|
else
|
|
# Crear .gitignore básico si no existe template
|
|
cat > "${PROJECTS_DIR}/${PROJECT_NAME}/.gitignore" << 'GITIGNORE'
|
|
# Dependencias
|
|
**/node_modules/
|
|
|
|
# Build
|
|
**/dist/
|
|
**/build/
|
|
|
|
# Environment
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
|
|
# Logs
|
|
**/*.log
|
|
**/logs/
|
|
|
|
# IDE
|
|
.idea/
|
|
.vscode/*
|
|
!.vscode/settings.json
|
|
|
|
# OS
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# Temp
|
|
**/tmp/
|
|
**/*.tmp
|
|
**/*.cache
|
|
|
|
# Claude Code
|
|
.claude/
|
|
|
|
# Backups
|
|
*.backup
|
|
*.bak
|
|
GITIGNORE
|
|
fi
|
|
|
|
# Crear .editorconfig
|
|
cat > "${PROJECTS_DIR}/${PROJECT_NAME}/.editorconfig" << 'EOF'
|
|
# EditorConfig - https://editorconfig.org
|
|
root = true
|
|
|
|
[*]
|
|
indent_style = space
|
|
indent_size = 2
|
|
end_of_line = lf
|
|
charset = utf-8
|
|
trim_trailing_whitespace = true
|
|
insert_final_newline = true
|
|
|
|
[*.md]
|
|
trim_trailing_whitespace = false
|
|
|
|
[*.{yml,yaml}]
|
|
indent_size = 2
|
|
|
|
[Makefile]
|
|
indent_style = tab
|
|
EOF
|
|
|
|
echo -e "${GREEN}✓ Proyecto '${PROJECT_NAME}' creado exitosamente${NC}"
|
|
echo ""
|
|
echo -e "${BLUE}Estructura creada:${NC}"
|
|
echo " - apps/ (${PROJECT_TYPE})"
|
|
echo " - docs/ (estándar NEXUS)"
|
|
echo " - orchestration/ (sistema NEXUS)"
|
|
echo " - .gitignore (configurado)"
|
|
echo " - .editorconfig (configurado)"
|
|
echo ""
|
|
echo -e "${BLUE}Próximos pasos:${NC}"
|
|
echo " 1. cd ${PROJECTS_DIR}/${PROJECT_NAME}"
|
|
echo " 2. Editar README.md con descripción del proyecto"
|
|
echo " 3. Definir visión en docs/00-vision-general/"
|
|
echo " 4. Definir contexto en orchestration/00-guidelines/CONTEXTO-PROYECTO.md"
|
|
echo " 5. git init && git add . && git commit -m 'Initial commit'"
|