rohitg00/ai-engineering-from-scratch · error · ValueError
manifest files must be a non-empty object
Error message
manifest files must be a non-empty object
What it means
Error "manifest files must be a non-empty object" thrown in rohitg00/ai-engineering-from-scratch.
Source
Thrown at phases/13-tools-and-protocols/27-skill-evals-packaging-and-portability/outputs/skill-release-gate/scripts/evaluate_skill.py:464
if type(passed) is not bool:
raise ValueError(f"{field} check {check_id!r} needs a boolean verdict")
if not isinstance(evidence, str) or not evidence.strip():
raise ValueError(f"{field} check {check_id!r} needs evidence")
seen.add(check_id)
checks.append({"id": check_id, "passed": passed, "evidence": evidence})
return {"passed": all(bool(check["passed"]) for check in checks), "cases": checks}
def verify_manifest(bundle: Path, config: dict[str, object]) -> dict[str, object]:
if type(config.get("manifestVersion")) is not int or config.get(
"manifestVersion"
) != 1:
raise ValueError("manifestVersion must be the supported integer value 1")
if config.get("algorithm") != "sha256":
raise ValueError("manifest algorithm must be 'sha256'")
raw_files = config.get("files")
if not isinstance(raw_files, dict) or not raw_files:
raise ValueError("manifest files must be a non-empty object")
expected: dict[str, str] = {}
issues: list[str] = []
for raw_path, digest in raw_files.items():
if not isinstance(raw_path, str) or not isinstance(digest, str):
issues.append("manifest paths and digests must be strings")
continue
relative = PurePosixPath(raw_path)
if (
"\\" in raw_path
or relative.is_absolute()
or any(part in {"", ".", ".."} for part in relative.parts)
or raw_path != relative.as_posix()
):
issues.append(f"invalid manifest path: {raw_path!r}")
continue
if relative.as_posix() == RESERVED_MANIFEST_PATH:
issues.append(f"reserved manifest path must not be listed: {raw_path!r}")
continueView on GitHub (pinned to 39ea8a1c6d)
When it happens
Trigger: Thrown at phases/13-tools-and-protocols/27-skill-evals-packaging-and-portability/outputs/skill-release-gate/scripts/evaluate_skill.py:464 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of rohitg00/ai-engineering-from-scratch@39ea8a1c6d (2026-08-26).
Data as JSON: /api/errors/7463964975d85f2e.
Report an issue: GitHub.