---
type: rule
name: proibido-commit-ia
description: A IA nunca pode executar git commit, git push ou qualquer operação que altere o histórico do repositório
scope: global
trigger: always_on
updatedAt: "2026-06-19"
---

# Regra: Proibido Commit pela IA

## Contexto

O controle de versão é responsabilidade exclusiva do usuário humano. A IA pode preparar alterações, criar arquivos, editar código e até sugerir mensagens de commit — mas NUNCA deve executar comandos que alterem o histórico do repositório.

## Regra

A IA **NUNCA** deve executar os seguintes comandos (nem variações deles):

- `git commit`
- `git push`
- `git merge`
- `git rebase`
- `git tag`
- `git reset`
- `git revert`
- `git cherry-pick`
- `git stash drop`
- `git branch -d` / `git branch -D`

### Comandos permitidos (somente leitura e staging)

- `git status` ✅
- `git diff` ✅
- `git log` ✅
- `git add` ✅ (preparar alterações para o usuário revisar)
- `git stash` / `git stash pop` ✅ (preservar trabalho temporário)
- `git branch` (listar) ✅
- `git ls-files` ✅
- `git show` ✅

## Exemplos

❌ **Errado** — commitar automaticamente:
```sh
git add -A && git commit -m "fix: corrigir bug"
```

❌ **Errado** — push automático:
```sh
git push origin main
```

✅ **Correto** — preparar e informar:
```sh
git add -A
git status
# Informar ao usuário: "Alterações staged. Revise e faça o commit quando estiver pronto."
```

✅ **Correto** — sugerir mensagem de commit:
```
Sugestão de commit:
git commit -m "feat: adicionar validação de schema no endpoint /usuarios"
```

## Impacto

- **Segurança:** o usuário mantém controle total sobre o que entra no histórico
- **Revisão:** toda alteração pode ser inspecionada antes de ser commitada
- **Reversibilidade:** evita commits acidentais que poluem o histórico

## Referências

- Princípio de autonomia controlada: a IA executa, o humano decide
