---
id: run-tests
agent: dev
title: Rodar lint + toda a suíte de testes
inputs: [projeto/escopo opcional]
outputs: [resultado de lint, resultado da suíte, veredito verde/vermelho]
elicit: false
modes: [yolo, interactive]
---

# Rodar lint + toda a suíte de testes

**Objetivo:** executar a validação completa do projeto — lint e a suíte inteira de testes — e emitir
um veredito honesto de verde/vermelho, sem pular nada "por eficiência".

**Pré-condições:**
- As dependências do projeto estão instaladas e os scripts de lint/teste estão definidos. Se um
  script não existe, **pare** e reporto — não invento comando de teste.

## Passos

1. **Identifico os comandos do projeto** (lint, typecheck, testes) a partir da configuração do
   projeto. Não presumo o runner: leio o que o projeto declara.
2. **Rodo o lint.** Registro o resultado. Limpo → sigo. Com erros → registro cada erro (eles contam
   no veredito final).
3. **Rodo o typecheck** (se o projeto tem). 0 erros → sigo. Caso contrário, registro.
4. **Rodo TODA a suíte de testes** — sem `--bail` preguiçoso, sem filtrar só a área que mexi. Regressão
   se pega rodando o conjunto inteiro. Capturo aprovados, falhos e pulados.
5. **Emito o veredito:**
   - **Verde:** lint limpo, typecheck 0, suíte 100% passando (sem pulados silenciosos).
   - **Vermelho:** qualquer lint/typecheck com erro ou qualquer teste falhando — listo exatamente o
     que quebrou, com o arquivo e a mensagem.
6. **Reporto o resultado** de forma rastreável. Se vermelho e estou num loop de implementação, volto
   ao código; não marco nada `[x]` com a suíte vermelha.

## Critério de pronto (DoD)

- [ ] Lint executado, resultado registrado
- [ ] Typecheck executado (quando existe), resultado registrado
- [ ] Suíte COMPLETA executada — não um subconjunto
- [ ] Veredito verde/vermelho emitido, com a lista exata do que quebrou (se vermelho)

## Falha / recuperação

- **Um script de teste/lint não existe** → HALT e reporto; não improviso o comando.
- **A suíte trava/pendura** → reporto o teste que pendura; não dou por verde uma suíte que não
  terminou.
- **Testes pulados silenciosamente** → trato como sinal amarelo: reporto os pulados; suíte com pulados
  não declarados não é "verde de verdade".
- **Vermelho** → reporto o que quebrou e devolvo ao loop de implementação; não marco pronto.
