From 5cc7cf309ef2f52c0c99931a459d736835f4c0fd Mon Sep 17 00:00:00 2001 From: Ricardo Gonzalez Date: Wed, 27 May 2026 22:51:58 -0500 Subject: [PATCH] docs: prompt para generacion de criterios de aceptacion con IA --- docs/prompt_criterios_aceptacion.md | 118 ++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 docs/prompt_criterios_aceptacion.md diff --git a/docs/prompt_criterios_aceptacion.md b/docs/prompt_criterios_aceptacion.md new file mode 100644 index 0000000..aecb2bd --- /dev/null +++ b/docs/prompt_criterios_aceptacion.md @@ -0,0 +1,118 @@ +# Alpha — Reglas de Prompt para Criterios de Aceptación + +> Documento de referencia para la generación de criterios de aceptación mediante IA. +> Basado en Skill HU v3.5 (Lambda Analytics) + estructura Quill de KAPPA. + +**Versión**: 1.0 | **Fecha**: 2026-05-26 + +--- + +## 1. Formato esperado en KAPPA + +KAPPA almacena los criterios de aceptación en el campo `criterios_aceptacion` usando el editor **Quill** (rich text). El formato es HTML: + +```html +
    +
  1. URL producción accesible
  2. +
  3. API OP conectada
  4. +
  5. 54+ proyectos cargan
  6. +
+``` + +## 2. Formato en Alpha (BD + UI) + +Alpha lo convierte a JSON array y lo almacena en `acceptance_criteria`: + +```json +[ + "URL producción accesible", + "API OP conectada", + "54+ proyectos cargan" +] +``` + +En la UI se muestra como tooltip con lista ordenada al lado del título de la HU. + +## 3. Prompt para generación de criterios + +### 3.1 Reglas de formato + +1. Los criterios deben generarse como **lista numerada** (ordenada) +2. Cada criterio debe ser una **frase concreta y verificable** +3. Usar el formato `
  • texto
  • ` dentro de `
      ` +4. Mínimo 3 criterios, máximo 10 por HU + +### 3.2 Reglas de contenido + +Basado en la Skill HU v3.5, cada criterio debe: + +- Ser **medible y comprobable** (no opiniones) +- Describir un **resultado tangible** ("El botón X existe en la pantalla Y") +- Evitar términos subjetivos ("fácil", "rápido", "intuitivo") +- Incluir **condiciones de frontera** cuando aplique +- Separar criterios de **diferente naturaleza** en items distintos + +### 3.3 Ejemplos por tipo de item + +**HU (User Story):** +``` +
        +
      1. El usuario puede iniciar sesión con email y contraseña
      2. +
      3. Muestra mensaje de error si las credenciales son incorrectas
      4. +
      5. Redirige al dashboard en menos de 3 segundos
      6. +
      7. El botón "Olvidé mi contraseña" redirige a la pantalla de recuperación
      8. +
      +``` + +**Feature:** +``` +
        +
      1. El módulo de cartera está desplegado en producción
      2. +
      3. Al menos 1 usuario PMO lo está operando
      4. +
      5. Los KPIs del módulo son visibles en el dashboard
      6. +
      7. La curva S muestra 3 líneas (planeado, real, proyección)
      8. +
      +``` + +**Bug:** +``` +
        +
      1. El error reportado no se reproduce en el ambiente corregido
      2. +
      3. La funcionalidad afectada opera según lo especificado
      4. +
      5. No se introdujeron regresiones en módulos relacionados
      6. +
      7. La corrección está desplegada en el ambiente correspondiente
      8. +
      +``` + +### 3.4 Keywords para detectar tipo de criterio + +| Tipo | Keywords en el criterio | +|------|------------------------| +| Funcional | "El usuario puede", "El sistema debe", "Muestra", "Redirige" | +| Performance | "En menos de N segundos", "Responde en", "Carga en" | +| Seguridad | "Solo usuarios autorizados", "Encriptado", "Token expira" | +| UX | "Visible", "Accesible", "Responsive", "Navegación" | +| Integración | "API conectada", "Webhook", "Sincroniza", "Endpoint" | +| Despliegue | "Desplegado en producción", "Ambiente", "URL accesible" | + +### 3.5 Estructura del prompt + +``` +Genera los criterios de aceptación para la siguiente HU como una lista HTML ordenada. +Usa
      1. ...
      . +Cada criterio debe ser verificable y medible. + +Título: {título de la HU} +Descripción: {descripción de la HU} +Tipo: {HU / Feature / Bug / Tarea} +``` + +## 4. Parseo en Alpha + +La función `parseQuillList()` en `src/services/clean-html.ts` extrae los items de `
    1. ` y los convierte en array. El HTML se almacena RAW en `user_stories.acceptance_criteria` para mantener fidelidad con KAPPA, mientras que la UI muestra la versión parseada como tooltip. + +## 5. Referencias + +- Skill HU v3.5 → `/Volumes/MonkeyVault/Library/OneDrive/.../Skills/skill_HU_v3.5.md` +- Código: `src/services/clean-html.ts` (parseQuillList, criteriaToJson, criteriaFromJson) +- Stores: `src/stores/workitems.ts` (enrichHU, syncHUsToTurso)