2.1 KiB
2.1 KiB
🐙 Git Standards (The "Timekeeper" Protocol)
Audience: All Agents (The Architect, Linus Torvalds). Objective: Maintain a clean, meaningful, and reversible history.
[!CRITICAL] The Linus Mandate: "Your commit message is a love letter to the future developer who has to debug your code at 3 AM. Don't write 'fixed stuff'."
1. 📝 Conventional Commits (Strict Enforcement)
We follow Conventional Commits with Portuguese categorization.
Format
type(scope): description
Types
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.
Examples
- ✅ GOOD:
feat(auth): add JWT token validation on login - ✅ GOOD:
fix(ui): resolve overflow issue on mobile navbar - ❌ BAD:
update code - ❌ BAD:
fixed bug
2. 🌳 Branching Strategy (Trunk Based / Git Flow)
- Main: The source of truth. Always deployable.
- Feature Branches:
feat/name-of-feature - Fix Branches:
fix/issue-description - Hotfix:
hotfix/critical-production-bug
3. ⚛️ Atomic Commits
Rule: One logical change = One Commit.
- Do not mix a generic CSS refactor with a critical DB migration in the same commit.
- Why? So we can
git revertthe CSS refactor without breaking the DB.
4. 🛑 The "Dirty Tree" Check
Before starting any task, Agents must check git status.
- Clean Tree: Proceed.
- Dirty Tree: STOP. Notify user. "I cannot start a new task with uncommitted changes."
5. 🤖 The Agent "Commit" Checklist
Before running git commit:
- Is the message in the
type: descriptionformat? - Did I add ALL relevant files (
git add .is dangerous if you didn't check.gitignore)? - Does the code pass the linter?