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
211 lines
4.3 KiB
Markdown
211 lines
4.3 KiB
Markdown
# TEMPLATE: TAREA TÉCNICA
|
|
|
|
**Versión:** 1.1.0
|
|
**Fecha:** 2025-12-08
|
|
**Uso:** Definición de tareas técnicas atómicas
|
|
|
|
---
|
|
|
|
## 🆕 VERIFICACIÓN DE CATÁLOGO (ANTES DE CREAR TAREA)
|
|
|
|
> **OBLIGATORIO verificar si la funcionalidad ya existe en el catálogo global:**
|
|
|
|
```bash
|
|
grep -i "{funcionalidad}" core/catalog/CATALOG-INDEX.yml
|
|
```
|
|
|
|
**Si existe:** Usar `@REUTILIZAR` en lugar de crear desde cero.
|
|
**Funcionalidades catalogadas:** auth, session, rate-limiting, notifications, multi-tenancy, feature-flags, websocket, payments
|
|
|
|
---
|
|
|
|
## {GRUPO}-{NNN}: {Título de la Tarea}
|
|
|
|
### Metadata
|
|
|
|
| Campo | Valor |
|
|
|-------|-------|
|
|
| **ID** | {DB/BE/FE/TEST}-{NNN} |
|
|
| **Tipo** | {Database / Backend / Frontend / Testing / DevOps} |
|
|
| **Historia** | US-{MOD}-{NNN} |
|
|
| **Épica** | {EPIC-ID} |
|
|
| **Prioridad** | {P0 / P1 / P2 / P3} |
|
|
| **Estimación** | {horas} |
|
|
| **Estado** | {Backlog / In Progress / Review / Done / Blocked} |
|
|
| **Asignado a** | {NEXUS-DATABASE / NEXUS-BACKEND / NEXUS-FRONTEND} |
|
|
|
|
---
|
|
|
|
### Descripción
|
|
|
|
{Descripción clara y concisa de lo que debe hacer esta tarea}
|
|
|
|
### Objetivo
|
|
|
|
{Qué se logra al completar esta tarea}
|
|
|
|
---
|
|
|
|
### Especificación Técnica
|
|
|
|
#### Para Database (DB-XXX):
|
|
|
|
**Schema:** `{schema_name}`
|
|
|
|
**Objeto a crear/modificar:**
|
|
```sql
|
|
-- Tipo: {TABLE / FUNCTION / TRIGGER / INDEX / VIEW}
|
|
-- Archivo: apps/{proyecto}/database/ddl/schemas/{schema}/{tipo}/{archivo}.sql
|
|
|
|
{Especificación SQL o pseudocódigo}
|
|
```
|
|
|
|
**Columnas (si es tabla):**
|
|
| Columna | Tipo | Nullable | Default | Descripción |
|
|
|---------|------|----------|---------|-------------|
|
|
| id | UUID | NO | gen_random_uuid() | PK |
|
|
| {col} | {tipo} | {YES/NO} | {default} | {descripción} |
|
|
|
|
**Índices requeridos:**
|
|
- `idx_{tabla}_{columna}`: {propósito}
|
|
|
|
**RLS Policy:**
|
|
```sql
|
|
CREATE POLICY {policy_name} ON {schema}.{tabla}
|
|
USING ({condición});
|
|
```
|
|
|
|
---
|
|
|
|
#### Para Backend (BE-XXX):
|
|
|
|
**Módulo:** `apps/{proyecto}/backend/src/modules/{modulo}/`
|
|
|
|
**Archivo a crear/modificar:**
|
|
- `{archivo}.ts`
|
|
|
|
**Tipo de artefacto:** {Entity / DTO / Service / Controller / Middleware}
|
|
|
|
**Especificación:**
|
|
```typescript
|
|
// Estructura esperada
|
|
{código o pseudocódigo}
|
|
```
|
|
|
|
**Endpoints (si es Controller):**
|
|
| Método | Ruta | Descripción |
|
|
|--------|------|-------------|
|
|
| GET | /api/{resource} | {descripción} |
|
|
|
|
**Validaciones requeridas:**
|
|
- {validación 1}
|
|
- {validación 2}
|
|
|
|
---
|
|
|
|
#### Para Frontend (FE-XXX):
|
|
|
|
**Ubicación:** `apps/{proyecto}/frontend/src/{tipo}/{archivo}.tsx`
|
|
|
|
**Tipo de artefacto:** {Page / Component / Store / Hook / Service}
|
|
|
|
**Props/Interface:**
|
|
```typescript
|
|
interface {Name}Props {
|
|
{prop}: {tipo};
|
|
}
|
|
```
|
|
|
|
**Comportamiento esperado:**
|
|
- {comportamiento 1}
|
|
- {comportamiento 2}
|
|
|
|
**Estados:**
|
|
- Loading: {descripción}
|
|
- Error: {descripción}
|
|
- Success: {descripción}
|
|
|
|
---
|
|
|
|
### Criterios de Aceptación Técnicos
|
|
|
|
- [ ] {Criterio 1}
|
|
- [ ] {Criterio 2}
|
|
- [ ] {Criterio 3}
|
|
|
|
### Validación
|
|
|
|
**Comandos de validación:**
|
|
```bash
|
|
# Database
|
|
psql -d {db} -c "SELECT * FROM {schema}.{tabla} LIMIT 1;"
|
|
|
|
# Backend
|
|
npm run build
|
|
npm run test -- --grep "{pattern}"
|
|
|
|
# Frontend
|
|
npm run build
|
|
npm run test -- --grep "{pattern}"
|
|
```
|
|
|
|
**Resultado esperado:**
|
|
- {resultado esperado}
|
|
|
|
---
|
|
|
|
### Dependencias
|
|
|
|
**Requiere completadas:**
|
|
- [ ] {GRUPO}-{NNN}: {descripción}
|
|
|
|
**Bloquea:**
|
|
- [ ] {GRUPO}-{NNN}: {descripción}
|
|
|
|
---
|
|
|
|
### Archivos a Crear/Modificar
|
|
|
|
**Crear:**
|
|
- `{ruta/archivo}` - {descripción}
|
|
|
|
**Modificar:**
|
|
- `{ruta/archivo}` - {cambios}
|
|
|
|
---
|
|
|
|
### Definition of Done
|
|
|
|
- [ ] 🆕 Verificó @CATALOG antes de implementar
|
|
- [ ] 🆕 Si usó catálogo: siguió SIMCO-REUTILIZAR.md
|
|
- [ ] Código implementado
|
|
- [ ] Compilación sin errores
|
|
- [ ] Tests pasando
|
|
- [ ] Comentarios/documentación agregados
|
|
- [ ] Code review (si aplica)
|
|
- [ ] Inventario actualizado
|
|
- [ ] Traza registrada
|
|
|
|
---
|
|
|
|
### Notas
|
|
|
|
{Consideraciones especiales, decisiones técnicas, referencias}
|
|
|
|
---
|
|
|
|
### Log de Ejecución
|
|
|
|
| Fecha/Hora | Acción | Resultado |
|
|
|------------|--------|-----------|
|
|
| {timestamp} | Inicio | - |
|
|
| {timestamp} | {acción} | {resultado} |
|
|
| {timestamp} | Fin | {PASS/FAIL} |
|
|
|
|
---
|
|
|
|
**Asignada por:** {nombre-agente}
|
|
**Fecha asignación:** {YYYY-MM-DD}
|
|
**Fecha completada:** {YYYY-MM-DD}
|
|
**Duración real:** {horas}
|