# Guardrails — Operações que exigem confirmação

## NUNCA executar sem confirmação explícita do usuário

### Destrutivas irreversíveis
- `rm -rf` em qualquer diretório
- `DROP TABLE`, `DELETE FROM` sem `WHERE`
- `git push --force` ou `git push --force-with-lease`
- `git reset --hard`
- `git clean -f`
- Deletar branch com `git branch -D`

### Produção / infra compartilhada
- Modificar lista de processos PM2 (`pm2 delete`, `pm2 stop` em produção)
- Editar configuração nginx em produção (`/etc/nginx/sites-available/` ou `sites-enabled/`)
- Modificar `.env` de produção sem mostrar diff completo primeiro
- `systemctl stop/disable` em serviços
- Alterar firewall ou regras de rede

### Scope violation
- Tocar qualquer arquivo não listado em `.build-scope.md`
- Instalar dependências globais (`npm install -g`, `pip install` fora de venv)
- Modificar `package.json` scripts sem declarar no escopo

### Dados
- Operações em banco de produção sem backup confirmado
- Migrações destrutivas (`migrate reset`, `DROP COLUMN`)
- Truncar tabelas

---

## AUTO-APROVADO (não precisa perguntar)

### Leitura
- Read, Grep, Glob em qualquer arquivo
- `git log`, `git diff`, `git status`
- `ls`, `cat` para inspecionar

### Criação dentro do escopo
- Write/Edit em arquivos listados em `.build-scope.md`
- Criar arquivos novos dentro de pastas declaradas no escopo

### Build e testes
- `npm install` (local, sem `-g`)
- `npm run dev`, `npm run build`, `npm test`
- `npx tsx scripts/...`
- `prisma generate`, `prisma validate`
- `prisma migrate deploy` (não `migrate reset`)

### Git (local apenas)
- `git add`, `git commit` (sem push)
- `git diff`, `git log`, `git status`

### Diagnóstico
- `ps aux`, `pm2 list`, `pm2 logs` (só leitura)
- `curl` para checar endpoints (GET apenas)
- `netstat`, `lsof -i`
