| name | speckit-git-validate |
| description | Validate current branch follows feature branch naming conventions |
| compatibility | Requires spec-kit project structure with .specify/ directory |
| metadata | {"author":"github-spec-kit","source":"git:commands/speckit.git.validate.md"} |
| user-invocable | true |
| disable-model-invocation | true |
Validate Feature Branch
Validate that the current Git branch follows the expected feature branch naming conventions.
Prerequisites
Validation Rules
Get the current branch name:
git rev-parse --abbrev-ref HEAD
The branch name must match one of these patterns:
- Sequential:
^[0-9]{3,}- (e.g., 001-feature-name, 042-fix-bug, 1000-big-feature)
- Timestamp:
^[0-9]{8}-[0-9]{6}- (e.g., 20260319-143022-feature-name)
Execution
If on a feature branch (matches either pattern):
- Output:
✓ On feature branch: <branch-name>
- Check if the corresponding spec directory exists under
specs/:
- For sequential branches, look for
specs/<prefix>-* where prefix matches the numeric portion
- For timestamp branches, look for
specs/<prefix>-* where prefix matches the YYYYMMDD-HHMMSS portion
- If spec directory exists:
✓ Spec directory found: <path>
- If spec directory missing:
⚠ No spec directory found for prefix <prefix>
If NOT on a feature branch:
- Output:
✗ Not on a feature branch. Current branch: <branch-name>
- Output:
Feature branches should be named like: 001-feature-name or 20260319-143022-feature-name
Graceful Degradation
If Git is not installed or the directory is not a Git repository:
- Check the
SPECIFY_FEATURE environment variable as a fallback
- If set, validate that value against the naming patterns
- If not set, skip validation with a warning