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
558 lines
14 KiB
Markdown
558 lines
14 KiB
Markdown
# CONTEXTO PARA SUBAGENTE: {TAREA-ID}-SUB-{N}
|
|
|
|
**Agente Principal:** {Database-Agent | Backend-Agent | Frontend-Agent}
|
|
**Tarea Principal:** {TAREA-ID} - {Nombre de la tarea}
|
|
**Fecha:** {YYYY-MM-DD}
|
|
|
|
---
|
|
|
|
## ⚠️ INSTRUCCIONES PARA AGENTE PRINCIPAL
|
|
|
|
**Este template define el contexto MÍNIMO que debes proporcionar al subagente.**
|
|
|
|
Si omites cualquier sección, el subagente puede:
|
|
- ❌ Cometer errores por asumir valores
|
|
- ❌ Crear duplicados por no verificar correctamente
|
|
- ❌ Usar convenciones incorrectas
|
|
- ❌ Reportar trabajo incompleto
|
|
|
|
**Completa TODAS las secciones antes de lanzar el subagente.**
|
|
|
|
---
|
|
|
|
## 1. IDENTIFICACIÓN DE LA TAREA
|
|
|
|
```yaml
|
|
# Información básica del subagente
|
|
tarea_id: "{TAREA-ID}-SUB-{N}" # ej: DB-042-SUB-001
|
|
agente_principal: "{Tu nombre}" # ej: Database-Agent
|
|
tarea_principal: "{TAREA-ID}" # ej: DB-042 - Crear módulo de Proyectos
|
|
subtarea: "{Descripción breve}" # ej: Crear tabla projects
|
|
prioridad: "P0 | P1 | P2 | P3"
|
|
duracion_estimada: "{X} horas" # ej: 1.5 horas
|
|
fecha_inicio: "{YYYY-MM-DD HH:MM}"
|
|
```
|
|
|
|
---
|
|
|
|
## 2. OBJETIVO ESPECÍFICO
|
|
|
|
### Descripción del Objetivo
|
|
|
|
```markdown
|
|
## Objetivo Principal
|
|
{Descripción clara y específica de lo que debe hacer el subagente}
|
|
|
|
Ejemplo:
|
|
Crear la tabla `projects` en el schema `gamification_system`
|
|
con soporte para geolocalización (PostGIS) y jerarquía de proyectos.
|
|
```
|
|
|
|
### Especificaciones Detalladas
|
|
|
|
**Para Database (DDL):**
|
|
```markdown
|
|
### Tabla a Crear
|
|
- **Nombre:** {nombre_tabla}
|
|
- **Schema:** {nombre_schema}
|
|
- **Descripción:** {propósito de la tabla}
|
|
|
|
### Columnas Requeridas (TODAS)
|
|
| Nombre | Tipo | Constraints | Default | Descripción |
|
|
|--------|------|-------------|---------|-------------|
|
|
| id | UUID | PK, NOT NULL | gen_random_uuid() | Identificador único |
|
|
| code | VARCHAR(50) | UNIQUE, NOT NULL | - | Código del proyecto |
|
|
| name | VARCHAR(200) | NOT NULL | - | Nombre del proyecto |
|
|
| {...} | {tipo} | {constraints} | {default} | {descripción} |
|
|
|
|
### Índices Requeridos (TODOS)
|
|
| Nombre | Columnas | Tipo | Condición |
|
|
|--------|----------|------|-----------|
|
|
| idx_{tabla}_{columna} | {columna} | BTREE | - |
|
|
| idx_{tabla}_{col1}_{col2} | {col1, col2} | BTREE | - |
|
|
| idx_{tabla}_geo | {columna_geo} | GIST | - |
|
|
|
|
### Constraints Requeridos (TODOS)
|
|
| Tipo | Nombre | Definición |
|
|
|------|--------|------------|
|
|
| FK | fk_{tabla}_to_{tabla_ref} | FOREIGN KEY ({col}) REFERENCES {schema}.{tabla}({col}) |
|
|
| CHECK | chk_{tabla}_{columna} | CHECK ({columna} IN ('valor1', 'valor2')) |
|
|
|
|
### Comentarios SQL Obligatorios
|
|
- Comentario de tabla: "{descripción completa}"
|
|
- Comentarios de columnas importantes: {lista de columnas que DEBEN tener comentario}
|
|
```
|
|
|
|
**Para Backend (Entity/Service/Controller):**
|
|
```markdown
|
|
### Entity a Crear
|
|
- **Nombre:** {NombreEntity}
|
|
- **Tabla:** {schema}.{tabla}
|
|
- **Descripción:** {propósito}
|
|
|
|
### Properties Requeridas (TODAS)
|
|
| Property | Tipo TS | Decorator TypeORM | Validaciones | Descripción |
|
|
|----------|---------|-------------------|--------------|-------------|
|
|
| id | string | @PrimaryGeneratedColumn('uuid') | - | ID único |
|
|
| code | string | @Column({ type: 'varchar', length: 50, unique: true }) | @IsNotEmpty() | Código único |
|
|
| {...} | {tipo} | {decorator} | {validaciones} | {descripción} |
|
|
|
|
### Relaciones Requeridas
|
|
| Property | Tipo | Relación | Target Entity | Cascade |
|
|
|----------|------|----------|---------------|---------|
|
|
| createdBy | UserEntity | @ManyToOne | UserEntity | false |
|
|
| developments | DevelopmentEntity[] | @OneToMany | DevelopmentEntity | true |
|
|
|
|
### Métodos Requeridos (si Service)
|
|
- {nombreMetodo}({params}): {returnType} - {descripción}
|
|
```
|
|
|
|
**Para Frontend (Componente/Página):**
|
|
```markdown
|
|
### Componente/Página a Crear
|
|
- **Nombre:** {NombreComponente}
|
|
- **Ubicación:** {ruta completa}
|
|
- **Tipo:** Page | Component | Form
|
|
- **Descripción:** {propósito}
|
|
|
|
### Props Requeridas
|
|
| Prop | Tipo | Required | Default | Descripción |
|
|
|------|------|----------|---------|-------------|
|
|
| {nombre} | {tipo} | ✅ | - | {descripción} |
|
|
|
|
### State Requerido (si es Page)
|
|
- {variable}: {tipo} - {descripción}
|
|
|
|
### API Endpoints que Consume
|
|
- GET {endpoint} - {descripción}
|
|
- POST {endpoint} - {descripción}
|
|
|
|
### Componentes que Usa
|
|
- {Componente1} - {propósito}
|
|
- {Componente2} - {propósito}
|
|
```
|
|
|
|
---
|
|
|
|
## 3. UBICACIÓN DE ARCHIVOS
|
|
|
|
### Archivo(s) a Crear
|
|
|
|
```markdown
|
|
**OBLIGATORIO - Ubicaciones EXACTAS:**
|
|
|
|
1. **Archivo principal:**
|
|
- Ruta COMPLETA: `{ruta completa desde raíz}`
|
|
- Nombre EXACTO: `{nombre del archivo}`
|
|
- Ejemplo: `apps/database/ddl/schemas/gamification_system/tables/01-user_points.sql`
|
|
|
|
2. **Archivos adicionales** (si aplica):
|
|
- Ruta: `{ruta}`
|
|
- Nombre: `{nombre}`
|
|
|
|
❌ PROHIBIDO crear en otras ubicaciones
|
|
❌ PROHIBIDO cambiar nombres de archivos
|
|
```
|
|
|
|
### Archivos a Modificar (si aplica)
|
|
|
|
```markdown
|
|
**Si debes MODIFICAR archivos existentes:**
|
|
|
|
1. **Archivo:**
|
|
- Ruta: `{ruta completa}`
|
|
- Modificación: {descripción de qué modificar}
|
|
- Ejemplo: Agregar constante `PROJECTS: 'user_points'` en DB_TABLES.PROJECT_MANAGEMENT
|
|
|
|
❌ NO modificar archivos no especificados
|
|
```
|
|
|
|
---
|
|
|
|
## 4. ARCHIVOS DE REFERENCIA
|
|
|
|
### Templates Obligatorios
|
|
|
|
```markdown
|
|
**Debes CONSULTAR estos archivos antes de empezar:**
|
|
|
|
1. **Template principal:**
|
|
- Archivo: `{ruta del template}`
|
|
- Usar como: {plantilla de estructura | referencia de formato | ejemplo de patrón}
|
|
- Ejemplo: `apps/database/ddl/schemas/auth_management/tables/01-users.sql`
|
|
|
|
2. **Template secundario:**
|
|
- Archivo: `{ruta}`
|
|
- Usar como: {propósito}
|
|
|
|
**Objetivo:** Mantener consistencia de formato y convenciones.
|
|
```
|
|
|
|
### Inventarios a Consultar
|
|
|
|
```markdown
|
|
**Verificación OBLIGATORIA de anti-duplicación:**
|
|
|
|
1. **Inventario maestro:**
|
|
- Archivo: `orchestration/inventarios/MASTER_INVENTORY.yml`
|
|
- Buscar: `{palabra clave}`
|
|
- Resultado esperado: NO ENCONTRADO
|
|
|
|
2. **Inventario específico:**
|
|
- Archivo: `orchestration/inventarios/{TIPO}_INVENTORY.yml`
|
|
- Buscar: `{palabra clave}`
|
|
- Resultado esperado: NO ENCONTRADO
|
|
|
|
**Acción si ENCONTRADO:** DETENER y reportar duplicación.
|
|
```
|
|
|
|
### Documentación del Proyecto
|
|
|
|
```markdown
|
|
**Contexto del módulo/feature:**
|
|
|
|
1. **MVP-APP.md:**
|
|
- Sección: {número y nombre de sección}
|
|
- Página/líneas: {referencia}
|
|
- Información relevante: {resumen de lo que debe leer}
|
|
|
|
2. **ADR (si aplica):**
|
|
- Archivo: `docs/97-adr/ADR-{XXX}-{tema}.md`
|
|
- Decisiones relevantes: {lista}
|
|
|
|
3. **Requerimiento (si aplica):**
|
|
- Archivo: `docs/01-requerimientos/{archivo}.md`
|
|
- Criterios de aceptación: {lista}
|
|
```
|
|
|
|
### Estándares y Convenciones
|
|
|
|
```markdown
|
|
**Documentos de estándares:**
|
|
|
|
1. **Estándares de nomenclatura:**
|
|
- Archivo: `orchestration/directivas/ESTANDARES-NOMENCLATURA.md`
|
|
- Sección relevante: {sección específica}
|
|
|
|
2. **Prompt de agentes:**
|
|
- Archivo: `orchestration/prompts/PROMPT-AGENTES-PRINCIPALES.md`
|
|
- Sección: {sección con estándares de código}
|
|
```
|
|
|
|
---
|
|
|
|
## 5. RESTRICCIONES Y REGLAS
|
|
|
|
### Nomenclatura OBLIGATORIA
|
|
|
|
```markdown
|
|
**Nombres que DEBES usar (NO cambiar):**
|
|
|
|
**Archivos:**
|
|
- Nombre: `{nombre exacto}` (ej: `01-user_points.sql`)
|
|
- Patrón: {patrón si aplica} (ej: prefijo numérico secuencial)
|
|
|
|
**Objetos de código:**
|
|
- Tabla/Entity/Componente: `{nombre exacto}` (ej: `projects`, `ProjectEntity`, `ProjectsPage`)
|
|
- Convención: {snake_case | PascalCase | camelCase}
|
|
|
|
**Elementos internos:**
|
|
- Índices: `idx_{tabla}_{columna}`
|
|
- Constraints: `fk_{tabla}_to_{tabla_ref}` o `chk_{tabla}_{columna}`
|
|
- Variables: {convención específica}
|
|
|
|
❌ NO usar otros nombres
|
|
❌ NO cambiar convenciones
|
|
```
|
|
|
|
### Restricciones Técnicas
|
|
|
|
```markdown
|
|
**Requisitos técnicos:**
|
|
|
|
1. **Tipos de datos:**
|
|
- {Campo}: DEBE ser {tipo específico}
|
|
- Razón: {justificación}
|
|
|
|
2. **Validaciones:**
|
|
- {Campo}: DEBE validar {validación}
|
|
- Implementar con: {mecanismo}
|
|
|
|
3. **Performance:**
|
|
- Índices obligatorios: {lista}
|
|
- Optimizaciones: {lista}
|
|
```
|
|
|
|
### Prohibiciones ABSOLUTAS
|
|
|
|
```markdown
|
|
❌ **PROHIBIDO:**
|
|
|
|
1. Crear carpetas `orchestration/` dentro de `apps/`, `docs/` u otras ubicaciones
|
|
2. Modificar archivos no especificados en este contexto
|
|
3. Agregar columnas/properties no solicitadas
|
|
4. Omitir índices/validaciones especificadas
|
|
5. Cambiar nombres de archivos/objetos
|
|
6. Asumir valores no especificados (PREGUNTAR si falta algo)
|
|
7. Reportar sin validar localmente
|
|
8. Omitir actualización de inventarios
|
|
```
|
|
|
|
---
|
|
|
|
## 6. CRITERIOS DE ACEPTACIÓN
|
|
|
|
### Checklist de Validación
|
|
|
|
```markdown
|
|
**El Agente Principal validará lo siguiente:**
|
|
|
|
**Archivos:**
|
|
- [ ] Archivo creado en ubicación EXACTA especificada
|
|
- [ ] Nombre de archivo EXACTO
|
|
- [ ] Formato consistente con template de referencia
|
|
|
|
**Especificaciones:**
|
|
- [ ] TODAS las columnas/properties especificadas implementadas
|
|
- [ ] TODOS los índices creados
|
|
- [ ] TODOS los constraints aplicados
|
|
- [ ] Tipos de datos EXACTOS
|
|
- [ ] Validaciones implementadas
|
|
|
|
**Código:**
|
|
- [ ] Sintaxis válida (compila/ejecuta sin errores)
|
|
- [ ] Comentarios/JSDoc incluidos
|
|
- [ ] Convenciones seguidas al 100%
|
|
|
|
**Documentación:**
|
|
- [ ] Inventario actualizado correctamente
|
|
- [ ] Traza documentada
|
|
- [ ] Reporte generado
|
|
|
|
**Anti-Duplicación:**
|
|
- [ ] NO se crearon objetos duplicados
|
|
- [ ] Verificación documentada en reporte
|
|
|
|
**Si CUALQUIERA falla:** Trabajo rechazado, requiere corrección.
|
|
```
|
|
|
|
### Pruebas que Debes Ejecutar
|
|
|
|
```markdown
|
|
**Validaciones OBLIGATORIAS antes de reportar:**
|
|
|
|
**Database:**
|
|
```bash
|
|
# 1. Compilación
|
|
psql $DATABASE_URL -f {archivo.sql}
|
|
# Resultado esperado: Sin errores
|
|
|
|
# 2. Estructura
|
|
psql $DATABASE_URL -c "\d {schema}.{tabla}"
|
|
# Verificar: {N} columnas, {M} índices
|
|
|
|
# 3. Prueba de insert
|
|
psql $DATABASE_URL -c "INSERT INTO {schema}.{tabla} (...) VALUES (...);"
|
|
# Resultado esperado: Exitoso
|
|
|
|
# 4. Validación de constraints
|
|
{comando para probar constraint}
|
|
# Resultado esperado: Error esperado (constraint funciona)
|
|
```
|
|
|
|
**Backend:**
|
|
```bash
|
|
# 1. Compilación TypeScript
|
|
npm run build
|
|
# Resultado esperado: Exitoso sin errores
|
|
|
|
# 2. Lint
|
|
npm run lint
|
|
# Resultado esperado: Sin errores críticos
|
|
```
|
|
|
|
**Frontend:**
|
|
```bash
|
|
# 1. Compilación
|
|
npm run build
|
|
# Resultado esperado: Exitoso
|
|
|
|
# 2. Renderizado (desarrollo)
|
|
npm run dev
|
|
# Verificar: Componente renderiza sin errores en consola
|
|
```
|
|
|
|
**Resultado:** Documentar en reporte con outputs.
|
|
```
|
|
|
|
---
|
|
|
|
## 7. INFORMACIÓN ADICIONAL
|
|
|
|
### Dependencias
|
|
|
|
```markdown
|
|
**Esta tarea depende de:**
|
|
|
|
1. **Tarea:** {TAREA-ID}
|
|
- Estado actual: ✅ Completado | 🔄 En Progreso | ⏳ Pendiente
|
|
- Artefacto necesario: {archivo/objeto específico}
|
|
- Si NO completado: {acción a tomar}
|
|
|
|
**Esta tarea bloquea:**
|
|
|
|
1. **Tarea:** {TAREA-ID}
|
|
- Razón: {descripción}
|
|
```
|
|
|
|
### Contexto de Negocio
|
|
|
|
```markdown
|
|
**Propósito de esta subtarea en el contexto del módulo:**
|
|
|
|
{Explicación de por qué es importante esta tarea}
|
|
|
|
**Ejemplo:**
|
|
La tabla `projects` es el nivel superior de la jerarquía de obra
|
|
(Proyecto > Desarrollo > Fase > Vivienda) y es fundamental porque
|
|
el 80% de los demás módulos (presupuestos, contratos, compras, avances)
|
|
dependen de ella.
|
|
```
|
|
|
|
### Notas Especiales
|
|
|
|
```markdown
|
|
**Consideraciones especiales:**
|
|
|
|
1. {Nota especial 1}
|
|
2. {Nota especial 2}
|
|
|
|
**Ejemplo:**
|
|
- La columna `coordinates` usa PostGIS GEOGRAPHY, no GEOMETRY
|
|
- El CHECK constraint de `status` debe permitir exactamente 5 valores
|
|
- La relación con `users` debe ser ON DELETE SET NULL, no CASCADE
|
|
```
|
|
|
|
---
|
|
|
|
## 8. TIEMPO Y PRIORIDAD
|
|
|
|
### Estimación
|
|
|
|
```markdown
|
|
**Tiempo estimado:** {X} horas
|
|
|
|
**Desglose:**
|
|
- Verificación contexto: {X} min
|
|
- Anti-duplicación: {Y} min
|
|
- Consulta referencias: {Z} min
|
|
- Desarrollo: {W} min
|
|
- Validación: {V} min
|
|
- Documentación: {U} min
|
|
|
|
**Total:** {suma} = {X} horas
|
|
```
|
|
|
|
### Prioridad
|
|
|
|
```markdown
|
|
**Prioridad:** P0 | P1 | P2 | P3
|
|
|
|
**Urgencia:** {Alta | Media | Baja}
|
|
|
|
**Razón de prioridad:**
|
|
{Explicación de por qué es P0/P1/P2/P3}
|
|
```
|
|
|
|
---
|
|
|
|
## 9. REPORTAR RESULTADOS
|
|
|
|
### Formato de Reporte
|
|
|
|
```markdown
|
|
**Al terminar, genera reporte en:**
|
|
`orchestration/agentes/{grupo}/{TAREA-ID}/03-SUBAGENTES/REPORTE-SUB-{N}.md`
|
|
|
|
**Contenido OBLIGATORIO del reporte:**
|
|
|
|
1. ✅ Resumen ejecutivo (completado/error/con warnings)
|
|
2. ✅ Archivos generados (rutas completas)
|
|
3. ✅ Especificaciones implementadas (tabla comparativa)
|
|
4. ✅ Validaciones realizadas (con outputs)
|
|
5. ✅ Convenciones seguidas (checklist)
|
|
6. ✅ Anti-duplicación verificada (comandos ejecutados)
|
|
7. ✅ Problemas encontrados (si los hay)
|
|
8. ✅ Tiempo real vs estimado
|
|
9. ✅ Solicitud de validación al Agente Principal
|
|
|
|
**Template:** Ver PROMPT-SUBAGENTES.md sección "Paso 8"
|
|
```
|
|
|
|
### Comunicación con Agente Principal
|
|
|
|
```markdown
|
|
**Situaciones que requieren comunicación INMEDIATA:**
|
|
|
|
1. ⚠️ **Duplicación detectada:**
|
|
- Detener trabajo
|
|
- Reportar duplicación encontrada
|
|
- Esperar instrucciones
|
|
|
|
2. ⚠️ **Contexto insuficiente:**
|
|
- Detener trabajo
|
|
- Listar preguntas específicas
|
|
- Esperar clarificación
|
|
|
|
3. ⚠️ **Error no resuelto:**
|
|
- Intentar corrección (máx 2 intentos)
|
|
- Si persiste, reportar error completo
|
|
- Solicitar asistencia
|
|
|
|
4. ⚠️ **Contradicción en referencias:**
|
|
- Detener trabajo
|
|
- Reportar contradicción
|
|
- Solicitar clarificación
|
|
|
|
**NO continuar hasta recibir respuesta del Agente Principal.**
|
|
```
|
|
|
|
---
|
|
|
|
## 10. CHECKLIST PARA AGENTE PRINCIPAL
|
|
|
|
### Antes de Lanzar Subagente
|
|
|
|
```markdown
|
|
**Verifica que proporcionaste:**
|
|
|
|
- [ ] Identificación completa (IDs, nombres, fechas)
|
|
- [ ] Objetivo específico detallado
|
|
- [ ] TODAS las especificaciones (columnas, tipos, validaciones, etc.)
|
|
- [ ] Ubicación EXACTA de archivos
|
|
- [ ] Archivos de referencia (templates, inventarios, docs)
|
|
- [ ] Restricciones y reglas claras
|
|
- [ ] Nomenclatura EXACTA a usar
|
|
- [ ] Criterios de aceptación completos
|
|
- [ ] Pruebas que debe ejecutar
|
|
- [ ] Dependencias identificadas
|
|
- [ ] Contexto de negocio explicado
|
|
- [ ] Estimación de tiempo
|
|
|
|
**Si falta CUALQUIER elemento:** Completar antes de lanzar.
|
|
```
|
|
|
|
---
|
|
|
|
## 📚 REFERENCIAS
|
|
|
|
- [PROMPT-SUBAGENTES.md](../prompts/PROMPT-SUBAGENTES.md) - Prompt completo para subagentes
|
|
- [DIRECTIVA-VALIDACION-SUBAGENTES.md](../directivas/DIRECTIVA-VALIDACION-SUBAGENTES.md) - Proceso de validación
|
|
- [ESTANDARES-NOMENCLATURA.md](../directivas/ESTANDARES-NOMENCLATURA.md) - Convenciones de nombres
|
|
|
|
---
|
|
|
|
**Versión:** 1.0.0
|
|
**Última actualización:** 2025-11-17
|
|
**Uso:** Agentes principales al lanzar subagentes
|