
Conventional Branch
OfficialFreeStreamline your Git branch naming process.
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 source1. Install with the skills CLI
npx skills add github/awesome-copilot/conventional-branch --agent claude-code2. 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 githubConventional 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
| Type | Alias | Purpose |
|---|---|---|
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 dots —
a-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
| Branch | Problem |
|---|---|
Feature/Add-Login | Uppercase letters |
feature/new--login | Consecutive hyphens |
feature/-new-login | Leading hyphen |
feature/new-login- | Trailing hyphen |
release/v1.-2.0 | Hyphen adjacent to dot |
fix/header bug | Space |
fix/header_bug | Underscore |
unknown/some-task | Unknown 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
featurewhen 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 Branch | Typical Conventional Commit |
|---|---|
feature/add-login | feat: add login page |
bugfix/fix-header | fix: header overflow on mobile |
chore/update-deps | chore: bump lodash to 5.0 |
release/v1.2.0 | chore: 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
Release Candidate Preparation
Streamline your OpenAI Agents release process.
Gitmoji
Generate expressive commit messages with emojis.
GitHub Release
Automate your GitHub library release process effortlessly.
Commit Message Storyteller
Generate meaningful commit messages from your git diffs.
Author Contributions
Trace author contributions across branches in Git.
Implementation Kickoff
Streamline your code implementation process with ease.
