| name | git-workflow |
| description | Standardized patterns for Git branching, worktrees, and lifecycle management. |
| file_triggers | [".agent/workflows/work.md"] |
Git Workflow Patterns
Overview
Ensures consistent Git practices across all agent workflows, favoring isolated work environments (worktrees) and clean lifecycle closure.
Branch Setup
Option A: Standard Branching
Use for quick, single-task fixes where isolated environments are not required.
git checkout main && git pull origin main
git checkout -b feature/{feature-name}
Option B: Isolated Worktree (RECOMMENDED)
Use for complex features or PR reviews to keep the main workspace clean.
./scripts/worktree-feature.sh {feature-name}
cd ../.worktrees/feature-{feature-name}
./scripts/worktree-review.sh {pr-number}
cd ../.worktrees/pr-{pr-number}
Why worktrees?
- Parallel work without stashing.
- Isolated dependencies.
- No interruption of main branch state.
Branch Lifecycle Closure (MANDATORY)
[!CAUTION]
BLOCKING STEP. Never proceed to task completion with an open, unmerged feature branch unless explicitly documented.
Option A: Work Merged via PR (Recommended)
If the PR was merged via GitHub:
git checkout main
git pull origin main
git branch -d feature/{name}
Option B: Local-Only Work (Direct Merge)
If work was small and doesn't need a PR:
git checkout main
git merge feature/{name} --no-ff -m "merge: {feature}"
git branch -d feature/{name}
git push origin main
Option C: Abandon Work
git checkout main
git branch -D feature/{name}
git push origin --delete feature/{name}
Option D: Keep WIP (Escape Hatch)
If the branch must stay open (e.g., waiting for review):
export SKIP_BRANCH_CHECK=1
git push
Option E: Worktree Cleanup
git worktree remove ../.worktrees/{name}
./scripts/worktree-cleanup.sh
Instrumentation
./scripts/log-skill.sh "git-workflow" "workflow" "{calling_workflow_name}"