
git-branch-naming
Git branch naming conventions — type prefixes (feat/fix/chore), issue linking, kebab-case. Use when creating branches or setting up repo conventions.
- Installs
- 73
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/laurigates/claude-plugins --skill git-branch-naming- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads git-branch-naming automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Git Branch Naming Conventions
Consistent branch naming improves traceability, enables automation, and makes repository history easier to navigate.
When to Use This Skill
| 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 |
Branch Name Format
{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 |
Examples
# 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
Branch Types
| 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: |
Creating Branches
Standard Workflow
# 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
Validation Pattern
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✗ (usefeat, notfeature)fix/UserAuth✗ (use kebab-case, not PascalCase)my-branch✗ (missing type prefix)feat/fix_bug✗ (use hyphens, not underscores)
Issue Linking Best Practices
When to Include Issue Numbers
| 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 |
External Ticket Systems
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
Description Guidelines
Good Descriptions
| 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 |
Avoid
| 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 |
Length Guidelines
- Minimum: 2 words after type/issue (
feat/123-user-auth) - Maximum: 5 words, ~50 characters total
- Sweet spot: 3-4 words (
feat/123-oauth-token-refresh)
Special Branch Patterns
Release Branches
release/1.0.0
release/2.1.0-beta
release/v3.0.0-rc1
Hotfix Branches
hotfix/security-vulnerability
hotfix/critical-data-loss
hotfix/production-crash-fix
Long-Running Branches
For multi-week efforts, consider date suffix:
feat/123-major-refactor-2026q1
epic/new-billing-system
Team Conventions
User-Prefixed Branches (Optional)
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
Protected Branch Patterns
Configure branch protection for:
main
master
develop
release/*
hotfix/*
Automation Integration
Branch Name → Commit Scope
The branch type can inform commit message scope:
| Branch | Suggested Commits |
|---|---|
feat/123-auth | feat(auth): ... |
fix/456-api | fix(api): ... |
docs/readme | docs: ... |
CI/CD Triggers
Common patterns for CI pipeline triggers:
# GitHub Actions example
on:
push:
branches:
- 'feat/**'
- 'fix/**'
- 'hotfix/**'
pull_request:
branches:
- main
Quick Reference
Branch Creation Checklist
- Starts with valid type prefix (
feat/,fix/, etc.) - Issue number included (if tracked work)
- Description is kebab-case
- Description is 2-5 words
- Total length under 50 characters
- No underscores, spaces, or uppercase
Command Reference
| 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 |
Type Selection Flowchart
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/
FAQ
What does the git-branch-naming skill do?
Git branch naming conventions — type prefixes (feat/fix/chore), issue linking, kebab-case. Use when creating branches or setting up repo conventions.
How do I install git-branch-naming?
Run npx skills add https://github.com/laurigates/claude-plugins --skill git-branch-naming in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/git-branch-naming/ (personal) or .claude/skills/git-branch-naming/ (project).
Which AI agents can use git-branch-naming?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is git-branch-naming safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains git-branch-naming?
It is published by laurigates in laurigates/claude-plugins. It has 73 recorded installs.
More from laurigates/claude-plugins
python-code-quality
laurigates/claude-plugins
Python code quality with ruff and ty. Use when the user mentions ruff, ty, linting, formatting, type checking, or Python code style.
python-testing
laurigates/claude-plugins
Python testing with pytest, coverage, fixtures, and mocking. Use when the user mentions pytest, unit tests, coverage, fixtures, mocking, or writing Python tests.
pytest-advanced
laurigates/claude-plugins
Advanced pytest: fixtures, markers, parametrization, parallel execution. Use when implementing test infrastructure, writing fixtures, or running with coverage.
uv-workspaces
laurigates/claude-plugins
Manage multi-package Python projects with uv workspaces. Use when the user mentions uv workspaces, Python monorepo, shared lockfiles, or member dependencies.
uv-project-management
laurigates/claude-plugins
Python project setup, deps, and lockfiles with uv. Use when the user mentions uv, creating Python projects, managing dependencies, lockfiles, or pyproject.toml.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.