/coleoni-states

Todos os estados de um componente. Não só o feliz.

Um componente é desenhado cheio de dados. Ele passa boa parte da vida esperando, vazio, falhando ou pela metade. A skill força cada um desses estados pelas chamadas reais de API do componente, mostra tudo lado a lado, acha os que ninguém desenhou e constrói.

npx skills add c0le0ni/skills --skill coleoni-states
Ver no GitHub
Claude Code, Codex e outros 9 estados Pela API real, sem mock Acha travamento e valor cru
O quadro de estados do painel de pedidos de uma padaria: 6 de 9 com problema O mesmo painel depois de construir os estados que faltavam O quadro de estados em três celulares
Exemplo

Funcionou na demonstração. Aí o Wi-Fi caiu.

O painel do dia da padaria, do roadmap da /coleoni-init, na primeira versão. Com dados, perfeito. Em 6 dos outros 8 estados não mostrava nada, travava ou escrevia “Invalid Date”.

painel.js
// painel do dia, primeira versão
fetch("/api/orders.json")
  .then((r) => r.json())
  .then((data) => render(data.orders))

$ /coleoni-states board.html
  loading   gives no sign it is loading
  empty     doesn't say there's nothing
  partial   crashes: null.toUpperCase
  error     crashes · "Invalid Date"
  offline   crashes: Failed to fetch
  denied    crashes · "Invalid Date"
6 → 0estados com problema
9estados, forçados pela API
0mocks escritos
4travamentos achados antes do usuário
Estados

Nove estados, pela API real.

O script carrega a página uma vez, grava as chamadas JSON que o componente faz, e depois responde diferente pra cada estado.

EstadoComo é forçado
ProntoA resposta real
CarregandoA resposta nunca chega
VazioToda lista da resposta real esvaziada
Um, muitosToda lista com 1 item, e com 30
Campos faltandoMetade dos valores de cada registro nula
Erro no servidorA API responde 500
Sem internetA requisição falha como sem conexão
Sem permissãoA API responde 401: a sessão expirou
Como funciona

Força, compara, constrói.

Alguns problemas não precisam de olho: um travamento, “undefined” na tela. Outros precisam de uma pessoa: uma mensagem de erro que não diz nada. A skill separa os dois.

  1. Grava a API

    Toda chamada JSON que o componente faz numa carga normal, ou as que você indicar.

  2. Força cada estado

    Mesma página, mesmo código, uma resposta diferente da API a cada vez.

  3. Marca o óbvio

    Em branco, travamento, valor cru, estado igual a outro, carregando sem sinal, vazio e erro que não dizem nada.

  4. Mostra tudo junto

    Abas pra cada estado e uma grade de todos, pros buracos saltarem aos olhos.

  5. Julga o resto

    O carregando mantém o layout? O erro diz que nada se perdeu? Um 401 é tratado como 401?

  6. Constrói o que falta

    Na camada de dados e nos componentes do projeto, com aria-busy e aria-live. Depois roda de novo.

Instalar

Um comando, em qualquer agente.

O único pacote é o playwright-core, que o agente instala no primeiro uso. Ele usa o Chrome ou o Edge que você já tem.

AgenteClaude Code, Codex, Cursor…
Node.js18 ou mais novo
Chrome ou Edgejá instalado na máquina
01Instale
npx skills add c0le0ni/skills --skill coleoni-states
02Use no seu agente
/coleoni-states http://localhost:3000/pedidos .pedidos
Pro usuário todo, não só o projeto-g
Só no Claude Code-a claude-code
Só no Codex-a codex
Todas as skills da Coleoninpx skills add c0le0ni/skills
Exemplos

Tudo que espera por dados.

Listas, dashboards, carrinhos, resultados de busca, feeds. Ela mostra o quadro primeiro.

Todos os estados de uma lista.

/coleoni-states http://localhost:3000/pedidos .pedidos

Escolher as chamadas de API.

/coleoni-states o dashboard --api "**/api/stats*"

Construir o que falta.

/coleoni-states o carrinho, constrói o vazio e o erro
Opções

O motor, pelo terminal.

O scripts/states.mjs também roda sozinho: node states.mjs http://localhost:3000 --select ".pedidos" --lang pt --out states-report.

OpçãoPara quê
--select ".pedidos"O componente
--api "**/api/x*"Chamadas de API a controlar, pode repetir; padrão: as chamadas JSON da página
--states a,bSó alguns estados
--wait 1200Quanto esperar em cada estado
--lang en|ptLíngua do quadro

Desenhe a espera, o vazio e a falha também.

npx skills add c0le0ni/skills --skill coleoni-states