checkout-branch

v2026.09.24

Create and validate Git branch names following this codebase's Conventional Commits naming convention. Use this skill when creating branches, renaming branches, or when asked about branch naming rules and validation.

GitHub
Install command
npx skhub add jimmypaolini/checkout-branch
Markdown
SKILL.md

Branch Naming Conventions

This skill teaches how to name Git branches for this codebase. All branch names must follow these rules to pass pre-push hooks and CI validation.

When to Use This Skill

  • Creating a new feature, fix, or other branch
  • Renaming an existing branch to comply with conventions
  • Understanding why a branch name was rejected
  • Validating branch names before pushing

Format

<type>/<scope>-<description>

All three parts are required. The description must be kebab-case (lowercase with hyphens).

Type

Required. Must be one of the allowed types defined in conventional.config.cjs:

<!-- types-start -->
TypeDescription
featA new feature or capability that adds value for users
fixA bug fix that addresses a specific issue or problem
docsDocumentation, AGENTS.md, SKILL.md, README, and planning files
testAdding or correcting unit, integration, or end-to-end tests
refactorCode restructuring that neither fixes a bug nor adds a feature
styleFormatting, whitespace, or code structure changes with no semantic effect
perfA code change that improves performance (caching, query optimization, etc.)
choreHousekeeping that doesn't modify src or test files (gitignore, editor config, etc.)
ciGitHub Actions workflows, composite actions, and CI/CD scripts
buildBuild system, Vite/Docker/Helm config, or external dependency integration
revertReverts a previous commit
<!-- types-end -->

Scope

Required. Must be one of the allowed scopes defined in conventional.config.cjs:

<!-- scopes-start -->
ScopeDescription
ic-suiteIn-house code measurement and validation toolchains (Callidescope, Codependix, Codometer, Conformetry) and their shared conventions
affirmationsPython Jupyter notebook application for LangGraph affirmation generation
caelundasNode.js CLI for astronomical calendar generation (NASA JPL ephemeris)
configurationWorkspace root config files (tsconfig, eslint, vitest, nx.json, etc.)
conformetryCode generator templates and validation tests for generated instances
dependenciesDependency version changes (upgrades, additions, removals via pnpm)
deploymentsGitHub Actions workflows and CI/CD pipeline configuration
documentationMarkdown docs, skills, planning files, and AGENTS.md files
infrastructureHelm charts, Terraform configs, and Kubernetes resources
JimmyPaoliniStatic GitHub profile README project (markdown and assets)
lexicoTanStack Start SSR Latin dictionary web app with Supabase backend
lexico-componentsShared React/shadcn component library
lexico-entitiesShared TypeORM entities and GraphQL types
lexico-ingestionData ingestion scripts for Lexico
meanderawGreek meander (key/fret) SVG generator CLI and the composable motif/modifier library it reads
sempientorLexical gap discovery CLI that surveys English for morphological, phonotactic, and semantic gaps and coins words to fill them
callidescopeCall stack tracing and linting CLI, the configuration package it reads, and the packages that build and render its call graph
codependixDependency graph export CLI, the configuration package it reads, and the package that judges the graphs against declared rules
codometerCode statistics measurement CLI, the configuration package it reads, and the packages that diff and render its pull request change report
no-releaseEscape hatch: suppress semantic-release for any commit type
releaseVersion bumps and release commits generated by semantic-release
reportingPull request change report generation and the packages that diff and render it
scriptsShell and TypeScript scripts in scripts/ (sync, setup, utilities)
testingVitest configuration, shared test utilities, and coverage setup
synchronizationSynchronization application and commands for automating workflows
validationValidation CLI and the checks it runs, such as pull request metadata
<!-- scopes-end -->

Description

Required. The description must be:

  • Lowercase — No capital letters
  • Kebab-case — Words separated by hyphens
  • Descriptive — Clearly indicate the purpose

Examples

✅ Good:

git checkout -b feat/lexico-user-auth
git checkout -b fix/caelundas-timezone-bug
git checkout -b docs/codebase-architecture
git checkout -b chore/dependencies-update-nx
git checkout -b feat/infrastructure-devcontainer

❌ Bad:

git checkout -b feat/lexico                  # Missing description
git checkout -b fix/caelundas                # Missing description
git checkout -b feature/lexico-auth          # Invalid type (use 'feat')
git checkout -b feat/lexicoAuth              # Wrong case (use kebab-case)
git checkout -b feat/deps-update             # Invalid scope (use 'dependencies')

Special Branches

These branches are exempt from the naming convention:

  • main — Default branch
  • develop — Development branch
  • renovate/* — Automated dependency updates
  • dependabot/* — Automated dependency updates

Creating Branches

# Feature branch for lexico project
git checkout -b feat/lexico-dashboard

# Bug fix for caelundas project
git checkout -b fix/caelundas-timezone

# Documentation update for codebase
git checkout -b docs/codebase-architecture

# Infrastructure change
git checkout -b chore/infrastructure-helm-chart

Renaming Branches

If a branch name is rejected, rename it:

# Rename local branch
git branch -m <type>/<scope>-<description>

# If already pushed, update remote
git push origin -u <new-branch-name>
git push origin --delete <old-branch-name>

Validation

Branch names are validated at multiple stages:

StageMechanismConfig File
Localconfiguration/.husky/pre-push hookvalidate-branch-name.config.cjs
CI.github/workflows/branch-validation.ymlSame config

The validation config imports types and scopes from conventional.config.cjs to ensure consistency with commit message rules.

Troubleshooting

IssueCauseSolution
"Branch name invalid"Missing descriptionAdd -<description> after scope
"Unknown scope"Typo or invalid scopeCheck allowed scopes list above
"Unknown type"Typo or invalid typeCheck allowed types list above
"Invalid format"Wrong separator or caseUse / after type, - in description, all lowercase

Quick Reference

# Format
<type>/<scope>-<description>

# Common patterns
feat/lexico-feature-name        # New feature in lexico
fix/caelundas-bug-name          # Bug fix in caelundas
docs/documentation-topic        # Documentation update
chore/dependencies-update       # Dependency update
refactor/codebase-cleanup       # Refactoring

# Rules
- Type: lowercase, from allowed list (feat, fix, docs, etc.)
- Scope: lowercase, from allowed list (project or category)
- Description: required, lowercase, kebab-case
- Separator: / between type and scope, - between scope and description

Resources

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

.agents/skills/checkout-branch

Default branch

main

Latest commit

5ac136d

Tree SHA

9af071d