Skip to main content
skill GitHub Copilot official · GitHub

conventional-branch — GitHub Copilot skill: setup and guide

This skill creates and validates Git branches following the Conventional Branch specification. Useful when standardizing branch prefixes like feature/ or bugfix/.

Install into GitHub Copilot · Skills CLI (Vercel) All methods and platforms ↓
npx skills add github/awesome-copilot --skill conventional-branch
Open on GitHub

What conventional-branch does

This skill standardizes Git branch naming according to the Conventional Branch specification. It supports task prefixes such as feature/ or bugfix/. Agent prefixes are also included: copilot/, cursor/, claude/, codex/, and a neutral ai/. Trunk branches like main, master, and develop remain prefix-free.

When triggered, the assistant clarifies the branch purpose. It converts characters to lowercase and turns spaces into hyphens. The skill identifies the base branch from origin/HEAD. Then it pulls recent changes and checks out the new branch. You can enforce these patterns using commit-check.

Adopt this skill if your team needs unified Git naming conventions. Solo developers with casual workflows can safely skip it.

What it helps with

  • format Git branch names according to the Conventional Branch specification
  • tag agent-created branches with prefixes like copilot/ or ai/
  • detect the repository default branch and pull updates before checkout
  • clean up uppercase characters and spaces in branch names

Example prompts for the agent

  • Create a branch for new GitHub oauth login
  • Make a hotfix branch for a security patch
  • Check if my branch name complies with Conventional Branch

How to install conventional-branch

1Skills CLI (Vercel)

npx skills add github/awesome-copilot --skill conventional-branch

2GitHub CLI

gh skill install github/awesome-copilot conventional-branch

3Manually: put the files in place

.github/skills/conventional-branch/SKILL.md

From the same set554

The whole set →
git-commit official github This skill reviews Git changes, stages related files, and creates Conventional Commits. Use it when you want an agent to make one commit or split work into separate commits. GitHub Copilot 47,165installs excalidraw-diagram-generator official github Turn a plain-language description into an Excalidraw diagram. Useful for mapping processes, system structure, and relationships between entities. GitHub Copilot 31,639installs multi-stage-dockerfile official github This skill guides GitHub Copilot in writing multi-stage Dockerfiles for different languages and frameworks. Use it when the final runtime image should contain fewer build dependencies. GitHub Copilot 29,688installs documentation-writer official github Skill that turns the agent into a technical writer following the Diátaxis framework: tutorials, how-to guides, reference, and explanation. Proposes structure before writing. GitHub Copilot 27,757installs prd official github Turns a feature idea into a structured PRD with user stories, technical requirements, and risks. Use it when planning a software feature or an AI-powered one. GitHub Copilot 24,035installs refactor official github This skill reshapes existing code without changing its external behavior. Use it for gradual cleanup of large functions, duplication, weak types, and code smells. GitHub Copilot 22,321installs java-springboot official github Gives GitHub Copilot Spring Boot development practices, from project layout to tests and security. Use it when writing or reviewing Java application code. GitHub Copilot 21,272installs create-readme official github This skill reviews a project and creates a structured README.md. Use it when the repository needs clear documentation based on its actual files and code. GitHub Copilot 19,081installs

Similar

code-reviewer Alireza Rezvani Analyzes pull requests for risks and complexity, detects SOLID violations, and generates review reports. Helps inspect code changes before merging. Claude Code 1,130installs adversarial-reviewer ekreloff This skill reviews changes through Saboteur, New Hire, and Security Auditor personas. Use it before merging a PR or when Claude is too agreeable. Claude Code 813installs ci-cd-pipeline-builder Alireza Rezvani Detects project stack signals from repository files and generates baseline CI/CD pipelines for GitHub Actions or GitLab CI. Claude Code 683installs triage Matt Pocock This skill moves issues and external PRs through triage states, verification, and agent briefs. It fits maintainers managing an issue queue. Claude Code 990,453installs code-review Matt Pocock Reviews changes from a chosen reference point against repository standards and the originating spec. Use it for a branch, PR, or work in progress. Claude Code 789,521installs implement Matt Pocock Implements work from a specification or tickets, following a test-driven flow and ending with review and a commit. Use it when a coding task needs a defined delivery routine. Claude Code 774,700installs git-guardrails-claude-code Matt Pocock This skill adds a Claude Code hook that stops risky Git commands before they run. Use it when an agent must not push or discard working-tree changes. Claude Code 499,069installs setup-pre-commit Matt Pocock This skill configures pre-commit checks for a JavaScript repository, running Prettier, type checking, and tests before each commit. Claude Code 489,289installs

Questions about conventional-branch

How do I install conventional-branch for GitHub Copilot?

Run npx skills add github/awesome-copilot --skill conventional-branch or gh skill install github/awesome-copilot conventional-branch. The skill configuration resides at .github/skills/conventional-branch/SKILL.md.

What does conventional-branch do?

It formats the branch name using specification rules, detects the repository base branch, and creates the new branch with the selected prefix.

How can I validate branch names automatically?

You can run the commit-check tool with the --branch flag or include commit-check-action in your GitHub Actions workflows.

Source text

SKILL.md · MIT
---
name: conventional-branch
description: 'Create Git branches following the Conventional Branch specification (feature/, bugfix/, hotfix/, release/, chore/, plus AI agent prefixes ai/, copilot/, cursor/, claude/, codex/). Use when creating a new branch, naming a branch, or checking whether a branch name complies with the spec.'
---

# Conventional Branch

Create Git branches that follow the [Conventional Branch](https://conventionalbranch.org) 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 `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:

```bash
# 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`):

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

**Step 4 — Create and Checkout**

```bash
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](https://github.com/commit-check/commit-check) validates branch names against the specification. Run `commit-check --branch`, use its `check-branch` pre-commit hook, or [commit-check-action](https://github.com/commit-check/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](https://www.conventionalcommits.org):

| 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).

© github · MIT · github/awesome-copilot

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor