Create 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 prefix:
First try
gh api user --jq .login
Then
git config github.user
Then the local part of
git config user.email
Then
whoami
Sanitize to lowercase ASCII letters, digits, and hyphens; if empty, use
local
Resolve the work description:
If
$ARGUMENTS
is 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
, or
work-in-progress
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
/HEAD 2
/dev/null | sed 's|refs/remotes/
/||' | tr -d '[:space:]' If default branch detection fails, fall back to main , then master , 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 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. References Sentry Branch Naming