---
name: early-return
description: Trata erros e edge cases primeiro, com return antecipado (guard clauses)
roles: [dev]
---
Trate erros e casos de borda no topo da função com `return` antecipado. Evite `else` depois de `return`.

Regras:
- Validações antes da lógica principal.
- Aninhamento máximo de 3 níveis. Acima disso, extraia função.
- Happy path sem indentação extra no fundo da função.

Anti-padrão:
```python
def f(x):
    if x:
        if x.valid:
            do_stuff()
        else:
            return error
    else:
        return error
```
Refator:
```python
def f(x):
    if not x:
        return error
    if not x.valid:
        return error
    do_stuff()
```
