Créer une branche de fonctionnalité

Crée une branche de fonctionnalité nommée d'après le nom d'utilisateur git et un slug issu du contexte de la session.

Spar Skills Guide Bot
DeveloppementIntermédiaire
0023/07/2026
Claude CodeCursorWindsurfCopilotCodex
#git#branch#feature-branch#version-control#slugify

Recommandé pour


name: branch description: >- Create a git feature branch named for the current session's work. Slugifies the git username and derives a short kebab-case feature slug from the changes or task under discussion. Use when the user asks to start, create, or cut a branch. allowed-tools: Bash(git branch:), Bash(git config:), Bash(git status:), Bash(git switch:), Bash(git symbolic-ref:*)

Branch

Create a feature branch named <git-username>/<feature-slug>, off the current base branch, using the session context to name it.

Context

If the fields below show commands rather than output, run each one first.

  • Branch: !git branch --show-current 2>/dev/null || echo "(not a git repo)"
  • Default branch: !git symbolic-ref --short refs/remotes/origin/HEAD 2>/dev/null || echo "(unknown)"
  • Git username: !git config user.name 2>/dev/null || echo "(unset)"
  • Status: !git status --short 2>/dev/null

Process

  1. Check the current branch.

    • Not a git repo → stop and say so.
    • Already on a feature branch (not main/master or the repo's default branch) → stop and report it. Don't nest a branch off another feature branch unless the user explicitly asks.
    • On the base branch → continue.
  2. Derive the username segment. Slugify git config user.name so spaces and other non-alphanumeric characters become hyphens (e.g. "First Last" → first-last):

    git_username=$(git config user.name \
      | tr '[:upper:]' '[:lower:]' \
      | sed -E 's/[^a-z0-9]+/-/g; s/^-+|-+$//g')
    

    If user.name is unset, ask the user for the segment.

  3. Derive the feature slug from session context. A short, kebab-case description of the work (e.g. fix-login-redirect). Draw it, in order of preference, from:

    • Uncommitted changes in the working tree (see Status above).
    • The task the user is actively working on in this session.
    • What the user states directly.

    Keep it concise — a few words, lowercase, hyphen-separated, no type prefix. If the intent is unclear or you'd be guessing, propose a slug and confirm before creating the branch.

  4. Create the branch:

    git switch -c "${git_username}/<feature-slug>"
    
  5. Report the new branch name.

Skills similaires