Skip to content

Commit 93664bf

Browse files
ArchieIndianclaude
andauthored
Add community-skill-radar: scan Reddit for skill ideas every 3 days (#26)
Searches 5 subreddits (openclaw, LocalLLaMA, ClaudeAI, MachineLearning, AIAgents) via Reddit's public JSON API. Scores candidates by upvotes, comments, recurrence, and keyword density. Writes prioritized PROPOSALS.md for review. Cron: every 3 days at 9am. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 1d2ed21 commit 93664bf

4 files changed

Lines changed: 870 additions & 0 deletions

File tree

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
---
2+
name: community-skill-radar
3+
version: "1.0"
4+
category: openclaw-native
5+
description: Searches Reddit communities for OpenClaw pain points and feature requests, scores them by signal strength, and writes a prioritized PROPOSALS.md for you to review and act on.
6+
stateful: true
7+
cron: "0 9 */3 * *"
8+
---
9+
10+
# Community Skill Radar
11+
12+
## What it does
13+
14+
Your best skill ideas don't come from guessing — they come from what the community is actually struggling with. Community Skill Radar scans Reddit every 3 days for posts and comments mentioning OpenClaw pain points, feature requests, and skill gaps. It scores them by signal strength (upvotes, comment depth, recurrence) and writes a prioritized `PROPOSALS.md` in the repo root.
15+
16+
You review the proposals. You decide what to build. The radar just makes sure you never miss a signal.
17+
18+
## When to invoke
19+
20+
- Automatically, every 3 days (cron)
21+
- Manually when you want a fresh pulse-check on community needs
22+
- Before planning a new batch of skills
23+
24+
## Subreddits searched
25+
26+
| Subreddit | Why |
27+
|---|---|
28+
| `openclaw` | Primary OpenClaw community |
29+
| `LocalLLaMA` | Local AI users — many run OpenClaw |
30+
| `ClaudeAI` | Claude ecosystem — overlaps with OpenClaw users |
31+
| `MachineLearning` | Broader AI practitioners |
32+
| `AIAgents` | Agent-specific discussions |
33+
34+
Custom subreddits can be configured via `--subreddits`.
35+
36+
## Signal scoring
37+
38+
Each candidate is scored on 5 dimensions:
39+
40+
| Signal | Weight | Source |
41+
|---|---|---|
42+
| Upvotes | 2x | Post/comment score |
43+
| Comment depth | 1.5x | Number of replies — more discussion = stronger signal |
44+
| Recurrence | 3x | Same pain point appearing across multiple posts |
45+
| Keyword density | 1x | Concentration of problem/request keywords |
46+
| Recency | 1.5x | Newer posts score higher (7-day decay) |
47+
48+
## How to use
49+
50+
```bash
51+
python3 radar.py --scan # Full scan, write PROPOSALS.md
52+
python3 radar.py --scan --lookback 7 # Scan last 7 days (default: 3)
53+
python3 radar.py --scan --subreddits openclaw,LocalLLaMA
54+
python3 radar.py --scan --min-score 5.0 # Only proposals scoring ≥5.0
55+
python3 radar.py --status # Last scan summary from state
56+
python3 radar.py --history # Show past scan results
57+
python3 radar.py --format json # Machine-readable output
58+
```
59+
60+
## Cron wakeup behaviour
61+
62+
Every 3 days at 9am:
63+
64+
1. Fetch recent posts from each configured subreddit via Reddit's public JSON API (no auth required)
65+
2. Filter for posts/comments containing OpenClaw-related keywords
66+
3. Extract pain points and feature request signals
67+
4. Score each candidate
68+
5. Deduplicate against previously seen proposals (stored in state)
69+
6. Write `PROPOSALS.md` to the repo root
70+
7. Print summary to stdout
71+
72+
## PROPOSALS.md format
73+
74+
```markdown
75+
# Skill Proposals — Community Radar
76+
77+
*Last scanned: 2026-03-16 09:00 | 5 subreddits | 14 candidates*
78+
79+
## High Signal (score ≥ 8.0)
80+
81+
### 1. Skill auto-update mechanism (score: 12.4)
82+
- **Source:** r/openclaw — "Anyone else manually pulling skill updates?"
83+
- **Signal:** 47 upvotes, 23 comments, seen 3 times across 2 subreddits
84+
- **Pain point:** No way to update installed skills without manual git pull
85+
- **Potential skill:** `skill-auto-updater` — checks upstream repos for new versions
86+
87+
### 2. Context window usage dashboard (score: 9.1)
88+
- **Source:** r/LocalLLaMA — "My openclaw agent keeps losing context mid-task"
89+
- **Signal:** 31 upvotes, 18 comments
90+
- **Pain point:** No visibility into how much context each skill consumes
91+
- **Potential skill:** `context-usage-dashboard` — real-time token budget display
92+
93+
## Medium Signal (score 4.0–8.0)
94+
95+
...
96+
97+
## Previously Seen (already in state — not re-proposed)
98+
99+
...
100+
```
101+
102+
## Procedure
103+
104+
**Step 1 — Let the cron run (or trigger manually)**
105+
106+
```bash
107+
python3 radar.py --scan
108+
```
109+
110+
**Step 2 — Review PROPOSALS.md**
111+
112+
Open `PROPOSALS.md` in the repo root. High-signal proposals are the ones the community is loudest about.
113+
114+
**Step 3 — Act on proposals you want to build**
115+
116+
For each proposal you decide to build, either:
117+
- Ask your agent to create it: `"Build a skill for <pain point> using create-skill"`
118+
- Open a GitHub issue for the community
119+
120+
**Step 4 — Mark proposals as actioned**
121+
122+
```bash
123+
python3 radar.py --mark-actioned "skill-auto-updater"
124+
```
125+
126+
This moves the proposal to the "actioned" list in state so it won't be re-proposed on future scans.
127+
128+
## State
129+
130+
Scan results, seen proposals, and actioned items stored in `~/.openclaw/skill-state/community-skill-radar/state.yaml`.
131+
132+
Fields: `last_scan_at`, `subreddits`, `proposals` list, `actioned` list, `scan_history`.
133+
134+
## Notes
135+
136+
- Uses Reddit's public JSON API at `reddit.com/<subreddit>/search.json`. No authentication required. Rate-limited to 1 request per 2 seconds to respect Reddit's guidelines.
137+
- Does not post, comment, or interact with Reddit in any way — read-only scanning.
138+
- `PROPOSALS.md` is gitignored by default (local working document). Add to `.gitignore` if not already present.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
version: "1.0"
2+
description: Community radar scan results, proposal ledger, and actioned tracking.
3+
fields:
4+
last_scan_at:
5+
type: datetime
6+
subreddits:
7+
type: list
8+
description: Subreddits included in the last scan
9+
items:
10+
type: string
11+
proposals:
12+
type: list
13+
description: All proposals from the most recent scan (newest first)
14+
items:
15+
id: { type: string, description: "slug derived from title" }
16+
title: { type: string }
17+
pain_point: { type: string }
18+
potential_skill: { type: string }
19+
score: { type: float }
20+
sources:
21+
type: list
22+
items:
23+
subreddit: { type: string }
24+
post_title: { type: string }
25+
url: { type: string }
26+
upvotes: { type: integer }
27+
comments: { type: integer }
28+
fetched_at: { type: datetime }
29+
first_seen_at: { type: datetime }
30+
times_seen: { type: integer }
31+
actioned:
32+
type: list
33+
description: Proposal IDs that have been acted on (built, filed as issues)
34+
items:
35+
id: { type: string }
36+
actioned_at: { type: datetime }
37+
action: { type: string, description: "built, issue-filed, rejected" }
38+
scan_history:
39+
type: list
40+
description: Rolling log of past scans (last 20)
41+
items:
42+
scanned_at: { type: datetime }
43+
subreddits: { type: integer }
44+
posts_fetched: { type: integer }
45+
candidates_found: { type: integer }
46+
proposals_written: { type: integer }
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# Example runtime state for community-skill-radar
2+
last_scan_at: "2026-03-16T09:00:22.441000"
3+
subreddits:
4+
- openclaw
5+
- LocalLLaMA
6+
- ClaudeAI
7+
- MachineLearning
8+
- AIAgents
9+
proposals:
10+
- id: skill-auto-update-mechanism
11+
title: "Anyone else manually pulling skill updates every time?"
12+
pain_point: "No way to update installed skills without manual git pull"
13+
potential_skill: skill-auto-updater
14+
category: integration
15+
score: 12.4
16+
sources:
17+
- subreddit: openclaw
18+
post_title: "Anyone else manually pulling skill updates every time?"
19+
url: "https://reddit.com/r/openclaw/comments/abc123/..."
20+
upvotes: 47
21+
comments: 23
22+
score: 8.2
23+
fetched_at: "2026-03-16T09:00:20.000000"
24+
- subreddit: LocalLLaMA
25+
post_title: "OpenClaw skills need an update mechanism"
26+
url: "https://reddit.com/r/LocalLLaMA/comments/def456/..."
27+
upvotes: 18
28+
comments: 9
29+
score: 4.2
30+
fetched_at: "2026-03-16T09:00:21.000000"
31+
first_seen_at: "2026-03-13T09:00:00.000000"
32+
times_seen: 3
33+
- id: context-window-usage-dashboard
34+
title: "My openclaw agent keeps losing context mid-task"
35+
pain_point: "No visibility into how much context each skill consumes"
36+
potential_skill: context-usage-dashboard
37+
category: context
38+
score: 9.1
39+
sources:
40+
- subreddit: LocalLLaMA
41+
post_title: "My openclaw agent keeps losing context mid-task"
42+
url: "https://reddit.com/r/LocalLLaMA/comments/ghi789/..."
43+
upvotes: 31
44+
comments: 18
45+
score: 9.1
46+
fetched_at: "2026-03-16T09:00:22.000000"
47+
first_seen_at: "2026-03-16T09:00:22.000000"
48+
times_seen: 1
49+
actioned:
50+
- id: skill-load-failure-detection
51+
actioned_at: "2026-03-15T10:00:00.000000"
52+
action: built
53+
scan_history:
54+
- scanned_at: "2026-03-16T09:00:22.000000"
55+
subreddits: 5
56+
posts_fetched: 142
57+
candidates_found: 8
58+
proposals_written: 8
59+
- scanned_at: "2026-03-13T09:00:00.000000"
60+
subreddits: 5
61+
posts_fetched: 118
62+
candidates_found: 5
63+
proposals_written: 5
64+
# ── Walkthrough ──────────────────────────────────────────────────────────────
65+
# Every 3 days cron runs: python3 radar.py --scan
66+
#
67+
# Community Skill Radar — scanning 5 subreddits (last 3 days)
68+
# ──────────────────────────────────────────────────────────────
69+
# Fetching r/openclaw... 28 posts
70+
# Fetching r/LocalLLaMA... 42 posts
71+
# Fetching r/ClaudeAI... 35 posts
72+
# Fetching r/MachineLearning... 22 posts
73+
# Fetching r/AIAgents... 15 posts
74+
#
75+
# Posts fetched : 142
76+
# Candidates found: 8
77+
# High signal : 2
78+
# Medium signal : 4
79+
# Low signal : 2
80+
#
81+
# Written to: ~/.openclaw/extensions/superpowers/PROPOSALS.md
82+
#
83+
# python3 radar.py --mark-actioned skill-auto-update-mechanism --action built
84+
# ✓ Marked 'skill-auto-update-mechanism' as built. Won't be re-proposed.

0 commit comments

Comments
 (0)