Skip to content
Back to skills

Validacao Final

ASecurity

Análise final e independente de risco antes de a tarefa ir para produção. Procura problemas que os testes podem não ter encontrado, partindo do código que a tarefa realmente alterou, separa bug confirmado, risco relevante e hipótese, e conclui com um veredito de bloqueio. Use quando o QA disser "validação final", "pré-produção", "vai subir para produção", "pode integrar?", "análise de risco antes de integrar", ou logo depois de encerrar um ciclo de teste.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 21, 2026
developmentgobashgitbackend

Works with

  • cli

Security analysis

A100/100

Scanned October 21, 2026

npx -y skills add Bruno91dev/portfolio-qa --skill validacao-final --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Validacao Final?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Validacao Final
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bruno91dev-validacao-final/badge)](https://www.skillsdirectory.com/skills/bruno91dev-validacao-final)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: validacao-final
description: Análise final e independente de risco antes de a tarefa ir para produção. Procura problemas que os testes podem não ter encontrado, partindo do código que a tarefa realmente alterou, separa bug confirmado, risco relevante e hipótese, e conclui com um veredito de bloqueio. Use quando o QA disser "validação final", "pré-produção", "vai subir para produção", "pode integrar?", "análise de risco antes de integrar", ou logo depois de encerrar um ciclo de teste.
---

# Validação final antes da produção

Responder **uma** pergunta:

> Existe algum problema relevante, não identificado nos testes, que possa causar impacto
> significativo ao cliente quando esta tarefa chegar à produção?

Não é repetir o plano de teste nem auditar o sistema: é procurar risco real **nas alterações desta
tarefa**. Não procurar problema a qualquer custo: terminar sem achado é um resultado legítimo e
frequente.

**Configuração:** o `CLAUDE.md` do projeto informa a **Pasta do código** (somente leitura) e a
**Branch base**. A IA não altera o código: o resultado é um parecer, e a correção, se houver, é do
dev.

## Modos

| Modo | Quando | O que analisar | Fecho |
|---|---|---|---|
| **Antes de integrar** | ciclo fechado sem nada em aberto | o diff inteiro da tarefa | um dos três vereditos do Passo 6 |
| **Antes de devolver** | ciclo que devolve a tarefa com correção pontual | o diff inteiro da tarefa | "Achados para o mesmo retorno" (nunca aprovado: há BUG aberto) |
| **Passada curta** | chegou correção depois de uma validação já feita | só os commits novos | um dos três vereditos, sobre esses commits |

**Por que o modo "antes de devolver":** o dev recebe os BUGs do ciclo e os achados da validação num
único retorno, e a tarefa não fica indo e vindo. Correção pendente **estrutural** (vai reescrever o
fluxo): não rodar agora; a análise envelheceria antes de ser usada.

## Passo 1 — Delimitar o que a tarefa alterou

Sem isso, toda conclusão sai sem dono. Sempre pelas referências remotas (a cópia local pode estar em
outra branch):

```bash
git -C "<Pasta do código>" fetch origin -q
git -C "<Pasta do código>" diff --stat origin/<base>...origin/<branch-da-tarefa>
git -C "<Pasta do código>" log --oneline <commit-do-ultimo-ciclo>..origin/<branch-da-tarefa>
```

Se a saída trouxer marca de corte ("+N more", "truncated"), algum filtro resumiu o diff: ler de novo
sem ele antes de concluir.

Cuidados que já produziram conclusão errada:

- **Branch que recebe merges de outras** infla o `--stat` para centenas de arquivos. Filtrar pelos
  arquivos da funcionalidade ou usar o intervalo desde o commit testado.
- **Alteração que nasceu e morreu dentro da tarefa** não é risco: comparar sempre contra a base. Uma
  linha adicionada num commit e revertida em outro não chega ao cliente.
- **Atribuir ao dono certo:** antes de apontar, provar pelo git que a linha é desta tarefa e fazer as
  duas perguntas: a branch torna o caminho alcançável? O code review pediu essa correção?

## Passo 2 — Triar o diff

Nesta ordem e só até onde houver relação técnica clara: arquivos → funções, componentes e serviços
alterados → endpoints e regras de negócio → fluxos afetados → dependências diretas.

Peso extra para o que tem alcance maior que a tela:

- **código compartilhado** (classe base, componente reutilizado, serviço comum, script de banco):
  uma linha ali vale por todas as telas que o usam;
- **chave, rota ou contrato** (o que viaja no endereço, o que o backend recebe e devolve).

## Passo 3 — O que a produção tem e o teste não tinha

Só os itens com relação com a alteração; não listar cenário por listar:

volume real de dados · configurações diferentes entre clientes · dado antigo, nulo ou inconsistente ·
perfis e permissões · processamento demorado e tempo esgotado · falha de comunicação · concorrência ·
integrações · consistência do que é gravado · regressão do que a alteração toca.

Perguntas que costumam render:

- A tela carrega a lista **inteira** para preencher uma caixa de seleção, sem busca incremental? O
  que acontece no cliente com dez mil registros?
- O limite de tamanho do campo na tela **bate com o tamanho da coluna** no banco?
- Um valor que passou a fazer parte do **endereço** da requisição pode conter texto livre, nulo ou
  caractere reservado?
- A alteração muda o comportamento para **dado nulo ou ausente**? A requisição passa a cair em
  **outra rota** existente?
- Há **concorrência** real (dois usuários, dois sistemas gravando o mesmo dado)?
- Erro sem tratamento pode aparecer **só em produção** (o ambiente de teste mostra no console, a
  produção leva para a página de erro)? A alteração cria um caminho de erro sem tratamento?

## Passo 4 — O que só existe em produção

Disparar cada bloco apenas quando a tarefa tiver a característica.

### 4.1 A tarefa criou ou mudou uma permissão?

O QA costuma testar como administrador e numa base limpa; a produção tem perfis antigos.

- Nos perfis que os clientes **já têm**, a permissão nova nasce **liberada ou negada**? Liberada por
  omissão dá acesso indevido; negada para todos vira chamado no dia seguinte, com a funcionalidade
  entregue e ninguém enxergando.
- Sem a permissão, o botão some da tela, ou aparece e falha só no backend?
- A rota está protegida contra entrada **pelo endereço**, e não só pelo menu? Sem permissão, a
  resposta esperada é "acesso negado"; outra resposta indica que a permissão não barrou.
- Uma chave de funcionalidade desligada não pode se disfarçar de falta de permissão.

### 4.2 Outro sistema lê ou grava o mesmo dado?

Aplicativo, sistema legado, integração ou relatório que usa a mesma base vai ler no mesmo dia o que a
tela passou a gravar.

- O outro lado **lê sem quebrar** o dado que a tela passou a aceitar (formato, tamanho, caractere
  especial, campo vazio)?
- A tela **bloqueia o que o outro lado bloqueia**? Regra que existe só de um lado gera dado que o
  outro considera inválido.
- Se a tela está migrando de um sistema para outro, a comparação é de **comportamento** (mesma
  crítica, mesma consequência), não de aparência.

Achado aqui costuma ser **RISCO RELEVANTE** ou **BUG CONFIRMADO**: dado inconsistente entre sistemas
não some com um F5.

## Passo 5 — Provar ou descartar, nunca supor

Ler o código não é medir. Antes de chamar de risco:

- conferir no código se a rota ou o caminho alternativo existe de fato;
- conferir no banco de teste (somente leitura) tamanho de coluna, nulidade e volume;
- conferir a instrumentação da página, se a sessão de teste ainda estiver ativa;
- reproduzir quando for barato: mandar o passo ao QA e medir (o Claude só executa com "pode executar
  você"); quando não for, dizer que não foi reproduzido.

**Registrar também o que foi descartado.** "Investiguei e não procede, porque X" mostra a cobertura
da análise e evita que a mesma dúvida volte no ciclo seguinte.

## Passo 6 — Classificar e concluir

| Rótulo | Quando |
|---|---|
| **BUG CONFIRMADO** | há evidência de que o problema ocorre |
| **RISCO RELEVANTE** | possibilidade concreta de impacto, sem reprodução |
| **HIPÓTESE** | possibilidade sem evidência suficiente |

Hipótese **nunca** é apresentada como bug. Problema visual ou detalhe sem impacto funcional não
bloqueia nesta etapa. Prioridade ao que possa bloquear o uso, impedir a conclusão de uma operação,
travar o sistema, perder ou corromper dado ou causar regressão no que a alteração toca.

**Veredito (um só):**

- **🛑 BLOQUEAR INTEGRAÇÃO** — bug confirmado ou risco relevante com impacto significativo.
- **⚠️ ATENÇÃO — NÃO BLOQUEANTE** — risco real, impacto insuficiente para segurar.
- **✅ APROVADO PARA INTEGRAÇÃO** — nada relevante nas alterações e nenhum BUG do ciclo em aberto.

Com BUG do ciclo em aberto, nunca ✅. Item já conhecido e decidido pelo QA (defeito aceito, fora de
escopo) entra como lembrete no fim, sem mudar o veredito.

## Formato da resposta

Curto, nesta ordem:

1. **Descartados** — o que foi investigado e não procede, com o motivo em uma linha.
2. **Achados** — um bloco por item: rótulo, o trecho de código ou a medição que sustenta, o efeito em
   produção e por que bloqueia (ou não).
3. **Itens já conhecidos** — uma linha cada.
4. **Veredito.**

A skill entrega parecer: não registra BUG por conta própria. Se o QA mandar registrar, seguir as
regras de BUG da skill `qa-testar`.

## Economia

`diff → código alterado → dependências diretas → comportamento → risco`. Não ler código sem relação
com a tarefa, não refazer o que os ciclos já concluíram, não inventar cenário para engordar a
análise. Alteração simples com risco claro merece análise objetiva.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.