From dev-toolkit
Use when creating, switching, syncing, or cleaning up git branches. Enforces naming conventions and the branching flow.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dev-toolkit:branch-managementThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Manage branches following the project's branching model. Every branch operation should respect the flow: `feat/fix → dev → rc → main`.
Manage branches following the project's branching model. Every branch operation should respect the flow: feat/fix → dev → rc → main.
git statusdev)git pull origin dev# Feature branch
git checkout -b feat/<description> dev
# Fix branch
git checkout -b fix/<description> dev
Follow the naming conventions from the git-conventions skill:
feat/<kebab-case> for featuresfix/<kebab-case> for bug fixesdev unless there's a specific reason not toIf the user hasn't specified a branch name, propose one based on the work description. Present it for confirmation:
I'll create
feat/add-vector-searchfromdev. Sound good?
Before switching:
git status# Stash if needed
git stash push -m "WIP: description of current work"
# Switch
git checkout <branch-name>
# Restore stash later
git stash pop
When dev has moved ahead and you need its changes:
git fetch origin
git rebase origin/dev
Prefer rebase over merge for feature branches — it keeps a linear history. If conflicts arise, resolve them carefully; don't discard changes without understanding them.
After a release lands on main:
git checkout dev
git merge main
git push origin dev
Or, if the project convention is to reset dev:
git checkout dev
git reset --hard origin/main
git push origin dev --force-with-lease
Always confirm with the user before force-pushing, even to dev.
Once a feature branch has been merged (via PR or locally):
# Delete local branch
git branch -d feat/<name>
# Delete remote branch
git push origin --delete feat/<name>
Find branches that have been deleted on the remote but still exist locally:
git fetch --prune
git branch -vv | grep ': gone]'
Present the list to the user before deleting anything. Never bulk-delete without confirmation.
A branch is likely stale if:
dev or mainList candidates and let the user decide.
Release candidate branches have special rules:
git checkout -b rc/X.Y.Z devX.Y.Z-rc.1, X.Y.Z-rc.2, etc.main or devmain — warn the user if they ask--force-with-lease instead of --force when force-pushing is necessarygit worktree listnpx claudepluginhub aeriondyseti/aeriondyseti-plugins --plugin dev-toolkitCreates, tracks, switches, syncs, and cleans up Git branches with consistent naming conventions and safe working-tree handling.
Implements git branching strategies like Git Flow with naming conventions, prefixes, and best practices for clear development narratives and parallel workflows.
Manages Git branch strategy, worktrees, commits, PR preparation, merge/rebase decisions, conflict resolution, tagging, and release notes. Validates state before making changes.