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

5.3 KiB

type name description scope trigger updatedAt
rule proibido-commit-ia Proíbe a IA de executar git commit ou git push na aplicação principal e na Wiki (commit exclusivo por humano; IA apenas sugere o texto do commit). Apenas o submódulo .agent pode receber commit/push automático. global always_on 2026-10-14

Regra: Diretrizes de Versionamento Git — Commit Exclusivo por Humano (IA Apenas Sugere Texto) e Push Automático Apenas no .agent

Contexto

O ecossistema adota uma política de versionamento estrita onde o controle de histórico dos projetos pertence exclusivamente ao operador humano:

  1. Aplicação Principal (<base_projeto>) e Repositório da Wiki (<modulo-wiki>, padrão ../wiki/): É terminantemente proibido à IA executar git commit, git push ou criar branches para comitar. O commit deve ser realizado apenas por um humano, cabendo à IA apenas sugerir o texto da mensagem de commit (no padrão Conventional Commits) ao concluir suas alterações.
  2. Submódulo .agent (<base_projeto>/.agent): É o único repositório onde a IA possui permissão para executar git add, git commit, git pull --rebase origin master e git push origin master de forma automática quando artefatos de IA são atualizados.

Regra

1. Na Aplicação Principal (<base_projeto>) e na Wiki (<modulo-wiki>) — COMMIT EXCLUSIVO POR HUMANO (IA APENAS SUGERE TEXTO)

A IA NUNCA deve executar commits ou pushes na aplicação principal ou na Wiki:

  1. Proibição Absoluta de Commit e Push pela IA:
    • É expressamente proibido rodar git commit ou git push em qualquer branch da aplicação principal (<base_projeto>) ou do repositório da Wiki (<modulo-wiki>).
    • A IA não deve criar branches (git checkout -b) com a finalidade de comitar alterações automaticamente.
  2. Obrigação de Sugerir o Texto do Commit:
    • Ao finalizar qualquer implementação, correção, refatoração ou documentação, a IA DEVE apresentar ao operador humano uma Sugestão de Mensagem de Commit seguindo o padrão Conventional Commits:
      • feat(<escopo>): <descrição sucinta> — novas funcionalidades
      • fix(<escopo>): <descrição sucinta> — correções de bugs
      • refactor(<escopo>): <descrição sucinta> — refatorações de código
      • docs(<modulo-id>): <descrição sucinta> — criações ou atualizações de documentação (código ou Wiki)
      • test(<escopo>): <descrição sucinta> — adição ou ajuste de testes
      • chore(<escopo>): <descrição sucinta> — manutenção e configurações
  3. Proibição de Binários Pesados no Git da Wiki (Usar MinIO Paiol):
    • É expressamente proibido versionar no Git da Wiki arquivos binários ou mídias pesadas (manuais em .pdf, vídeos .mp4/.webm, imagens pesadas, pacotes .zip).
    • Todo arquivo estático da Wiki DEVE ser enviado ao MinIO Paiol:
      ./.agent/scripts/upload-paiol-wiki.sh <arquivo> <funcionalidade/pagina>
      
      ou via curl -X PUT --upload-file ... https://paiol.idz.one/wiki/{modulo}/{slug}-{aleatorio}.{ext}.
    • Apenas o arquivo Markdown contendo a URL pública gerada deve permanecer no repositório para que o humano realize o commit.
  4. Comandos PROIBIDOS na aplicação principal e na Wiki:
    • git commit (em qualquer branch) ❌
    • git push (em qualquer branch) ❌
    • git push --force ou git push -f ❌
    • git reset --hard sem autorização explícita ❌
    • git branch -D ❌
    • git stash drop ❌

2. No Submódulo .agent (<base_projeto>/.agent) — ÚNICO COM COMMIT E PUSH AUTOMÁTICO PERMITIDO

Exclusivamente quando houver evolução de regras, skills, workflows, scripts ou personas dentro do submódulo .agent, a IA está autorizada a versionar e publicar automaticamente na branch master do .agent:

git -C .agent add -A
git -C .agent commit -m "chore(agent): <descrição sucinta da evolução>"
git -C .agent pull --rebase origin master
git -C .agent push origin master

Exemplos

❌ Errado — IA executando commit na aplicação ou na Wiki

git add src/servicos/auth.ts
git commit -m "fix(auth): ajustar renovação de token" # PROIBIDO! Apenas humano faz commit.

✅ Correto — IA finaliza a alteração e apenas sugere o texto do commit ao humano

Alterações concluídas e validadas.

💬 **Sugestão de Commit (Aplicação):**
`fix(auth): ajustar renovação de token expirado`

✅ Correto — IA atualiza a Wiki e sugere o texto do commit ao humano

Documentação atualizada em `<modulo-wiki>/dev/<modulo-id>/`.

💬 **Sugestão de Commit (Wiki):**
`docs(<modulo-id>): atualizar manual operacional e regras de negócio`

Impacto

  • Controle Humano Total: Nenhum commit ou push entra no histórico da aplicação ou da Wiki sem revisão e ação direta do operador humano.
  • Padronização Semântica: O operador recebe sempre uma sugestão de mensagem clara e pronta para uso no formato Conventional Commits.
  • Evolução Contínua do .agent: O submódulo .agent permanece sincronizado na master quando aprimorado.

Referências

  • Rule: rules/autonomia-agente.md
  • Rule: rules/ddd-documentacao-primeiro.md
  • Rule: rules/identidade-modulo.md
  • Skill: skills/documentacao/SKILL.md
  • Skill: skills/plano.executar/SKILL.md