New to Claude Skills? Learn how to install them →

github on GitHub

Conventional Branch

OfficialFree

Streamline your Git branch naming process.

Get this skill

Free · Opens the source repo

What Conventional Branch does

The Conventional Branch skill assists developers in creating Git branches that adhere to the Conventional Branch specification. This specification provides a standardized format for naming branches, which enhances clarity and consistency across projects. By following this convention, teams can easily understand the purpose of each branch at a glance, whether it’s for a new feature, a bug fix, or a release preparation.

This skill simplifies the branch creation process by guiding users through the necessary steps to determine the correct branch type and validate the branch name according to established naming rules. It ensures that branch names are in lowercase, free of special characters, and formatted correctly, which helps prevent errors and confusion in collaborative environments. Additionally, it detects the base branch from which to create the new branch, ensuring that users are working off the correct trunk branch.

Developers and teams that prioritize organization and clarity in their version control practices will find this skill particularly beneficial. By adhering to the Conventional Branch specification, teams can align their branch naming with the Conventional Commits standard, creating a seamless workflow from branch creation to commit messages. This alignment not only improves communication among team members but also enhances the overall development process.

In summary, the Conventional Branch skill is designed for developers looking to maintain a clean and understandable Git branching strategy. It provides a straightforward way to create and validate branch names, ensuring compliance with best practices and fostering a more efficient development workflow.

When to use it

Use this skill when creating new branches to ensure they follow the Conventional Branch specification.

When not to use it

This skill may not be suitable for teams that do not follow the Conventional Branch or Conventional Commits specifications.

What you can build with it

Creating a New Feature Branch

When starting a new feature, use this skill to create a branch named `feature/add-login-page`, ensuring it follows the naming conventions.

Validating Existing Branch Names

Before merging branches, validate their names using this skill to ensure they comply with the Conventional Branch specification.

Preparing for a Release

Use this skill to create a release branch named `release/v1.2.0`, following the specified format for clarity in versioning.

How to install Conventional Branch

View source

1. Install with the skills CLI

npx skills add github/awesome-copilot/conventional-branch --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by github

Conventional Branch

Create Git branches that follow the Conventional Branch specification — a simple, consistent convention for naming Git branches.

Branch Name Format

<type>/<description>

Branch Types

TypeAliasPurpose
feature/feat/New features or enhancements
bugfix/fix/Bug fixes
hotfix/Urgent production fixes
release/Release preparation (dots allowed in version: release/v1.2.0)
chore/Non-code tasks (deps, docs, config)

Trunk Branches

main, master, and develop are trunk branches — they do not use a prefix. Never create new branches with the same names as trunk branches; branch off them instead.

Naming Rules

  • Lowercase only — no uppercase letters anywhere
  • Alphanumerics, hyphens, and dotsa-z, 0-9, -, .
  • Dots allowed only in release/ version descriptions (e.g., release/v1.2.0)
  • No underscores, spaces, or special characters
  • No consecutive hyphens (--), dots (..), or hyphen-dot adjacency (-. or .-)
  • No leading or trailing hyphens or dots in the description

Valid Examples

main
master
develop
feature/add-login-page
feat/add-login-page
bugfix/fix-header-bug
fix/header-bug
hotfix/security-patch
release/v1.2.0
chore/update-dependencies
feature/issue-123-new-login

Invalid Examples

BranchProblem
Feature/Add-LoginUppercase letters
feature/new--loginConsecutive hyphens
feature/-new-loginLeading hyphen
feature/new-login-Trailing hyphen
release/v1.-2.0Hyphen adjacent to dot
fix/header bugSpace
fix/header_bugUnderscore
unknown/some-taskUnknown prefix type

Description Guidelines

  • Use kebab-case with 2-5 words
  • Be descriptive but concise (~50 chars total)
  • Good: add-oauth-login, fix-header-overflow, update-ci-config
  • Bad: fix-bug, new-feature

Workflow

Follow these steps:

Step 1 — Determine Branch Type

Ask the user (if not already clear):

  • Branch type — default to feature when uncertain
  • Brief description — what the branch is for

If the user mentions a ticket or issue number, include it in the description (e.g., feature/issue-123-add-oauth).

Step 2 — Validate the Name

Check the assembled name against the Naming Rules above. If any rule fails, fix it:

  • Lowercase everything
  • Replace underscores and spaces with hyphens
  • Collapse consecutive hyphens
  • Strip leading/trailing hyphens

Step 3 — Detect the Base Branch

Different repos use different trunk branches. Detect which one this repo uses:

# Prefer the remote's default branch
git symbolic-ref --short refs/remotes/origin/HEAD 2>/dev/null | sed 's|^origin/||'

If that returns nothing, check which trunk branch exists locally (priority order: develop, main, master):

for b in develop main master; do
  git show-ref --verify --quiet "refs/heads/$b" && echo "$b" && break
done

Step 4 — Create and Checkout

git checkout <base>
git pull origin <base>
git checkout -b <type>/<description>

Step 5 — Confirm

Tell the user:

  • The branch name that was created
  • That they are now on the new branch
  • Remind them: git push -u origin <branch-name> when ready

Relationship with Conventional Commits

Conventional Branch complements Conventional Commits:

Conventional BranchTypical Conventional Commit
feature/add-loginfeat: add login page
bugfix/fix-headerfix: header overflow on mobile
chore/update-depschore: bump lodash to 5.0
release/v1.2.0chore: release v1.2.0

Align the branch type with commit types where possible (e.g., feature/* branches with feat: commits).

Frequently asked questions about Conventional Branch

Similar skills