.agent/rules/proibido-commit-ia.md

3.8 KiB

type name description scope trigger updatedAt
rule proibido-commit-ia A IA nunca mexe no git da aplicação principal; commit e push são permitidos e obrigatórios exclusivamente no repositório da Wiki (../wiki) global always_on 2026-09-05

Regra: Proibido Commit pela IA na Aplicação e Exceção Obrigatória da Wiki

Contexto

O controle de versão do código-fonte da aplicação principal é de 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 da aplicação.

Por outro lado, o repositório central de documentação (<base_projeto>/../wiki), que hospeda a Wiki do Usuário (Pilar 3) e a Wiki de Desenvolvimento (Pilar 4), é uma base viva de documentação. Quando atualizado pelo agente (ex.: via /doc, /documentacao ou workflows DDD), o commit e o push DEVEM ser executados automaticamente pelo agente, restritos exclusivamente a esse repositório.

Regra

1. Na Aplicação Principal (<base_projeto>) — RIGOROSAMENTE PROIBIDO MEXER NO GIT

A IA NUNCA deve executar comandos que alterem o histórico do repositório da aplicação (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 na aplicação (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 ✅

2. No Repositório da Wiki (<base_projeto>/../wiki) — COMMIT E PUSH OBRIGATÓRIOS

Sempre que a documentação em <base_projeto>/../wiki for criada ou modificada (manuais de usuário em <modulo-id>/, regras de negócio em dev/<modulo-id>/, ADRs em dev/<modulo-id>/adrs/, etc.), o agente DEVE obrigatoriamente realizar o commit e push das alterações:

# Executar estritamente apontando para a pasta ../wiki
git -C <base_projeto>/../wiki add -A
git -C <base_projeto>/../wiki commit -m "docs(<modulo-id>): <descrição sucinta das alterações>"
git -C <base_projeto>/../wiki push

Fronteira Inegociável: Esta permissão é restrita e isolada ao repositório <base_projeto>/../wiki. A IA nunca deve executar commit ou push na aplicação principal.

Exemplos

❌ Errado — commitar automaticamente na aplicação

# Na raiz da aplicação (<base_projeto>): PROIBIDO
git add -A && git commit -m "fix: corrigir bug"
git push origin main

✅ Correto — na aplicação principal, apenas preparar e sugerir

git add -A
git status
# Informar ao usuário: "Alterações staged na aplicação. Revise e faça o commit quando estiver pronto."
# Sugestão de commit: git commit -m "feat: adicionar validação de schema"

✅ Correto — na Wiki, commitar e enviar automaticamente

# No repositório de documentação (<base_projeto>/../wiki): OBRIGATÓRIO
git -C ../wiki add -A
git -C ../wiki commit -m "docs(e-licencie): atualizar regras de negócio e manuais"
git -C ../wiki push

Impacto

  • Segurança na aplicação: O desenvolvedor mantém controle total sobre o histórico de código da aplicação.
  • Agilidade e perenidade na wiki: A documentação fica sempre sincronizada e publicada imediatamente sem fricção manual.
  • Isolamento de escopo: Fronteira clara e explícita entre repositório de aplicação e repositório de documentação.

Referências

  • Rule: rules/ddd-documentacao-primeiro.md
  • Skill: skills/documentacao/SKILL.md
  • Workflow: global/workflows/documentacao.md