github/spec-kit · error · ValidationError
Invalid {kind} '{name}': must follow pattern 'speckit.{exten
Error message
Invalid {kind} '{name}': must follow pattern 'speckit.{extension}.{command}' What it means
Error "Invalid {kind} '{name}': must follow pattern 'speckit.{extension}.{command}'" thrown in github/spec-kit.
Source
Thrown at src/specify_cli/extensions/__init__.py:1132
("alias", alias) for alias in aliases
]:
if not isinstance(name, str):
raise ValidationError(
f"{kind.capitalize()} for command '{primary_name}' must be a string"
)
path_reason = relative_extension_path_violation(name)
if path_reason:
raise ValidationError(
f"Invalid {kind} {name!r}: {path_reason}"
)
# Enforce canonical pattern only for primary command names;
# aliases are free-form to preserve community extension compat.
if kind == "command":
match = EXTENSION_COMMAND_NAME_PATTERN.match(name)
if match is None:
raise ValidationError(
f"Invalid {kind} '{name}': "
"must follow pattern 'speckit.{extension}.{command}'"
)
namespace = match.group(1)
if namespace != manifest.id:
raise ValidationError(
f"{kind.capitalize()} '{name}' must use extension namespace '{manifest.id}'"
)
if namespace in CORE_COMMAND_NAMES:
raise ValidationError(
f"{kind.capitalize()} '{name}' conflicts with core command namespace '{namespace}'"
)
if name in declared_names:
raise ValidationError(
f"Duplicate command or alias '{name}' in extension manifest"View on GitHub (pinned to bf88c9f9a8)
Solutions
- Rename the command/alias to follow the 'speckit.<extension>.<command>' pattern in the extension manifest.
When it happens
Trigger: Thrown at src/specify_cli/extensions/__init__.py:1132 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of github/spec-kit@bf88c9f9a8 (2026-08-14).
Data as JSON: /api/errors/01735baa60106fb8.
Report an issue: GitHub.