Find the GitHub Actions settings that will jam your merge queue.
QueueProof scans workflow YAML for missing merge_group triggers, skipped required checks, runner-label drift, timeout gaps, and concurrency rules that cancel the run branch protection is waiting for.
on:
pull_request:
paths: ["src/**"]
push:
branches: [main]
concurrency:
cancel-in-progress: true
Required PR checks can skip, cancel, or never run for merge_group. QueueProof points to the exact line and fix.
Scan your workflows
Upload a repo ZIP or paste one workflow file. QueueProof only reads file names and YAML text.
QueueProof report
Merge queue readiness
Detect workflows that run on PRs but not merge_group, the classic hidden blocker for required checks.
Skipped-check traps
Spot path filters, fail-open jobs, and concurrency cancellation that can leave branch protection confused.
Runner risk signals
Flag ubuntu-latest drift, self-hosted PR exposure, missing timeouts, and queue-amplifying defaults.
Why this exists
GitHub Actions is now a release-critical dependency. A single workflow missing merge_group, a required check with path filters, or a broad cancel-in-progress rule can turn merge queues into a weird, expensive waiting room.
QueueProof is not a generic AI review. It inspects workflow structure and reports deterministic, line-level release risks.
Good output looks like this
- ✅ Status score and red/yellow/green release risk
- ✅ Exact workflow file and line reference
- ✅ Plain-English impact on branch protection
- ✅ Copy-pasteable fix hints for
merge_groupand concurrency
Frequently asked questions
What does QueueProof scan?
GitHub Actions workflow YAML from a repo ZIP or pasted text, focused on merge queue readiness and required-check reliability.
Does it read my secrets?
No. It only reads workflow YAML and filenames inside .github/workflows. Do not upload private source if you are not comfortable sharing workflow config.
Is this just ChatGPT with a form?
No. The scanner uses deterministic rules for event triggers, path filters, runner labels, timeouts, concurrency, and fail-open jobs. The same input produces the same report.
Why does merge_group matter?
GitHub merge queues create synthetic merge-group refs. Required checks that only run on pull_request may not produce the status signal the queue expects.