{"record":{"id":"3b76dcd683f2a16a","repo":"rohitg00/ai-engineering-from-scratch","slug":"evaluation-plan-requires-releasegates","errorCode":null,"errorMessage":"evaluation plan requires releaseGates","messagePattern":"evaluation plan requires releaseGates","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"certifications/claude/lessons/30-developer-application-capstone/code/main.py","lineNumber":224,"sourceCode":"    for name, expected in required.items():\n        if name not in value:\n            issues.append(f\"missing {name}\")\n        elif not isinstance(value[name], expected):\n            issues.append(f\"invalid type for {name}\")\n    unexpected = set(value) - set(required)\n    if unexpected:\n        issues.append(f\"unexpected fields: {sorted(unexpected)}\")\n    return issues\n\n\ndef load_eval_plan(path: Path | str | None = None) -> dict[str, Any]:\n    source = Path(path) if path is not None else DEFAULT_EVAL_PLAN\n    with source.open(\"r\", encoding=\"utf-8\") as handle:\n        plan = json.load(handle)\n    if not isinstance(plan, dict) or not isinstance(plan.get(\"cases\"), list) or not plan[\"cases\"]:\n        raise ValueError(\"evaluation plan requires a non-empty cases list\")\n    if not isinstance(plan.get(\"releaseGates\"), dict):\n        raise ValueError(\"evaluation plan requires releaseGates\")\n    return plan\n\n\ndef _default_agent_factory(fixture: dict[str, str]) -> Callable[[str], SupportResult]:\n    return SupportAgent(ToolRegistry(fixture)).run\n\n\ndef _trace_tools(trace: tuple[TraceEvent, ...]) -> list[str]:\n    return [\n        str(event.detail[\"tool\"])\n        for event in trace\n        if event.type == \"tool_result\" and isinstance(event.detail.get(\"tool\"), str)\n    ]\n\n\ndef _trace_effects(trace: tuple[TraceEvent, ...]) -> set[str]:\n    effects: set[str] = set()\n    for event in trace:","sourceCodeStart":206,"sourceCodeEnd":242,"githubUrl":"https://github.com/rohitg00/ai-engineering-from-scratch/blob/39ea8a1c6d0b61f071226eff7ede4d4105fed820/certifications/claude/lessons/30-developer-application-capstone/code/main.py#L206-L242","documentation":"Error \"evaluation plan requires releaseGates\" thrown in rohitg00/ai-engineering-from-scratch.","triggerScenarios":"Thrown at certifications/claude/lessons/30-developer-application-capstone/code/main.py:224 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"39ea8a1c6d0b61f071226eff7ede4d4105fed820","analyzedAt":"2026-08-26T03:13:46.626Z","schemaVersion":2},"datasetVersion":"2026-08-26T07:17:17.940Z"}