You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
AI coding agents create branches autonomously when working on tasks. Each major agent has an established convention for its branch names — typically a short agent identifier followed by a slash and a description:
Agent
Example branch
GitHub Copilot
copilot/fix-login-null-check
Claude Code
claude/add-user-profile-page
Cursor
cursor/refactor-auth-module
Windsurf
windsurf/update-api-client
Gemini CLI
gemini/improve-test-coverage
Codex
codex/migrate-to-typescript
Trae
trae/fix-rendering-bug
Qwen Code
qwen/add-search-endpoint
opencode
opencode/cleanup-dependencies
VS Code (generic)
vscode/implement-dark-mode
These names are meaningful and consistent — the agent prefix makes it immediately clear which tool created the branch — but they don't match spec-kit's required ###-description pattern and are currently rejected by check_feature_branch().
Problem
When an AI agent creates a branch and then invokes a spec-kit command (e.g. specify tasks, specify implement), validation fails because the branch name doesn't follow the numeric prefix convention. The agent either has to abandon its natural naming scheme or the workflow silently breaks.
This is becoming more common as teams use AI agents as first-class contributors. Spec-kit is increasingly the workflow layer inside an agentic loop, not just a tool used by humans at a terminal.
Proposal
Recognise agent-namespace branches as inherently valid — no numeric prefix required for branches that match <agent>/**.
The simplest implementation is a built-in allowlist in check_feature_branch():
A more extensible alternative — consistent with the extension manifest direction — would be a top-level agent_prefixes key in extension.yml or a dedicated config, allowing new agents to be registered without a spec-kit core change:
Background
AI coding agents create branches autonomously when working on tasks. Each major agent has an established convention for its branch names — typically a short agent identifier followed by a slash and a description:
copilot/fix-login-null-checkclaude/add-user-profile-pagecursor/refactor-auth-modulewindsurf/update-api-clientgemini/improve-test-coveragecodex/migrate-to-typescripttrae/fix-rendering-bugqwen/add-search-endpointopencode/cleanup-dependenciesvscode/implement-dark-modeThese names are meaningful and consistent — the agent prefix makes it immediately clear which tool created the branch — but they don't match spec-kit's required
###-descriptionpattern and are currently rejected bycheck_feature_branch().Problem
When an AI agent creates a branch and then invokes a spec-kit command (e.g.
specify tasks,specify implement), validation fails because the branch name doesn't follow the numeric prefix convention. The agent either has to abandon its natural naming scheme or the workflow silently breaks.This is becoming more common as teams use AI agents as first-class contributors. Spec-kit is increasingly the workflow layer inside an agentic loop, not just a tool used by humans at a terminal.
Proposal
Recognise agent-namespace branches as inherently valid — no numeric prefix required for branches that match
<agent>/**.The simplest implementation is a built-in allowlist in
check_feature_branch():A more extensible alternative — consistent with the extension manifest direction — would be a top-level
agent_prefixeskey inextension.ymlor a dedicated config, allowing new agents to be registered without a spec-kit core change:Either approach solves the immediate problem; the config-driven approach ages better as the agent landscape continues to evolve.
Why Not Just Use
###-BranchesAgents can be instructed to use
###-naming, but this:Acceptance Criteria
claude/,copilot/,cursor/,gemini/,codex/,opencode/,qwen/,trae/,vscode/,windsurf/) passcheck_feature_branch()without a numeric prefixspecify doctorreports the active agent prefix configurationspecify tasks,specify implement, and related commands work correctly on agent-prefixed branches (spec path resolution, branch detection, etc.)