OpenClaw PR Maintainer
Use this skill for maintainer-facing GitHub workflow, not for ordinary code changes.
Apply close and triage labels correctly
- If an issue or PR matches an auto-close reason, apply the label and let
.github/workflows/auto-response.yml handle the comment/close/lock flow.
- Do not manually close plus manually comment for these reasons.
r:* labels can be used on both issues and PRs.
- Current reasons:
r: skill
r: support
r: no-ci-pr
r: too-many-prs
r: testflight
r: third-party-extension
r: moltbook
r: spam
invalid
dirty for PRs only
Enforce the bug-fix evidence bar
- Never merge a bug-fix PR based only on issue text, PR text, or AI rationale.
- Before landing, require:
- symptom evidence such as a repro, logs, or a failing test
- a verified root cause in code with file/line
- a fix that touches the implicated code path
- a regression test when feasible, or explicit manual verification plus a reason no test was added
- If the claim is unsubstantiated or likely wrong, request evidence or changes instead of merging.
- If the linked issue appears outdated or incorrect, correct triage first. Do not merge a speculative fix.
Handle GitHub text safely
- For issue comments and PR comments, use literal multiline strings or
-F - <<'EOF' for real newlines. Never embed \n.
- Do not use
gh issue/pr comment -b "..." when the body contains backticks or shell characters. Prefer a single-quoted heredoc.
- Do not wrap issue or PR refs like
#24643 in backticks when you want auto-linking.
- PR landing comments should include clickable full commit links for landed and source SHAs when present.
Search broadly before deciding
- Prefer targeted keyword search before proposing new work or closing something as duplicate.
- Use
--repo openclaw/openclaw with --match title,body first.
- Add
--match comments when triaging follow-up discussion.
- Do not stop at the first 500 results when the task requires a full search.
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)"'
Follow PR review and landing hygiene
- If bot review conversations exist on your PR, address them and resolve them yourself once fixed.
- Leave a review conversation unresolved only when reviewer or maintainer judgment is still needed.
- When landing or merging any PR, follow the global
/landpr process.
- Use
scripts/committer "<msg>" <file...> for scoped commits instead of manual git add and git commit.
- Keep commit messages concise and action-oriented.
- Group related changes; avoid bundling unrelated refactors.
- Use
.github/pull_request_template.md for PR submissions and .github/ISSUE_TEMPLATE/ for issues.
Extra safety
- If a close or reopen action would affect more than 5 PRs, ask for explicit confirmation with the exact count and target query first.
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.
1---2name: openclaw-pr-maintainer3description: Maintainer workflow for reviewing, triaging, preparing, closing, or landing OpenClaw pull requests and related issues. Use when Codex needs to validate bug-fix claims, search for related issues or PRs, apply or recommend close/reason labels, prepare GitHub comments safely, check review-thread follow-up, or perform maintainer-style PR decision making before merge or closure.4---56# OpenClaw PR Maintainer78Use this skill for maintainer-facing GitHub workflow, not for ordinary code changes.910## Apply close and triage labels correctly1112- If an issue or PR matches an auto-close reason, apply the label and let `.github/workflows/auto-response.yml` handle the comment/close/lock flow.13- Do not manually close plus manually comment for these reasons.14- `r:*` labels can be used on both issues and PRs.15- Current reasons:16 - `r: skill`17 - `r: support`18 - `r: no-ci-pr`19 - `r: too-many-prs`20 - `r: testflight`21 - `r: third-party-extension`22 - `r: moltbook`23 - `r: spam`24 - `invalid`25 - `dirty` for PRs only2627## Enforce the bug-fix evidence bar2829- Never merge a bug-fix PR based only on issue text, PR text, or AI rationale.30- Before landing, require:31 1. symptom evidence such as a repro, logs, or a failing test32 2. a verified root cause in code with file/line33 3. a fix that touches the implicated code path34 4. a regression test when feasible, or explicit manual verification plus a reason no test was added35- If the claim is unsubstantiated or likely wrong, request evidence or changes instead of merging.36- If the linked issue appears outdated or incorrect, correct triage first. Do not merge a speculative fix.3738## Handle GitHub text safely3940- For issue comments and PR comments, use literal multiline strings or `-F - <<'EOF'` for real newlines. Never embed `\n`.41- Do not use `gh issue/pr comment -b "..."` when the body contains backticks or shell characters. Prefer a single-quoted heredoc.42- Do not wrap issue or PR refs like `#24643` in backticks when you want auto-linking.43- PR landing comments should include clickable full commit links for landed and source SHAs when present.4445## Search broadly before deciding4647- Prefer targeted keyword search before proposing new work or closing something as duplicate.48- Use `--repo openclaw/openclaw` with `--match title,body` first.49- Add `--match comments` when triaging follow-up discussion.50- Do not stop at the first 500 results when the task requires a full search.5152Examples:5354```bash55gh search prs --repo openclaw/openclaw --match title,body --limit 50 -- "auto-update"56gh search issues --repo openclaw/openclaw --match title,body --limit 50 -- "auto-update"57gh search issues --repo openclaw/openclaw --match title,body --limit 50 \58 --json number,title,state,url,updatedAt -- "auto update" \59 --jq '.[] | "\(.number) | \(.state) | \(.title) | \(.url)"'60```6162## Follow PR review and landing hygiene6364- If bot review conversations exist on your PR, address them and resolve them yourself once fixed.65- Leave a review conversation unresolved only when reviewer or maintainer judgment is still needed.66- When landing or merging any PR, follow the global `/landpr` process.67- Use `scripts/committer "<msg>" <file...>` for scoped commits instead of manual `git add` and `git commit`.68- Keep commit messages concise and action-oriented.69- Group related changes; avoid bundling unrelated refactors.70- Use `.github/pull_request_template.md` for PR submissions and `.github/ISSUE_TEMPLATE/` for issues.7172## Extra safety7374- If a close or reopen action would affect more than 5 PRs, ask for explicit confirmation with the exact count and target query first.75- `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.