feat(skills): add merge-queue skill#94
Conversation
Add the merge-queue skill with scripts for managing GitHub merge queues via the GraphQL API: enqueue, dequeue-reason, queue-status, and await-and-enqueue. Assisted-by: Claude claude-opus-4-6 <noreply@anthropic.com> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Ralph Bean <rbean@redhat.com>
|
🤖 Finished Review · ✅ Success · Started 9:28 PM UTC · Completed 9:43 PM UTC |
PR Summary by QodoAdd merge-queue skill with GitHub merge queue management scripts
AI Description
Diagram
High-Level Assessment
Files changed (5)
|
Code Review by Qodo
Context used✅ Compliance rules (platform):
55 rules 1.
|
ReviewRe-review of 90e2a01 (prev: 459235d). The fix commit addressed all prior findings: StatusContext/CheckRun handling is now correct ( No medium or higher findings remain. Two new low-severity edge cases were identified. Approving with follow-up notes. FindingsLow
Resolved from prior review: The medium-severity Previous runReviewRe-review of 459235d (prev: 84c2058). The fix commit added fail-closed error handling on API calls and GraphQL error checks in One medium finding persists from the prior review. FindingsMedium
Low
Corrections from prior review: The prior review's high-severity Previous runReviewFindingsHigh
Medium
Low
Labels: PR adds a new merge-queue skill feature.
Previous runReviewRe-review of 459235d (prev: 84c2058). The fix commit added fail-closed error handling on API calls and GraphQL error checks in One medium finding persists from the prior review. FindingsMedium
Low
Corrections from prior review: The prior review's high-severity Previous run (2)ReviewFindingsHigh
Medium
Low
Labels: PR adds a new merge-queue skill feature. |
await-and-enqueue.sh: replace fail-open fallback (|| echo '[]') with fail-closed behavior that exits on API errors. Use gh pr view for repo_nwo instead of URL parsing with sed. queue-status.sh, dequeue-reason.sh: add .errors checking on GraphQL responses, matching the existing pattern in enqueue-pr.sh. Assisted-by: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Ralph Bean <rbean@redhat.com>
|
🤖 Finished Review · ✅ Success · Started 9:45 PM UTC · Completed 9:55 PM UTC |
|
/fs-fix |
|
🤖 Finished Fix · ✅ Success · Started 11:54 PM UTC · Completed 12:11 AM UTC |
- Fix jq logic in await-and-enqueue.sh: use .name // .context for check map keys and .conclusion // .state // .status for values, supporting both CheckRun and StatusContext objects from statusCheckRollup - Add case-insensitive flag to test() calls for StatusContext .state - Fix ETA display in queue-status.sh: use conditional to avoid appending 's' suffix to 'unknown' when estimatedTimeToMerge is null - Document rulesets-only limitation in await-and-enqueue.sh and SKILL.md - Add Constraints section to SKILL.md per pattern-inconsistency finding Addresses review feedback on #94
🔧 Fix agent — iteration 1 (human-triggered)Addressed 4 of 6 review findings. Fixed the medium-severity jq logic error in await-and-enqueue.sh that caused StatusContext objects to collide on a null key (fail-open condition). Fixed the ETA display bug in queue-status.sh. Documented the rulesets-only limitation and added a Constraints section to SKILL.md. Disagreed with 2 informational observations (architectural-divergence, code-organization) that describe novel patterns but not code defects. Fixed (4):
Disagreed (2):
Tests: passed Updated by fullsend fix agent |
|
🤖 Finished Review · ✅ Success · Started 12:12 AM UTC · Completed 12:25 AM UTC |
Treat STALE CheckRun conclusion as a failure instead of pending, which would otherwise cause indefinite polling. Also detect null mergeQueueEntry after a successful mutation and exit with a clear error instead of printing a misleading success message. Signed-off-by: Ralph Bean <rbean@redhat.com> Assisted-by: Claude claude-opus-4-6 <noreply@anthropic.com> Signed-off-by: Ralph Bean <rbean@redhat.com>
|
🤖 Finished Review · ✅ Success · Started 12:48 PM UTC · Completed 12:59 PM UTC |
|
🤖 Finished Retro · ✅ Success · Started 12:53 PM UTC · Completed 1:01 PM UTC |
|
Review skipped — this PR is already merged. The Posted by fullsend post-review check |
|
PR #94 added a merge-queue skill with 4 shell scripts for GitHub merge queue management. The workflow involved 4 commits across 3 iteration cycles, 4 review agent passes, and 30 inline review comments. The review agents caught several genuine bugs (fail-open fallback, CheckRun/StatusContext collision, ETA formatting bug, STALE check indefinite polling, null enqueue position). The fix agent successfully resolved 4/6 findings in one pass. Two key inefficiencies: (1) the review agent re-raised identical low-severity findings across 3 re-reviews forcing 12+ dismissal comments from the author, and (2) a valid skill spec field was flagged as 'novel pattern' 3 times. These patterns also appeared on PR #89. Existing upstream issues fullsend-ai/fullsend#1013 and #1672 track the deduplication and dismissal-honoring gaps; this PR provides additional evidence for both. One repo-level proposal targets documenting valid skill frontmatter fields to prevent false-positive findings. Proposals filed
|
Summary
merge-queueskill fromfullsend-ai/fullsendwith four scripts for managing GitHub merge queues via the GraphQL APITest plan
enqueue-pr.shsuccessfully enqueues a PR on a repo with merge queues enabledqueue-status.shlists current queue entriesdequeue-reason.shshows removal reasons for previously dequeued PRsawait-and-enqueue.shpolls and enqueues once checks pass🤖 Generated with Claude Code