← Home ← Codex ← DEBT
Browse by Category
+ added · updated 7d
← Back to glossary

Branch Naming Conventions

Style Beginner
debt(d7/e3/b5/t3)
d7 Detectability Operational debt — how invisible misuse is to your safety net

Closest to 'only careful code review or runtime testing' (d7). The detection_hints indicate automated=no; tools listed are git, github, gitlab — none of which enforce naming conventions by default. Poor branch names are only caught during code review or when a team member notices a confusing PR title or CI log. No linter or compiler catches this.

e3 Effort Remediation debt — work required to fix once spotted

Closest to 'simple parameterised fix' (e3). The quick_fix describes adopting a consistent prefix pattern (feature/, fix/, hotfix/, etc.) with ticket IDs. This is a small, repeatable change — a team convention or a branch protection rule configuration — rather than a one-line code patch but also far from a cross-cutting refactor. Existing badly-named branches need renaming but it's localised work.

b5 Burden Structural debt — long-term weight of choosing wrong

Closest to 'persistent productivity tax' (b5). Applies to any git context (applies_to: any). Poor naming silently taxes multiple work streams: PR reviews, CI pipeline readability, deployment dashboards, Slack notifications (as the misconception highlights). It doesn't restructure the whole system but consistently slows down team communication and tooling traceability across many workflows.

t3 Trap Cognitive debt — how counter-intuitive correct behaviour is

Closest to 'minor surprise' (t3). The misconception is specific: developers assume branch names are personal/local, but they surface in PR titles, CI logs, dashboards, and notifications. This is a one-edge-case surprise — the social/team visibility aspect — rather than a deep behavioural gotcha. Most developers learn this fairly quickly once they see their branch name in a Slack notification or CI dashboard.

About DEBT scoring →

Also Known As

branch naming git branch convention feature branch

TL;DR

Consistent branch names using type/description patterns — making branch purpose immediately clear and enabling automation based on branch name prefixes.

Explanation

Common convention: type/short-description where type is feature, fix, hotfix, release, chore, refactor, or docs. Examples: feature/user-oauth-login, fix/checkout-total-rounding, hotfix/critical-xss-patch, release/2.1.0. Rules: lowercase only, hyphens not spaces (spaces are awkward in shell), descriptive but concise. Include ticket/issue number for traceability: feature/PROJ-123-user-oauth. Protected branches (main, develop, release/*) enforced via branch protection rules.

Common Misconception

Branch names are just for the developer who created the branch — branches appear in PR titles, CI pipeline logs, deployment dashboards, and Slack notifications; clear names help the whole team.

Why It Matters

A branch named fix/payment-double-charge-on-retry is instantly understood by every team member; a branch named pauls-fix requires context to understand urgency and scope.

Common Mistakes

  • Spaces in branch names: git checkout -b 'my feature' — problematic in many shell contexts.
  • All changes in main/develop without feature branches — no code review, no CI isolation.
  • Single-letter or cryptic names: fix/abc, wip2, test-branch.
  • No type prefix — cannot distinguish features from fixes from hotfixes at a glance.

Code Examples

✗ Vulnerable
# Cryptic branch names:
git checkout -b paul
git checkout -b fix
git checkout -b new-stuff
git checkout -b wip-checkout
git checkout -b 'my feature branch'  # Space causes problems
# In GitHub: 23 open PRs, no idea what any of them are
✓ Fixed
# Clear convention: type/ticket-description
git checkout -b feature/PROJ-123-user-oauth-login
git checkout -b fix/PROJ-456-checkout-total-rounding
git checkout -b hotfix/critical-xss-in-comment-form
git checkout -b release/2.1.0
git checkout -b chore/upgrade-dependencies-march

# Enforced by CI: branch must match pattern
# ^(feature|fix|hotfix|release|chore|refactor|docs)\/[a-z0-9-]+$

Added 16 Mar 2026
Edited 22 Mar 2026
Views 44
Rate this term
No ratings yet
🤖 AI Guestbook educational data only
| |
Last 30 days
0 pings T 1 ping W 1 ping T 0 pings F 0 pings S 0 pings S 0 pings M 0 pings T 0 pings W 0 pings T 1 ping F 1 ping S 0 pings S 1 ping M 1 ping T 0 pings W 1 ping T 0 pings F 0 pings S 1 ping S 0 pings M 0 pings T 0 pings W 0 pings T 0 pings F 0 pings S 1 ping S 0 pings M 0 pings T 0 pings W
No pings yet today
No pings yesterday
Amazonbot 7 Perplexity 6 Ahrefs 5 Google 4 Scrapy 3 Unknown AI 2 Claude 1 Majestic 1 Bing 1 Meta AI 1 Yandex 1
crawler 30 crawler_json 2
DEV INTEL Tools & Severity
🟢 Low ⚙ Fix effort: Low
⚡ Quick Fix
Use consistent prefixes: feature/, fix/, hotfix/, release/, chore/ — include the ticket ID (feature/PROJ-123-add-payment) so branches are automatically linked to issues
📦 Applies To
git any
🔗 Prerequisites
🔍 Detection Hints
Branch names like 'dev' 'test' 'johns-branch'; no link to issue tracker; branches surviving for months
Auto-detectable: ✗ No git github gitlab
⚠ Related Problems
🤖 AI Agent
Confidence: Medium False Positives: Medium ✗ Manual fix Fix: Low Context: File


✓ schema.org compliant