- Move 6 non-standard folders to _archive/ - Update _MAP.md with standardized structure Standard: SIMCO-ESTANDAR-ORCHESTRATION v1.0.0 Level: SUB-CONSUMER Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
830 lines
27 KiB
Markdown
830 lines
27 KiB
Markdown
# SIMCO: CICLO DE VIDA DE TAREAS (CAPVED)
|
|
|
|
**Versión:** 1.1.0
|
|
**Sistema:** SIMCO - Gestión de Tareas con CAPVED
|
|
**Propósito:** Definir el proceso completo para toda HU/Tarea que modifica código o documentación
|
|
**Actualizado:** 2025-12-08
|
|
|
|
---
|
|
|
|
## PRINCIPIO FUNDAMENTAL
|
|
|
|
> **Toda tarea que genera commit DEBE pasar por el ciclo CAPVED completo.**
|
|
> **Si algo aparece fuera del alcance, se registra y genera HU nueva.**
|
|
> **NUEVO: Antes de CAPVED, ejecutar FASE 0 para identificar nivel y contexto.**
|
|
|
|
---
|
|
|
|
## FASE 0: IDENTIFICACIÓN DE NIVEL (NUEVA - CRÍTICA)
|
|
|
|
**OBLIGATORIO antes de iniciar CAPVED**
|
|
|
|
### 0.1 Determinar Nivel Jerárquico
|
|
|
|
```yaml
|
|
Paso_1: Identificar en qué nivel del workspace estás trabajando
|
|
|
|
NIVEL_0_WORKSPACE:
|
|
ruta: "/workspace/orchestration/"
|
|
identificador: "Es directiva global o índice de workspace"
|
|
|
|
NIVEL_1_CORE:
|
|
ruta: "/workspace/core/"
|
|
identificador: "Es funcionalidad de catálogo o directiva"
|
|
|
|
NIVEL_2A_STANDALONE:
|
|
ruta: "/workspace/projects/{proyecto}/"
|
|
identificador: "NO tiene subcarpeta verticales/"
|
|
ejemplos: "gamilit, trading-platform, betting-analytics"
|
|
|
|
NIVEL_2B_SUITE:
|
|
ruta: "/workspace/projects/{suite}/"
|
|
identificador: "TIENE subcarpeta apps/verticales/"
|
|
ejemplo: "erp-suite"
|
|
|
|
NIVEL_2B1_SUITE_CORE:
|
|
ruta: "/workspace/projects/{suite}/apps/erp-core/"
|
|
identificador: "Es el núcleo de la suite"
|
|
|
|
NIVEL_2B2_VERTICAL:
|
|
ruta: "/workspace/projects/{suite}/apps/verticales/{vertical}/"
|
|
identificador: "Es vertical especializada"
|
|
ejemplos: "construccion, vidrio-templado, clinicas, retail"
|
|
|
|
NIVEL_3_CATALOGO:
|
|
ruta: "/workspace/shared/catalog/{funcionalidad}/"
|
|
identificador: "Es funcionalidad reutilizable"
|
|
```
|
|
|
|
### 0.2 Cargar Contexto del Nivel
|
|
|
|
```yaml
|
|
Archivos_a_leer_según_nivel:
|
|
|
|
STANDALONE:
|
|
- orchestration/templates/TEMPLATE-CONTEXTO-PROYECTO.md
|
|
- orchestration/templates/HERENCIA-SIMCO.md
|
|
- orchestration/inventarios/MASTER_INVENTORY.yml
|
|
|
|
VERTICAL:
|
|
- orchestration/templates/TEMPLATE-CONTEXTO-PROYECTO.md
|
|
- orchestration/templates/HERENCIA-SIMCO.md
|
|
- orchestration/templates/HERENCIA-ERP-CORE-TEMPLATE.md
|
|
- orchestration/inventarios/MASTER_INVENTORY.yml
|
|
|
|
SUITE_CORE:
|
|
- orchestration/templates/TEMPLATE-CONTEXTO-PROYECTO.md
|
|
- orchestration/inventarios/MASTER_INVENTORY.yml
|
|
- orchestration/inventarios/DEVENV-MASTER-INVENTORY.yml
|
|
```
|
|
|
|
### 0.3 Identificar Ruta de Propagación
|
|
|
|
```yaml
|
|
Según_tu_nivel_actual:
|
|
|
|
STANDALONE → propagar a:
|
|
- WORKSPACE (orchestration/WORKSPACE-STATUS.md)
|
|
|
|
VERTICAL → propagar a:
|
|
- SUITE (../../../orchestration/inventarios/)
|
|
- WORKSPACE (orchestration/WORKSPACE-STATUS.md)
|
|
|
|
SUITE_CORE → propagar a:
|
|
- SUITE (../../orchestration/inventarios/)
|
|
- WORKSPACE (orchestration/WORKSPACE-STATUS.md)
|
|
- VERTICALES (si afecta herencia)
|
|
|
|
CATALOGO → propagar a:
|
|
- CORE (inventarios/CORE_INVENTORY.yml)
|
|
- CONSUMIDORES (CATALOG-USAGE-TRACKING.yml)
|
|
```
|
|
|
|
### 0.4 Registrar Identificación
|
|
|
|
```yaml
|
|
# Resultado de Fase 0 (incluir en reporte)
|
|
fase_0_identificacion:
|
|
nivel: "{NIVEL_IDENTIFICADO}"
|
|
proyecto: "{NOMBRE}"
|
|
path: "{RUTA_COMPLETA}"
|
|
propagacion_a:
|
|
- "{nivel_superior_1}"
|
|
- "{nivel_superior_2}"
|
|
contexto_cargado:
|
|
- TEMPLATE-CONTEXTO-PROYECTO.md ✓
|
|
- HERENCIA-SIMCO.md ✓
|
|
- MASTER_INVENTORY.yml ✓
|
|
herencia_especifica: "{Si aplica: HERENCIA-ERP-CORE-TEMPLATE.md}"
|
|
```
|
|
|
|
### 0.5 Verificar Catálogo
|
|
|
|
```yaml
|
|
ANTES_de_proceder_a_CAPVED:
|
|
verificar: "¿Lo que voy a crear existe en @CATALOG?"
|
|
comando: "Buscar en shared/catalog/CATALOG-INDEX.yml"
|
|
|
|
SI_EXISTE:
|
|
- Leer SIMCO-REUTILIZAR.md
|
|
- Adaptar en lugar de crear
|
|
- Documentar adaptación
|
|
|
|
SI_NO_EXISTE:
|
|
- Proceder con CAPVED normal
|
|
- Considerar contribuir al catálogo al finalizar
|
|
```
|
|
|
|
---
|
|
|
|
## CUÁNDO USAR ESTE SIMCO
|
|
|
|
```yaml
|
|
USAR_SIMCO_TAREA_cuando:
|
|
- Recibes una HU o tarea técnica
|
|
- La tarea involucra modificar código
|
|
- La tarea involucra modificar documentación
|
|
- La tarea generará uno o más commits
|
|
- Cualquier trabajo que no sea puramente exploratorio
|
|
|
|
NO_USAR_cuando:
|
|
- Solo estás investigando/explorando (usa SIMCO-BUSCAR)
|
|
- Solo estás consultando información
|
|
- Es un spike sin implementación
|
|
```
|
|
|
|
---
|
|
|
|
## FLUJO COMPLETO CAPVED
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
│ │
|
|
│ ENTRADA: HU o Tarea Técnica │
|
|
│ │
|
|
│ ┌──────────────────────────────────────────────────────────────────────┐ │
|
|
│ │ FASE C: CONTEXTO (~5 min) │ │
|
|
│ │ ──────────────────────────── │ │
|
|
│ │ 1. Identificar proyecto/módulo/epic │ │
|
|
│ │ 2. Clasificar tipo de tarea │ │
|
|
│ │ 3. Registrar origen │ │
|
|
│ │ 4. Cargar contexto SIMCO (CCA) │ │
|
|
│ │ 5. Vincular documentos relevantes │ │
|
|
│ └──────────────────────────────────────────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ▼ │
|
|
│ ┌──────────────────────────────────────────────────────────────────────┐ │
|
|
│ │ FASE A: ANÁLISIS (~15 min) │ │
|
|
│ │ ────────────────────────── │ │
|
|
│ │ 1. Entender comportamiento deseado (negocio) │ │
|
|
│ │ 2. Identificar restricciones (seguridad/perf/UX) │ │
|
|
│ │ 3. Mapear objetos impactados (BD, BE, FE, otros) │ │
|
|
│ │ 4. Identificar dependencias (HUs bloqueantes/bloqueadas) │ │
|
|
│ │ 5. Detectar riesgos │ │
|
|
│ │ → SALIDA: Reporte de análisis │ │
|
|
│ └──────────────────────────────────────────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ▼ │
|
|
│ ┌──────────────────────────────────────────────────────────────────────┐ │
|
|
│ │ FASE P: PLANEACIÓN (~10 min) │ │
|
|
│ │ ───────────────────────────── │ │
|
|
│ │ 1. Desglosar en subtareas por dominio │ │
|
|
│ │ 2. Establecer orden de ejecución │ │
|
|
│ │ 3. Definir criterios de aceptación │ │
|
|
│ │ 4. Planificar pruebas │ │
|
|
│ │ 5. Asignar agentes/subagentes (si aplica) │ │
|
|
│ │ → SALIDA: Plan de ejecución │ │
|
|
│ └──────────────────────────────────────────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ▼ │
|
|
│ ┌──────────────────────────────────────────────────────────────────────┐ │
|
|
│ │ FASE V: VALIDACIÓN (~5 min) ⚠️ NO DELEGAR │ │
|
|
│ │ ──────────────────────────────────────────── │ │
|
|
│ │ 1. ¿Todo lo de A tiene acción en P? │ │
|
|
│ │ 2. ¿Dependencias resueltas o planificadas? │ │
|
|
│ │ 3. ¿Criterios cubren riesgos? │ │
|
|
│ │ 4. ¿Hay scope creep? → Registrar + crear HU derivada │ │
|
|
│ │ → GATE: Solo pasa si TODO cuadra │ │
|
|
│ └──────────────────────────────────────────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ┌─────────┴─────────┐ │
|
|
│ │ ¿VALIDACIÓN OK? │ │
|
|
│ └─────────┬─────────┘ │
|
|
│ NO │ │ SÍ │
|
|
│ ▼ ▼ │
|
|
│ ┌────────────┐ ┌──────────────────────────────────────────┐ │
|
|
│ │ AJUSTAR │ │ FASE E: EJECUCIÓN (variable) │ │
|
|
│ │ A o P │ │ ───────────────────────────── │ │
|
|
│ │ y volver │ │ 1. Actualizar docs/ PRIMERO │ │
|
|
│ │ a V │ │ 2. Ejecutar subtareas en orden │ │
|
|
│ └────────────┘ │ 3. Validar build/lint por subtarea │ │
|
|
│ │ 4. Registrar progreso │ │
|
|
│ │ 5. Usar SIMCO correspondientes │ │
|
|
│ │ → SALIDA: Código implementado │ │
|
|
│ └──────────────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ▼ │
|
|
│ ┌──────────────────────────────────────────────────────────────────────┐ │
|
|
│ │ FASE D: DOCUMENTACIÓN (~10 min) │ │
|
|
│ │ ─────────────────────────────── │ │
|
|
│ │ 1. Actualizar diagramas/modelos │ │
|
|
│ │ 2. Actualizar specs técnicas │ │
|
|
│ │ 3. Crear ADR (si decisión arquitectónica) │ │
|
|
│ │ 4. Actualizar inventarios │ │
|
|
│ │ 5. Actualizar trazas │ │
|
|
│ │ 6. Vincular HUs derivadas │ │
|
|
│ │ 7. Registrar lecciones aprendidas │ │
|
|
│ │ → GATE: HU NO está Done sin esto │ │
|
|
│ └──────────────────────────────────────────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ▼ │
|
|
│ │
|
|
│ SALIDA: HU Completada, Documentada, Trazable │
|
|
│ │
|
|
└─────────────────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## FASE C: CONTEXTO (Detalle)
|
|
|
|
### C.1 Identificar Proyecto/Módulo/Epic
|
|
|
|
```yaml
|
|
Contexto_Obligatorio:
|
|
proyecto: "{nombre del proyecto}"
|
|
ruta_proyecto: "projects/{proyecto}/"
|
|
modulo: "{nombre del módulo afectado}"
|
|
epic_padre: "{EPIC-ID} - {nombre}"
|
|
feature_padre: "{FEATURE-ID} - {nombre}" # si aplica
|
|
```
|
|
|
|
### C.2 Clasificar Tipo de Tarea
|
|
|
|
```yaml
|
|
Tipos_de_Tarea:
|
|
feature: "Nueva funcionalidad"
|
|
enhancement: "Mejora a funcionalidad existente"
|
|
fix: "Corrección de bug"
|
|
refactor: "Reestructuración sin cambio funcional"
|
|
spike: "Investigación técnica"
|
|
doc-only: "Solo documentación"
|
|
tech-debt: "Pago de deuda técnica"
|
|
security: "Corrección de seguridad"
|
|
performance: "Optimización de rendimiento"
|
|
```
|
|
|
|
### C.3 Registrar Origen
|
|
|
|
```yaml
|
|
Origenes_de_Tarea:
|
|
plan-original: "Parte del plan de proyecto/sprint"
|
|
descubrimiento: "Detectada durante otra tarea"
|
|
incidencia: "Reportada por usuario/QA"
|
|
mejora-continua: "Identificada en retrospectiva"
|
|
dependencia: "Requerida por otra HU"
|
|
```
|
|
|
|
### C.4 Cargar Contexto SIMCO (CCA)
|
|
|
|
```
|
|
Seguir protocolo de SIMCO-INICIALIZACION.md:
|
|
1. Leer principios fundamentales (4 ahora con CAPVED)
|
|
2. Leer perfil del agente
|
|
3. Leer CONTEXTO-PROYECTO.md
|
|
4. Leer inventarios relevantes
|
|
5. Cargar SIMCO de operación según tipo de tarea
|
|
```
|
|
|
|
### C.5 Vincular Documentos Relevantes
|
|
|
|
```yaml
|
|
Documentos_a_Vincular:
|
|
docs_proyecto:
|
|
- "docs/{fase}/{epic}/README.md"
|
|
- "docs/{fase}/{epic}/requerimientos/{archivo}.md"
|
|
- "docs/{fase}/{epic}/especificaciones/{archivo}.md"
|
|
|
|
docs_tecnicos:
|
|
- "docs/95-guias-desarrollo/{relevantes}.md"
|
|
- "docs/97-adr/{relacionados}.md"
|
|
|
|
orchestration:
|
|
- "orchestration/inventarios/{relevantes}.yml"
|
|
- "orchestration/trazas/TRAZA-{tipo}.md"
|
|
```
|
|
|
|
---
|
|
|
|
## FASE A: ANÁLISIS (Detalle)
|
|
|
|
### A.1 Comportamiento Deseado (Negocio)
|
|
|
|
```yaml
|
|
Preguntas_de_Negocio:
|
|
- "¿Qué debe poder hacer el usuario al completar esta HU?"
|
|
- "¿Qué problema de negocio resuelve?"
|
|
- "¿Cuál es el criterio de éxito desde perspectiva de usuario?"
|
|
- "¿Hay casos de uso específicos documentados?"
|
|
|
|
Formato_Respuesta:
|
|
como: "{rol de usuario}"
|
|
quiero: "{acción deseada}"
|
|
para: "{beneficio/valor}"
|
|
```
|
|
|
|
### A.2 Restricciones
|
|
|
|
```yaml
|
|
Restricciones_a_Identificar:
|
|
seguridad:
|
|
- "¿Requiere autenticación?"
|
|
- "¿Requiere autorización por rol?"
|
|
- "¿Maneja datos sensibles?"
|
|
- "¿Aplica RLS?"
|
|
|
|
performance:
|
|
- "¿Volumen esperado de datos?"
|
|
- "¿Tiempo de respuesta esperado?"
|
|
- "¿Requiere paginación?"
|
|
- "¿Requiere caché?"
|
|
|
|
ux:
|
|
- "¿Hay wireframes/mockups?"
|
|
- "¿Estados de carga definidos?"
|
|
- "¿Manejo de errores definido?"
|
|
- "¿Responsive requerido?"
|
|
```
|
|
|
|
### A.3 Mapear Objetos Impactados
|
|
|
|
```yaml
|
|
Objetos_por_Capa:
|
|
database:
|
|
schemas: [] # Schemas afectados
|
|
tablas: [] # Tablas a crear/modificar
|
|
vistas: [] # Vistas afectadas
|
|
funciones: [] # Funciones a crear/modificar
|
|
indices: [] # Índices necesarios
|
|
triggers: [] # Triggers afectados
|
|
rls_policies: [] # Políticas RLS
|
|
|
|
backend:
|
|
modulos: [] # Módulos NestJS
|
|
entities: [] # Entities TypeORM
|
|
services: [] # Services
|
|
controllers: [] # Controllers
|
|
dtos: [] # DTOs (Request/Response)
|
|
guards: [] # Guards de autorización
|
|
pipes: [] # Pipes de validación
|
|
|
|
frontend:
|
|
paginas: [] # Páginas/rutas
|
|
componentes: [] # Componentes React
|
|
hooks: [] # Custom hooks
|
|
stores: [] # Stores Zustand
|
|
types: [] # TypeScript types/interfaces
|
|
services: [] # Services de API
|
|
|
|
otros:
|
|
proyectos: [] # Otros proyectos afectados
|
|
integraciones: [] # Integraciones externas
|
|
jobs: [] # Jobs/colas
|
|
caches: [] # Caché a invalidar
|
|
```
|
|
|
|
### A.4 Identificar Dependencias
|
|
|
|
```yaml
|
|
Dependencias:
|
|
bloquea_a: # Esta HU bloquea a otras
|
|
- hu_id: "HU-XXX"
|
|
razon: "Necesita la tabla que creo"
|
|
|
|
bloqueada_por: # Esta HU depende de otras
|
|
- hu_id: "HU-YYY"
|
|
razon: "Necesito el endpoint de auth"
|
|
estado: "completada | en-progreso | pendiente"
|
|
|
|
relacionadas: # HUs relacionadas (no bloqueo directo)
|
|
- hu_id: "HU-ZZZ"
|
|
relacion: "Mismo módulo"
|
|
```
|
|
|
|
### A.5 Detectar Riesgos
|
|
|
|
```yaml
|
|
Riesgos_Identificados:
|
|
- id: "R1"
|
|
descripcion: "Cambio en tabla users afecta auth de todos los tenants"
|
|
probabilidad: "alta | media | baja"
|
|
impacto: "alto | medio | bajo"
|
|
mitigacion: "Ejecutar en horario de bajo tráfico, tener rollback listo"
|
|
```
|
|
|
|
---
|
|
|
|
## FASE P: PLANEACIÓN (Detalle)
|
|
|
|
### P.1 Desglosar en Subtareas
|
|
|
|
```yaml
|
|
Subtareas:
|
|
documentacion: # SIEMPRE PRIMERO
|
|
- id: "ST-001"
|
|
descripcion: "Actualizar spec de API en docs/"
|
|
artefactos: ["docs/.../.md"]
|
|
|
|
database:
|
|
- id: "ST-002"
|
|
descripcion: "Crear tabla users en schema auth"
|
|
artefactos: ["ddl/schemas/auth/tables/users.sql"]
|
|
agente: "Database-Agent"
|
|
|
|
backend:
|
|
- id: "ST-003"
|
|
descripcion: "Crear UserEntity alineada con DDL"
|
|
artefactos: ["src/modules/users/entities/user.entity.ts"]
|
|
agente: "Backend-Agent"
|
|
depende_de: ["ST-002"]
|
|
|
|
- id: "ST-004"
|
|
descripcion: "Crear UsersService con CRUD"
|
|
artefactos: ["src/modules/users/users.service.ts"]
|
|
agente: "Backend-Agent"
|
|
depende_de: ["ST-003"]
|
|
|
|
frontend:
|
|
- id: "ST-005"
|
|
descripcion: "Crear UserList component"
|
|
artefactos: ["src/components/users/UserList.tsx"]
|
|
agente: "Frontend-Agent"
|
|
depende_de: ["ST-004"]
|
|
|
|
validacion: # SIEMPRE AL FINAL
|
|
- id: "ST-006"
|
|
descripcion: "Validación final build/lint/tests"
|
|
agente: "Ejecutar directamente"
|
|
```
|
|
|
|
### P.2 Orden de Ejecución
|
|
|
|
```
|
|
1. Documentación (docs/ actualizados)
|
|
↓
|
|
2. Database (DDL, migraciones)
|
|
↓
|
|
3. Backend (Entities → Services → Controllers)
|
|
↓
|
|
4. Frontend (Types → Hooks → Components → Pages)
|
|
↓
|
|
5. Validación (build, lint, tests)
|
|
↓
|
|
6. Documentación final (inventarios, trazas)
|
|
```
|
|
|
|
### P.3 Criterios de Aceptación
|
|
|
|
```yaml
|
|
Criterios_de_Aceptacion:
|
|
funcionales:
|
|
- "Usuario puede crear registro"
|
|
- "Usuario puede listar registros con paginación"
|
|
- "Usuario puede editar registro existente"
|
|
- "Usuario puede eliminar registro (soft delete)"
|
|
|
|
tecnicos:
|
|
- "Build pasa sin errores"
|
|
- "Lint pasa sin errores"
|
|
- "Tests unitarios cubren >80%"
|
|
- "API documentada en Swagger"
|
|
|
|
documentacion:
|
|
- "Inventarios actualizados"
|
|
- "Trazas registradas"
|
|
- "ADR creado (si aplica)"
|
|
```
|
|
|
|
### P.4 Plan de Pruebas
|
|
|
|
```yaml
|
|
Plan_de_Pruebas:
|
|
unitarias:
|
|
- "Service: CRUD operations"
|
|
- "Guards: permission checks"
|
|
|
|
integracion:
|
|
- "API: endpoints responden correctamente"
|
|
- "DB: datos persisten correctamente"
|
|
|
|
e2e:
|
|
- "Flujo completo crear-editar-eliminar"
|
|
|
|
regresion:
|
|
- "Auth sigue funcionando"
|
|
- "Otros módulos no afectados"
|
|
```
|
|
|
|
---
|
|
|
|
## FASE V: VALIDACIÓN (Detalle)
|
|
|
|
### V.1 Verificar Cobertura Análisis → Plan
|
|
|
|
```yaml
|
|
Verificacion_Cobertura:
|
|
objetos_database:
|
|
- objeto: "tabla users"
|
|
en_analisis: true
|
|
en_plan: "ST-002"
|
|
✓ CUBIERTO
|
|
|
|
objetos_backend:
|
|
- objeto: "UserEntity"
|
|
en_analisis: true
|
|
en_plan: "ST-003"
|
|
✓ CUBIERTO
|
|
|
|
# Si algo en Análisis NO tiene subtarea en Plan:
|
|
gap_detectado:
|
|
- objeto: "índice en email"
|
|
en_analisis: true
|
|
en_plan: false
|
|
accion: "Agregar subtarea ST-002b"
|
|
```
|
|
|
|
### V.2 Verificar Dependencias
|
|
|
|
```yaml
|
|
Verificacion_Dependencias:
|
|
- hu_dependencia: "HU-YYY"
|
|
estado: "completada"
|
|
✓ LISTA
|
|
|
|
- hu_dependencia: "HU-ZZZ"
|
|
estado: "pendiente"
|
|
⚠️ BLOQUEADOR
|
|
accion: "Esperar o crear subtarea previa"
|
|
```
|
|
|
|
### V.3 Detectar Scope Creep
|
|
|
|
```yaml
|
|
Scope_Creep_Detectado:
|
|
- item: "Se necesita también endpoint de búsqueda"
|
|
parte_de_hu_original: false
|
|
accion: "CREAR HU DERIVADA"
|
|
hu_derivada:
|
|
id: "DERIVED-HU-001-001"
|
|
descripcion: "Endpoint de búsqueda de usuarios"
|
|
prioridad: "P2"
|
|
```
|
|
|
|
### V.4 Gate de Validación
|
|
|
|
```
|
|
CHECKLIST GATE:
|
|
[ ] Todo objeto de Análisis tiene subtarea en Plan
|
|
[ ] Todas las dependencias están resueltas o planificadas
|
|
[ ] Criterios de aceptación cubren todos los riesgos
|
|
[ ] Scope creep registrado y HUs derivadas creadas
|
|
[ ] No hay gaps sin resolver
|
|
|
|
→ Si TODO marcado: PROCEDER A EJECUCIÓN
|
|
→ Si algo falta: VOLVER A AJUSTAR A o P
|
|
```
|
|
|
|
---
|
|
|
|
## FASE E: EJECUCIÓN (Detalle)
|
|
|
|
### E.1 Actualizar docs/ PRIMERO
|
|
|
|
```yaml
|
|
Antes_de_Codigo:
|
|
- Actualizar specs de API
|
|
- Actualizar diagramas de entidades
|
|
- Actualizar documentación de módulo
|
|
- Verificar que docs/ refleja lo que se va a implementar
|
|
```
|
|
|
|
### E.2 Ejecutar Subtareas en Orden
|
|
|
|
Para cada subtarea:
|
|
|
|
```yaml
|
|
Por_Subtarea:
|
|
1_iniciar:
|
|
- Marcar subtarea "en progreso"
|
|
- Cargar SIMCO correspondiente (CREAR/MODIFICAR/DDL/etc)
|
|
|
|
2_implementar:
|
|
- Seguir checklist del SIMCO
|
|
- Aplicar principios (doc-primero, anti-dup, validación)
|
|
- Generar código/cambios
|
|
|
|
3_validar:
|
|
- Ejecutar build
|
|
- Ejecutar lint
|
|
- Verificar que compila
|
|
|
|
4_registrar:
|
|
- Marcar subtarea "completada"
|
|
- Notas de lo implementado
|
|
- Desviaciónes (si las hubo)
|
|
|
|
5_siguiente:
|
|
- Pasar a siguiente subtarea
|
|
```
|
|
|
|
### E.3 Usar SIMCO Correspondientes
|
|
|
|
```yaml
|
|
SIMCO_por_Subtarea:
|
|
crear_tabla: "@SIMCO-CREAR + @SIMCO-DDL"
|
|
crear_entity: "@SIMCO-CREAR + @SIMCO-BACKEND"
|
|
crear_componente: "@SIMCO-CREAR + @SIMCO-FRONTEND"
|
|
modificar_algo: "@SIMCO-MODIFICAR + @SIMCO-{dominio}"
|
|
validar: "@SIMCO-VALIDAR"
|
|
```
|
|
|
|
---
|
|
|
|
## FASE D: DOCUMENTACIÓN (Detalle)
|
|
|
|
### D.1 Actualizar Diagramas/Modelos
|
|
|
|
```yaml
|
|
Diagramas_a_Actualizar:
|
|
- tipo: "ERD"
|
|
ubicacion: "docs/{epic}/diseño/erd.md"
|
|
cambio: "Agregar tabla users"
|
|
|
|
- tipo: "Arquitectura"
|
|
ubicacion: "docs/00-vision-general/arquitectura.md"
|
|
cambio: "Agregar módulo users" # si aplica
|
|
```
|
|
|
|
### D.2 Actualizar Specs Técnicas
|
|
|
|
```yaml
|
|
Specs_a_Actualizar:
|
|
- tipo: "API"
|
|
ubicacion: "docs/{epic}/especificaciones/api-users.md"
|
|
cambio: "Documentar endpoints CRUD"
|
|
|
|
- tipo: "BD"
|
|
ubicacion: "docs/{epic}/especificaciones/modelo-datos.md"
|
|
cambio: "Agregar tabla users"
|
|
```
|
|
|
|
### D.3 Crear ADR (si aplica)
|
|
|
|
```yaml
|
|
ADR_Requerido_Si:
|
|
- "Se tomó decisión arquitectónica importante"
|
|
- "Se eligió tecnología/librería nueva"
|
|
- "Se cambió patrón establecido"
|
|
- "Se hizo trade-off significativo"
|
|
|
|
Ubicacion: "docs/97-adr/ADR-{NNN}-{titulo}.md"
|
|
```
|
|
|
|
### D.4 Actualizar Inventarios
|
|
|
|
```yaml
|
|
Inventarios_a_Actualizar:
|
|
- archivo: "orchestration/inventarios/DATABASE_INVENTORY.yml"
|
|
agregar: "Nueva tabla users en schema auth"
|
|
|
|
- archivo: "orchestration/inventarios/BACKEND_INVENTORY.yml"
|
|
agregar: "Nuevo módulo users"
|
|
|
|
- archivo: "orchestration/inventarios/FRONTEND_INVENTORY.yml"
|
|
agregar: "Nuevo componente UserList"
|
|
```
|
|
|
|
### D.5 Actualizar Trazas
|
|
|
|
```yaml
|
|
Traza_a_Registrar:
|
|
archivo: "orchestration/trazas/TRAZA-TAREAS-{tipo}.md"
|
|
entrada:
|
|
fecha: "2025-12-08"
|
|
hu_id: "HU-001"
|
|
descripcion: "CRUD de usuarios"
|
|
archivos_creados: [lista]
|
|
archivos_modificados: [lista]
|
|
agente: "Backend-Agent"
|
|
duracion: "2h"
|
|
notas: "Sin incidencias"
|
|
```
|
|
|
|
### D.6 Vincular HUs Derivadas
|
|
|
|
```yaml
|
|
HUs_Derivadas:
|
|
- id: "DERIVED-HU-001-001"
|
|
descripcion: "Endpoint de búsqueda de usuarios"
|
|
origen: "HU-001"
|
|
detectado_en: "Fase V - Validación"
|
|
estado: "pendiente"
|
|
prioridad: "P2"
|
|
```
|
|
|
|
### D.7 Registrar Lecciones Aprendidas
|
|
|
|
```yaml
|
|
Lecciones_Aprendidas:
|
|
que_funciono_bien:
|
|
- "Seguir orden DB → BE → FE evitó retrabajos"
|
|
- "Validar contra Swagger antes de FE ahorró tiempo"
|
|
|
|
que_se_puede_mejorar:
|
|
- "Definir tipos compartidos desde el inicio"
|
|
|
|
para_futuras_HUs:
|
|
- "En módulos CRUD, siempre incluir paginación desde V1"
|
|
```
|
|
|
|
### D.8 Gate Final
|
|
|
|
```
|
|
CHECKLIST DOCUMENTACIÓN:
|
|
[ ] Diagramas actualizados
|
|
[ ] Specs técnicas actualizadas
|
|
[ ] ADR creado (si aplica)
|
|
[ ] Inventarios actualizados
|
|
[ ] Trazas registradas
|
|
[ ] HUs derivadas vinculadas
|
|
[ ] Lecciones aprendidas registradas
|
|
|
|
→ Si TODO marcado: HU COMPLETADA
|
|
→ Si algo falta: COMPLETAR ANTES DE CERRAR
|
|
```
|
|
|
|
---
|
|
|
|
## TEMPLATE DE REGISTRO RÁPIDO
|
|
|
|
```yaml
|
|
# Registro CAPVED para HU-{ID}
|
|
# ────────────────────────────
|
|
|
|
hu_id: "HU-XXX"
|
|
titulo: "Título de la HU"
|
|
fecha_inicio: "YYYY-MM-DD"
|
|
fecha_fin: "YYYY-MM-DD"
|
|
|
|
contexto:
|
|
proyecto: ""
|
|
modulo: ""
|
|
epic: ""
|
|
tipo: "feature | fix | refactor | etc"
|
|
origen: "plan | descubrimiento | incidencia"
|
|
|
|
analisis:
|
|
objetos_impactados: N
|
|
dependencias: N
|
|
riesgos: N
|
|
|
|
planeacion:
|
|
subtareas: N
|
|
agentes_asignados: []
|
|
|
|
validacion:
|
|
gaps_detectados: N
|
|
scope_creep: "sí | no"
|
|
hus_derivadas: N
|
|
|
|
ejecucion:
|
|
subtareas_completadas: "N/N"
|
|
build_status: "✓ | ✗"
|
|
lint_status: "✓ | ✗"
|
|
|
|
documentacion:
|
|
inventarios: "✓ | ✗"
|
|
trazas: "✓ | ✗"
|
|
adr: "✓ | N/A"
|
|
lecciones: "✓ | ✗"
|
|
|
|
estado_final: "COMPLETADA | EN_PROGRESO | BLOQUEADA"
|
|
```
|
|
|
|
---
|
|
|
|
## REFERENCIAS
|
|
|
|
| Documento | Propósito |
|
|
|-----------|-----------|
|
|
| `PRINCIPIO-CAPVED.md` | Declaración del principio |
|
|
| `SIMCO-INICIALIZACION.md` | Protocolo CCA |
|
|
| `TEMPLATE-TAREA-CAPVED.md` | Template completo para tracking |
|
|
| `TEMPLATE-ANALISIS.md` | Template de análisis |
|
|
| `TEMPLATE-PLAN.md` | Template de planeación |
|
|
| `TEMPLATE-VALIDACION.md` | Template de validación |
|
|
|
|
---
|
|
|
|
**Versión:** 1.0.0 | **Sistema:** SIMCO + CAPVED | **Tipo:** Directiva de Proceso
|