speckit-git-feature
Create a feature branch with sequential or timestamp numbering
- License 许可
- MIT
- 最近更新
- 2026-11-11
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- speckit-git-feature
- metadata
- { "author": "github-spec-kit", "source": "git:commands/speckit.git.feature.md" }
- description
- Create a feature branch with sequential or timestamp numbering
- compatibility
- Requires spec-kit project structure with .specify/ directory
02 资源文件 2
- 脚本scripts/cli.js2.4 KB
- 脚本scripts/cron-engine.js22.7 KB
03 SKILL.md 正文
Create Feature Branch
Create and switch to a new git feature branch for the given specification. This command handles branch creation only — the spec directory and files are created by the core /speckit.specify workflow.
User Input
$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
Environment Variable Override
If the user explicitly provided GIT_BRANCH_NAME (e.g., via environment variable, argument, or in their request), pass it through to the script by setting the GIT_BRANCH_NAME environment variable before invoking the script. When GIT_BRANCH_NAME is set:
- The script uses the exact value as the branch name, bypassing all prefix/suffix generation
--short-name,--number, and--timestampflags are ignoredFEATURE_NUMis extracted from the name if it starts with a numeric prefix, otherwise set to the full branch name
Prerequisites
- Verify Git is available by running
git rev-parse --is-inside-work-tree 2>/dev/null - If Git is not available, warn the user and skip branch creation
Branch Numbering Mode
Determine the branch numbering strategy by checking configuration in this order:
- Check
.specify/extensions/git/git-config.ymlforbranch_numberingvalue - Check
.specify/init-options.jsonforbranch_numberingvalue (backward compatibility) - Default to
sequentialif neither exists
Execution
Generate a concise short name (2-4 words) for the branch:
- Analyze the feature description and extract the most meaningful keywords
- Use action-noun format when possible (e.g., "add-user-auth", "fix-payment-bug")
- Preserve technical terms and acronyms (OAuth2, API, JWT, etc.)
Run the appropriate script based on your platform:
- Bash:
.specify/extensions/git/scripts/bash/create-new-feature.sh --json --short-name "<short-name>" "<feature description>" - Bash (timestamp):
.specify/extensions/git/scripts/bash/create-new-feature.sh --json --timestamp --short-name "<short-name>" "<feature description>" - PowerShell:
.specify/extensions/git/scripts/powershell/create-new-feature.ps1 -Json -ShortName "<short-name>" "<feature description>" - PowerShell (timestamp):
.specify/extensions/git/scripts/powershell/create-new-feature.ps1 -Json -Timestamp -ShortName "<short-name>" "<feature description>"
IMPORTANT:
- Do NOT pass
--number— the script determines the correct next number automatically - Always include the JSON flag (
--jsonfor Bash,-Jsonfor PowerShell) so the output can be parsed reliably - You must only ever run this script once per feature
- The JSON output will contain
BRANCH_NAMEandFEATURE_NUM
Graceful Degradation
If Git is not installed or the current directory is not a Git repository:
- Branch creation is skipped with a warning:
[specify] Warning: Git repository not detected; skipped branch creation - The script still outputs
BRANCH_NAMEandFEATURE_NUMso the caller can reference them
Output
The script outputs JSON with:
BRANCH_NAME: The branch name (e.g.,003-user-author20260319-143022-user-auth)FEATURE_NUM: The numeric or timestamp prefix used
04 同仓库更多 Skills
speckit-taskstoissues
speckit.taskstoissues
speckit-tasks
speckit.tasks
speckit-specify
speckit.specify
speckit-plan
speckit.plan
speckit-implement
speckit.implement
speckit-git-validate
speckit.git.validate