{"record":{"id":"2eeeeb5e8d501fe0","repo":"github/spec-kit","slug":"invalid-kind-name-r-path-reason","errorCode":null,"errorMessage":"Invalid {kind} {name!r}: {path_reason}","messagePattern":"Invalid (.+?) (.+?): (.+?)","errorType":"validation","errorClass":"ValidationError","httpStatus":null,"severity":"error","filePath":"src/specify_cli/extensions/__init__.py","lineNumber":1123,"sourceCode":"\n            if aliases is None:\n                aliases = []\n            if not isinstance(aliases, list):\n                raise ValidationError(\n                    f\"Aliases for command '{primary_name}' must be a list\"\n                )\n\n            for kind, name in [(\"command\", primary_name)] + [\n                (\"alias\", alias) for alias in aliases\n            ]:\n                if not isinstance(name, str):\n                    raise ValidationError(\n                        f\"{kind.capitalize()} for command '{primary_name}' must be a string\"\n                    )\n\n                path_reason = relative_extension_path_violation(name)\n                if path_reason:\n                    raise ValidationError(\n                        f\"Invalid {kind} {name!r}: {path_reason}\"\n                    )\n\n                # Enforce canonical pattern only for primary command names;\n                # aliases are free-form to preserve community extension compat.\n                if kind == \"command\":\n                    match = EXTENSION_COMMAND_NAME_PATTERN.match(name)\n                    if match is None:\n                        raise ValidationError(\n                            f\"Invalid {kind} '{name}': \"\n                            \"must follow pattern 'speckit.{extension}.{command}'\"\n                        )\n\n                    namespace = match.group(1)\n                    if namespace != manifest.id:\n                        raise ValidationError(\n                            f\"{kind.capitalize()} '{name}' must use extension namespace '{manifest.id}'\"\n                        )","sourceCodeStart":1105,"sourceCodeEnd":1141,"githubUrl":"https://github.com/github/spec-kit/blob/bf88c9f9a82fa370c7a7257aa2b3cf10b457b65c/src/specify_cli/extensions/__init__.py#L1105-L1141","documentation":"Error \"Invalid {kind} {name!r}: {path_reason}\" thrown in github/spec-kit.","triggerScenarios":"Thrown at src/specify_cli/extensions/__init__.py:1123 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix the command or alias path/name in the extension manifest according to the reported reason (e.g. no '..' segments, valid characters)."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"bf88c9f9a82fa370c7a7257aa2b3cf10b457b65c","analyzedAt":"2026-08-14T19:43:37.150Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}