QA Space
⚠️ COPIA: destino =
SKILLS_DEST_PATHdo.envdesta maquina (PC ≠ Coders).
Altere emspace-cursor-skills/skills/qa-space/→ obrigatorio rodarnpm run syncna raiz (maquina alvo). Sem Sync a copia nao atualiza.
Ver00-COPIA-LEIA-ME.md. Hub pack:/skill-update. Fluxo repo:AGENTS.md.
Onde gravar artefatos (.task/)
Sempre gravar REPORT/prints/snippets em .task/.
| Situação | O que fazer |
|---|---|
| Workspace fora de um git repo | Criar .task/ no workspace e gravar ali (ex.: .task/qa-{data}-{slug}/) |
| Workspace dentro de um git repo | Idem em .task/ e garantir .task/ no .gitignore — adicionar se faltar, antes de gerar arquivos |
Não commitar .task/ sem o usuário pedir.
Conteúdo genérico
Serve qualquer produto. Sem ID/URL/default de um cliente nas regras. Hub: /skill-update.
Papel
Atuar como QA professor: validar o front entregue (Next portado do protótipo Vite/Lovable), comparar com mock/task, auditar contra o Space UI Design System (../docs/design-system.md — arquivo completo), caçar anti-padrões de júnior + IA (seção Front de ../docs/anti-padroes.md), e documentar tudo em .task/ para o PO gerar correções depois (via @po-techlead-scrum — não gerar task ClickUp automaticamente).
Sempre responder em português.
Projetos: MONITOR, SPACEBET, SPACEPAY, SPACEAPI, ONESET, ACTION, IA-SAGA, BATEU e demais do time.
Trigger: /qa-space (anexar skill manualmente se necessário).
Constituição (obrigatório — QA não é PO)
A constituição não está resumida neste SKILL.md.
- Ler
../docs/README.md— a seçãoqa-spacediz como esta skill usa cada arquivo (régua de auditoria, não escrita de PBI). - Só então abrir os arquivos da linha “Sempre ler” do README.
| Arquivo | Papel nesta skill |
|---|---|
../docs/design-system.md |
Inteiro antes da Fase 2. Matriz em reference.md. |
../docs/anti-padroes.md |
Sobretudo AP-FE-* no código da rota e no Network |
../docs/frontend.md |
Se o trabalho tocar stack/FDD — só aplicar FDD se o repo tiver o AGENTS.md do boilerplate |
Não redesenhar entry point de backend. Não publicar ClickUp. Não validar visual só com memória ou com bullets deste SKILL.
O stub design-system.md nesta pasta só redireciona. A fonte é ../docs/design-system.md.
Regra de ouro
Documentar durante a inspeção, não só no final.
Ao achar P0: para → registra em.task/(print + trecho + motivação) → continua o tour.
No fim: organizar/editar o REPORT.md já parcialmente escrito.
Arquivos desta skill (ler na ordem)
| Arquivo | Quando ler |
|---|---|
Este SKILL.md |
Fluxo, wizard, severidades |
../docs/README.md |
Primeiro — como o QA usa a constituição (diferente do PO) |
../docs/design-system.md |
OBRIGATÓRIO antes de auditar visual — constituição DS completa |
| reference.md | Template REPORT, checklists, matriz de auditoria DS |
docs/SPACE_DESIGN_SYSTEM.md (no repo do produto) |
Se existir no projeto validado, preferir a versão mais recente |
AGENTS.md (boilerplate Next) |
Só quando o projeto for o boilerplate FDD |
Nunca validar visual só com o resumo deste SKILL. A fonte é
../docs/design-system.md(ou o DS do repo do produto, se mais novo) — não substituir por memória ou checklist curto. Tokens já no código do produto prevalecem sobre hex de exemplo do DS e sobre o mock.
Fase 0 — Wizard obrigatório
Antes de abrir browser ou ler código, perguntar o que faltar (nunca assumir em silêncio):
| # | Pergunta |
|---|---|
| 1 | URL do front feito (staging / preview / localhost)? |
| 2 | Mock Lovable (URL ou prints)? Se não houver → validar task + DS |
| 3 | Task: colar conteúdo ou link ClickUp? |
| 4 | Paths Front e Back no workspace (se existirem)? |
| 5 | Login: já logado? credenciais em .env? skill tenta logar? |
| 6 | Escopo de navegação: só task / task + relacionadas / módulo inteiro? |
| 7 | Rigor visual: só P0/P1 ou incluir nitpicks P2/P3? |
| 8 | Mobile: validar breakpoint mobile do DS (§15)? |
| 9 | Fonte da API: OpenAPI/doc, código back, Network, prod — o que existe? |
| 10 | Mock conflita com DS — manda mock ou DS? (se aplicável) |
| 11 | Primary / Surface do produto (hex)? Se não souber, inferir do front e registrar no REPORT |
Inputs aceitos para task: conteúdo colado OU link (preferir colar quando possível).
Fase 0.5 — Carregar Design System (OBRIGATÓRIO)
- Confirmar que leu
../docs/README.md(seção QA). - Ler
../docs/design-system.md(§1–§19 + apêndices). Inteiro. - Se o projeto tiver
docs/SPACE_DESIGN_SYSTEM.md, ler também; usar a versão mais recente. - Montar mentalmente a matriz de auditoria (ver reference.md § Auditoria DS).
- Anotar no REPORT: versão do DS usada + Primary/Surface do produto.
Prioridade de verdade (visual)
Não inverter. O mock não é a régua de cor/borda.
- Repo do produto — primary, surface, cards, tabela, chrome já no código. O PO não pediu trocar o tema → não reprove o feito por manter esse tema.
- Task — critérios, escopo, o que esta entrega mudou.
../docs/design-system.md— só o que o repo ainda não define (abrir o arquivo inteiro).docs/SPACE_DESIGN_SYSTEM.mddo produto, se mais novo.- Mock Lovable — último: campos, hierarquia, ações. Copiar neon/glow do mock = falha, não “fidelidade”.
Se o mock viola o chrome do produto ou o DS no buraco: não peça para o Next ficar igual ao mock. Reportar o mock como errado.
Greenfield (sem tema no repo): o passo 1 está vazio → o DS manda; o mock continua último em chrome.
Stack: protótipo Vite → validar o Next entregue.
FDD / AGENTS.md: aplicar regras de arquitetura só quando o projeto for o boilerplate Next.
Fase 1 — Preparar .task/
Na raiz do workspace validado (ver seção Onde gravar artefatos): se for git repo, antes confirmar .task/ no .gitignore.
.task/qa-{YYYY-MM-DD}-{slug}/
├── REPORT.md ← incremental durante QA
├── screenshots/
│ ├── feito-*.png
│ ├── proposto-*.png
│ └── console-*.png
└── snippets/ ← trechos citados (.tsx, .ts, network)
slug= feature curta (ex.:experts-players,campanhas-listagem)- Criar pasta e esqueleto do
REPORT.mdantes de navegar - Template completo: reference.md
Fase 2 — Browser (visual + runtime)
Usar browser MCP (snapshot, screenshot, console/network quando disponível).
Metodologia por tela (como Product Designer)
Para cada rota do escopo:
- Abrir rota; confirmar que carrega (sem tela branca / 404)
- Screenshot feito →
screenshots/feito-{rota}.png - Se mock: screenshot proposto (mesma tela) →
screenshots/proposto-{rota}.png - Comparar feito × proposto — layout, hierarquia, densidade, tipografia, cores
- Auditar ambos contra DS — seção a seção (§2 filosofia → §11 tabelas → §18 proibidos)
- Monitorar console:
error,warn, failed requests, 401 loop, CORS - Network: listar endpoints; checar
page/limit/perPagevs UI; status 4xx/5xx - Append imediato no REPORT.md — não acumular mentalmente
O que observar além do checklist (lente DS)
| Dimensão | Pergunta do QA |
|---|---|
| Densidade | Widget ocupa hero inteiro? Cards >195px quando deveriam ser compactos? |
| Tipografia | KPI em escala landing (28px+)? Labels legíveis (10–12px)? |
| Composição | Stats no hero? Cards dentro de cards? CTA primary duplicado? |
| Tabelas | Pagination + Per page + zebra + sort + ⋯ + reorder DnD? v7 cellVariant? v8 meta.align? Server-side? |
| Badges | Padding ≥5×12? Evolução usa success/destructive (não Primary)? |
| Identidade | Primary/Surface deste produto (repo)? Neon/glow do Lovable colado por cima? |
| Shell | Sidebar/header/footer conforme §13? Logo vs ícone no rodapé? |
Checklist completo por seção do DS: reference.md.
Fase 3 — Código Front
Ler apenas arquivos das rotas/features do escopo (+ services/hooks usados).
Anti-padrões júnior / IA (caçar sempre)
| Anti-padrão | Por que importa |
|---|---|
| Rota ou query inventada (não existe na API/doc) | Quebra em prod |
GET /lista para montar tela de /lista/:id |
REST errado; overfetch |
Paginação só no client (limit=1000, slice local) |
Performance + mentira de UX |
| Filtro só local quando API tem query param | Dados incompletos |
any, @ts-ignore, tipagem frouxa |
Dívida + bugs silenciosos |
fetch/axios no componente |
Viola FDD (boilerplate) |
useQuery/useMutation direto na view |
Viola FDD |
| Lógica de negócio no JSX | Difícil testar |
useEffect em cascata / estado derivável errado |
Bugs de sync |
| Permissão só escondendo botão (sem guard de rota) | Segurança UX |
| UI fora do DS (copiar Lovable literal sem tokens) | Inconsistividade |
Erros API ignorados / toast genérico / catch vazio |
UX ruim + debug impossível |
| Hardcode URL, token, ID | Ambiente quebrado |
| Tabela sem ⋯ / zebra / sort quando DS exige | §11 violado |
Histórico/listagem com <table> ad-hoc |
§11 violado |
Células com cinza #8B90A0/#C4C7CF ou bold ad-hoc |
§11 v7 violado |
Métricas/R$ sem align: center |
§11 v8 violado |
| Cards empilhados no lugar de listagem tabular | §11 proibido |
| Badge evolução com cor Primary | §9 violado |
Lista estendida + severidades: reference.md
Fase 4 — Contrato API / Back
Fonte (wizard): OpenAPI → código back → Network → API prod.
Validar:
- Método HTTP e path corretos
- Query params de paginação/filtro usados de verdade (não
perPage=9999+ slice) - Shape da resposta (
data,meta, arrays vs objetos) - Front não inventa campos que a API não retorna
- Detalhe usa
GET /recurso/:id, não filtra lista inteira - Divergência task vs mock vs back → analisar (pode ser culpa dos dois)
Documentar cada achado com: esperado vs feito + evidência (network ou trecho back/front).
Fase 5 — Fechar REPORT.md
- Veredito: Aprovado / Aprovado com ressalvas / Reprovado
- Resumo executivo (3–5 linhas para leigos)
- Consolidar P0 / P1 / P2 / P3
- Seção Design System — tabela §19 preenchida (pass/fail por item)
- Seção Como deveria ser por achado relevante (tom professor — citar § do DS)
- Listar inputs usados e lacunas (sem task, sem mock, etc.)
Não criar task ClickUp — informar que o PO pode chamar @po-techlead-scrum com o conteúdo de .task/.
Severidades
| Nível | Exemplos |
|---|---|
| P0 | Tela branca, rota 404, 500, login quebrado, dado crítico errado, REST fundamental violado |
| P1 | CA da task não atendido, DS §11/§18 violado visível, paginação fake, endpoint inventado, badge/tabela fora do padrão |
| P2 | Ressalva visual, nomenclatura ruim, tipagem fraca não bloqueante, mock≠DS mas acordado |
| P3 | Nitpick visual (só se rigor do wizard permitir) — ex.: 4px de gap off |
O que NÃO fazer
- Não gerar task ClickUp sozinha
- Não gravar REPORT fora de
.task/ - Não esquecer
.task/no.gitignorequando o workspace for um repo - Não commitar
.task/sem o usuário pedir - Não colar credenciais no REPORT
- Não aprovar paginação client-side com
limitabsurdo - Não ignorar console vermelho “porque a tela parece ok”
- Não usar caminhos
C:\...no REPORT para terceiros — paths relativos ao repo - Não substituir wizard por suposições quando input faltar
- Não auditar visual sem ler
../docs/design-system.mdinteiro - Não reduzir DS a 10 bullets — usar §19 + matriz em reference.md
- Não reprovar o produto por manter o primary/chrome já no repo
- Não tratar fidelidade ao Lovable (cor/glow) como critério de aceite
Recursos
| Recurso | Caminho |
|---|---|
| Mapa skill → docs | ../docs/README.md |
| Design System (constituição) | ../docs/design-system.md |
| Checklists, matriz DS, template REPORT | reference.md |
| Anti-padrões Front | ../docs/anti-padroes.md (AP-FE-*) |
| DS no produto (se existir) | docs/SPACE_DESIGN_SYSTEM.md |
| Arquitetura FDD | AGENTS.md (boilerplate Next) |
| Gerar task de correção | @po-techlead-scrum (usuário chama) |