|
| 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. |
0 commit comments