| 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-auth | 003-user-auth |
gitflow | {type}/{seq}-{kebab} | {seq}-{kebab} | feat/003-user-auth | 003-user-auth |
ticket | {ticket}-{kebab} | {ticket}-{kebab} | PROJ-142-user-auth | PROJ-142-user-auth |
date | {date}-{kebab} | {date}-{kebab} | 20260408-user-auth | 20260408-user-auth |
custom | User-defined pattern | User-defined pattern | — | — |
-
Collect configuration: Build the convention config with these fields:
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.validate to check compliance, or /speckit.specify to create a new feature using the convention
Rules
- Never overwrite without confirmation — if
.specify/branch-convention.yml already 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