.agents/skills/openclaw-pr-maintainer/SKILL.md
Use this skill for maintainer-facing GitHub workflow, not for ordinary code changes.
$gitcrawl first anytime you inspect OpenClaw issues or PRs.gitcrawl data first for related threads, duplicate attempts, and already-landed fixes.gitcrawl for candidate discovery and clustering; use gh, gh api, and the current checkout to verify live state before commenting, labeling, closing, or landing.gitcrawl is missing, stale, lacks the target thread, or has no embeddings for neighbor/search commands, fall back to the GitHub search workflow below.gitcrawl sync --include-comments, future enrichment commands, or broad reclustering unless the user asked to update the local store or stale data is blocking the decision.Common read-only path:
gitcrawl threads openclaw/openclaw --numbers <issue-or-pr-number> --include-closed --json
gitcrawl neighbors openclaw/openclaw --number <issue-or-pr-number> --limit 12 --json
gitcrawl search openclaw/openclaw --query "<scope or title keywords>" --mode hybrid --json
gitcrawl cluster-detail openclaw/openclaw --id <cluster-id> --member-limit 20 --body-chars 280 --json
gh issue view / gh pr view (author.login), then fetch profile metadata once with gh api users/<login> --jq '{login,name,created_at,type}'.By: Jane Doe (@jane, acct 2021-04-03) | OpenClaw: 4 PRs, 2 issues, 11 commits/12mo | GitHub: 9 repos, 86 commits, 9 PRs, 3 issues, 12 reviews.agents/skills/openclaw-pr-maintainer/scripts/github-activity.sh <login> [other-login...]
.agents/skills/openclaw-pr-maintainer/scripts/github-activity.sh --global <login>
--global; run the global form by default for review/triage identity summaries.gh api users/<login>, gh api 'users/<login>/events/public?per_page=100', and recent public repo commits before calling the account inactive.gh: it rounds repo-local windows to the UTC day, rounds global contribution windows to the UTC hour, and counts PRs/issues from one paginated issues response before fetching commits separately. Prefer reusing the helper instead of hand-rolling several gh api loops.By: pickaxe (@ProspectOre, acct 2019-08-24) | OpenClaw: 5 PRs, 0 issues, 5 commits/12mo | GitHub: 5 repos, 29 recent events, 100 public own-repo commits; graph=0name is empty, use the login only. If profile lookup is rate-limited or unavailable, say account age unknown rather than omitting the opener.When asked for issue triage, hot issues, pressing bugs, Discord-correlated issues, or "what is still open", do not surface issues or PRs authored by top maintainers by default. Prefer external/user-reported hot issues and external PRs, not maintainer-owned work queues.
Suppress by default when the opener/author is one of:
@vincentkoc@Takhoffman@gumadeiras@obviyus@shakkernerd@mbelinky@joshavant@ngutman@vignesh07@huntharoAlso suppress lower-priority maintainer-owned noise from the broader keep/top-maintainer group unless it is directly relevant:
@thewilloftheshadow@onutc / @osolmaz@jacobtomlinson@tyler6204@velvet-shark@jalehman@frankekn@ImLukeF@mcaxtrExceptions:
.github/workflows/auto-response.yml handle the comment/close/lock flow.main or solved by a new release, comment with proof plus the canonical commit/PR/release, then close it.r:* labels can be used on both issues and PRs.r: skillr: supportr: no-ci-prr: too-many-prsr: testflightr: third-party-extensionr: moltbookr: spaminvaliddirty for PRs onlyWhen asked for X issues or PRs to triage, X means qualified candidates, not sampled threads.
Issue triage is review/prove/patch-local by default:
Do not batch unrelated issue fixes into one commit. Do not publish, comment, close, or label during the review/prove phase.
Missing changelog is not a PR review finding or merge blocker. If landing/fixing a user-visible change, add/update changelog automatically when practical; never ask or block solely on it.
Only list candidates that pass all gates:
Loop:
gitcrawl / gh to gather candidate clusters.X qualified candidates or the bounded search is exhausted.Output only qualifying candidates, with: ref, surface, proof, cause, fix sketch, why small, expected test/gate. If none qualify, say so; do not pad.
Findings.No blocking findings or No findings.origin/main behavior. Check whether recent main already changed the same surface.$crabbox) for end-to-end verification before
commenting that a bug is unreproducible, closing an issue, or opening/landing
a fix PR. Prefer a real packaged/Docker/live lane that exercises the reported
user flow over unit-only proof.r: third-party-extension auto-response label when it applies; it points contributors to publish on ClawHub.-F - <<'EOF' for real newlines. Never embed \n.gh issue/pr comment -b "..." when the body contains backticks or shell characters. Prefer a single-quoted heredoc.#24643 in backticks when you want auto-linking.gitcrawl first. Then use targeted GitHub keyword search to verify gaps, live status, comments, and candidates not present in the local store.--repo openclaw/openclaw with --match title,body first when using gh search.--match comments when triaging follow-up discussion or closed-as-duplicate chains.Examples:
gh search prs --repo openclaw/openclaw --match title,body --limit 50 -- "auto-update"
gh search issues --repo openclaw/openclaw --match title,body --limit 50 -- "auto-update"
gh search issues --repo openclaw/openclaw --match title,body --limit 50 \
--json number,title,state,url,updatedAt -- "auto update" \
--jq '.[] | "\(.number) | \(.state) | \(.title) | \(.url)"'
CHANGELOG.md entries, in review-only output. These are landing mechanics,
not correctness findings./landpr process.scripts/committer "<msg>" <file...> for scoped commits instead of manual git add and git commit..github/pull_request_template.md for PR submissions and .github/ISSUE_TEMPLATE/ for issues..github/pr-assets; attach them to the PR/comment or use an external artifact store instead.sync means: if the tree is dirty, commit all changes with a sensible Conventional Commit message, then git pull --rebase, then git push. Stop if rebase conflicts cannot be resolved safely.