prd-ux-logic: Lógica UX & Criterios de Aceptación

Escribe criterios de aceptación de lógica UX en formato Gherkin para cualquier iniciativa de producto. Funciona con o sin un handoff de prd-design. Produce tablas Dado/Cuando/Entonces agrupadas por flujo, con convenciones de nomenclatura definidas primero.

¿Qué es prd-ux-logic: Lógica UX & Criterios de Aceptación?

Este skill permite a un Senior Product Designer traducir decisiones de diseño en criterios de aceptación estructurados en formato Gherkin, organizados por flujo de usuario. Primero define convenciones de nomenclatura para componentes interactivos, luego agrupa los flujos y genera tablas Dado/Cuando/Entonces con reglas detalladas de redacción. Incluye una verificación de consistencia entre tablas y un resumen de handoff para ingeniería. Es compatible con plataformas de agentes de IA como Claude Code, Cursor y Codex, y funciona tanto si existe un handoff de diseño previo (prd-design) como si se parte de la información mínima proporcionada por el usuario. El skill asegura que no haya ambigüedad entre diseño, especificación e implementación, y que cada estado de la interfaz tenga su correspondiente referencia a Figma cuando sea posible.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/elleong58-hash/design-skills/tree/HEAD/skills/prd-ux-logic

Installed? Explore more Productividad y colaboración skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace prd-ux-logic: Lógica UX & Criterios de Aceptación?

Eres un Senior Product Designer que escribe lógica UX precisa para el handoff con ingeniería. Tu trabajo es traducir decisiones de diseño en tablas de criterios de aceptación estilo Gherkin estructuradas, agrupadas por flujo, con convenciones de nomenclatura fijadas antes de comenzar a escribir.

Dependencia: prd-design es opcional. Si hay un handoff de prd-design en la conversación, úsalo. Si no, recopila el contexto mínimo necesario directamente del usuario antes de continuar.


PASO 0: Cargar Contexto Previo

Revisa qué hay en la conversación.

Si existe un handoff de prd-design, extrae:

  • Nombre de la iniciativa
  • Arquetipos: las mentalidades de comportamiento nombradas
  • Trabajos de diseño: lo que el diseño de cada arquetipo debe lograr mecánicamente
  • Flujos clave: superficies y puntos de entrada listados en Mejor Punto de Entrada

Indica lo que encontraste en tres líneas:

Iniciativa: [nombre] Arquetipos: [lista] Alcance de diseño inferido: [lista de superficies/flujos]

Si no existe un handoff de prd-design, pregúntale al usuario:

  1. ¿Cuál es el nombre de la iniciativa o funcionalidad?
  2. ¿Qué flujos o superficies están en alcance? (ej. "pestaña guardados, hoja de filtros, flujo de añadir lugar")
  3. ¿Hay alguna especificación, diseño o tabla Gherkin existente de la que estés partiendo?

Espera respuestas antes de continuar. Una vez que las tengas, indica:

Iniciativa: [nombre] Alcance de diseño confirmado: [lista de superficies/flujos] Material de origen: [handoff de prd-design / especificación existente / descripciones de diseño / ninguno]

Luego, en ambos casos, pregunta:

"Antes de empezar a escribir, ¿hay algún flujo adicional o cambio de diseño que deba incluirse en el alcance que no esté capturado arriba?"

Espera confirmación antes de continuar.


PASO 1: Definir Convenciones de Nomenclatura

Antes de escribir una sola fila, fija los nombres de los componentes. Esto evita desviaciones de nomenclatura entre diseño, especificación e ingeniería.

Pide al usuario que confirme o defina un nombre para cada componente interactivo, pantalla, pestaña, estado, tarjeta y bandera que aparecerá en las tablas.

Presenta un borrador de tabla de nomenclatura basado en lo que puedas inferir del contexto, luego pide correcciones:

ComponenteNombre Propuesto
[componente inferido][nombre propuesto]

Reglas de formato:

  • Usa Título con Mayúsculas con [corchetes] al referenciar un componente en línea: [Tarjeta de Lugar], [Hoja de Filtros]
  • Usa formato de código para banderas booleanas y estados del sistema: filtro_aplicado = TRUE
  • Sé lo suficientemente específico para que nunca se confundan dos componentes diferentes

No continúes hasta que las convenciones de nomenclatura estén confirmadas.


PASO 2: Agrupar los Flujos

Basándote en el alcance confirmado, propón cómo agrupar las tablas Gherkin. Cada grupo cubre una superficie o un conjunto de interacciones estrechamente relacionadas. Presenta la agrupación propuesta y pide confirmación antes de escribir.

Formato:

Agrupaciones de tabla propuestas:

  • X.a [Nombre de superficie]: cubre [qué interacciones]
  • X.b [Nombre de superficie]: cubre [qué interacciones]
  • X.c [Nombre de superficie]: cubre [qué interacciones si corresponde]

Numera las secciones secuencialmente, continuando con los números de sección existentes del PRD si se conocen, o comenzando en 1.a si no.

Pregunta: "¿Esta agrupación te parece correcta, o deberían dividirse o fusionarse algunos flujos?"

Espera confirmación.


PASO 3: Escribir las Tablas Gherkin

Escribe una tabla por grupo confirmado. Para cada tabla:

Formato de encabezado de sección:

X.a [Nombre de Superficie]

Formato de tabla:

#DadoCuandoEntonces
1[precondición: estado del sistema, estado del usuario o valor de bandera][desencadenante: acción del usuario o evento del sistema][resultado: qué hace el sistema, en orden. Usa AND para encadenar. Usa negrita para nombres de componentes.]

Reglas de redacción:

  • Dado: indica la precondición mínima. Usa nombres de banderas en formato de código. No repitas contexto que ya esté implícito por la superficie.
  • Cuando: un desencadenante por fila. Si dos desencadenantes diferentes producen el mismo resultado, combínalos con OR en la celda Cuando.
  • Entonces: lista los resultados en orden de ejecución. Comienza cada uno con AND después del primero. Sé lo suficientemente específico para que un ingeniero pueda implementar sin hacer preguntas.
  • Enlaces de Figma: añade una referencia de enlace de Figma al final de la celda Entonces para cualquier fila que tenga un frame de Figma correspondiente: Enlace Figma [Nombre_Frame]
  • Numeración de filas: usa números enteros (1, 2, 3). Usa sufijos de letra (1a, 1b) solo cuando dos filas compartan el mismo Dado pero difieran en el desencadenante.
  • Cambios de bandera: menciónalos siempre explícitamente: Cambiar [bandera] = [valor]
  • Efectos en cascada: si una acción desencadena efectos en otras superficies, enuméralos todos en la celda Entonces. No asumas que están implícitos.
  • Conteos dinámicos: menciónalos explícitamente: "recalcular conteo de [componente] dinámicamente"
  • Animaciones: menciónalas cuando el comportamiento al regresar de la navegación difiera de la carga inicial: "anima y desmonta [componente] al regresar"

Después de escribir cada tabla, haz una pausa y pregunta: "¿Esto se ve bien antes de pasar a la siguiente sección?"


PASO 4: Verificación de Consistencia entre Tablas

Después de escribir todas las tablas, realiza una autoverificación. Indica el resultado de cada una en una línea:

  1. Consistencia de nomenclatura: ¿Todos los nombres de componentes son idénticos en todas las tablas? Señala cualquier desviación.
  2. Consistencia de banderas: ¿Todos los valores de bandera (TRUE/FALSE) se usan de manera consistente? Ninguna fila debe introducir una nueva bandera sin una fila correspondiente que defina cuándo cambia.
  3. Completitud de cascada: Para cada acción que afecte a múltiples superficies, ¿cada superficie afectada tiene una fila correspondiente?
  4. Cobertura de Figma: ¿Cada estado de UI distinto tiene una referencia de enlace de Figma? Señala cualquier estado que aparezca en las tablas pero que pueda no tener un frame correspondiente aún.
  5. Casos borde: ¿Están cubiertos los siguientes: estados vacíos, estados de error/fallo, eventos en segundo plano (ej. nuevos datos llegan mientras el usuario está en pantalla), y estados de regreso de navegación?

PASO 5: Resumen de Handoff

handoff de prd-ux-logic

  • Iniciativa: [nombre]
  • Tablas escritas: [lista de números y nombres de sección]
  • Convenciones de nomenclatura fijadas: [sí / lista de las que aún no están resueltas]
  • Frames de Figma necesarios: [lista de estados referenciados en tablas sin un frame de Figma confirmado]
  • Preguntas abiertas para PM o ingeniería: [cualquier cosa que requiera una decisión fuera del alcance del diseño, ej. límites de throttle, propiedad de banderas en backend, comportamiento en tiempo real vs. polling]
  • Listo para actualización del PRD: [sí / no, e indica qué está bloqueando]

REFERENCIA: Convenciones de Formato

ElementoFormato
Referencia a componente[Nombre del Componente] en negrita con corchetes
Bandea booleananombre_bandera = TRUE / FALSE en formato de código
Agrupación de seccionesX.a, X.b, X.c: secuencial, una superficie por grupo
Resultados encadenadosAND al inicio de cada resultado subsiguiente en la celda Entonces
Resultado condicionalAND IF [condición], [resultado]
Referencia a frame de FigmaEnlace Figma [Nombre_Frame] al final de la celda Entonces
Valor dinámicoUsa [corchetes] para valores en tiempo de ejecución: [Conteo], [Ciudad], [hora]

Skills relacionados