109 lines
5.3 KiB
Markdown
109 lines
5.3 KiB
Markdown
---
|
|
type: rule
|
|
name: proibido-commit-ia
|
|
description: 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.
|
|
scope: global
|
|
trigger: always_on
|
|
updatedAt: "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:
|
|
```bash
|
|
./.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`:
|
|
|
|
```bash
|
|
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
|
|
```bash
|
|
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
|
|
```markdown
|
|
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
|
|
```markdown
|
|
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`
|