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

  1. 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.