# Plan de Implementacion - Sistema de Orquestacion

**Fecha:** 2025-12-05
**Basado en:** ANALISIS-SISTEMA-ORQUESTACION.md
**Objetivo:** Implementar sistema de orquestacion generalizado para el workspace

---

## FASE 1: ESTRUCTURA BASE EN CORE

### 1.1 Crear Estructura de Directorios

```bash
# Ejecutar desde ~/workspace/
mkdir -p core/orchestration/{directivas,prompts/base,prompts/templates,templates,checklists}
```

### 1.2 Migrar Directivas Globales

| Archivo Origen (Gamilit) | Archivo Destino (Core) | Modificaciones |
|--------------------------|------------------------|----------------|
| `DIRECTIVA-FLUJO-5-FASES.md` | `directivas/DIRECTIVA-FLUJO-5-FASES.md` | Eliminar refs a Gamilit |
| `DIRECTIVA-VALIDACION-SUBAGENTES.md` | `directivas/DIRECTIVA-VALIDACION-SUBAGENTES.md` | Generalizar paths |
| `DIRECTIVA-DOCUMENTACION-OBLIGATORIA.md` | `directivas/DIRECTIVA-DOCUMENTACION-OBLIGATORIA.md` | Usar variables |
| `DIRECTIVA-CALIDAD-CODIGO.md` | `directivas/DIRECTIVA-CALIDAD-CODIGO.md` | Sin cambios |
| `DIRECTIVA-CONTROL-VERSIONES.md` | `directivas/DIRECTIVA-CONTROL-VERSIONES.md` | Sin cambios |
| `DIRECTIVA-GESTION-BACKUPS-GITIGNORE.md` | `directivas/DIRECTIVA-GESTION-BACKUPS-GITIGNORE.md` | Sin cambios |
| `POLITICAS-USO-AGENTES.md` | `directivas/POLITICAS-USO-AGENTES.md` | Generalizar |
| `PROTOCOLO-ESCALAMIENTO-PO.md` | `directivas/PROTOCOLO-ESCALAMIENTO-PO.md` | Sin cambios |
| `SISTEMA-RETROALIMENTACION-MEJORA-CONTINUA.md` | `directivas/SISTEMA-RETROALIMENTACION.md` | Generalizar |
| `ESTANDARES-NOMENCLATURA.md` | `directivas/ESTANDARES-NOMENCLATURA-BASE.md` | Crear template |

### 1.3 Migrar Prompts Base

| Archivo Origen | Archivo Destino | Modificaciones |
|----------------|-----------------|----------------|
| `PROMPT-SUBAGENTES.md` | `prompts/base/PROMPT-SUBAGENTES-BASE.md` | Usar variables {PROJECT} |
| `PROMPT-BUG-FIXER.md` | `prompts/base/PROMPT-BUG-FIXER.md` | Generalizar |
| `PROMPT-CODE-REVIEWER.md` | `prompts/base/PROMPT-CODE-REVIEWER.md` | Sin cambios |
| `PROMPT-FEATURE-DEVELOPER.md` | `prompts/base/PROMPT-FEATURE-DEVELOPER.md` | Generalizar |
| `PROMPT-POLICY-AUDITOR.md` | `prompts/base/PROMPT-POLICY-AUDITOR.md` | Generalizar |
| `PROMPT-DOCUMENTATION-VALIDATOR.md` | `prompts/base/PROMPT-DOCUMENTATION-VALIDATOR.md` | Generalizar |
| `PROMPT-REQUIREMENTS-ANALYST.md` | `prompts/base/PROMPT-REQUIREMENTS-ANALYST.md` | Generalizar |
| `PROMPT-WORKSPACE-MANAGER.md` | `prompts/base/PROMPT-WORKSPACE-MANAGER.md` | Generalizar |

### 1.4 Crear Templates de Prompts Especificos

| Template | Proposito | Variables |
|----------|-----------|-----------|
| `TEMPLATE-PROMPT-DATABASE-AGENT.md` | Para agente de BD | DB_SCHEMAS, DATABASE_PATH |
| `TEMPLATE-PROMPT-BACKEND-AGENT.md` | Para agente backend | BACKEND_MODULES, BACKEND_PATH |
| `TEMPLATE-PROMPT-FRONTEND-AGENT.md` | Para agente frontend | FRONTEND_PATH, COMPONENTS |
| `TEMPLATE-PROMPT-ARCHITECTURE-ANALYST.md` | Para arquitecto | DOCS_PATH, PROJECT_NAME |

### 1.5 Migrar Templates de Documentacion

| Archivo Origen | Archivo Destino |
|----------------|-----------------|
| `TEMPLATE-CONTEXTO-SUBAGENTE.md` | `templates/TEMPLATE-CONTEXTO-SUBAGENTE.md` |
| `TEMPLATE-ANALISIS.md` | `templates/TEMPLATE-ANALISIS.md` |
| `TEMPLATE-PLAN.md` | `templates/TEMPLATE-PLAN.md` |
| `TEMPLATE-VALIDACION.md` | `templates/TEMPLATE-VALIDACION.md` |
| (nuevo) | `templates/TEMPLATE-INVENTARIO.yml` |
| (nuevo) | `templates/TEMPLATE-TRAZA.md` |
| (nuevo) | `templates/TEMPLATE-ESTADO.json` |

### 1.6 Migrar Checklists

| Archivo Origen | Archivo Destino |
|----------------|-----------------|
| `CHECKLIST-CODE-REVIEW-API.md` | `checklists/CHECKLIST-CODE-REVIEW-API.md` |
| `CHECKLIST-REFACTORIZACION.md` | `checklists/CHECKLIST-REFACTORIZACION.md` |
| (extraer de validacion) | `checklists/CHECKLIST-VALIDACION-SUBAGENTES.md` |
| (nuevo) | `checklists/CHECKLIST-PRE-COMMIT.md` |

---

## FASE 2: IMPLEMENTAR EN GAMILIT

### 2.1 Crear Directivas Especificas

Las directivas de Gamilit que ya existen se mantienen pero se adaptan:

```
projects/gamilit/orchestration/directivas/
├── DIRECTIVA-DISENO-BASE-DATOS.md      # Ya existe, adaptar
├── DIRECTIVA-POLITICA-CARGA-LIMPIA.md  # Ya existe, mantener
├── ESTANDARES-NOMENCLATURA-GAMILIT.md  # Crear desde existente
└── ESTANDARES-API-ROUTES.md            # Ya existe, mantener
```

### 2.2 Crear Prompts Especificos

Generar desde templates de core usando variables del proyecto:

```
projects/gamilit/orchestration/prompts/
├── PROMPT-DATABASE-AGENT.md       # Generado desde template
├── PROMPT-BACKEND-AGENT.md        # Generado desde template
├── PROMPT-FRONTEND-AGENT.md       # Generado desde template
├── PROMPT-ARCHITECTURE-ANALYST.md # Generado desde template
└── PROMPT-DATABASE-AUDITOR.md     # Especifico de Gamilit
```

### 2.3 Crear CONTEXTO-PROYECTO.md

```yaml
# projects/gamilit/orchestration/00-guidelines/CONTEXTO-PROYECTO.md

PROJECT:
  name: "gamilit"
  type: "edtech"
  description: "Sistema de Gamificacion Educativa para Lectoescritura"

STACK:
  backend:
    framework: "NestJS"
    version: "11.x"
    orm: "TypeORM"
    language: "TypeScript"
  frontend:
    framework: "React"
    version: "19.x"
    state: "Zustand"
    language: "TypeScript"
  database:
    type: "PostgreSQL"
    version: "16.x"
    extensions:
      - "uuid-ossp"
      - "pgcrypto"

PATHS:
  apps: "apps/"
  backend: "apps/backend/"
  frontend: "apps/frontend/"
  database: "apps/database/"
  docs: "docs/"
  orchestration: "orchestration/"

DATABASE:
  schemas:
    - name: "auth_management"
      description: "Autenticacion y usuarios"
    - name: "gamification_system"
      description: "Sistema de gamificacion"
    - name: "educational_content"
      description: "Contenido educativo"
    - name: "teacher_portal"
      description: "Portal de profesores"
    - name: "student_portal"
      description: "Portal de estudiantes"
    - name: "admin_portal"
      description: "Portal de administracion"
    - name: "notification_system"
      description: "Sistema de notificaciones"
    - name: "reporting"
      description: "Reportes y analitica"

BACKEND_MODULES:
  - auth
  - users
  - gamification
  - educational
  - teachers
  - students
  - admin
  - notifications
  - reports

DIRECTIVAS_ESPECIFICAS:
  - orchestration/directivas/DIRECTIVA-DISENO-BASE-DATOS.md
  - orchestration/directivas/DIRECTIVA-POLITICA-CARGA-LIMPIA.md

DIRECTIVAS_GLOBALES:
  - core/orchestration/directivas/DIRECTIVA-FLUJO-5-FASES.md
  - core/orchestration/directivas/DIRECTIVA-VALIDACION-SUBAGENTES.md
  - core/orchestration/directivas/POLITICAS-USO-AGENTES.md
```

### 2.4 Migrar Estructura de Agentes

La estructura actual de `agentes/` se mantiene:

```
orchestration/agentes/
├── database/
│   └── {TAREA-ID}/
│       ├── 01-ANALISIS.md
│       ├── 02-PLAN.md
│       ├── 03-EJECUCION.md
│       ├── 04-VALIDACION.md
│       └── 05-DOCUMENTACION.md
├── backend/
├── frontend/
├── architecture-analyst/
└── workspace-manager/
```

---

## FASE 3: ACTUALIZAR BOOTSTRAP-PROJECT.SH

### 3.1 Modificar Script de Bootstrap

Agregar creacion de estructura de orchestration:

```bash
# En bootstrap-project.sh

# Crear estructura de orchestration
echo "Creando estructura de orquestacion..."
mkdir -p "${PROJECTS_DIR}/${PROJECT_NAME}/orchestration"/{00-guidelines,directivas,prompts,agentes,estados,inventarios,trazas,reportes,templates}

# Crear CONTEXTO-PROYECTO.md desde template
cat > "${PROJECTS_DIR}/${PROJECT_NAME}/orchestration/00-guidelines/CONTEXTO-PROYECTO.md" << EOF
# Contexto del Proyecto - ${PROJECT_NAME}

## Identificacion
| Campo | Valor |
|-------|-------|
| **Nombre** | ${PROJECT_NAME} |
| **Tipo** | ${PROJECT_TYPE} |
| **Creado** | $(date +%Y-%m-%d) |

## Stack Tecnologico
[Pendiente de definir segun tipo de proyecto]

## Paths de Trabajo
\`\`\`
~/workspace/projects/${PROJECT_NAME}/
├── apps/           → Codigo fuente
├── docs/           → Documentacion
└── orchestration/  → Orquestacion
\`\`\`

## Directivas
### Globales (heredadas de core)
- core/orchestration/directivas/DIRECTIVA-FLUJO-5-FASES.md
- core/orchestration/directivas/POLITICAS-USO-AGENTES.md

### Especificas (definir segun proyecto)
- orchestration/directivas/
EOF

# Copiar plantillas de inventarios desde core
cp "${WORKSPACE_ROOT}/core/orchestration/templates/TEMPLATE-INVENTARIO.yml" \
   "${PROJECTS_DIR}/${PROJECT_NAME}/orchestration/inventarios/MASTER_INVENTORY.yml"

# Crear estados iniciales
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
```

---

## FASE 4: DOCUMENTACION

### 4.1 Crear README Principal

```
core/orchestration/README.md
```

Contenido:
- Explicacion del sistema de orquestacion
- Como heredan los proyectos
- Guia de uso para agentes
- Referencias a directivas

### 4.2 Crear Guias Rapidas

```
core/orchestration/
├── GUIA-RAPIDA-ORQUESTACION.md
├── GUIA-NUEVO-PROYECTO.md
└── GUIA-CREACION-PROMPTS.md
```

---

## FASE 5: VALIDACION

### 5.1 Validar con Gamilit

- [ ] Ejecutar todas las tareas con nuevo sistema
- [ ] Verificar que directivas globales aplican correctamente
- [ ] Verificar que prompts especificos funcionan
- [ ] Validar herencia de configuracion

### 5.2 Probar con Proyecto Nuevo

- [ ] Crear proyecto de prueba con bootstrap-project.sh
- [ ] Verificar estructura generada
- [ ] Ejecutar tarea simple con agente
- [ ] Validar que hereda directivas de core

---

## CRONOGRAMA SUGERIDO

| Fase | Descripcion | Prioridad |
|------|-------------|-----------|
| 1.1 | Crear estructura directorios | P0 |
| 1.2 | Migrar directivas globales | P0 |
| 1.3 | Migrar prompts base | P0 |
| 1.4 | Crear templates de prompts | P1 |
| 1.5 | Migrar templates documentacion | P1 |
| 1.6 | Migrar checklists | P2 |
| 2.1-2.4 | Implementar en Gamilit | P0 |
| 3.1 | Actualizar bootstrap-project.sh | P1 |
| 4.1-4.2 | Documentacion | P2 |
| 5.1-5.2 | Validacion | P0 |

---

## COMANDOS DE IMPLEMENTACION

### Paso 1: Crear estructura en core

```bash
cd ~/workspace

# Crear directorios
mkdir -p core/orchestration/{directivas,prompts/base,prompts/templates,templates,checklists}
```

### Paso 2: Copiar directivas globales

```bash
GAMILIT_ORCH="/home/isem/workspace-old/wsl-ubuntu/workspace/workspace-gamilit/gamilit/projects/gamilit/orchestration"

# Directivas globales
cp "$GAMILIT_ORCH/directivas/DIRECTIVA-FLUJO-5-FASES.md" core/orchestration/directivas/
cp "$GAMILIT_ORCH/directivas/DIRECTIVA-VALIDACION-SUBAGENTES.md" core/orchestration/directivas/
cp "$GAMILIT_ORCH/directivas/DIRECTIVA-DOCUMENTACION-OBLIGATORIA.md" core/orchestration/directivas/
cp "$GAMILIT_ORCH/directivas/DIRECTIVA-CALIDAD-CODIGO.md" core/orchestration/directivas/
cp "$GAMILIT_ORCH/directivas/DIRECTIVA-CONTROL-VERSIONES.md" core/orchestration/directivas/
cp "$GAMILIT_ORCH/directivas/DIRECTIVA-GESTION-BACKUPS-GITIGNORE.md" core/orchestration/directivas/
cp "$GAMILIT_ORCH/directivas/POLITICAS-USO-AGENTES.md" core/orchestration/directivas/
cp "$GAMILIT_ORCH/directivas/PROTOCOLO-ESCALAMIENTO-PO.md" core/orchestration/directivas/
cp "$GAMILIT_ORCH/directivas/SISTEMA-RETROALIMENTACION-MEJORA-CONTINUA.md" core/orchestration/directivas/
cp "$GAMILIT_ORCH/directivas/ESTANDARES-NOMENCLATURA.md" core/orchestration/directivas/ESTANDARES-NOMENCLATURA-BASE.md
```

### Paso 3: Copiar prompts base

```bash
# Prompts base
cp "$GAMILIT_ORCH/prompts/PROMPT-SUBAGENTES.md" core/orchestration/prompts/base/PROMPT-SUBAGENTES-BASE.md
cp "$GAMILIT_ORCH/prompts/PROMPT-BUG-FIXER.md" core/orchestration/prompts/base/
cp "$GAMILIT_ORCH/prompts/PROMPT-CODE-REVIEWER.md" core/orchestration/prompts/base/
cp "$GAMILIT_ORCH/prompts/PROMPT-FEATURE-DEVELOPER.md" core/orchestration/prompts/base/
cp "$GAMILIT_ORCH/prompts/PROMPT-POLICY-AUDITOR.md" core/orchestration/prompts/base/
cp "$GAMILIT_ORCH/prompts/PROMPT-DOCUMENTATION-VALIDATOR.md" core/orchestration/prompts/base/
cp "$GAMILIT_ORCH/prompts/PROMPT-REQUIREMENTS-ANALYST.md" core/orchestration/prompts/base/
cp "$GAMILIT_ORCH/prompts/PROMPT-WORKSPACE-MANAGER.md" core/orchestration/prompts/base/
```

### Paso 4: Copiar templates

```bash
# Templates
cp "$GAMILIT_ORCH/templates/"* core/orchestration/templates/
```

### Paso 5: Copiar checklists

```bash
# Checklists
cp "$GAMILIT_ORCH/directivas/CHECKLIST-CODE-REVIEW-API.md" core/orchestration/checklists/
cp "$GAMILIT_ORCH/directivas/CHECKLIST-REFACTORIZACION.md" core/orchestration/checklists/
```

### Paso 6: Actualizar orchestration de Gamilit

```bash
# Copiar estructura existente a nuevo proyecto
cp -r "$GAMILIT_ORCH"/* projects/gamilit/orchestration/

# Reorganizar segun nueva estructura
mkdir -p projects/gamilit/orchestration/00-guidelines
```

---

## NOTAS IMPORTANTES

1. **No eliminar archivos de Gamilit original** hasta validar que el nuevo sistema funciona

2. **Mantener compatibilidad** - Los agentes deben poder funcionar con el sistema actual mientras se migra

3. **Documentar todo** - Cada cambio debe estar documentado para referencia futura

4. **Probar incrementalmente** - No migrar todo de una vez, hacer por fases

---

**Autor:** Claude Code - Architecture Analyst
**Version:** 1.0.0
**Fecha:** 2025-12-05
