github/spec-kit · error · ValidationError
{kind.capitalize()} for command '{primary_name}' must be a s
Error message
{kind.capitalize()} for command '{primary_name}' must be a string What it means
Error "{kind.capitalize()} for command '{primary_name}' must be a string" thrown in github/spec-kit.
Source
Thrown at src/specify_cli/extensions/__init__.py:1117
declared_names: Dict[str, str] = {}
for cmd in manifest.commands:
primary_name = cmd["name"]
aliases = cmd.get("aliases", [])
if aliases is None:
aliases = []
if not isinstance(aliases, list):
raise ValidationError(
f"Aliases for command '{primary_name}' must be a list"
)
for kind, name in [("command", primary_name)] + [
("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}'"
)View on GitHub (pinned to bf88c9f9a8)
Solutions
- In the extension manifest, make the alias/name value a string.
When it happens
Trigger: Thrown at src/specify_cli/extensions/__init__.py:1117 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/165a4a055f8468a5.
Report an issue: GitHub.