Análisis IA en dos fases: épicas primero, luego HUs vinculadas con epic_development

- project-analyzer.ts: dividido en analyzeProjectEpics() y analyzeProjectHUs()
  Fase 1: genera solo épicas con linkedHuTitles
  Fase 2: genera HUs dentro de épicas con epicName
- saveEpicDrafts / saveHUDrafts separados para cada tipo
- DashboardView: dos botones '1. Generar Épicas' y '2. Generar HUs'
- pushDraft épica: al crear en KAPPA, actualiza metadata de HUs vinculadas con epicDevelopment
- pushDraft HU: envía epic_development + payload completo (feature, sprint, asignado_a, etc.)
- project_gap prompt: instrucciones separadas para FASE 1 (épicas) y FASE 2 (HUs)
This commit is contained in:
2026-05-29 17:33:47 -05:00
parent a4245017f8
commit 9cf12b482f
4 changed files with 353 additions and 101 deletions
+39 -12
View File
@@ -40,38 +40,65 @@ Responde SOLO con JSON válido en este formato:
},
project_gap: {
label: 'Análisis de brechas del proyecto',
content: `Eres un analista funcional experto. Tu tarea es analizar TODO el contexto de un proyecto y generar las Épicas e Historias de Usuario (HUs) que faltan.
content: `Eres un analista funcional experto en metodologías ágiles.
Trabajás en DOS FASES separadas. Cada fase tiene sus propias instrucciones.
Reglas:
Reglas generales:
1. Analizá TODA la información disponible: sesiones, resúmenes, estado del proyecto, HUs existentes
2. Identificá requisitos, funcionalidades, mejoras o bugs que NO estén cubiertos
3. Agrupá HUs relacionadas en Épicas. Cada épica agrupa funcionalidades de un mismo tema
4. Cada HU debe tener: título claro, descripción, criterios de aceptación verificables
5. No generes duplicados. Compará con la lista existente
6. Priorizá según urgencia implícita (Alta/Media/Baja)
7. Si todo ya está cubierto, devolvé arreglos vacíos
8. Respondé SOLO con JSON válido
3. No generes duplicados. Compará con TODO lo que ya existe
4. Respondé SOLO con JSON válido
5. Si todo ya está cubierto, devolvé arreglos vacíos
Formato de respuesta:
--- FASE 1: Generar Épicas ---
Instrucciones específicas:
- Identificá las épicas necesarias agrupando funcionalidades por tema
- Revisá si las épicas ya existentes cubren las necesidades
- Si una épica ya existe en KAPPA, NO la generes de nuevo
- Para cada épica, listá los títulos tentativos de las HUs que pertenecerían a ella (linkedHuTitles)
- Incluí un campo "rationale" explicando por qué proponés cada épica
- NO generes HUs en esta fase
Formato de respuesta FASE 1:
{
"epics": [
{
"name": "Nombre de la Épica",
"name": "Nombre de la Épica (ej: Módulo de Pagos)",
"description": "Descripción de la épica",
"linkedHuTitles": ["Título HU 1", "Título HU 2"],
"estimatedStart": "YYYY-MM-DD",
"estimatedEnd": "YYYY-MM-DD"
}
],
"summary": "Resumen del análisis de épicas",
"rationale": "Explicación de por qué estas épicas y no otras"
}
--- FASE 2: Generar HUs dentro de Épicas ---
Instrucciones específicas:
- Las épicas ya están definidas. Generá las HUs que pertenecen a cada una.
- Cada HU debe tener un campo "epicName" indicando a qué épica pertenece
- Tipos de HU: feature, task, US (historia de usuario), bug, spike
- Incluí: título, descripción, criterios de aceptación, prioridad, story points, tipo, feature, sprint estimado
- No generes HUs duplicadas con las existentes
- NO generes épicas en esta fase
Formato de respuesta FASE 2:
{
"hus": [
{
"title": "Título de la HU",
"description": "Descripción detallada",
"acceptance_criteria": ["Criterio 1", "Criterio 2"],
"priority": "Alta|Media|Baja"
"priority": "Alta|Media|Baja",
"story_points": 3,
"type": "feature|task|bug|spike",
"feature": "Nombre de la feature",
"sprint": 12,
"epicName": "Nombre de la épica a la que pertenece"
}
],
"summary": "Resumen del análisis"
"summary": "Resumen de las HUs generadas"
}`,
},
session: {