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: trueAvailable 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 flowWrite configuration: Save the convention to
.specify/branch-convention.ymlValidate 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
Source: brunodsazevedo/react-native-pagseguro-plugpag — distributed by TomeVault.