ClawHub PR Maintainer
Use this skill for maintainer-facing ClawHub GitHub workflow, not for ordinary
implementation work.
Start With Live GitHub State
- Use
gh pr view or gh issue view against openclaw/clawhub; verify live
state before commenting, labeling, closing, or recommending merge.
- For PRs, read title, body, author, labels, comments, files, commits, status
checks, review state, and linked issues.
- Surface author identity briefly: GitHub name/login and account age when
useful. Treat identity as triage signal, never as proof by itself.
Common read-only commands:
gh pr view <number> --repo openclaw/clawhub --json title,body,author,labels,comments,files,commits,statusCheckRollup,reviewDecision,url,additions,deletions,changedFiles
gh issue view <number> --repo openclaw/clawhub --json title,body,author,labels,comments,state,url
gh api users/<login> --jq '{login,name,created_at,type}'
Review Evidence Bar
- For bug fixes, require symptom evidence, a plausible root cause in the touched
code path, and either a regression test or focused manual proof.
- For UI changes, require screenshots or video when the behavior is meaningfully
visual. Use tests as supplemental evidence, not a substitute for visible proof.
- Do not merge or recommend merge based only on PR prose, AI rationale, or green
CI when the changed behavior has not been exercised.
- For contributor-provided screenshots/videos/logs, inspect the artifact
directly and state what it proves. Do not rerun
proof:ui just to inspect
existing evidence.
Structure PR Review Output
- Start every PR review with 1-3 plain sentences explaining what the change does
and why it matters.
- Show size near the top as
LOC: +x/-y (N files), using live PR stats or
local diff stats.
- Then list findings first. If none, say
No blocking findings or
No findings.
- Always answer: affected ClawHub surface, bug or behavior being changed,
evidence checked, and best-fix verdict.
- For bug/regression fixes, include a compact
Provenance: line when a bounded
history pass identifies it. Separate code author, PR author,
merger/committer, current PR author, PR number, and date when those differ.
If the blamed PR was merged by automation, identify the human trigger when
practical; otherwise say trigger unknown.
Read Beyond The Diff
- For code-path bug, regression, or behavior changes, review the surrounding
path, not just changed lines. Open the runtime entry point, owner module, one
caller, one callee, adjacent tests, and sibling surfaces that should share the
invariant.
- For docs/config/process-only changes, read the changed file, its linked or
adjacent source of truth, and any route/workflow/template the change claims to
affect. Do not require runtime caller/callee evidence when no runtime path
exists.
- Compare against current
origin/main behavior or current published docs when
regression, compatibility, or user-visible docs accuracy matters.
- For dependency-backed behavior, read the upstream docs/source/types before
judging API use, defaults, output shapes, errors, timeouts, memory behavior, or
compatibility.
- Mention the main files or contracts read when the verdict depends on
code-path, docs, config, or workflow evidence.
- If a required path is uninspected, keep reading or mark
Remaining uncertainty; do not call the PR best, proof-sufficient, or
merge-ready.
Best-Fix Review Loop
Every PR review must explicitly answer: "Is this the best fix, or only a
plausible fix?"
Before verdict:
- Reconstruct the bug, feature need, or behavior claim from the issue, PR, and
proof.
- For code-path changes, trace current behavior from entry point to failure or
decision point.
- For docs/config/process-only changes, trace the reader/operator workflow or
automation path the change is meant to clarify.
- Read touched files, relevant callers/callees for code changes, adjacent docs
or tests, owner modules, and relevant source-of-truth docs.
- Read sibling surfaces that should share the invariant or could be broken by a
one-sided fix.
- Compare against current
origin/main and shipped behavior when relevant.
- Identify at least one alternative fix location or shape, then reject it with
evidence.
Review output must include:
Best-fix verdict: best / acceptable mitigation / wrong layer / too narrow /
too broad.
Alternatives considered: 1-3 concrete alternatives and why rejected.
Code read: compact list of main files/contracts checked.
Remaining uncertainty: what was not proven.
Enforce Bug-Fix Evidence
- Never merge a bug-fix PR based only on issue text, PR text, or AI rationale.
- Before recommending merge for a bug fix, require:
- symptom evidence such as a repro, logs, failing test, or focused manual
proof
- a verified root cause in code with file/line
- blame-backed provenance for regressions when traceable, or commit SHA/date
when no PR is traceable
- 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 recommending merge.
Decide UI Proof Mode
Generate new visual evidence with the best proof runtime available in the
current session. Use Crabbox through bun run proof:ui only when a Crabbox
skill or working Crabbox capability is available. Otherwise ignore Crabbox and
run the existing Playwright proof runtime against a real local ClawHub instance;
missing Crabbox access is not a blocker.
before-after: bug fixes, regressions, changed copy, changed layout, or any
PR where main-vs-candidate comparison clarifies the change.
feature: new page, new flow, new UI state, or behavior that cannot exist on
origin/main.
- No generated proof: docs-only, backend-only, tests-only, metadata-only, or
already-sufficient contributor evidence.
Write a temporary Playwright scenario under .artifacts/proof-scenarios/; do
not infer manual clicks. Keep screenshots and videos in .artifacts/ until
publishing. Never commit proof artifacts.
For the local fallback, start ClawHub with the relevant local Convex state and
run the scenario through the local Playwright runner:
bun run proof:ui -- --runner local --mode feature \
--scenario .artifacts/proof-scenarios/<name>.pw.ts \
--candidate-url <local-clawhub-url>
For before/after proof, run the same scenario against an origin/main checkout
and the candidate checkout, then pass both URLs with --baseline-url and
--candidate-url. The runner accepts only localhost or loopback URLs and writes
publishable baseline/ and candidate/ artifacts. Use the Codex app browser to
inspect the running local instances and captured evidence.
Final Review Comment With Proof
If this review generated proof:ui artifacts, publish them before the final PR
review comment. Do not leave only local .artifacts/... paths in a PR comment;
they are useful to the maintainer locally but invisible to GitHub readers.
Use:
bun run proof:publish -- --proof-dir .artifacts/clawhub-ui-proof/<timestamp> --target-pr <number>
proof:publish copies the selected files to the qa-artifacts branch and
upserts a marker-backed PR comment with a ClawHub UI Proof section.
That comment includes:
- the proof mode (
before-after or feature)
- the
report.md result summary
- the most relevant per-step screenshots
- inline video previews when GIF previews are present
- links to full-run MP4s
- links to raw proof files on the artifact branch
Use --dry-run before publishing if you need to inspect the generated comment.
If publishing fails because credentials are missing, report the local proof
directory and the failed command instead of posting a comment that claims
evidence is attached.
ClawSweeper
ClawSweeper is the bot control plane for automated PR/issue review once ClawHub
dispatch is configured. Until then, use this skill for manual maintainer review.
If ClawSweeper has posted a review, read it as evidence but verify live PR state
before acting.
Commenting And Labels
- Use literal multiline comment bodies or
--body-file; never pass escaped
\n strings.
- For issue comments and PR comments containing backticks or shell characters,
prefer a single-quoted heredoc or
--body-file over inline -b bodies.
- Do not wrap issue or PR refs like
#123 in backticks when you want GitHub to
auto-link them.
- Keep maintainer comments short: finding, evidence, requested action, and
verification path.
- When no proof artifacts were generated,
gh pr comment --body-file is fine.
When proof artifacts were generated, use proof:publish so screenshots/videos
are published before posting.
- Do not close more than five issues/PRs in one action without explicit
confirmation and the exact target list.
1---2name: clawhub-pr-maintainer3description: Use when reviewing, triaging, validating, or discussing ClawHub GitHub issues or pull requests, including author context, CI, UI proof, evidence, labels, close decisions, and maintainer handoff.4---5
6# ClawHub PR Maintainer
7
8Use this skill for maintainer-facing ClawHub GitHub workflow, not for ordinary
9implementation work.
10
11## Start With Live GitHub State
12
13- Use `gh pr view` or `gh issue view` against `openclaw/clawhub`; verify live
14 state before commenting, labeling, closing, or recommending merge.
15- For PRs, read title, body, author, labels, comments, files, commits, status
16 checks, review state, and linked issues.
17- Surface author identity briefly: GitHub name/login and account age when
18 useful. Treat identity as triage signal, never as proof by itself.
19
20Common read-only commands:
21
22```sh
23gh pr view <number> --repo openclaw/clawhub --json title,body,author,labels,comments,files,commits,statusCheckRollup,reviewDecision,url,additions,deletions,changedFiles
24gh issue view <number> --repo openclaw/clawhub --json title,body,author,labels,comments,state,url
25gh api users/<login> --jq '{login,name,created_at,type}'
26```
27
28## Review Evidence Bar
29
30- For bug fixes, require symptom evidence, a plausible root cause in the touched
31 code path, and either a regression test or focused manual proof.
32- For UI changes, require screenshots or video when the behavior is meaningfully
33 visual. Use tests as supplemental evidence, not a substitute for visible proof.
34- Do not merge or recommend merge based only on PR prose, AI rationale, or green
35 CI when the changed behavior has not been exercised.
36- For contributor-provided screenshots/videos/logs, inspect the artifact
37 directly and state what it proves. Do not rerun `proof:ui` just to inspect
38 existing evidence.
39
40## Structure PR Review Output
41
42- Start every PR review with 1-3 plain sentences explaining what the change does
43 and why it matters.
44- Show size near the top as `LOC: +x/-y (N files)`, using live PR stats or
45 local diff stats.
46- Then list findings first. If none, say `No blocking findings` or
47 `No findings`.
48- Always answer: affected ClawHub surface, bug or behavior being changed,
49 evidence checked, and best-fix verdict.
50- For bug/regression fixes, include a compact `Provenance:` line when a bounded
51 history pass identifies it. Separate code author, PR author,
52 merger/committer, current PR author, PR number, and date when those differ.
53 If the blamed PR was merged by automation, identify the human trigger when
54 practical; otherwise say trigger unknown.
55
56## Read Beyond The Diff
57
58- For code-path bug, regression, or behavior changes, review the surrounding
59 path, not just changed lines. Open the runtime entry point, owner module, one
60 caller, one callee, adjacent tests, and sibling surfaces that should share the
61 invariant.
62- For docs/config/process-only changes, read the changed file, its linked or
63 adjacent source of truth, and any route/workflow/template the change claims to
64 affect. Do not require runtime caller/callee evidence when no runtime path
65 exists.
66- Compare against current `origin/main` behavior or current published docs when
67 regression, compatibility, or user-visible docs accuracy matters.
68- For dependency-backed behavior, read the upstream docs/source/types before
69 judging API use, defaults, output shapes, errors, timeouts, memory behavior, or
70 compatibility.
71- Mention the main files or contracts read when the verdict depends on
72 code-path, docs, config, or workflow evidence.
73- If a required path is uninspected, keep reading or mark
74 `Remaining uncertainty`; do not call the PR best, proof-sufficient, or
75 merge-ready.
76
77## Best-Fix Review Loop
78
79Every PR review must explicitly answer: "Is this the best fix, or only a
80plausible fix?"
81
82Before verdict:
83
841. Reconstruct the bug, feature need, or behavior claim from the issue, PR, and
85 proof.
862. For code-path changes, trace current behavior from entry point to failure or
87 decision point.
883. For docs/config/process-only changes, trace the reader/operator workflow or
89 automation path the change is meant to clarify.
904. Read touched files, relevant callers/callees for code changes, adjacent docs
91 or tests, owner modules, and relevant source-of-truth docs.
925. Read sibling surfaces that should share the invariant or could be broken by a
93 one-sided fix.
946. Compare against current `origin/main` and shipped behavior when relevant.
957. Identify at least one alternative fix location or shape, then reject it with
96 evidence.
97
98Review output must include:
99
100- `Best-fix verdict:` best / acceptable mitigation / wrong layer / too narrow /
101 too broad.
102- `Alternatives considered:` 1-3 concrete alternatives and why rejected.
103- `Code read:` compact list of main files/contracts checked.
104- `Remaining uncertainty:` what was not proven.
105
106## Enforce Bug-Fix Evidence
107
108- Never merge a bug-fix PR based only on issue text, PR text, or AI rationale.
109- Before recommending merge for a bug fix, require:
110 1. symptom evidence such as a repro, logs, failing test, or focused manual
111 proof
112 2. a verified root cause in code with file/line
113 3. blame-backed provenance for regressions when traceable, or commit SHA/date
114 when no PR is traceable
115 4. a fix that touches the implicated code path
116 5. a regression test when feasible, or explicit manual verification plus a
117 reason no test was added
118- If the claim is unsubstantiated or likely wrong, request evidence or changes
119 instead of recommending merge.
120
121## Decide UI Proof Mode
122
123Generate new visual evidence with the best proof runtime available in the
124current session. Use Crabbox through `bun run proof:ui` only when a Crabbox
125skill or working Crabbox capability is available. Otherwise ignore Crabbox and
126run the existing Playwright proof runtime against a real local ClawHub instance;
127missing Crabbox access is not a blocker.
128
129- `before-after`: bug fixes, regressions, changed copy, changed layout, or any
130 PR where main-vs-candidate comparison clarifies the change.
131- `feature`: new page, new flow, new UI state, or behavior that cannot exist on
132 `origin/main`.
133- No generated proof: docs-only, backend-only, tests-only, metadata-only, or
134 already-sufficient contributor evidence.
135
136Write a temporary Playwright scenario under `.artifacts/proof-scenarios/`; do
137not infer manual clicks. Keep screenshots and videos in `.artifacts/` until
138publishing. Never commit proof artifacts.
139
140For the local fallback, start ClawHub with the relevant local Convex state and
141run the scenario through the local Playwright runner:
142
143```sh
144bun run proof:ui -- --runner local --mode feature \
145 --scenario .artifacts/proof-scenarios/<name>.pw.ts \
146 --candidate-url <local-clawhub-url>
147```
148
149For before/after proof, run the same scenario against an `origin/main` checkout
150and the candidate checkout, then pass both URLs with `--baseline-url` and
151`--candidate-url`. The runner accepts only localhost or loopback URLs and writes
152publishable `baseline/` and `candidate/` artifacts. Use the Codex app browser to
153inspect the running local instances and captured evidence.
154
155## Final Review Comment With Proof
156
157If this review generated `proof:ui` artifacts, publish them before the final PR
158review comment. Do not leave only local `.artifacts/...` paths in a PR comment;
159they are useful to the maintainer locally but invisible to GitHub readers.
160
161Use:
162
163```sh
164bun run proof:publish -- --proof-dir .artifacts/clawhub-ui-proof/<timestamp> --target-pr <number>
165```
166
167`proof:publish` copies the selected files to the `qa-artifacts` branch and
168upserts a marker-backed PR comment with a **ClawHub UI Proof** section.
169
170That comment includes:
171
172- the proof mode (`before-after` or `feature`)
173- the `report.md` result summary
174- the most relevant per-step screenshots
175- inline video previews when GIF previews are present
176- links to full-run MP4s
177- links to raw proof files on the artifact branch
178
179Use `--dry-run` before publishing if you need to inspect the generated comment.
180If publishing fails because credentials are missing, report the local proof
181directory and the failed command instead of posting a comment that claims
182evidence is attached.
183
184## ClawSweeper
185
186ClawSweeper is the bot control plane for automated PR/issue review once ClawHub
187dispatch is configured. Until then, use this skill for manual maintainer review.
188If ClawSweeper has posted a review, read it as evidence but verify live PR state
189before acting.
190
191## Commenting And Labels
192
193- Use literal multiline comment bodies or `--body-file`; never pass escaped
194 `\n` strings.
195- For issue comments and PR comments containing backticks or shell characters,
196 prefer a single-quoted heredoc or `--body-file` over inline `-b` bodies.
197- Do not wrap issue or PR refs like `#123` in backticks when you want GitHub to
198 auto-link them.
199- Keep maintainer comments short: finding, evidence, requested action, and
200 verification path.
201- When no proof artifacts were generated, `gh pr comment --body-file` is fine.
202 When proof artifacts were generated, use `proof:publish` so screenshots/videos
203 are published before posting.
204- Do not close more than five issues/PRs in one action without explicit
205 confirmation and the exact target list.