About create-branch
A Claude Code skill that creates a Git branch using Sentry naming conventions. It derives a short description from supplied arguments or local changes, selects a base branch without prompting, and avoids name collisions.
Key features
- 01Derives a branch description
- 02Classifies the change type
- 03Uses kebab-case branch names
- 04Selects a base branch automatically
- 05Avoids local and remote name collisions
Use cases
- 01Creating a branch for a described task
- 02Naming a branch from uncommitted changes
- 03Starting work without an interactive naming prompt
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ getsentry/ skills --skill create-branchAfter installing, type/create-branchin Claude Code to confirm it loaded.
Details
From the project READMECreate Branch
Create a git branch following Sentry naming conventions. Keep this workflow non-interactive unless the user explicitly asks to choose the name manually.
Workflow
-
Resolve the work description:
- If
$ARGUMENTSis present, use it - Otherwise inspect:
git diff git diff --cached git status --short - If there are local changes, derive a short description from the diff
- If there are no local changes, use a generic description like
repo-maintenance,tooling-update, orwork-in-progress
- If
-
Classify the branch type:
| Type | Use when |
|---|---|
feat | New functionality |
fix | Broken behavior now works |
ref | Behavior stays the same, structure changes |
chore | Maintenance of existing tooling/config |
perf | Same behavior, faster |
style | Visual or formatting only |
docs | Documentation only |
test | Tests only |
ci | CI/CD config |
build | Build system |
meta | Repo metadata |
license | License changes |
When unsure: use feat for new things, ref for restructuring, chore for maintenance.
-
Generate
<type>/<short-description>. Keep<short-description>kebab-case, ASCII-only, and ideally 3 to 6 words. -
Choose the base without prompting:
git branch --show-current git remote | grep -qx origin && echo origin || git remote | head -1 git symbolic-ref refs/remotes/<remote>/HEAD 2>/dev/null | sed 's|refs/remotes/<remote>/||' | tr -d '[:space:]'- If default branch detection fails, fall back to
main, thenmaster, then the current branch - If on a detached HEAD, branch from the current commit
- If already on a non-default branch, branch from the current branch
- Only switch to the default branch when the user explicitly asks
- If default branch detection fails, fall back to
-
Avoid collisions by appending
-2,-3, and so on until the name is unused locally and remotely. -
Create the branch:
git checkout -b <branch-name>Report the final branch name, but do not stop for confirmation.