Help us improve
Share bugs, ideas, or general feedback.
From git-plugin
Enforces 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.
npx claudepluginhub laurigates/claude-plugins --plugin git-pluginHow this skill is triggered — by the user, by Claude, or both
Slash command
/git-plugin:git-branch-naminghaikuThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Consistent branch naming improves traceability, enables automation, and makes repository history easier to navigate.
Implements git branching strategies like Git Flow with naming conventions, prefixes, and best practices for clear development narratives and parallel workflows.
Provides Git workflow standards including branch naming, conventional commits, and PR guidelines. Use when creating branches, writing commits, or preparing PRs.
Applies Conventional Commits v1.0.0 standards for Git branch naming, worktree organization under .claude/worktrees/, and commit messages in GitHub/GitLab projects. Supports consistent history, SemVer releases, and changelog automation.
Share bugs, ideas, or general feedback.
Consistent branch naming improves traceability, enables automation, and makes repository history easier to navigate.
| Use this skill when... | Use something else when... |
|---|---|
| Creating a new feature/fix branch | Managing PR workflows → git-branch-pr-workflow |
| Setting up team branch conventions | Committing changes → git-commit-workflow |
| Discussing naming standards | Rebase/merge strategies → git-branch-pr-workflow |
{type}/{issue}-{short-description}
| Component | Format | Required | Example |
|---|---|---|---|
type | Lowercase prefix | Yes | feat, fix |
issue | Issue number, no # | If issue exists | 123 |
description | kebab-case, 2-5 words | Yes | user-authentication |
# With issue number (preferred when issue exists)
feat/123-oauth-login
fix/456-null-pointer-crash
chore/789-update-dependencies
docs/101-api-reference
# Without issue number (when no issue exists)
feat/oauth-integration
fix/memory-leak-cleanup
chore/update-eslint-config
refactor/auth-service-split
| Type | Purpose | Conventional Commit |
|---|---|---|
feat/ | New features, capabilities | feat: |
fix/ | Bug fixes | fix: |
chore/ | Maintenance, deps, config | chore: |
docs/ | Documentation only | docs: |
refactor/ | Code restructuring, no behavior change | refactor: |
test/ | Adding/updating tests | test: |
ci/ | CI/CD pipeline changes | ci: |
hotfix/ | Emergency production fixes | fix: (with urgency) |
release/ | Release preparation | chore: or release: |
# With issue number
git switch -c feat/123-user-authentication
# Without issue number
git switch -c fix/login-timeout-handling
# From specific base
git switch -c feat/456-payment-api main
git switch -c hotfix/security-patch production
Before creating, validate the format:
# Branch name regex pattern
^(feat|fix|chore|docs|refactor|test|ci|hotfix|release)/([0-9]+-)?[a-z0-9]+(-[a-z0-9]+)*$
Valid:
feat/123-user-auth ✓fix/memory-leak ✓chore/update-deps ✓Invalid:
feature/user-auth ✗ (use feat, not feature)fix/UserAuth ✗ (use kebab-case, not PascalCase)my-branch ✗ (missing type prefix)feat/fix_bug ✗ (use hyphens, not underscores)| Scenario | Include Issue? | Example |
|---|---|---|
| Work tracked in GitHub Issues | Yes | feat/123-add-oauth |
| Work tracked in external system (Jira, Linear) | Optional | feat/PROJ-456-oauth or feat/oauth |
| Exploratory/spike work | No | spike/auth-approaches |
| Quick fix without issue | No | fix/typo-readme |
| Dependabot/automated PRs | No | chore/bump-lodash |
For Jira, Linear, or other systems, use the ticket ID:
feat/PROJ-123-user-dashboard
fix/LINEAR-456-api-timeout
chore/JIRA-789-update-sdk
| Pattern | Example | Why Good |
|---|---|---|
| Action + Target | add-oauth-login | Clear what's being done |
| Component + Change | auth-service-refactor | Identifies affected area |
| Bug + Context | null-pointer-user-save | Describes the issue |
| Anti-pattern | Problem | Better |
|---|---|---|
fix/bug | Too vague | fix/123-login-validation |
feat/new-feature | Meaningless | feat/user-dashboard |
feat/john-working-on-stuff | Not descriptive | feat/456-payment-flow |
fix/issue-123 | Redundant, no description | fix/123-timeout-error |
feat/add-new-user-authentication-system-with-oauth | Too long | feat/oauth-authentication |
feat/123-user-auth)feat/123-oauth-token-refresh)release/1.0.0
release/2.1.0-beta
release/v3.0.0-rc1
hotfix/security-vulnerability
hotfix/critical-data-loss
hotfix/production-crash-fix
For multi-week efforts, consider date suffix:
feat/123-major-refactor-2026q1
epic/new-billing-system
For large teams where branch ownership matters:
# Pattern: {user}/{type}/{description}
alice/feat/123-oauth
bob/fix/456-memory-leak
# Or: {type}/{user}-{description}
feat/alice-oauth-integration
fix/bob-memory-leak
Configure branch protection for:
main
master
develop
release/*
hotfix/*
The branch type can inform commit message scope:
| Branch | Suggested Commits |
|---|---|
feat/123-auth | feat(auth): ... |
fix/456-api | fix(api): ... |
docs/readme | docs: ... |
Common patterns for CI pipeline triggers:
# GitHub Actions example
on:
push:
branches:
- 'feat/**'
- 'fix/**'
- 'hotfix/**'
pull_request:
branches:
- main
feat/, fix/, etc.)| Action | Command |
|---|---|
| Create branch | git switch -c feat/123-description |
| List by type | git branch --list 'feat/*' |
| Delete local | git branch -d feat/123-description |
| Delete remote | git push origin --delete feat/123-description |
| Rename | git branch -m old-name new-name |
Is it a bug fix? → fix/
Is it a new capability? → feat/
Is it documentation? → docs/
Is it maintenance/deps? → chore/
Is it restructuring code? → refactor/
Is it adding tests? → test/
Is it CI/CD changes? → ci/
Is it an emergency? → hotfix/