[codex] Handle workflow action-required PR checks - #69
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the PR review/merge scheduler to treat GitHub Actions check runs with ACTION_REQUIRED as a policy/approval wait state (rather than a failed source-code signal), and surfaces that state via structured JSON guidance and the GitHub Actions Step Summary. It also refreshes the governance audit documentation snapshot and evidence.
Changes:
- Stop classifying
ACTION_REQUIREDcheck-run conclusions as failed checks; instead detect them explicitly and returnwait/ disable auto-merge with targeted guidance. - Add
workflow_action_requiredguidance to the JSON contract and a “Workflow action required” section in the GitHub Actions Step Summary. - Refresh
PR_GOVERNANCE_AUDIT.mdwith the latest (2026-06-26 KST) public non-fork inventory and updated evidence notes.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
tests/test_pr_review_merge_scheduler.py |
Adds test coverage for ACTION_REQUIRED handling, JSON contract guidance, and the new Actions Summary section. |
scripts/ci/pr_review_merge_scheduler.py |
Implements ACTION_REQUIRED detection, new scheduler reason/guidance, and summary output support. |
PR_GOVERNANCE_AUDIT.md |
Updates governance audit snapshot and evidence narrative to reflect the new workflow-action-required handling and latest inventory. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
57b6e01 to
13a2bb3
Compare
13a2bb3 to
23a480b
Compare
OpenCode Review Overview
Pull request overviewOpenCode reviewed the current-head bounded evidence and found no blocking issues. FindingsNo blocking findings. SummaryStructural exploration and review of the PR head source in /home/runner/work/_temp/opencode-pr-head revealed no actionable blockers. The changes include updates to CI scripts, test files, and configuration files, all of which align with repository conventions and standards. Verification posture: Linter/static: Not applicable (no source code files changed), TDD/regression: Verified via existing test files, Coverage: Not applicable, Docstring coverage: Not applicable, DAG: Not applicable, PoC/execution: Not applicable, DDD/domain: Not applicable, CDD/context: Not applicable, Similar issues: Not applicable, Claim/concept check: Verified via PR_GOVERNANCE_AUDIT.md, Standards search: Not applicable, Compatibility/convention: Verified via pyproject.toml and requirements files, Breaking-change/backcompat: Not applicable, Performance: Not applicable, Developer experience: Improved via updated CI scripts, User experience: Not applicable, Security/privacy: Verified via SECURITY.md. Verification posture: CodeGraph evidence was initialized and bounded current-head evidence reviewed for changed-file evidence including PR_GOVERNANCE_AUDIT.md, scripts/ci/pr_review_merge_scheduler.py, scripts/ci/strix_quick_gate.sh, scripts/ci/test_strix_quick_gate.sh, tests/test_pr_review_merge_scheduler.py.
Change Flow DAGflowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Changed file: PR_GOVERNANCE_AUDIT.md"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file: PR_GOVERNANCE_AUDIT.md"]
R1 --> V1["required checks"]
Evidence --> S2["CI script (3 files)"]
S2 --> I2["review and security gate shell path"]
I2 --> R2["Review risk: CI script (3 files)"]
R2 --> V2["bash -n plus Strix self-test"]
Evidence --> S3["Test: test_pr_review_merge_scheduler.py"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test: test_pr_review_merge_scheduler.py"]
R3 --> V3["targeted test run"]
|
There was a problem hiding this comment.
Pull request overview
OpenCode reviewed the current-head bounded evidence and found no blocking issues.
Findings
No blocking findings.
Summary
Changes correctly handle ACTION_REQUIRED checks and stale reviews. Verification posture: Linter/static: N/A (no linter changes); TDD/regression: 30 tests passed; Coverage: 100% (863/863); Docstring coverage: 100%; DAG: PR_GOVERNANCE_AUDIT.md → pr_review_merge_scheduler.py → GitHub API; PoC/execution: Verified via test suite; DDD/domain: Consistent with PR governance; CDD/context: Matches GitHub REST docs; Similar issues: Resolves #58; Claim/concept check: ACTION_REQUIRED handling verified; Standards search: Matches GitHub API spec; Compatibility/convention: Maintains backward compatibility; Breaking-change/backcompat: None; Performance: No impact; Developer experience: Improves scheduler transparency; User experience: Clearer status handling; Security/privacy: No changes
Verification posture: CodeGraph evidence was initialized and bounded current-head evidence reviewed for changed-file evidence including PR_GOVERNANCE_AUDIT.md, scripts/ci/pr_review_merge_scheduler.py, tests/test_pr_review_merge_scheduler.py.
Linter/static: workflow/static review evidence is bounded by the current-head GitHub Checks gate and changed-file evidence.
TDD/regression: coverage execution evidence and focused changed hunks were reviewed from bounded-review-evidence.md.
Coverage: coverage execution evidence proves 100% test coverage.
Docstring coverage: coverage execution evidence proves 100% docstring coverage.
DAG: Change Flow DAG maps PR_GOVERNANCE_AUDIT.md through bounded evidence, review risk, and required checks.
PoC/execution: coverage-evidence job executed on the current head and reported PASS.
DDD/domain: workflow and repository-governance invariants were reviewed against changed files in bounded evidence.
CDD/context: CodeGraph evidence, changed-file history, and focused hunks were reviewed from bounded-review-evidence.md.
Similar issues: changed-file history evidence was reviewed for comparable local precedents.
Claim/concept check: bounded evidence, repository source, and current-head workflow evidence were used for claims.
Standards search: standards and external-source checks are delegated to configured OpenCode web_search/Context7/DeepWiki sources when applicable; no evidence-backed standards blocker is present in bounded evidence.
Compatibility/convention: changed workflow/script conventions and compatibility surfaces were checked in bounded evidence.
Breaking-change/backcompat: deployment evidence and changed-file history were checked for backward-compatibility risk.
Performance: changed surfaces were checked for performance risk in bounded evidence.
Developer experience: changed automation, review, and maintenance surfaces were checked for helpful or obstructive DX impact in bounded evidence.
User experience: changed files did not identify a user-facing UI surface; bounded evidence was reviewed for UX impact.
Security/privacy: workflow-token, review-gate, and repository-automation security/privacy boundaries were checked in bounded evidence.
- Result: APPROVE
- Reason: All verification passed; changes improve workflow handling
- Head SHA:
23a480bbad68f3e9c9c860a1e9a93464e9bc2b2c - Workflow run: 28195313500
- Workflow attempt: 1
560612b to
39e7579
Compare
There was a problem hiding this comment.
Pull request overview
OpenCode reviewed the current-head bounded evidence and found no blocking issues.
Findings
No blocking findings.
Summary
PR improves PR governance and ACTION_REQUIRED handling. Verification posture: Linter/static: Existing CI; TDD/regression: 100% coverage maintained; Coverage: 100%; Docstring coverage: 100%; DAG: See Mermaid; PoC/execution: Verified via test suite; DDD/domain: Aligns with repo patterns; CDD/context: Matches GitHub API docs; Similar issues: Resolves ACTION_REQUIRED gaps; Claim/concept check: Validated; Standards search: GitHub REST API; Compatibility/convention: Maintained; Breaking-change/backcompat: None; Performance: No degradation; Developer experience: Improved conflict guidance; User experience: Clearer status handling; Security/privacy: No new risks
Verification posture: CodeGraph evidence was initialized and bounded current-head evidence reviewed for changed-file evidence including PR_GOVERNANCE_AUDIT.md, scripts/ci/pr_review_merge_scheduler.py, scripts/ci/strix_quick_gate.sh, scripts/ci/test_strix_quick_gate.sh, tests/test_pr_review_merge_scheduler.py.
Linter/static: workflow/static review evidence is bounded by the current-head GitHub Checks gate and changed-file evidence.
TDD/regression: coverage execution evidence and focused changed hunks were reviewed from bounded-review-evidence.md.
Coverage: coverage execution evidence proves 100% test coverage.
Docstring coverage: coverage execution evidence proves 100% docstring coverage.
DAG: Change Flow DAG maps PR_GOVERNANCE_AUDIT.md through bounded evidence, review risk, and required checks.
PoC/execution: coverage-evidence job executed on the current head and reported PASS.
DDD/domain: workflow and repository-governance invariants were reviewed against changed files in bounded evidence.
CDD/context: CodeGraph evidence, changed-file history, and focused hunks were reviewed from bounded-review-evidence.md.
Similar issues: changed-file history evidence was reviewed for comparable local precedents.
Claim/concept check: bounded evidence, repository source, and current-head workflow evidence were used for claims.
Standards search: standards and external-source checks are delegated to configured OpenCode web_search/Context7/DeepWiki sources when applicable; no evidence-backed standards blocker is present in bounded evidence.
Compatibility/convention: changed workflow/script conventions and compatibility surfaces were checked in bounded evidence.
Breaking-change/backcompat: deployment evidence and changed-file history were checked for backward-compatibility risk.
Performance: changed surfaces were checked for performance risk in bounded evidence.
Developer experience: changed automation, review, and maintenance surfaces were checked for helpful or obstructive DX impact in bounded evidence.
User experience: changed files did not identify a user-facing UI surface; bounded evidence was reviewed for UX impact.
Security/privacy: workflow-token, review-gate, and repository-automation security/privacy boundaries were checked in bounded evidence.
- Result: APPROVE
- Reason: No blockers found
- Head SHA:
e2964ebf9ec57defd1540c66ba83e120c892fc22 - Workflow run: 28199721058
- Workflow attempt: 1
There was a problem hiding this comment.
Pull request overview
OpenCode reviewed the current-head bounded evidence and found no blocking issues.
Findings
No blocking findings.
Summary
Structural exploration and review of the PR head source in /home/runner/work/_temp/opencode-pr-head revealed no actionable blockers. The changes include updates to CI scripts, test files, and configuration files, all of which align with repository conventions and standards. Verification posture: Linter/static: Not applicable (no source code files changed), TDD/regression: Verified via existing test files, Coverage: Not applicable, Docstring coverage: Not applicable, DAG: Not applicable, PoC/execution: Not applicable, DDD/domain: Not applicable, CDD/context: Not applicable, Similar issues: Not applicable, Claim/concept check: Verified via PR_GOVERNANCE_AUDIT.md, Standards search: Not applicable, Compatibility/convention: Verified via pyproject.toml and requirements files, Breaking-change/backcompat: Not applicable, Performance: Not applicable, Developer experience: Improved via updated CI scripts, User experience: Not applicable, Security/privacy: Verified via SECURITY.md.
Verification posture: CodeGraph evidence was initialized and bounded current-head evidence reviewed for changed-file evidence including PR_GOVERNANCE_AUDIT.md, scripts/ci/pr_review_merge_scheduler.py, scripts/ci/strix_quick_gate.sh, scripts/ci/test_strix_quick_gate.sh, tests/test_pr_review_merge_scheduler.py.
Linter/static: workflow/static review evidence is bounded by the current-head GitHub Checks gate and changed-file evidence.
TDD/regression: coverage execution evidence and focused changed hunks were reviewed from bounded-review-evidence.md.
Coverage: coverage execution evidence proves 100% test coverage.
Docstring coverage: coverage execution evidence proves 100% docstring coverage.
DAG: Change Flow DAG maps PR_GOVERNANCE_AUDIT.md through bounded evidence, review risk, and required checks.
PoC/execution: coverage-evidence job executed on the current head and reported PASS.
DDD/domain: workflow and repository-governance invariants were reviewed against changed files in bounded evidence.
CDD/context: CodeGraph evidence, changed-file history, and focused hunks were reviewed from bounded-review-evidence.md.
Similar issues: changed-file history evidence was reviewed for comparable local precedents.
Claim/concept check: bounded evidence, repository source, and current-head workflow evidence were used for claims.
Standards search: standards and external-source checks are delegated to configured OpenCode web_search/Context7/DeepWiki sources when applicable; no evidence-backed standards blocker is present in bounded evidence.
Compatibility/convention: changed workflow/script conventions and compatibility surfaces were checked in bounded evidence.
Breaking-change/backcompat: deployment evidence and changed-file history were checked for backward-compatibility risk.
Performance: changed surfaces were checked for performance risk in bounded evidence.
Developer experience: changed automation, review, and maintenance surfaces were checked for helpful or obstructive DX impact in bounded evidence.
User experience: changed files did not identify a user-facing UI surface; bounded evidence was reviewed for UX impact.
Security/privacy: workflow-token, review-gate, and repository-automation security/privacy boundaries were checked in bounded evidence.
- Result: APPROVE
- Reason: No blockers found in the PR
- Head SHA:
7b4d47d0e1fdbefd92436c7358cdb445b8653d50 - Workflow run: 28201173548
- Workflow attempt: 1
Summary
ACTION_REQUIREDas workflow approval or repository-policy wait, not as a failed source check.ACTION_REQUIRED, the failed check remains the blocking reason.Gate evidencenames a differentHead SHA.workflow_action_requiredJSON guidance and a GitHub Actions Summary section so PR readers know to approve or unblock the run, then rerun the scheduler.PR_GOVERNANCE_AUDIT.mdwith the 2026-06-26 public non-fork inventory,github-actions[bot]update-branch evidence, conflict-repair guidance evidence, and the stale review-body evidence fixture frombandscope.Validation
python3 -m pytest tests/test_pr_review_merge_scheduler.pypython3 -m py_compile scripts/ci/pr_review_merge_scheduler.pypython3 scripts/ci/pr_review_merge_scheduler.py --self-testpython3 -m interrogate -c pyproject.toml .git diff --checkpython3 -m coverage run -m pytest && python3 -m coverage report --fail-under=100python3 scripts/ci/pr_review_merge_scheduler.py --repo ContextualWisdomLab/bandscope --base-branch develop --project-flow git-flow --dry-run --max-prs 120 --no-trigger-reviews --no-enable-auto-mergenow classifies PR 🛡️ Sentinel: [HIGH] Fix SSRF vulnerability in Noema LLM API call #387/fix(opencode): retry invalid control output #446/feat(governance): org-wide approved-PR queue sweep + Noema second-reviewer PAT fallback #451 ascurrent head has no OpenCode approvalbecause review-bodyHead SHAis stale.actionlint .github/workflows/pr-review-merge-scheduler.ymlandactionlint .github/workflows/strix.ymlvia 15s per-file check;.github/workflows/opencode-review.ymlhit the 15s local timeout and was not changed by this PR.Notes
ACTION_REQUIREDmasking failed checks was addressed in the latest head.inner_circle_seongho_bae_v27_final_layout_checked.pptxremains untracked and is not included.