Skip to content

Commit 192a782

Browse files
committed
chore: add landable bug sweep skill
1 parent 6981051 commit 192a782

4 files changed

Lines changed: 155 additions & 0 deletions

File tree

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
---
2+
name: openclaw-landable-bug-sweep
3+
description: "Find or repair small high-confidence OpenClaw bugfix PRs until five are landable."
4+
---
5+
6+
# OpenClaw Landable Bug Sweep
7+
8+
Autonomous maintainer workflow for producing five landable OpenClaw bugfix PR URLs.
9+
Use for broad issue/PR sweeps where the bar is high and the output is PRs, not notes.
10+
11+
## Target
12+
13+
Return exactly five PR URLs, each with:
14+
15+
- bug summary
16+
- why the fix is low-risk
17+
- proof: local/CI/Testbox/live commands or run IDs
18+
- issue/duplicate cleanup done or still pending
19+
20+
The five URLs may be existing PRs that were reviewed/fixed, or new PRs created from issues/clusters.
21+
22+
## Companion Skills
23+
24+
Use `$gitcrawl` for discovery/clustering, `$openclaw-pr-maintainer` for live GitHub mutation rules, `$github-author-context` when contributor trust matters, `$openclaw-testing` for proof choice, `$autoreview` before publishing/landing, and `$crabbox` for broad/E2E/live proof.
25+
26+
## Candidate Bar
27+
28+
Accept only when all are true:
29+
30+
- bug or paper cut, not feature/product/support/docs-only
31+
- root cause is proven in current code
32+
- dependency behavior checked via upstream docs/source/types when relevant
33+
- production/runtime diff is small, ideally much smaller than 500 LOC and always below 500 LOC
34+
- tests may be larger, but focused
35+
- no new dependency
36+
- no new config option
37+
- no backward-incompatible behavior
38+
- no security/product/owner-boundary decision needed
39+
- no broad refactor smell
40+
- focused proof is feasible
41+
42+
Good examples:
43+
44+
- provider parameter mismatch proven against dependency/API contract
45+
- CLI command diverges from adjacent command behavior
46+
- narrow runtime state/serialization bug with failing test
47+
- issue already fixed on current `main`, with proof and closeable duplicates
48+
49+
Reject:
50+
51+
- feature requests, new knobs, migrations, release work, workflow policy, support
52+
- auth/security boundary changes unless explicitly assigned
53+
- bugs needing live credentials that are unavailable
54+
- fixes whose clean shape is a larger architecture move
55+
- speculative reports without reproducible/provable cause
56+
- UI/UX changes requiring product judgment
57+
58+
## Sweep Loop
59+
60+
1. Start clean:
61+
- `git status -sb`
62+
- `git pull --ff-only`
63+
- verify branch is expected, usually `main`
64+
2. Build candidate clusters:
65+
- `gitcrawl` open issues/PRs, neighbors, and search
66+
- live `gh issue/pr view`
67+
- include PRs linked from issues and duplicates
68+
3. For each cluster:
69+
- read issue/PR body, comments, labels, linked refs, current source, adjacent tests
70+
- suppress maintainer-owned queue noise unless it is the best fix path
71+
- identify opener/author and preserve credit
72+
- decide: `repair-existing-pr`, `create-new-pr`, `close-fixed-on-main`, `close-duplicate`, or `reject`
73+
4. Prove before patching:
74+
- failing test, focused repro, log/source proof, or dependency contract proof
75+
- if already fixed on `main`, prove with current source/test/commit and close kindly
76+
5. Patch:
77+
- prefer existing PR when good and writable
78+
- if unwritable or wrong shape, create own PR and preserve useful contributor credit
79+
- if no PR exists, create one
80+
- add regression test when it fits
81+
- changelog for user-facing fixes; thank credited human reporter/contributor
82+
6. Review and publish:
83+
- run focused proof
84+
- run `$autoreview` until no accepted/actionable findings remain
85+
- create/update PR with real body and proof fields
86+
- push branch
87+
- get CI green or document exact external blocker; do not count blocked PRs in the five
88+
7. Hygiene:
89+
- close duplicates and fixed-on-main issues with proof
90+
- never mutate more than five associated items in one cluster without explicit confirmation
91+
- comments must be kind, concrete, and include proof/PR/commit links
92+
8. Repeat until five landable PR URLs are ready.
93+
94+
## PR Body Proof
95+
96+
Use the repo PR template. Include these exact labels:
97+
98+
```text
99+
Behavior addressed:
100+
Real environment tested:
101+
Exact steps or command run after this patch:
102+
Evidence after fix:
103+
Observed result after fix:
104+
What was not tested:
105+
```
106+
107+
## Existing PR Rules
108+
109+
- Review code path beyond the diff before trusting it.
110+
- If PR is good: fix small issues, run proof, push if writable, get CI green.
111+
- If PR is not good but has a useful idea: recreate locally, co-author when warranted, close original with thanks and explanation.
112+
- If PR is duplicate or fixed on `main`: comment proof, close.
113+
- If maintainer cannot push to contributor branch: create own branch/PR, preserve useful commits or credit.
114+
115+
## Output Ledger
116+
117+
Maintain a running ledger:
118+
119+
```text
120+
accepted:
121+
- PR URL:
122+
source refs:
123+
bug:
124+
root cause:
125+
fix:
126+
risk:
127+
proof:
128+
CI:
129+
credit/thanks:
130+
cleanup:
131+
132+
rejected:
133+
- ref:
134+
reason:
135+
136+
closed:
137+
- ref:
138+
reason:
139+
proof/comment:
140+
```
141+
142+
Final answer:
143+
144+
- exactly five accepted PR URLs
145+
- 2-4 sentence explainer per PR
146+
- proof/CI state per PR
147+
- closed duplicates/fixed-on-main refs
148+
- current branch/status
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "OpenClaw Landable Bug Sweep"
3+
short_description: "Find five small landable bugfix PRs"
4+
default_prompt: "Use $openclaw-landable-bug-sweep to find or repair five small high-confidence OpenClaw bugfix PRs and get them landable."

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@ mantis/
132132
!.agents/skills/openclaw-debugging/**
133133
!.agents/skills/openclaw-ghsa-maintainer/
134134
!.agents/skills/openclaw-ghsa-maintainer/**
135+
!.agents/skills/openclaw-landable-bug-sweep/
136+
!.agents/skills/openclaw-landable-bug-sweep/**
135137
!.agents/skills/openclaw-parallels-smoke/
136138
!.agents/skills/openclaw-parallels-smoke/**
137139
!.agents/skills/openclaw-pr-maintainer/

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Docs: https://docs.openclaw.ai
66

77
### Changes
88

9+
- Maintainer skills: add `openclaw-landable-bug-sweep` for producing five small, reviewed, CI-green OpenClaw bugfix PRs from issue/PR sweeps.
910
- Discord: allow configuring a bounded `agentComponents.ttlMs` callback registry lifetime for long-running component workflows, with per-account overrides and a 24-hour cap. (#84189) Thanks @100menotu001.
1011
- xAI/Grok: reuse xAI OAuth auth profiles for Grok `web_search`, thread active-agent auth through web search, add Grok model aliases, and let media providers declare default operation timeouts. (#85182) Thanks @fuller-stack-dev.
1112
- Plugin SDK: add row-level session workflow helpers and deprecate `loadSessionStore` so plugins can read and patch sessions without depending on the legacy whole-store shape. (#84693) Thanks @efpiva.

0 commit comments

Comments
 (0)