From dev-toolkit
Use when creating, switching, syncing, or cleaning up git branches. Enforces naming conventions and the branching flow.
npx claudepluginhub aeriondyseti/aeriondyseti-plugins --plugin dev-toolkitThis skill uses the workspace's default tool permissions.
Manage branches following the project's branching model. Every branch operation should respect the flow: `feat/fix → dev → rc → main`.
Create, track, switch, sync, and clean up Git branches with naming conventions, safe stashing, upstream tracking, and pruning. Use for new features, bug fixes, task switching, keeping branches current, and post-merge cleanup.
Implements git branching strategies like Git Flow with naming conventions, prefixes, and best practices for clear development narratives and parallel workflows.
Guides Git workflows with branching strategies (GitHub Flow, Git Flow), conventional commits, branch naming, feature checklists, and PR reviews. Use for commits, branches, PRs, conflicts.
Share bugs, ideas, or general feedback.
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 list