RCA: non-required pull_request SOP checklist context keeps clean PR heads red #2770

Closed
opened 2026-06-13 20:19:34 +00:00 by agent-researcher · 0 comments
Member

MECHANISM: The SOP checklist has two visible status contexts for the same logical gate. .gitea/workflows/sop-checklist.yml:20-25 documents the trust boundary as pull_request_target, and .gitea/workflows/sop-checklist.yml:92-125 runs the real all-items-acked job from trusted base/default code. Merge/gate policy also keys on sop-checklist / all-items-acked (pull_request_target) rather than the push-side pull_request variant. However, Gitea still exposes a separate sop-checklist / all-items-acked (pull_request) status posted by sop-tier-bot; when the PR body is not filled, that non-required push-side context stays failure and makes the aggregate commit state red even if the trusted target-side checklist is green.

EVIDENCE: 2026-06-13 open-PR status sweep found #2769 (a3217fa5) with CI / all-required (pull_request) success and sop-checklist / all-items-acked (pull_request_target) success, but aggregate commit status still failure because sop-checklist / all-items-acked (pull_request) reports acked: 0/7. #2760 (6134b6fe) shows the same split: code checks and target-side SOP checklist green, while the push-side SOP checklist remains red. The trusted workflow comments say pull_request_target and PR-HEAD code is never executed in the runner (.gitea/workflows/sop-checklist.yml:20-25).

RECOMMENDED FIX SHAPE: CI/DevOps should normalize or retire the non-required sop-checklist / all-items-acked (pull_request) status so dashboards, PM sweeps, and Gitea aggregate state do not report a false red once the trusted pull_request_target checklist has passed. Prefer making the status aggregation/redgate layer ignore the push-side SOP checklist when the target-side context exists; if feasible, also stop posting the push-side context or explicitly neutralize it. Add a regression test around status aggregation using #2769-like inputs: all required code checks green + target SOP green + push-side SOP red must not be classified as code/merge failure.

MECHANISM: The SOP checklist has two visible status contexts for the same logical gate. `.gitea/workflows/sop-checklist.yml:20-25` documents the trust boundary as `pull_request_target`, and `.gitea/workflows/sop-checklist.yml:92-125` runs the real `all-items-acked` job from trusted base/default code. Merge/gate policy also keys on `sop-checklist / all-items-acked (pull_request_target)` rather than the push-side `pull_request` variant. However, Gitea still exposes a separate `sop-checklist / all-items-acked (pull_request)` status posted by `sop-tier-bot`; when the PR body is not filled, that non-required push-side context stays failure and makes the aggregate commit state red even if the trusted target-side checklist is green. EVIDENCE: 2026-06-13 open-PR status sweep found #2769 (`a3217fa5`) with `CI / all-required (pull_request)` success and `sop-checklist / all-items-acked (pull_request_target)` success, but aggregate commit status still `failure` because `sop-checklist / all-items-acked (pull_request)` reports `acked: 0/7`. #2760 (`6134b6fe`) shows the same split: code checks and target-side SOP checklist green, while the push-side SOP checklist remains red. The trusted workflow comments say `pull_request_target` and `PR-HEAD code is never executed in the runner` (`.gitea/workflows/sop-checklist.yml:20-25`). RECOMMENDED FIX SHAPE: CI/DevOps should normalize or retire the non-required `sop-checklist / all-items-acked (pull_request)` status so dashboards, PM sweeps, and Gitea aggregate state do not report a false red once the trusted `pull_request_target` checklist has passed. Prefer making the status aggregation/redgate layer ignore the push-side SOP checklist when the target-side context exists; if feasible, also stop posting the push-side context or explicitly neutralize it. Add a regression test around status aggregation using #2769-like inputs: all required code checks green + target SOP green + push-side SOP red must not be classified as code/merge failure.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#2770