Skip to content
Agent Orchestration
Command

/checkout

Smart branch creation and switching with conventional naming

From plugin
claudekit
76424 skills35 agents24 commands

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/checkout

Context preview

What this command does when you run it.

Smart branch creation and switching with conventional naming

Command definition

checkout.md
description: Smart branch creation and switching with conventional naming
allowed-tools: Bash(git:*), Read
category: workflow
argument-hint: "<branch-type/branch-name | branch-name>"

Git Checkout: Smart Branch Management

Create or switch to branches with intelligent naming conventions and setup.

Current Branch Status

!`git branch --show-current 2>/dev/null || echo "(no branch)"`

Available Branches

!`git branch -a 2>/dev/null | head -20`

Branch Creation Task

Based on the arguments provided: `$ARGUMENTS`

Parse the branch specification and create/switch to the appropriate branch.

Supported Branch Types

  • `feature/` - New features and enhancements
  • `bugfix/` - Bug fixes (non-critical)
  • `hotfix/` - Urgent production fixes
  • `release/` - Release preparation branches
  • `chore/` - Maintenance and cleanup tasks
  • `experiment/` - Experimental features
  • `docs/` - Documentation updates
  • `test/` - Test-related changes
  • `refactor/` - Code refactoring

Branch Naming Rules

1. If argument contains `/`, use as-is (e.g., `feature/user-auth`) 2. If argument is single word, suggest adding a prefix 3. Convert spaces to hyphens 4. Lowercase all characters 5. Remove special characters except hyphens and slashes 6. Validate branch name is git-compatible

Workflow

1. **Parse the branch argument**:

  • If empty, show current branch and available branches
  • If contains `/`, treat as type/name format
  • If single word without `/`, ask for branch type or suggest `feature/`

2. **Validate branch name**:

  • Check if branch already exists locally
  • Check if branch exists on remote
  • Ensure name follows git conventions
  • Warn if name is too long (>50 chars)

3. **Create or switch branch**:

  • If branch exists locally: `git checkout <branch>`
  • If branch exists only on remote: `git checkout -b <branch> origin/<branch>`
  • If new branch: `git checkout -b <branch>`

4. **Set up branch configuration**:

  • For hotfix branches: Base off main/master
  • For feature branches: Base off current branch or develop
  • For release branches: Base off develop or main

5. **Report status**:

  • Confirm branch switch/creation
  • Show upstream tracking status
  • Suggest next steps (e.g., "Ready to start working. Use /git:push to set upstream when ready to push.")

Examples

# Create feature branch
/git:checkout feature/user-authentication

# Create hotfix from main
/git:checkout hotfix/security-patch

# Switch to existing branch
/git:checkout develop

# Create branch without prefix (will prompt)
/git:checkout payment-integration

Special Handling

For hotfix branches:

  • Automatically checkout from main/master first
  • Set high priority indicator
  • Suggest immediate push after fix

For feature branches:

  • Check if develop branch exists, use as base
  • Otherwise use current branch as base

For release branches:

  • Validate version format if provided (e.g., release/v1.2.0)
  • Set up from develop or main

Error Handling

  • If branch name is invalid, suggest corrections
  • If checkout fails, show git error and provide guidance
  • If working directory is dirty, warn and suggest stashing or committing
Read more
Ships withclaudekit

Smart guardrails and workflow automation for Claude Code - catch errors in real-time, save checkpoints, and enhance AI coding with expert subagents

Get the whole plugin

Other commands on claudekit.