minions-ai-agents/src/knowledge/standards/git_standards.md

2.3 KiB

🐙 Padrões Git (O Protocolo "Guardião do Tempo")

Público: Todos os Agentes (O Arquiteto, Linus Torvalds). Objetivo: Manter um histórico limpo, significativo e reversível.

[!CRITICAL] O Mandato Linus: "Sua mensagem de commit é uma carta de amor para o futuro desenvolvedor que terá que debugar seu código às 3 da manhã. Não escreva 'coisas consertadas'."

1. 📝 Commits Convencionais (Reforço Estrito)

Seguimos Conventional Commits com categorização em Português.

Formato

type(scope): description

Tipos

  • feat: Nova funcionalidade (New Feature).
  • fix: Correção de bug (Bug Fix).
  • docs: Alterações apenas em documentação (README, .md).
  • style: Formatação, ponto-e-vírgula (sem mudança de lógica).
  • refactor: Mudança de código que não corrige bug nem adiciona feature.
  • test: Adição ou correção de testes.
  • chore: Atualização de tarefas de build, configs de ferramenta, etc.

Exemplos

  • BOM: feat(auth): adicionar validação de token JWT no login
  • BOM: fix(ui): resolver problema de overflow na navbar móvel
  • RUIM: update code
  • RUIM: fixed bug

2. 🌳 Estratégia de Branching (Trunk Based / Git Flow)

  • Main: A fonte da verdade. Sempre implantável.
  • Branches de Feature: feat/nome-da-feature
  • Branches de Fix: fix/descricao-do-problema
  • Hotfix: hotfix/bug-critico-producao

3. ⚛️ Commits Atômicos

Regra: Uma mudança lógica = Um Commit.

  • Não misture uma refatoração genérica de CSS com uma migração crítica de banco de dados no mesmo commit.
  • Por que? Para que possamos dar git revert na refatoração de CSS sem quebrar o banco de dados.

4. 🛑 A Checagem "Árvore Suja"

Antes de começar qualquer tarefa, Agentes devem verificar git status.

  1. Árvore Limpa: Prossiga.
  2. Árvore Suja: PARE. Notifique o usuário. "Não posso iniciar uma nova tarefa com mudanças não commitadas."

5. 🤖 O Checklist de "Commit" do Agente

Antes de rodar git commit:

  • A mensagem está no formato type: description?
  • Adicionei TODOS os arquivos relevantes (git add . é perigoso se você não checou .gitignore)?
  • O código passa no linter?