| name | git-safety |
| description | Critical safety guardrails for protected branches: never commit, push, or force-push directly to main, latest, or release branches; no destructive history rewrites without explicit user approval. Use before any git operation that touches protected branches, before force-push, reset --hard, history rewrite, or branch deletion, or whenever the user asks about merging, pushing, or release branches. |
Git Safety Rules for AI Agents
🚫 CRITICAL: Protected Branch Rules
AI agents must NEVER commit to or push to protected branches under any circumstances.
Protected Branches
main - Primary production branch
latest - Latest stable release
release/* - Release branches (e.g., release/v2.0.0)
This is a non-negotiable rule that applies to all scenarios:
Prohibited Actions
- ❌ Direct commits - Never run
git commit while on a protected branch
- ❌ Direct pushes - Never run
git push origin <protected-branch> or git push while on a protected branch
- ❌ Force pushes - Never run
git push --force or git push -f targeting protected branches
- ❌ Merging into protected branches locally - Never run
git merge <branch> while on a protected branch
- ❌ Rebasing protected branches - Never run
git rebase while on a protected branch
- ❌ Resetting protected branches - Never run
git reset while on a protected branch
Required Workflow
- Always create a feature branch before making any changes
- Verify current branch before any git operation using
git branch --show-current
- Create Pull Requests for all changes - let the review process handle merging
Pre-Push Checklist
Before executing any push command, AI agents must:
- ✅ Confirm current branch is NOT a protected branch (
main, latest, release/*)
- ✅ Verify the remote and branch target
Error Recovery
If accidentally on a protected branch with uncommitted changes:
- Stash changes:
git stash
- Create new branch:
git checkout -b <appropriate-branch-name>
- Apply changes:
git stash pop
- Continue work on the new branch
Rationale
- Protected branches represent production-ready or release code
- All changes must go through code review via Pull Requests
- Direct pushes bypass CI/CD checks and team review
- Mistakes on protected branches can affect the entire team and deployment pipeline