Nébula
GitHub

Produto

Flow

Descreve jornadas, transições, exceções e pontos de decisão entre páginas e ações do usuário.

flow.mdMARKDOWNLeitura: 3 minSeções: 34

Flow descreve as jornadas do usuário — como ele entra no sistema, navega entre páginas, encontra decisões, desvios e estados excepcionais, e conclui (ou não) a ação que pretendia.

Fase: 3 — Design de Produto
Pré-requisito: Docs/pages.md aprovado
Template: Templates/Full/flow.md ou Templates/Quick/flow.md
Artefato oficial: Docs/flow.md
Próximos artefatos: Prototype/ · Docs/design-system.md · Docs/contract.yaml


Quando criar ou revisar

  • Após aprovação de Docs/pages.md
  • Nova jornada identificada que não está coberta
  • Mudança de navegação que afeta sequência ou condicionais
  • Discovery que revelou desvio crítico não mapeado

Full vs Quick

SituaçãoTemplate
Produto com múltiplas jornadas, perfis e condicionaisTemplates/Full/flow.md
Feature com 1-2 fluxos em contexto já definidoTemplates/Quick/flow.md
Ambiguidade surgiu ou desvios são complexosMigrar para Full na mesma task

Tipos de fluxo reconhecidos

fluxo principal         — caminho feliz esperado do início ao fim
fluxo alternativo       — caminho válido mas não padrão
fluxo de erro           — o que acontece quando algo falha
fluxo administrativo    — jornada de perfil com privilégio elevado
fluxo de autenticação   — login, logout, expiração de sessão
fluxo de recuperação    — redefinição de senha, revalidação
fluxo de confirmação    — ação destrutiva ou irreversível
fluxo de saída          — como o usuário encerra uma sessão ou ação
fluxo restrito por permissão — rota protegida por papel ou nível de acesso

Estrutura — Flow Full

O template Full tem 12 seções.

1. Identificação

Nome do projeto:
Versão do documento:
Status: [rascunho | revisando | aprovado]
Documento base: Docs/pages.md e Docs/user-stories.md
Data de criação:
Última atualização:

2. Objetivo do Documento

Cobre: jornadas por perfil, pontos de entrada, transições, decisões, desvios, estados de bloqueio e exceção.
Não cobre: layout visual, implementação técnica de navegação, arquitetura interna, contrato de API, componentes visuais.

3. Regras Gerais dos Fluxos

Todo fluxo documentado deve conter: nome, tipo, perfil principal, objetivo, ponto de entrada, pré-condições, sequência principal, decisões e condicionais, desvios, estados excepcionais, saídas e resultado esperado.

4. Visão Geral das Jornadas

Jornada é o objetivo macro do usuário, composta por um ou mais fluxos:

### Jornada JN-001 — [nome]
 
Perfil principal:    [perfil]
Objetivo:            [o que o usuário quer alcançar]
Histórias:           US-001, US-002
Páginas:             PG-001, PG-002, PG-003
Ponto de entrada:    [onde o fluxo começa]
Resultado esperado:  [o que deve existir ao fim]
Observações:         [preencher]

5. Fluxos Detalhados

Estrutura completa de cada fluxo (FL-001, FL-002, ...):

### FL-001 — [nome do fluxo]
 
Tipo: [principal | alternativo | erro | autenticação | administrativo | confirmação]
Perfil principal: [perfil]
Objetivo do fluxo: [descreva]
Histórias relacionadas: US-001
Páginas envolvidas: PG-001, PG-002, PG-003
 
Pré-condições:
- [pré-condição 1]
- [pré-condição 2]
 
Ponto de entrada:
[onde o usuário entra nesse fluxo]
 
Sequência principal:
1. Usuário acessa [PG-001].
2. Sistema exibe [estado inicial esperado].
3. Usuário executa [ação].
4. Sistema valida [condição].
5. Usuário é direcionado para [PG-002].
6. Sistema processa [evento].
7. Usuário conclui [ação final] em [PG-003].
 
Decisões e condicionais:
- Se [condição A], seguir para [página / estado].
- Se [condição B], bloquear e exibir [mensagem / estado].
- Se [condição C], redirecionar para [página].
 
Desvios possíveis:
- [desvio 1]
- [desvio 2]
 
Estados excepcionais:
- erro de validação
- indisponibilidade externa
- sessão expirada
- sem permissão
- dados inexistentes
 
Saídas possíveis:
- [saída de sucesso]
- [saída de cancelamento]
- [saída de erro persistente]
 
Resultado esperado:
[descrição do fim ideal do fluxo]
 
Observações: [preencher]

6. Fluxos por Perfil

Mapeamento de quais fluxos cada perfil pode percorrer:

### Perfil: [nome]
Fluxos principais:    FL-001, FL-002
Fluxos alternativos:  FL-003
Restrições relevantes:
- [restrição de permissão ou contexto]

7. Pontos de Decisão e Condições Críticas

Decisões críticas do sistema:
- [decisão 1: condição → resultado]
- [decisão 2: condição → resultado]
 
Condições de bloqueio:
- [usuário sem permissão → exibir tela de acesso negado]
- [sessão expirada → redirecionar para login]
 
Condições de redirecionamento:
- [preencher]
 
Condições de fallback:
- [preencher]

8. Estados Transversais de Navegação

Estados que podem aparecer em múltiplos fluxos — devem ser documentados aqui com a diretriz de tratamento global:

- loading              — feedback visual durante operação assíncrona
- erro                 — falha de operação com mensagem e ação recomendada
- sucesso              — confirmação de operação bem-sucedida
- vazio                — sem dados para exibir com orientação
- sem permissão        — acesso negado com contexto e alternativa
- sessão expirada      — redirecionamento para login com preservação de contexto
- indisponibilidade    — serviço externo indisponível com retry ou fallback
- timeout              — operação excedeu tempo esperado
- falha de autenticação— credencial inválida com orientação específica
 
Diretriz geral: [como esses estados devem se comportar consistentemente]

9. Dependências e Restrições Funcionais

Dependências entre fluxos:
- FL-002 depende de FL-001 concluído
- FL-004 exige autenticação prévia (FL-AUTH)
 
Restrições por perfil:
- [restrição 1]
 
Fluxos críticos para MVP: [FL-001, FL-002]
Fluxos opcionais ou futuros: [FL-005, FL-006]

10. Diretrizes para os Próximos Documentos

Prototype/            — quais fluxos e telas precisam ser prototipados primeiro
Docs/design-system.md — padrões de interação e feedback recorrentes entre fluxos
Docs/tokens.json      — semânticas visuais de estado que precisam de suporte por tokens
Docs/contract.yaml    — fluxos que indicam endpoints, operações ou respostas específicas
Docs/entities.md      — conceitos de domínio que aparecem nos fluxos
Docs/plan.md          — fluxos prioritários, bloqueantes ou fundacionais

11. Síntese Operacional para Dev e AI

Jornadas principais:              JN-001, JN-002
Fluxos mais críticos:             FL-001, FL-002, FL-003
Decisões que não podem ser esquecidas: [preencher]
Estados críticos que devem existir:    [preencher]
O que ainda está indefinido:          [ponto 1]

12. Aprovação

Status: [pendente | aprovado | revisando]
Aprovado por:
Data de aprovação:
Observações finais:

Exemplo preenchido — fluxo completo

### FL-007 — Registro e encerramento de atendimento
 
Tipo: fluxo principal
Perfil principal: Técnico de campo
Objetivo: registrar execução do atendimento com foto e assinatura e encerrar o chamado
Histórias: US-007, US-008
Páginas: PG-008 (detalhe do chamado), PG-012 (registro de atendimento), PG-009 (lista)
 
Pré-condições:
- Técnico autenticado
- Chamado no status "em andamento"
- Câmera com permissão concedida
 
Ponto de entrada:
PG-008 → botão "Registrar encerramento"
 
Sequência principal:
1. Técnico acessa PG-008 com chamado em andamento.
2. Toca em "Registrar encerramento".
3. Sistema abre PG-012.
4. Técnico captura foto pela câmera do app.
5. Técnico coleta assinatura via canvas touch.
6. Técnico toca em "Finalizar atendimento".
7. Sistema envia foto e assinatura à API (POST /atendimentos/{id}/encerramento).
8. Sistema move chamado para "aguardando confirmação".
9. Sistema redireciona para PG-009 com toast de sucesso.
 
Decisões e condicionais:
- Se câmera sem permissão → exibir instrução de ativação nas configurações
- Se cliente recusar assinar → campo opcional com justificativa obrigatória
- Se upload falhar → manter dados localmente, exibir botão de reenvio
- Se sem conectividade → salvar localmente, sincronizar ao reconectar
 
Desvios possíveis:
- Técnico cancela na metade → chamado permanece "em andamento"
- Técnico tenta encerrar sem foto → sistema bloqueia e exibe mensagem
 
Estados excepcionais:
- Câmera sem permissão (orienta ativação nas configurações do dispositivo)
- Falha de upload (opção de reenvio com dados preservados)
- Sem conectividade (dados salvos offline, sincronização automática)
 
Saídas possíveis:
- Sucesso → PG-009 com toast de confirmação
- Cancelamento → retorno a PG-008
- Erro persistente → permanece em PG-012 com opção de reenvio
 
Resultado esperado:
Chamado encerrado com foto e assinatura vinculadas. Registro rastreável para auditoria.

Estrutura — Flow Quick

Para features com 1-2 fluxos e contexto já definido:

## Jornadas principais
 
### JN-001 — [nome]
Perfil: [perfil]
Objetivo: [o que quer alcançar]
Ponto de entrada: [onde começa]
Páginas: PG-001, PG-002
Resultado esperado: [preencher]
 
---
 
## Fluxos principais
 
### FL-001 — [nome]
Tipo: [principal | alternativo | erro | autenticação]
Perfil: [perfil]
Páginas: PG-001, PG-002, PG-003
 
Sequência principal:
1. [passo 1]
2. [passo 2]
3. [passo 3]
 
Condições importantes:
- [condição 1]
- [condição 2]
 
Estados excepcionais:
- erro
- sem permissão
- sessão expirada
 
Resultado esperado: [preencher]
 
---
 
## Decisões críticas
- [decisão com condição e resultado]
 
## Estados transversais
- loading
- erro
- vazio
- sucesso
- sem permissão
- sessão expirada
 
## Direção para os próximos documentos
Prototype/:           [orientação]
Docs/design-system.md:[orientação]
Docs/contract.yaml:   [orientação]
 
## Síntese para Dev e AI
Fluxos prioritários: FL-001, FL-002
Condições a respeitar: [condição]
Estados obrigatórios: [estado]
O que está indefinido: [ponto]

Prompt para gerar com agente

Atue como ProductAgent.
Objetivo: criar Docs/flow.md com base em Docs/pages.md e Docs/user-stories.md
 
Carregue contexto base:
- GUIDE.md
- Skills/flow.md
- Templates/Full/flow.md
- Docs/pages.md
- Docs/user-stories.md
 
Preencha as 12 seções do template Full.
Seção 4: mapeie uma jornada por perfil principal do projeto.
Seção 5: crie fluxos detalhados incluindo sequência passo a passo, condicionais e estados excepcionais.
Seção 7: liste decisões críticas com condição → resultado.
Seção 8: defina estados transversais com diretriz de tratamento global.
Seção 10: preencha orientação por artefato seguinte.
Marque [indefinido] onde houver lacuna de clareza.

Definição de pronto

O flow está pronto quando:

  1. Todas as jornadas críticas têm pelo menos um fluxo documentado
  2. Cada fluxo tem sequência numerada passo a passo — não apenas descrição genérica
  3. Decisões e condicionais explicitados — incluindo o que acontece quando a condição falha
  4. Estados excepcionais mapeados em cada fluxo (sessão expirada, sem permissão, erro de rede)
  5. Seção 8 define estados transversais com diretriz de consistência global
  6. Seção 10 tem orientação por artefato seguinte
  7. Aprovação registrada na seção 12
Atenção

Documentar apenas o caminho feliz é a falha mais frequente em flow.md. Fluxo sem desvio, sem condicional e sem estado excepcionall não serve como referência de implementação — quem implementa precisa inventar os casos faltantes e eles raramente ficam consistentes.


Erros comuns

ErroCorreção
Documentar só o caminho felizTodo fluxo precisa de desvios, condicionais e estados excepcionais
Misturar fluxo com layoutFlow não descreve visual — descreve navegação, decisões e estados
Sequência genérica ("usuário usa a tela")Cada passo deve ser uma ação concreta referenciando a página
Condicionais ausentesToda decisão ("se X → Y, se não → Z") deve estar explícita
Seção 8 em brancoSem diretriz global, cada tela trata estados excepcionais de forma diferente

Documentos que nascem do Flow

Docs/flow.md (aprovado)

Prototype/            — protótipos HTML das jornadas principais
Docs/design-system.md — padrões visuais de feedback, bloqueio e transição
Docs/contract.yaml    — endpoints inferidos pelas sequências e condicionais
Docs/plan.md          — fluxos críticos viram tasks prioritárias das primeiras fases