You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .agents/skills/openclaw-pr-maintainer/SKILL.md
+6-96Lines changed: 6 additions & 96 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
name: openclaw-pr-maintainer
3
-
description: Use immediately for any pasted OpenClaw GitHub issue or PR URL/number, and for OpenClaw issue/PR review, triage, duplicate search, opener identity/who wrote it, author account age/activity, comments, labels, close, land, or maintainer evidence checks.
3
+
description: Review, triage, close, label, comment on, or land OpenClaw PRs/issues with maintainer evidence checks.
4
4
---
5
5
6
6
# OpenClaw PR Maintainer
@@ -24,63 +24,6 @@ gitcrawl search openclaw/openclaw --query "<scope or title keywords>" --mode hyb
- For every reviewed, triaged, closed, or landed issue/PR, show the opener's human name when available, GitHub login, and account age.
30
-
- Get the login from `gh issue view` / `gh pr view` (`author.login`), then fetch profile metadata once with `gh api users/<login> --jq '{login,name,created_at,type}'`.
- Always show recent activity in two lanes: OpenClaw-local PRs, issues, and commits in the last 12 months; and general public GitHub activity over the same window. For linked issue-fixing PRs, include both the PR author and issue opener when they differ.
- The helper reports repo-local activity first and can fetch public GitHub contribution totals for the same window with `--global`; run the global form by default for review/triage identity summaries.
42
-
- If the global contribution graph reports zero or looks inconsistent with visible public activity, sanity-check with `gh api users/<login>`, `gh api 'users/<login>/events/public?per_page=100'`, and recent public repo commits before calling the account inactive.
43
-
- The helper is intentionally cache-friendly for gitcrawl-backed `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.
44
-
- If the contribution graph is misleading or zero but public events/repos show activity, keep it one line, for example:
- If `name` is empty, use the login only. If profile lookup is rate-limited or unavailable, say `account age unknown` rather than omitting the opener.
47
-
- Use identity and activity as triage signal, not proof by itself: new, low-activity, or bot-like accounts can raise review caution, but code, repro, and CI evidence still decide.
48
-
49
-
## Suppress top-maintainer items in issue triage
50
-
51
-
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.
52
-
53
-
Suppress by default when the opener/author is one of:
54
-
55
-
-`@vincentkoc`
56
-
-`@Takhoffman`
57
-
-`@gumadeiras`
58
-
-`@obviyus`
59
-
-`@shakkernerd`
60
-
-`@mbelinky`
61
-
-`@joshavant`
62
-
-`@ngutman`
63
-
-`@vignesh07`
64
-
-`@huntharo`
65
-
66
-
Also suppress lower-priority maintainer-owned noise from the broader keep/top-maintainer group unless it is directly relevant:
67
-
68
-
-`@thewilloftheshadow`
69
-
-`@onutc` / `@osolmaz`
70
-
-`@jacobtomlinson`
71
-
-`@tyler6204`
72
-
-`@velvet-shark`
73
-
-`@jalehman`
74
-
-`@frankekn`
75
-
-`@ImLukeF`
76
-
-`@mcaxtr`
77
-
78
-
Exceptions:
79
-
80
-
- Show maintainer-authored items when the requester explicitly asks for maintainer PRs/issues, PR landing candidates, release-blocking maintainer work, or a specific PR/issue number.
81
-
- Show a maintainer-authored item when it is the canonical fix for an external hot issue, but frame it as the fix path rather than as a user-facing issue candidate.
82
-
- Do not close, label, or deprioritize solely because an item is maintainer-authored; this section only controls what appears in triage shortlists.
83
-
84
27
## Apply close and triage labels correctly
85
28
86
29
- 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.
@@ -103,18 +46,11 @@ Exceptions:
103
46
104
47
When asked for `X` issues or PRs to triage, `X` means qualified candidates, not sampled threads.
105
48
106
-
Issue triage is review/prove/patch-local by default:
107
-
108
-
1. Review the issue body, comments, related threads, current code, and adjacent tests.
109
-
2. Fix only issues that are easy, high-confidence, and narrowly owned by the implicated path.
110
-
3. Add focused regression proof when practical.
111
-
4. Stop with the dirty diff, touched files, and test/gate output for maintainer review.
112
-
5. After maintainer approval to ship, make one commit per accepted fix, with its own changelog entry when user-facing.
113
-
6. Pull/rebase, push, then comment and close only the issues that were fixed or explicitly triaged closed.
114
-
115
-
Do not batch unrelated issue fixes into one commit. Do not publish, comment, close, or label during the review/prove phase.
116
-
117
-
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.
49
+
Triage is read/prove/patch-local by default. Do not commit unless Peter writes
50
+
`commit` in the current instruction for the exact diff being handled. Do not
51
+
treat earlier messages, inferred intent, "next", sweep momentum, or bundled
52
+
publish language as commit permission. If Peter asks for follow-up work without
53
+
saying `commit`, keep the files dirty after local fixes and proof.
118
54
119
55
Only list candidates that pass all gates:
120
56
@@ -134,39 +70,16 @@ Loop:
134
70
135
71
Output only qualifying candidates, with: ref, surface, proof, cause, fix sketch, why small, expected test/gate. If none qualify, say so; do not pad.
136
72
137
-
## Structure PR review output
138
-
139
-
- Start every PR review with 1-3 plain sentences explaining what the change does and why it matters. Put this before `Findings`.
140
-
- Then list findings first. If none, say `No blocking findings` or `No findings`.
141
-
- Always answer: bug/behavior being fixed, PR/issue URL and affected surface, and best-fix verdict.
142
-
- Keep summaries compact, but include enough proof that the verdict is auditable without rereading the PR.
143
-
144
-
## Read beyond the diff
145
-
146
-
- Review the surrounding code path, not just changed lines. Open the caller, callee, data contracts, adjacent tests, and owner module.
147
-
- For large-codebase PRs, sample enough related files to understand the runtime boundary before deciding. Default to more code reading when the change touches agents, gateway, plugins, auth, sessions, process, config, or provider/runtime seams.
148
-
- Compare the PR against current `origin/main` behavior. Check whether recent main already changed the same surface.
149
-
- Dependency-backed behavior: MUST read upstream docs/source/types before judging API use, defaults, output shapes, errors, timeouts, memory behavior, or compatibility. Do not assume dependency contracts from memory or PR text.
150
-
- Judge solution quality, not only correctness. Ask whether the PR is the clean owner-boundary fix or a wart/workaround that should be replaced by a small refactor, moved seam, contract change, or deletion of duplicate logic.
151
-
- Mention the main files read when the verdict depends on code-path evidence.
152
-
153
73
## Enforce the bug-fix evidence bar
154
74
155
75
- Never merge a bug-fix PR based only on issue text, PR text, or AI rationale.
156
-
- Whenever feasible, use Crabbox (`$crabbox`) for end-to-end verification before
157
-
commenting that a bug is unreproducible, closing an issue, or opening/landing
158
-
a fix PR. Prefer a real packaged/Docker/live lane that exercises the reported
159
-
user flow over unit-only proof.
160
76
- Before landing, require:
161
77
1. symptom evidence such as a repro, logs, or a failing test
162
78
2. a verified root cause in code with file/line
163
79
3. a fix that touches the implicated code path
164
80
4. a regression test when feasible, or explicit manual verification plus a reason no test was added
165
81
- If the claim is unsubstantiated or likely wrong, request evidence or changes instead of merging.
166
82
- If the linked issue appears outdated or incorrect, correct triage first. Do not merge a speculative fix.
167
-
- If Crabbox/E2E proof is blocked, say exactly why and use the closest available
168
-
local, Docker, mocked, or targeted proof. Do not present unit tests as real
0 commit comments