MR
Mayur Rathi
@github
⭐ 34.1k GitHub stars

Conventional-Branch

Conventional-Branch是一款code方向的AI技能,核心价值是Create Git branches following the Conventional Branch specification (feature/, bugfix/, hotfix/, release/, chore/),可用于解决开发者在code领域的实际问题,帮助用户提升效率、自动化重复任务或优化工作流。

Create Git branches following the Conventional Branch specification (feature/, bugfix/, hotfix/, release/, chore/). Use when creating a new branch, naming a branch, or checking whether a branch name c

Last verified on: 2026-05-30
mkdir -p ./skills/conventional-branch && curl -sfL https://raw.githubusercontent.com/github/awesome-copilot/main/skills/conventional-branch/SKILL.md -o ./skills/conventional-branch/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

# Conventional Branch


Create Git branches that follow the [Conventional Branch](https://conventional-branch.github.io) specification — a simple, consistent convention for naming Git branches.


Branch Name Format


text
<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


text
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 `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


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

🎯 Best For

  • Claude users
  • GitHub Copilot users
  • Software engineers
  • Development teams
  • Tech leads

💡 Use Cases

  • Code quality improvement
  • Best practice enforcement

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude or GitHub Copilot and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply Conventional-Branch to Your Work

    Open your project in the AI assistant and ask it to apply the skill. Start with a small module to verify the output quality.

  4. 4

    Review and Refine

    Review AI suggestions before committing. Run tests, check for regressions, and iterate on the skill output.

❓ Frequently Asked Questions

Is Conventional-Branch compatible with Cursor and VS Code?

Yes — this skill works with any AI coding assistant including Cursor, VS Code with Copilot, and JetBrains IDEs.

Do I need specific dependencies for Conventional-Branch?

Check the install command and Works With section. Most code skills only require the AI assistant and your codebase.

How do I install Conventional-Branch?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/conventional-branch/SKILL.md, ready to use.

Can I customize this skill for my team?

Absolutely. Edit the SKILL.md file to add team-specific instructions, examples, or workflows.

⚠️ Common Mistakes to Avoid

Skipping validation

Always test AI-generated code changes, even for simple refactors.

Missing dependency updates

Check if the skill requires updated dependencies or new packages.

🔗 Related Skills