name: speckit-branch-convention-configure description: Set up branch and folder naming rules for the current project compatibility: Requires spec-kit project structure with .specify/ directory metadata: author: github-spec-kit source: branch-convention:commands/speckit.branch-convention.configure.md
Configure Branch Convention
Set up configurable naming rules for how /specify creates Git branches and spec folder names. Supports ticket IDs, GitFlow prefixes, date formats, and custom patterns.
User Input
$ARGUMENTS
You MUST consider the user input before proceeding (if not empty). The user may specify a preset (e.g., "gitflow", "ticket", "date") or provide custom patterns directly.
Prerequisites
- Verify a spec-kit project exists by checking for
.specify/directory - Check if a convention config already exists at
.specify/branch-convention.yml
Outline
-
Determine convention type: Based on user input or interactive selection:
Preset Branch Pattern Folder Pattern Example Branch Example Folder default{seq}-{kebab}{seq}-{kebab}003-user-auth003-user-authgitflow{type}/{seq}-{kebab}{seq}-{kebab}feat/003-user-auth003-user-authticket{ticket}-{kebab}{ticket}-{kebab}PROJ-142-user-authPROJ-142-user-authdate{date}-{kebab}{date}-{kebab}20260408-user-auth20260408-user-authcustomUser-defined pattern User-defined pattern — — -
Collect configuration: Build the convention config with these fields:
# .specify/branch-convention.yml convention: branch_pattern: '{type}/{seq}-{kebab}' folder_pattern: '{seq}-{kebab}' type_prefix: feature: 'feat' bugfix: 'fix' hotfix: 'hotfix' refactor: 'refactor' docs: 'docs' default_type: 'feat' seq_padding: 3 seq_start: 1 date_format: 'YYYYMMDD' ticket_pattern: '[A-Z]+-[0-9]+' max_length: 60 separator: '-' lowercase: true -
Available tokens: Document these template tokens for patterns:
Token Description Example {seq}Zero-padded sequence number 003{kebab}Kebab-case feature summary (2-4 words) user-auth-flow{ticket}Ticket/issue ID (e.g., JIRA, Linear) PROJ-142{date}Date in configured format 20260408{type}Branch type prefix from type_prefix map feat{summary}Raw feature summary (spaces allowed) user auth flow -
Write configuration: Save the convention to
.specify/branch-convention.yml -
Validate existing branches (optional): If branches already exist, check them against the new convention and report any non-compliant ones.
-
Report: Output a summary:
- Convention type selected
- Branch pattern and folder pattern configured
- Example branch name using the new convention
- Number of existing branches that comply / do not comply
- Suggest next step:
/speckit.branch-convention.validateto check compliance, or/speckit.specifyto create a new feature using the convention
Rules
- Never overwrite without confirmation — if
.specify/branch-convention.ymlalready exists, show current config and ask before replacing - Branch and folder patterns are independent — branch may include type prefix (
feat/) while folder stays flat - Backward compatible — if no convention is configured, spec-kit default behavior (
{seq}-{kebab}) applies - Validate patterns — ensure configured patterns produce valid Git branch names (no spaces, no special chars except
/,-,_) - Preserve existing numbering — sequence numbers continue from the highest existing branch number