conventional-branch skill
✓ VerifiedCreate and validate Git branches using a standardized naming convention for purpose and AI agent identification.
- GitHub stars
- 41,038
- Files
- 1
- Last commit
- Nov 11, 2026
- License
- MIT
- Allowed tools
- —
What does the conventional-branch skill do?
conventional-branch creates and validate Git branches using a standardized naming convention for purpose and AI agent identification.
Summary generated from the skill's SKILL.md.
About the conventional-branch skill
Standardizing Git branch names for development teams and AI coding agents is what this skill enables. It provides a structured way to create and validate branches using specific prefixes like feature, bugfix, hotfix, release, or chore. It also includes specialized prefixes to identify work generated by specific AI tools such as Claude, Copilot, Cursor, or Codex.
An agent should load this skill when it needs to initialize a new development task or verify if an existing branch name follows the specification. The process involves determining the appropriate branch type, validating the name against strict rules regarding lowercase letters and character usage, and detecting the correct local or remote trunk branch like main or develop. The skill produces a correctly formatted branch name and executes the necessary git checkout commands to prepare the environment for work.
What an agent can do with it
- 1Create a standardized feature branchGenerate a new branch for a specific task using the correct prefix and kebab-case description.
- 2Identify AI-generated workLabel branches created by specific coding assistants to maintain clear provenance in the repository.
- 3Validate existing branch namesCheck if a branch name adheres to the naming rules such as lowercase requirements and character restrictions.
Written from the skill's SKILL.md. Every use case is checked against a quote from it.
How to install the conventional-branch skill
Each command copies the skill folder into the client's skills directory. Restart the client or start a new session to load it.Install the conventional-branch skill in Claude Code
~/.claude/skills/conventional-branch/SKILL.md
$ npx degit github/awesome-copilot/skills/conventional-branch ~/.claude/skills/conventional-branchInstall the conventional-branch skill in Claude Code (project)
.claude/skills/conventional-branch/SKILL.md
$ npx degit github/awesome-copilot/skills/conventional-branch .claude/skills/conventional-branchInstall the conventional-branch skill in Codex
~/.agents/skills/conventional-branch/SKILL.md
$ npx degit github/awesome-copilot/skills/conventional-branch ~/.agents/skills/conventional-branchInstall the conventional-branch skill in Gemini CLI
~/.gemini/skills/conventional-branch/SKILL.md
$ npx degit github/awesome-copilot/skills/conventional-branch ~/.gemini/skills/conventional-branchInstall the conventional-branch skill in Claude.ai
npx degit github/awesome-copilot/skills/conventional-branch conventional-branch && zip -r conventional-branch.zip conventional-branch # claude.ai → Customize → Skills → + → Create skill → Upload a skill → conventional-branch.zip
Automated checks
Ran Nov 13, 2026Full report →Passed our automated checks. That is not a security audit: read the scripts before you let an agent run them. How checks work
- Source repository linked and reachablegithub/awesome-copilot/skills/conventional-branch is public and reachablegithub.com/github/awesome-copilot/tree/HEAD/skills/conventio ↗Pass
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit 2026-11-11github.com/github/awesome-copilot/commits ↗Pass
- No download-and-run or credential theft in scriptsNo scripts in the skill folderPass
- No hidden instructions in SKILL.mdNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/github/awesome-copilot/blob/HEAD/skills/conventio ↗Pass
- Pre-approved tools are scopedNo pre-approved tools; the agent asks before using onegithub.com/github/awesome-copilot/blob/HEAD/skills/conventio ↗Pass
SKILL.md
View on 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
Purpose prefixes — describe the intent of the work:
| 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) |
AI agent source prefixes — identify branches generated by AI coding agents:
| Type | Alias | Purpose |
|---|---|---|
ai/ |
— | Generic prefix for any AI coding agent |
copilot/ |
— | GitHub Copilot |
cursor/ |
— | Cursor |
claude/ |
— | Claude Code by Anthropic |
codex/ |
— | OpenAI Codex |
Use a vendor-specific prefix when you know which agent is producing the branch; use ai/ as a vendor-neutral fallback.
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 are allowed in any description, typically for version numbers (e.g.,
release/v1.2.0,chore/upgrade-node-v20.11) - 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
ai/refactor-auth-flow
copilot/add-login-page
cursor/fix-header-bug
claude/security-patch
codex/optimize-query
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
Validation
commit-check validates branch names against the specification. Run commit-check --branch, use its check-branch pre-commit hook, or commit-check-action in GitHub Actions. Configuration for GitHub rulesets, GitLab, Bitbucket and Git hooks is at https://conventionalbranch.org/enforce/.
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).
Files in this skill
1conventional-branch skill questions
How do I install the conventional-branch skill in Claude Code?
Run npx degit github/awesome-copilot/skills/conventional-branch ~/.claude/skills/conventional-branch. Claude Code loads skills from ~/.claude/skills (all projects) or .claude/skills (one project) and uses a skill when its description matches the task.
Which clients can use the conventional-branch skill?
Any client that reads the Agent Skills format: Claude Code, Codex, Gemini CLI and claude.ai (upload as a ZIP). Scripts in the skill run only where the client allows code execution.