| name | openclaw-pr-batch-sweep |
| description | Select, review, repair, validate, and land batches of up to 20 low-risk OpenClaw contributor pull requests using Vincent's maintainer preferences and bounded sub-agent lanes. Use for "next 20", broad contributor PR sweeps, merge-candidate mining, or continued PR-batch work where drafts, maintainer work, trivial one-line changes, UI, security, migrations, and high-risk changes must be excluded. |
| license | MIT |
| metadata | {"source":"https://github.com/vincentkoc/dotskills","version":"0.2.7","spec":"agentskills-v1"} |
OpenClaw PR Batch Sweep
Purpose
Drive a continuing queue of real, low-risk OpenClaw contributor bug fixes through qualification, repair, proof, and landing. Work in batches of up to 20 without padding the batch with micro-patches, speculative cleanup, or risky surfaces.
Requires ghx, gitcrawl, gwt, and the OpenClaw maintainer, testing, autoreview, Crabbox, and ClawSweeper skills.
Read references/operator-selection-policy.md before selecting candidates. Read references/worker-contract.md before spawning sub-agents.
Read and update references/decision-ledger.json so fresh runs inherit prior landed, rejected, closed, and explicitly skipped PRs.
Compose the repository skills instead of duplicating them:
$openclaw-pr-maintainer for live GitHub evidence and mutations.
$openclaw-landable-bug-sweep for proof, repair, and landing.
$gitcrawl for discovery and duplicate clusters.
$openclaw-testing, $crabbox, and $autoreview for validation.
$clawsweeper for readiness labels and exact-head review evidence.
When to use
- The operator says
next 20, continue the PR sweep, or asks for another batch.
- The operator wants contributor PRs reproduced, narrowed, repaired, tested, and landed.
- The queue must exclude drafts, maintainer-owned work, UI, security, SSRF, auth, config migrations, and high-risk changes.
- Prior accept/reject decisions should shape future candidate selection.
- Reuse a small retained worker pool so review scales without accumulating completed workers or creating noisy local process pressure.
Workflow
-
Recover and continue the existing queue.
- Read recent thread state and the batch ledger.
- Read
auditWatermark when present. Use openPrThrough as the default floor for newly created PR discovery instead of rehydrating an unchanged live edge.
- The watermark is not a terminal decision. An older unhandled PR may re-enter only when its head SHA or risk/readiness state materially changed; terminal ledger entries never re-enter.
- Verify current
main, live PR state, repo instructions, VISION.md, disk, and worktree health.
- Keep a handled set containing merged, closed, rejected, ignored, draft, and explicitly skipped PRs.
- Never recycle prior candidates merely because their metadata changed.
-
Discover broadly, then reject aggressively.
- Start with
gitcrawl; verify live state with ghx. If gitcrawl is stale, malformed, or unavailable, fall through immediately to live ghx.
- Run discovery and hydration shell calls serially on the maintainer host. Do not fan out
gitcrawl, ghx, or per-PR REST calls in parallel.
- Fetch at least 100 open PRs. Widen toward 1000 when the strict filter yields fewer than 20.
- Write discovery JSON to a file and set
OPEN_PRS_JSON to that path. The ranker accepts either a raw PR array or gitcrawl's { "threads": [...] } envelope. It normalizes labels_json, author_login, and is_draft; do not strip those fields before ranking.
- Combine
handled_refs and explicit_skips into comma-separated HANDLED_PRS. Numbers, #123, and full pull-request URLs are accepted.
- Run
scripts/rank-candidates.mjs --input "$OPEN_PRS_JSON" --limit 40 --batch-size 20 --decision-ledger references/decision-ledger.json --exclude "$HANDLED_PRS" as a first-pass noise filter.
- Set
HYDRATED_PRS_JSON to a second JSON file, then hydrate the top 30-40 with scripts/hydrate-candidates.mjs --input <ranked.json> --output "$HYDRATED_PRS_JSON". It serially merges authoritative REST author association, file count, merge state, paginated file deltas, and live check rollups while retrying unresolved mergeability.
- If process launch returns
EMFILE, , or another file-descriptor exhaustion error, stop spawning workers and parallel shells immediately. Let retained lanes finish, then continue from the coordinator with one shell call at a time.
Inputs
batch_size: default 20, maximum 20.
repo: default openclaw/openclaw.
explicit_skips: PR numbers or URLs the operator has excluded.
handled_refs: merged, closed, rejected, ignored, or already-reviewed PRs.
concurrency: default 2 retained qualification workers and 1 retained implementation worker; maximum 2 implementation workers.
source_mode: discovery or provided-prs; default discovery.
risk_overrides: explicit operator-approved exceptions only.
Outputs
- Candidate ledger with up to 20 qualified PRs and no padding.
- Per-PR evidence map, best-fix verdict, proof plan, and terminal action.
- Exact worktree/branch ownership for active implementation lanes.
- Landed PR URLs and SHAs, closed/rejected refs with reasons, CI/Testbox/Crabbox proof, and remaining blockers.
- Clean current
main status after landing work.