Update workflow-preset to v3.1.1 - #80
Conversation
Assisted-by: GitHub Actions (autonomous)
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d7e058cfd2
ℹ️ 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".
| x3_status = gates["X3_VALIDATION_PATHS_READY"]["status"] | ||
| if x2c_status == "N/A" and x3_status != "N/A": | ||
| raise ValueError("X3 must be N/A when X2-C is N/A") | ||
| if x2c_status != "N/A" and x3_status == "N/A": | ||
| raise ValueError("X3 cannot be N/A when X2-C is active or blocked") |
There was a problem hiding this comment.
Block X3 when an upstream planning gate is blocked
When X2-A, X2-B, X2-C, or X2 reconciliation is BLOCKED, this logic still accepts X3_VALIDATION_PATHS_READY: READY; it only relates X3 to whether X2-C is N/A. For example, test_plan_bundle_allows_blocked_x2b_without_relabeling_it_n_a leaves both reconciliation and X3 READY and passes, even though the new execution spine says dependent scopes must stop and reconciliation starts only after active X2 lanes are ready. Require X3 to be blocked whenever an upstream gate is blocked.
AGENTS.md reference: presets/workflow-preset/AGENTS.md:L16-L18
Useful? React with 👍 / 👎.
| if reconciliation.get("findings"): | ||
| raise ValueError("Plan bundle reconciliation has unresolved findings") |
There was a problem hiding this comment.
Allow findings in a blocked reconciliation result
When reconciliation discovers missing or stale refs, the command contract requires recording those findings and blocking X3, but this unconditional rejection makes such a blocked Plan bundle impossible to validate. The validator otherwise explicitly supports BLOCKED gates and PLAN_OUTPUT_READY: BLOCKED, so findings should be accepted when X2_RECONCILIATION_READY and downstream state consistently reflect the blockage, while only a READY reconciliation should require an empty findings list.
AGENTS.md reference: presets/workflow-preset/AGENTS.md:L16-L18
Useful? React with 👍 / 👎.
| for child in required_children: | ||
| if tc_id not in children.get(child, []): | ||
| raise ValueError(f"{tc_id} missing technique-triggered {child} child") |
There was a problem hiding this comment.
Accept blocked technique children with stable blockers
When a Test Condition is already blocked and records a stable blocker because a selected BDD/scenario/fixture/assertion child cannot be produced, this loop still requires every triggered child and rejects the bundle. That contradicts the Plan contract's “child or stable blocker” rule and prevents valid blocked plans for techniques such as BDD or state transitions; enforce child presence for required conditions, but permit an absent child when the blocked condition carries the appropriate reconciled blocker.
AGENTS.md reference: presets/workflow-preset/AGENTS.md:L32-L35
Useful? React with 👍 / 👎.
Summary
Test Plan