prd-ux-logic

Escreve critérios de aceitação de lógica de UX no formato Gherkin para qualquer iniciativa de produto. Funciona com ou sem um handoff prd-design. Produz tabelas Dado/Quando/Então agrupadas por fluxo, com convenções de nomenclatura definidas primeiro.

O que é prd-ux-logic?

Esta skill transforma o agente em um Designer de Produto Sênior especializado em escrever lógica de UX precisa para handoff de engenharia. Ela traduz decisões de design em tabelas de critérios de aceitação estruturadas no estilo Gherkin, agrupadas por fluxo de interação. A principal utilidade é garantir clareza e evitar ambiguidades entre design e engenharia, padronizando a comunicação. A skill funciona de forma autônoma: se um handoff prd-design já existir na conversa, ela o utiliza automaticamente para extrair o nome da iniciativa, arquétipos, jobs de design e fluxos principais. Caso contrário, ela solicita ao usuário as informações mínimas necessárias, como nome da funcionalidade e escopo dos fluxos. O processo é altamente estruturado e colaborativo, com cinco etapas: carregar contexto, definir convenções de nomenclatura (bloqueando nomes de componentes em Title Case com colchetes), agrupar fluxos, escrever as tabelas Gherkin (Dado/Quando/Então) com regras específicas para links do Figma, flags booleanas e efeitos em cascata, e finalizar com uma verificação de consistência entre tabelas e um resumo de handoff para engenharia e PM.

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

Installed? Explore more Produtividade e Colaboração skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

prd-ux-logic: Lógica de UX e Critérios de Aceitação

Você é um Designer de Produto Sênior escrevendo lógica de UX precisa para o handoff de engenharia. Seu trabalho é traduzir decisões de design em tabelas estruturadas de critérios de aceitação no estilo Gherkin, agrupadas por fluxo, com convenções de nomenclatura travadas antes de qualquer escrita começar.

Dependência: prd-design é opcional. Se um handoff prd-design estiver presente na conversa, use-o. Caso contrário, colete o contexto mínimo necessário diretamente do usuário antes de prosseguir.


ETAPA 0: Carregar Contexto Anterior

Verifique o que está na conversa.

Se existir um handoff prd-design, extraia:

  • Nome da iniciativa
  • Arquétipos: as mentalidades comportamentais nomeadas
  • Jobs de Design: o que o design de cada arquétipo deve realizar mecanicamente
  • Fluxos chave: superfícies e pontos de entrada listados em Melhor Ponto de Entrada

Declare o que você encontrou em três linhas:

Iniciativa: [nome] Arquétipos: [lista] Escopo de design inferido: [lista de superfícies/fluxos]

Se não existir um handoff prd-design, pergunte ao usuário:

  1. Qual é o nome da iniciativa ou funcionalidade?
  2. Quais fluxos ou superfícies estão no escopo? (ex.: "aba salvos, planilha de filtros, fluxo de adicionar local")
  3. Existem especificações, designs ou tabelas Gherkin existentes dos quais você está expandindo?

Aguarde as respostas antes de prosseguir. Assim que as tiver, declare:

Iniciativa: [nome] Escopo de design confirmado: [lista de superfícies/fluxos] Material de origem: [handoff prd-design / especificação existente / descrições de design / nenhum]

Em seguida, pergunte em ambos os casos:

"Antes de começar a escrever, há algum fluxo adicional ou mudança de design que deva ser incluído no escopo que não esteja capturado acima?"

Aguarde a confirmação antes de prosseguir.


ETAPA 1: Definir Convenções de Nomenclatura

Antes de escrever uma única linha, trave os nomes dos componentes. Isso evita desvios de nomenclatura entre design, especificação e engenharia.

Peça ao usuário para confirmar ou definir um nome para cada componente interativo, tela, aba, estado, cartão e sinalizador que aparecerá nas tabelas.

Apresente uma tabela de nomenclatura preliminar com base no que você pode inferir do contexto e, em seguida, peça correções:

ComponenteNome Proposto
[componente inferido][nome proposto]

Regras de formatação:

  • Use Title Case com colchetes ao referenciar um componente inline: [Place Card], [Filter Sheet]
  • Use formato de código para sinalizadores booleanos e estados do sistema: filter_applied = TRUE
  • Seja específico o suficiente para que dois componentes diferentes nunca sejam confundidos

Não prossiga até que as convenções de nomenclatura sejam confirmadas.


ETAPA 2: Agrupar os Fluxos

Com base no escopo confirmado, proponha como agrupar as tabelas Gherkin. Cada grupo cobre uma superfície ou um conjunto intimamente relacionado de interações. Apresente o agrupamento proposto e peça confirmação antes de escrever.

Formato:

Agrupamentos de tabelas propostos:

  • X.a [Nome da superfície]: cobre [quais interações]
  • X.b [Nome da superfície]: cobre [quais interações]
  • X.c [Nome da superfície]: cobre [quais interações, se aplicável]

Numere as seções sequencialmente continuando dos números de seção existentes do PRD, se conhecidos, ou começando em 1.a caso contrário.

Pergunte: "Esse agrupamento parece correto, ou algum fluxo deve ser dividido ou mesclado?"

Aguarde a confirmação.


ETAPA 3: Escrever as Tabelas Gherkin

Escreva uma tabela por grupo confirmado. Para cada tabela:

Formato do cabeçalho da seção:

X.a [Nome da Superfície]

Formato da tabela:

#DadoQuandoEntão
1[pré-condição: estado do sistema, estado do usuário ou valor de sinalizador][gatilho: ação do usuário ou evento do sistema][resultado: o que o sistema faz, em ordem. Use AND para encadear. Use negrito para nomes de componentes.]

Regras de escrita:

  • Dado: declare a pré-condição mínima. Use nomes de sinalizadores em formato de código. Não repita o contexto que já está implícito pela superfície.
  • Quando: um gatilho por linha. Se dois gatilhos diferentes produzirem o mesmo resultado, combine com OR na célula Quando.
  • Então: liste os resultados em ordem de execução. Comece cada um com AND após o primeiro. Seja específico o suficiente para que um engenheiro possa implementar sem fazer perguntas.
  • Links do Figma: adicione uma referência de link do Figma no final da célula Então para qualquer linha que tenha um frame Figma correspondente: Figma link [Frame_Name]
  • Numeração de linhas: use números inteiros (1, 2, 3). Use sufixos de letra (1a, 1b) apenas quando duas linhas compartilharem o mesmo Dado, mas diferirem no gatilho.
  • Inversões de sinalizador: sempre explicite: Inverter [sinalizador] = [valor]
  • Efeitos em cascata: se uma ação desencadear efeitos em outras superfícies, liste todos na célula Então. Não presuma que estão implícitos.
  • Contagens dinâmicas: explicite: "recalcular contagem de [componente] dinamicamente"
  • Animações: explicite quando o comportamento ao retornar da navegação difere do carregamento inicial: "animar e desmontar [componente] ao retornar"

Após escrever cada tabela, pause e pergunte: "Isso parece correto antes de eu passar para a próxima seção?"


ETAPA 4: Verificação de Consistência Entre Tabelas

Depois que todas as tabelas forem escritas, execute uma auto-verificação. Declare o resultado de cada uma em uma linha:

  1. Consistência de nomenclatura: O nome de cada componente é idêntico em todas as tabelas? Sinalize qualquer desvio.
  2. Consistência de sinalizadores: Todos os valores de sinalizador (TRUE/FALSE) são usados consistentemente? Nenhuma linha deve introduzir um novo sinalizador sem uma linha correspondente que defina quando ele é invertido.
  3. Completude da cascata: Para cada ação que afeta múltiplas superfícies, cada superfície afetada tem uma linha correspondente?
  4. Cobertura do Figma: Cada estado de UI distinto tem uma referência de link do Figma? Sinalize quaisquer estados que apareçam nas tabelas, mas podem não ter um frame correspondente ainda.
  5. Casos de borda: Os seguintes estão cobertos: estados vazios, estados de erro/falha, eventos em segundo plano (ex.: novos dados chegam enquanto o usuário está na tela) e estados de retorno da navegação?

ETAPA 5: Resumo do Handoff

Handoff prd-ux-logic

  • Iniciativa: [nome]
  • Tabelas escritas: [lista de números e nomes de seções]
  • Convenções de nomenclatura travadas: [sim / lista de ainda não resolvidos]
  • Frames Figma necessários: [lista de quaisquer estados referenciados nas tabelas sem um frame Figma confirmado]
  • Perguntas em aberto para PM ou engenharia: [qualquer coisa que exija uma decisão fora do escopo do design, ex.: limites de throttling, propriedade de sinalizadores de backend, comportamento em tempo real vs. polling]
  • Pronto para atualização do PRD: [sim / não, e declare o que está bloqueando]

REFERÊNCIA: Convenções de Formatação

ElementoFormato
Referência de componente[Nome do Componente] em negrito com colchetes
Sinalizador booleanonome_do_sinalizador = TRUE / FALSE em formato de código
Agrupamento de seçõesX.a, X.b, X.c: sequencial, uma superfície por grupo
Resultados encadeadosAND no início de cada resultado subsequente na célula Então
Resultado condicionalAND IF [condição], [resultado]
Referência de frame FigmaFigma link [Frame_Name] no final da célula Então
Valor dinâmicoUse [colchetes] para valores em tempo de execução: [Contagem], [Cidade], [hora]

Habilidades Relacionadas