Repository navigation
Add Skill workflow runtime handoffs - #2
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8bd6d01d34
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| qc_report = workflow.get("qc_report") | ||
| qc_report_status = None | ||
| if qc_report is not None: | ||
| qc_result = validate_qc_report(qc_report) |
There was a problem hiding this comment.
Cross-check QC source shots against the embedded plan
When the embedded plan contains only S01, a structurally valid QC report with source_shot_ids: ["S99"] and an observed pass is still accepted, and the workflow summary exposes that pass status. This can attribute real QC evidence to the wrong shot, so the source IDs must be checked against shot_ids before the workflow is considered valid.
AGENTS.md reference: AGENTS.md:L7-L7
Useful? React with 👍 / 👎.
| if overall_status == "fail" and not failed_count: | ||
| warnings.append("overall_status fail has no failed check; confirm the report summary.") |
There was a problem hiding this comment.
Reject overall failures without a failed check
If an available artifact has only an observed passing check but overall_status is set to fail, this branch emits only a warning, so validate_qc_report returns valid: true and the CLI exits successfully. The aggregate failure is unsupported by the recorded evidence and should be a validation error rather than a successful QC report.
AGENTS.md reference: AGENTS.md:L7-L7
Useful? React with 👍 / 👎.
| validation = validate_workflow(workflow, action_library) | ||
| workflow_dict = workflow if isinstance(workflow, dict) else {} | ||
| compiled_requests: list[dict[str, Any]] = [] | ||
| for request in workflow_dict.get("action_requests", []): |
There was a problem hiding this comment.
Iterate over the normalized action-request list
When a malformed workflow supplies action_requests: null or another non-iterable value, validate_workflow correctly records a field error, but this loop re-reads the original value and raises TypeError instead of returning an invalid dry-run packet; the CLI does not catch that exception either. Use the validated list or guard its type so malformed contracts receive the deterministic field-level result promised by the validator.
AGENTS.md reference: AGENTS.md:L13-L13
Useful? React with 👍 / 👎.
What changed
build-runtime-handoffdry-run output.Why
This turns the local AIGC workflow into a reviewable public handoff without making Blender, FFmpeg, model accounts, paid generation, or video QC core dependencies.
Validation
run_examples.batpassed, including workflow, prompt, QC, and runtime handoff examples.blender-previsdry-run packet withexecuted: falseandrender_status: not_run.git diff --check, and local-path boundary scan passed.Boundary
This PR does not launch Blender, generate media, inspect a rendered video, or claim final QC evidence.