github/spec-kit · error · ValueError
Archive must use canonical 'extension.yml' casing
Error message
Archive must use canonical 'extension.yml' casing
What it means
Error "Archive must use canonical 'extension.yml' casing" thrown in github/spec-kit.
Source
Thrown at src/specify_cli/extensions/_commands.py:1926
and "extension.yml" in str(exc).casefold()
):
raise ValueError(
"Downloaded extension archive contains multiple "
"extension.yml manifests"
) from exc
raise
manifest_root = extracted_root
top_level = list(extracted_root.iterdir())
root_manifest_entries = [
entry
for entry in top_level
if entry.name.casefold() == "extension.yml"
]
if any(
entry.name != "extension.yml"
for entry in root_manifest_entries
):
raise ValueError(
"Archive must use canonical 'extension.yml' casing"
)
canonical_root_manifest = next(
(
entry
for entry in root_manifest_entries
if entry.name == "extension.yml"
),
None,
)
if canonical_root_manifest is not None:
manifest_path = canonical_root_manifest
else:
top_level_dirs = [
entry for entry in top_level if entry.is_dir()
]
if len(top_level_dirs) != 1:
raise ValueError(View on GitHub (pinned to bf88c9f9a8)
Solutions
- Rename the manifest in the archive to the canonical 'extension.yml' casing.
When it happens
Trigger: Thrown at src/specify_cli/extensions/_commands.py:1926 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/00f31f08ee3aa9cc.
Report an issue: GitHub.