|
| 1 | +--- |
| 2 | +name: openclaw-pr-maintainer |
| 3 | +description: 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 | +--- |
| 5 | + |
| 6 | +# OpenClaw PR Maintainer |
| 7 | + |
| 8 | +Use this skill for maintainer-facing GitHub workflow, not for ordinary code changes. |
| 9 | + |
| 10 | +## Apply close and triage labels correctly |
| 11 | + |
| 12 | +- 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 only |
| 26 | + |
| 27 | +## Enforce the bug-fix evidence bar |
| 28 | + |
| 29 | +- 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 test |
| 32 | + 2. a verified root cause in code with file/line |
| 33 | + 3. a fix that touches the implicated code path |
| 34 | + 4. a regression test when feasible, or explicit manual verification plus a reason no test was added |
| 35 | +- 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. |
| 37 | + |
| 38 | +## Handle GitHub text safely |
| 39 | + |
| 40 | +- 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. |
| 44 | + |
| 45 | +## Search broadly before deciding |
| 46 | + |
| 47 | +- 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. |
| 51 | + |
| 52 | +Examples: |
| 53 | + |
| 54 | +```bash |
| 55 | +gh search prs --repo openclaw/openclaw --match title,body --limit 50 -- "auto-update" |
| 56 | +gh search issues --repo openclaw/openclaw --match title,body --limit 50 -- "auto-update" |
| 57 | +gh 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 | +``` |
| 61 | + |
| 62 | +## Follow PR review and landing hygiene |
| 63 | + |
| 64 | +- 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. |
| 71 | + |
| 72 | +## Extra safety |
| 73 | + |
| 74 | +- 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. |
0 commit comments