rohitg00/ai-engineering-from-scratch · error · ValueError

manifestVersion must be the supported integer value 1

Error message

manifestVersion must be the supported integer value 1

What it means

Error "manifestVersion must be the supported integer value 1" 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:459

            or check_id in seen
        ):
            raise ValueError(
                f"{field} ids must be unique non-empty strings without surrounding whitespace"
            )
        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()
        ):

View 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:459 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/919df0caff4eb58f. Report an issue: GitHub.