From development
Defines how git branches must be named at this organization. Use this skill whenever Claude Code is about to create a git branch, suggest a branch name, check out a new branch, or when the user asks "what should I name this branch", "create a branch for...", or "start work on issue #...". Always consult this skill before proposing or creating any branch name — even for quick fixes or experiments.
How this skill is triggered — by the user, by Claude, or both
Slash command
/development:git-branch-namingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Branches follow one of two formats depending on whether a GitHub Issue exists:
Branches follow one of two formats depending on whether a GitHub Issue exists:
With issue number (preferred when a GitHub Issue exists):
<type>/<issue-number>-<short-description>
Without issue number (for informal/exploratory work):
<type>/<short-description>
The type is always required. The issue number is optional but strongly preferred when work is tracked in GitHub Issues.
# With GitHub Issue
feat/42-add-oauth-login
fix/87-null-pointer-on-empty-cart
chore/101-upgrade-to-node-20
refactor/55-extract-payment-service
docs/12-api-authentication-guide
hotfix/200-csrf-token-missing
# Without GitHub Issue
feat/add-oauth-login
fix/null-pointer-on-empty-cart
chore/upgrade-to-node-20
refactor/extract-payment-service
docs/api-authentication-guide
hotfix/csrf-token-missing
| Type | When to use |
|---|---|
feat | New features or user-facing functionality |
fix | Bug fixes in non-production code |
hotfix | Urgent fixes to production; typically branched from main |
chore | Dependency updates, CI/CD changes, tooling, build system |
refactor | Code restructuring with no functional change |
docs | Documentation only changes |
When in doubt between feat and refactor: if the user will notice the change, use feat. If only the code changes, use refactor.
add-login, fix-crash, not adding-login, fixed-crash| ✅ Good | ❌ Bad |
|---|---|
feat/23-add-user-avatars | feat/23-AddUserAvatars |
feat/add-user-avatars | feat/23_add_user_avatars |
fix/99-login-redirect-loop | fix/99_login_redirect_loop |
fix/login-redirect-loop | fix/login redirect loop |
chore/14-bump-jest-29 | chore/14-updated-jest-version-to-29 |
chore/bump-jest-29 | chore/bumping-jest-to-version-29-stable |
refactor/67-split-auth-module | 67-split-auth-module (missing type) |
hotfix/fix-xss-in-comments | hotfix-fix-xss (wrong separator) |
#42 → use 42)Never create branches directly named:
maindeveloprelease/*stagingThese are managed through PRs only.
When asked to start work on a task or create a branch:
# With issue
git switch -c feat/42-add-oauth-login
# Without issue
git switch -c feat/add-oauth-login
If the user provides a branch name that violates these rules, point out the violation and suggest a corrected name before proceeding.
npx claudepluginhub timo-jakob/timos-claude-code-plugins --plugin developmentEnforces Git branch naming conventions with type prefixes (feat, fix, chore), issue linking, and kebab-case formatting. Use for creating branches, validating names, or setting repository standards.
Creates git branches following Sentry naming conventions. Automatically determines branch type and description from arguments or local diff. Useful when starting new work.
Creates git branches following Sentry naming conventions by analyzing changes and classifying branch types. Useful for standardizing branch creation.