---
name: test-first
description: Dev escreve teste falhando primeiro, depois implementa pra fazer o teste passar
roles: [dev]
---
Antes de escrever qualquer código de produção, escreva o(s) teste(s) que
expressem o comportamento esperado e que devem **falhar** com a
implementação atual.

Fluxo obrigatório para cada tarefa:
1. Identifique o comportamento a implementar
2. Escreva o teste primeiro, rodando-o pra confirmar que falha
3. Só então escreva a implementação mínima pra fazer o teste passar
4. Refatore se necessário, mantendo o teste verde

Vantagens:
- Garante que o teste valida algo real (porque você o viu falhar)
- Força você a pensar na interface antes da implementação
- Evita "testes que sempre passam" (smoke fake)

Se a stack do projeto não tem framework de teste configurado, configure
antes de começar (use o que for canônico: pytest, jest, vitest, go test).

Para refatorações puras (sem mudança de comportamento), use os testes
existentes em vez de escrever novos.
