# {HU-ID} - {Título de la Historia de Usuario} **Proyecto:** {nombre-proyecto} **Módulo:** {nombre-módulo} **Epic:** {EPIC-ID} - {nombre-epic} **Feature:** {FEATURE-ID} - {nombre-feature} *(si aplica)* --- ## METADATOS | Campo | Valor | |-------|-------| | **ID** | {HU-XXX} | | **Tipo** | feature / enhancement / fix / refactor / spike / doc-only / tech-debt / security / performance | | **Origen** | plan-original / descubrimiento / incidencia / mejora-continua / dependencia | | **Prioridad** | P0 / P1 / P2 / P3 | | **Fecha Creación** | YYYY-MM-DD | | **Fecha Inicio** | YYYY-MM-DD | | **Fecha Fin** | YYYY-MM-DD | | **Agente Principal** | {nombre-agente} | | **Estado** | pendiente / en-progreso / validacion / completada / bloqueada | --- ## C - CONTEXTO ### Vinculación al Proyecto ```yaml proyecto: "{nombre}" ruta: "projects/{proyecto}/" modulo: "{módulo afectado}" epic: id: "{EPIC-ID}" nombre: "{nombre del epic}" ruta: "docs/{fase}/{epic}/" feature: # si aplica id: "{FEATURE-ID}" nombre: "{nombre del feature}" ``` ### Documentos Vinculados ```yaml docs_requerimientos: - "docs/{fase}/{epic}/requerimientos/{archivo}.md" docs_especificaciones: - "docs/{fase}/{epic}/especificaciones/{archivo}.md" docs_diseño: - "docs/{fase}/{epic}/diseño/{archivo}.md" docs_tecnicos: - "docs/95-guias-desarrollo/{relevante}.md" adrs_relacionados: - "docs/97-adr/ADR-{NNN}.md" ``` ### SIMCO Cargados ```yaml simco_aplicados: - "SIMCO-TAREA.md" # Siempre - "SIMCO-{operacion}.md" # Según tipo - "SIMCO-{dominio}.md" # Según capa ``` ### Contexto Cargado (CCA) - [ ] Principios leídos (DOC-PRIMERO, ANTI-DUP, VALIDACION, CAPVED) - [ ] Perfil de agente cargado - [ ] CONTEXTO-PROYECTO.md leído - [ ] Inventarios consultados - [ ] SIMCO correspondientes cargados --- ## A - ANÁLISIS ### Descripción de Negocio **Como** {rol de usuario} **Quiero** {acción deseada} **Para** {beneficio/valor} ### Comportamiento Esperado ```yaml casos_de_uso: caso_feliz: - "Usuario hace X" - "Sistema responde Y" - "Usuario ve Z" casos_de_error: - "Si X falla, mostrar mensaje Y" - "Si usuario no tiene permiso, redirigir a Z" casos_limite: - "Si lista está vacía, mostrar estado vacío" - "Si hay más de N registros, paginar" ``` ### Restricciones ```yaml seguridad: autenticacion_requerida: true/false roles_permitidos: [] rls_aplicable: true/false datos_sensibles: [] performance: volumen_esperado: "{registros}" tiempo_respuesta_max: "{ms}" requiere_paginacion: true/false requiere_cache: true/false ux: wireframe_disponible: true/false estados_carga_definidos: true/false manejo_errores_definido: true/false responsive_requerido: true/false ``` ### Objetos Impactados #### Base de Datos | Tipo | Nombre | Acción | Schema | |------|--------|--------|--------| | tabla | {nombre} | crear / modificar | {schema} | | vista | {nombre} | crear / modificar | {schema} | | función | {nombre} | crear / modificar | {schema} | | índice | {nombre} | crear | {schema} | | trigger | {nombre} | crear / modificar | {schema} | | rls_policy | {nombre} | crear / modificar | {schema} | #### Backend | Tipo | Nombre | Acción | Módulo | |------|--------|--------|--------| | entity | {nombre} | crear / modificar | {módulo} | | service | {nombre} | crear / modificar | {módulo} | | controller | {nombre} | crear / modificar | {módulo} | | dto | {nombre} | crear / modificar | {módulo} | | guard | {nombre} | crear / modificar | {módulo} | #### Frontend | Tipo | Nombre | Acción | App/Módulo | |------|--------|--------|------------| | página | {nombre} | crear / modificar | {app} | | componente | {nombre} | crear / modificar | {módulo} | | hook | {nombre} | crear / modificar | {módulo} | | store | {nombre} | crear / modificar | {módulo} | | type | {nombre} | crear / modificar | {módulo} | ### Dependencias #### Bloquea a (Esta HU bloquea) | HU ID | Descripción | Razón | |-------|-------------|-------| | {HU-XXX} | {descripción} | {por qué bloquea} | #### Bloqueada por (Esta HU depende de) | HU ID | Descripción | Estado | Razón | |-------|-------------|--------|-------| | {HU-YYY} | {descripción} | completada / en-progreso / pendiente | {por qué depende} | #### Relacionadas (Sin bloqueo directo) | HU ID | Descripción | Relación | |-------|-------------|----------| | {HU-ZZZ} | {descripción} | mismo módulo / misma feature | ### Riesgos Identificados | ID | Descripción | Probabilidad | Impacto | Mitigación | |----|-------------|--------------|---------|------------| | R1 | {descripción} | alta/media/baja | alto/medio/bajo | {estrategia} | | R2 | {descripción} | alta/media/baja | alto/medio/bajo | {estrategia} | ### Checklist Análisis - [ ] Comportamiento de negocio documentado - [ ] Restricciones identificadas - [ ] Objetos impactados mapeados (todas las capas) - [ ] Dependencias identificadas - [ ] Riesgos documentados --- ## P - PLANEACIÓN ### Subtareas #### Documentación (Siempre Primero) | ID | Descripción | Artefactos | Agente | |----|-------------|------------|--------| | ST-001 | {descripción} | {archivos} | {agente} | #### Database | ID | Descripción | Artefactos | Agente | Depende de | |----|-------------|------------|--------|------------| | ST-002 | {descripción} | {archivos} | Database-Agent | ST-001 | #### Backend | ID | Descripción | Artefactos | Agente | Depende de | |----|-------------|------------|--------|------------| | ST-003 | {descripción} | {archivos} | Backend-Agent | ST-002 | | ST-004 | {descripción} | {archivos} | Backend-Agent | ST-003 | #### Frontend | ID | Descripción | Artefactos | Agente | Depende de | |----|-------------|------------|--------|------------| | ST-005 | {descripción} | {archivos} | Frontend-Agent | ST-004 | #### Validación (Siempre al Final) | ID | Descripción | Agente | Depende de | |----|-------------|--------|------------| | ST-006 | Validación final build/lint/tests | Directo | ST-005 | ### Orden de Ejecución ``` ST-001 (Docs) ↓ ST-002 (Database) ↓ ST-003 (Backend - Entity) ↓ ST-004 (Backend - Service/Controller) ↓ ST-005 (Frontend) ↓ ST-006 (Validación) ``` ### Criterios de Aceptación #### Funcionales - [ ] {criterio 1} - [ ] {criterio 2} - [ ] {criterio 3} #### Técnicos - [ ] Build pasa sin errores - [ ] Lint pasa sin errores - [ ] Tests unitarios cubren >80% - [ ] API documentada en Swagger #### Documentación - [ ] Inventarios actualizados - [ ] Trazas registradas - [ ] ADR creado (si aplica) ### Plan de Pruebas ```yaml unitarias: - "{test 1}" - "{test 2}" integracion: - "{test 1}" - "{test 2}" e2e: - "{test 1}" regresion: - "{verificación 1}" ``` ### Checklist Planeación - [ ] Subtareas desglosadas por dominio - [ ] Orden de ejecución definido - [ ] Criterios de aceptación establecidos - [ ] Plan de pruebas definido - [ ] Agentes asignados --- ## V - VALIDACIÓN (⚠️ NO DELEGAR) ### Verificación Cobertura A → P | Objeto (de Análisis) | Subtarea (en Plan) | Estado | |---------------------|-------------------|--------| | {objeto 1} | ST-XXX | ✓ cubierto / ⚠️ gap | | {objeto 2} | ST-YYY | ✓ cubierto / ⚠️ gap | ### Gaps Detectados | Gap | Acción | |-----|--------| | {objeto sin subtarea} | Agregar ST-XXX | ### Verificación Dependencias | Dependencia | Estado | Acción | |-------------|--------|--------| | HU-XXX | completada | ✓ lista | | HU-YYY | pendiente | ⚠️ esperar / crear subtarea previa | ### Scope Creep Detectado | Item | Parte de HU Original | Acción | HU Derivada | |------|---------------------|--------|-------------| | {item detectado} | No | Crear HU | DERIVED-{HU-ID}-001 | ### Gate de Validación - [ ] Todo objeto de Análisis tiene subtarea en Plan - [ ] Todas las dependencias resueltas o planificadas - [ ] Criterios de aceptación cubren riesgos - [ ] Scope creep registrado - [ ] HUs derivadas creadas (si aplica) **RESULTADO:** ✓ APROBADO PARA EJECUCIÓN / ⚠️ REQUIERE AJUSTES --- ## E - EJECUCIÓN ### Progreso de Subtareas | ID | Descripción | Estado | Inicio | Fin | Notas | |----|-------------|--------|--------|-----|-------| | ST-001 | {desc} | ✓/⏳/⏸ | YYYY-MM-DD | YYYY-MM-DD | {notas} | | ST-002 | {desc} | ✓/⏳/⏸ | YYYY-MM-DD | YYYY-MM-DD | {notas} | | ST-003 | {desc} | ✓/⏳/⏸ | YYYY-MM-DD | YYYY-MM-DD | {notas} | ### Archivos Creados ``` {ruta/archivo1.ext} {ruta/archivo2.ext} ``` ### Archivos Modificados ``` {ruta/archivo1.ext} {ruta/archivo2.ext} ``` ### Validaciones Ejecutadas ```bash # Database ./create-database.sh # ✓ OK / ✗ Error # Backend npm run build # ✓ OK / ✗ Error npm run lint # ✓ OK / ✗ Error npm test # ✓ OK / ✗ Error (N passed, M failed) # Frontend npm run build # ✓ OK / ✗ Error npm run lint # ✓ OK / ✗ Error npm run typecheck # ✓ OK / ✗ Error ``` ### Desviaciones del Plan | Subtarea | Desviación | Razón | Impacto | |----------|-----------|-------|---------| | ST-XXX | {descripción} | {razón} | {impacto} | ### Checklist Ejecución - [ ] docs/ actualizado PRIMERO - [ ] Subtareas ejecutadas en orden - [ ] Build pasa en todas las capas - [ ] Lint pasa en todas las capas - [ ] Tests pasan (si aplica) - [ ] Desviaciones documentadas --- ## D - DOCUMENTACIÓN ### Actualizaciones Realizadas #### Diagramas/Modelos | Tipo | Ubicación | Cambio | |------|-----------|--------| | ERD | docs/{epic}/diseño/ | {cambio} | | Arquitectura | docs/00-vision/ | {cambio} | #### Especificaciones Técnicas | Tipo | Ubicación | Cambio | |------|-----------|--------| | API | docs/{epic}/specs/ | {cambio} | | BD | docs/{epic}/specs/ | {cambio} | #### ADRs Creados | ADR | Título | Decisión | |-----|--------|----------| | ADR-{NNN} | {título} | {decisión tomada} | #### Inventarios Actualizados - [ ] DATABASE_INVENTORY.yml - Agregado: {descripción} - [ ] BACKEND_INVENTORY.yml - Agregado: {descripción} - [ ] FRONTEND_INVENTORY.yml - Agregado: {descripción} #### Trazas Registradas - [ ] TRAZA-TAREAS-DATABASE.md - [ ] TRAZA-TAREAS-BACKEND.md - [ ] TRAZA-TAREAS-FRONTEND.md ### HUs Derivadas | ID | Descripción | Origen | Fase Detectada | Prioridad | |----|-------------|--------|----------------|-----------| | DERIVED-{HU-ID}-001 | {descripción} | {HU-ID} | V / E | P0/P1/P2/P3 | | DERIVED-{HU-ID}-002 | {descripción} | {HU-ID} | V / E | P0/P1/P2/P3 | ### Lecciones Aprendidas #### Qué Funcionó Bien - {lección 1} - {lección 2} #### Qué Se Puede Mejorar - {área de mejora 1} - {área de mejora 2} #### Para Futuras HUs Similares - {recomendación 1} - {recomendación 2} ### Checklist Documentación - [ ] Diagramas/modelos actualizados - [ ] Specs técnicas actualizadas - [ ] ADRs creados (si aplica) - [ ] Inventarios actualizados - [ ] Trazas registradas - [ ] HUs derivadas vinculadas - [ ] Lecciones aprendidas registradas --- ## RESUMEN FINAL ### Métricas | Métrica | Valor | |---------|-------| | Subtareas totales | N | | Subtareas completadas | N/N | | Archivos creados | N | | Archivos modificados | N | | HUs derivadas | N | | Tiempo total | Xh | ### Estado Final ``` [ ] ✓ COMPLETADA - Todos los gates pasaron [ ] ⚠️ COMPLETADA CON OBSERVACIONES - Requiere seguimiento [ ] ✗ BLOQUEADA - Pendiente de {descripción} ``` ### Firma de Cierre | Campo | Valor | |-------|-------| | **Completada por** | {agente} | | **Fecha cierre** | YYYY-MM-DD HH:MM | | **Revisada por** | {agente/humano} | | **Aprobación** | ✓ Aprobada / ⏳ Pendiente | --- ## HISTORIAL DE CAMBIOS | Fecha | Fase | Cambio | Autor | |-------|------|--------|-------| | YYYY-MM-DD | C | Creación inicial | {agente} | | YYYY-MM-DD | A | Análisis completado | {agente} | | YYYY-MM-DD | P | Plan definido | {agente} | | YYYY-MM-DD | V | Validación aprobada | {agente} | | YYYY-MM-DD | E | Ejecución completada | {agente} | | YYYY-MM-DD | D | Documentación cerrada | {agente} | --- **Template:** TEMPLATE-TAREA-CAPVED.md v1.0.0 **Sistema:** SIMCO + CAPVED