Skip to content

fix(ci): partition pr-review concurrency by draft flag - #19

Merged
topcoder1 merged 1 commit into
mainfrom
claude/pr-review-concurrency-draft-partition
Jul 16, 2026
Merged

fix(ci): partition pr-review concurrency by draft flag#19
topcoder1 merged 1 commit into
mainfrom
claude/pr-review-concurrency-draft-partition

Conversation

@topcoder1

Copy link
Copy Markdown
Member

Closes the second of two independent routes to the review / Claude Review fail-open. The trigger half (ready_for_review in types:) is already fleet-wide; this is the other half.

The load-bearing fact: GitHub counts a skipped required context as SATISFIED. So when this check skips, the PR merges green and unreviewed — silently.

How the concurrency group causes that: the reusable gates its job on draft == false, so a stale draft-payload synchronize run is a guaranteed no-op — but in a shared claude-review-<PR> group it can cancel (or replace, if queued) the real ready_for_review run. Result: skipped → satisfied → merged unreviewed. Fixing the trigger alone does not close this.

Why it hits the PRs that matter most: fleet policy makes DRAFT the standard auto-merge opt-out, so every manual-merge / high-risk PR is draft→ready — the recommended workflow was the one most likely to skip review.

Not theoretical: wxa-mcp-server#339 merged unreviewed through this class and took jake-ai down for ~13h (0 tools available) on 2026-07-14/15.

Reference fix: wxa-mcp-server#344. pr-classify, pr-codex-review, claude-author-automerge and safe-paths-automerge already partition this way — pr-review was the lone holdout (same race as attaxion_dev#303).

Non-draft runs keep today's supersede semantics: a newer push still cancels an in-flight stale run.

Note for the merger: claude-code-action rejects PRs whose diff touches their own calling workflow file, so review / Claude Review cannot pass here by construction. Where that check is required, use templates/ci-workflows/scripts/merge-workflow-only-pr.sh.

Auto-merge rationale: MANUAL MERGE — .github/workflows/** is a high-risk surface. CI-config only; no application code.

🤖 Generated with Claude Code

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Auto-merge blocked — risk-tier paths touched.

This Claude-authored PR modifies files matching the risk-tier patterns
defined in the global CLAUDE.md policy (auth / secrets / migrations /
billing / production infra). Manual click-merge required, OR use one of
the bypass paths below.

Matched files:

.github/workflows/pr-review.yml (matched: ^\.github/workflows/.*)```

**Bypass options (no PR detail navigation needed):**

- Apply the `auto-merge-approved` label to this PR. The workflow will re-run on
  the label event and enable auto-merge. One click from the PR list page.
- Wait for the `review / Codex Review` status check to pass. If Codex Review is
  installed on this repo and it returns SUCCESS, the workflow auto-bypasses
  the risk gate on its next run (e.g. on push of a fixup commit).

If a path is misclassified, fix the regex in
`topcoder1/ci-workflows/.github/workflows/claude-author-automerge.yml`.

@github-actions github-actions Bot added the risk:blocked Risk class: blocked label Jul 16, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Risk class: blocked — manual merge required.

This PR touches one of the blocked path categories from .github/risk-paths.yml (Dockerfiles, docker-compose, .github/workflows/**, **/.env*, **/secrets*, infra/, terraform/, k8s/, or the classifier config itself).

Auto-merge is refused by claude-author-automerge.yml. A maintainer should review the diff and click "Squash and merge" themselves.

(This is a policy notice, not a code-quality failure. The classify job itself does not fail — required CI checks remain authoritative for "is the code green.")

@topcoder1
topcoder1 merged commit 00f43aa into main Jul 16, 2026
12 checks passed
@topcoder1
topcoder1 deleted the claude/pr-review-concurrency-draft-partition branch July 16, 2026 07:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:blocked Risk class: blocked

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant