Install
openclaw skills install reddit-to-prScan Reddit for pain points in a product’s niche, identify a real user complaint worth fixing, and prepare an approved patch or PR workflow for a target repository. Default to analysis-only; only modify code, commit, push, or open a PR after explicit user approval. Use when asked to check Reddit for issues, find user complaints, do reddit-to-pr, or run a recurring product-feedback-to-code workflow.
openclaw skills install reddit-to-prScan Reddit for pain points, choose the most actionable issue, and prepare a fix proposal. Default to analysis-only. Only modify code, commit, push, or open a PR after explicit user approval.
Use {baseDir} as the skill directory. Check whether {baseDir}/config.json exists.
Ask setup questions one at a time, waiting for the answer before asking the next one.
Ask:
What subreddits should I monitor for user feedback? These should be communities where your users or potential users hang out.
Examples: webdev, reactjs, programming
Store as subreddits — array of strings without the r/ prefix.
Ask:
Describe your product in 1–2 sentences. What does it do and who is it for? This helps me identify which complaints are relevant.
Store as productDescription.
Ask:
What’s the path to your code repository? This is where I’ll create branches and PRs.
Examples: /Users/you/projects/my-app
Store as repoPath.
Ask:
What keywords should I look for in Reddit posts? These help filter for relevant complaints.
Examples: slow, crash, bug, broken, error, annoying, doesn’t work
Store as keywords — array of strings.
Ask:
Which mode should this use by default? Options: analyze, patch, pr.
analyzeonly researches and proposes a fix.patchmay edit locally after approval.prmay edit, commit, push, and open a PR after approval.
Store as mode.
Ask:
How often should I run this? Options: nightly, twice-daily, weekly, manual.
Store as schedule.
If schedule is not manual and mode is not analyze, tell the user scheduled runs should default to analyze until they explicitly approve a write-enabled workflow.
Ask:
Where should I post results when I find something? Options: proposal, slack, both.
Store as resultsDestination.
If the answer includes Slack, ask one follow-up:
What Slack destination should I use?
Use an OpenClaw channel id or canonical channel choice. Store it as slackTarget.
After all answers are collected, save {baseDir}/config.json with this shape:
{
"subreddits": ["webdev", "reactjs"],
"productDescription": "...",
"repoPath": "/path/to/repo",
"keywords": ["slow", "crash", "bug"],
"mode": "analyze",
"schedule": "nightly",
"resultsDestination": "proposal",
"slackTarget": null,
"setupComplete": true,
"setupDate": "2026-03-24"
}
Then tell the user: Setup complete!
If schedule is not manual, help the user set up scheduling.
Scheduled runs must default to analyze mode unless the user explicitly reconfigures the skill for a write-enabled workflow and confirms they want that behavior.
For OpenClaw, recommend a cron entry like:
openclaw cron add \
--name "reddit-to-pr" \
--cron "<CRON_EXPR>" \
--tz "<USER_TIMEZONE>" \
--session isolated \
--message "Run the reddit-to-pr skill."
Cron expressions:
nightly → 0 2 * * *twice-daily → 0 8,20 * * *weekly → 0 2 * * 1Load config from {baseDir}/config.json.
Execution mode must honor these safety defaults:
mode=analyze: do not modify repository filesmode=patch: local edits are allowed only after explicit user approval for the selected fixmode=pr: local edits, commits, pushes, and PR creation are allowed only after explicit user approval for the selected fixCredential expectations:
repoPathFor each subreddit in config:
site:reddit.com/r/{subreddit} {keywords} {productDescription keywords}site:reddit.com/r/{subreddit} "wish it could" OR "anyone know how to" OR "frustrated with" OR "why can't" OR "feature request"From all findings:
frequency — how often the problem appearsseverity — how frustrated users arefixability — whether a concrete code fix is realisticBefore implementing the fix, always evaluate the run.
Rate the run from 0–10 based on:
Only report instruction problems as instruction problems. External blockers are still valid reasons for a low rating, but they are not flaws in the skill itself.
Write a local run report to {baseDir}/state/last-run.json with this shape:
{
"skill": "reddit-to-pr",
"version": "0.1.2",
"rating": 7,
"success": true,
"whatWorked": "Found 3 relevant complaint threads in r/webdev.",
"whatFailed": "One subreddit produced low-signal results.",
"improvementIdea": "Narrow keyword matching before deep analysis.",
"adaptations": "Prioritized complaint-style phrasing over broad product terms.",
"errorSummary": null
}
If the environment does not permit file writes, include the same report content in your final output under a Local run report heading instead of sending it to any external service.
Do not send telemetry to external services from this skill.
Before making any repository changes, present:
Do not modify files, create branches, commit, push, or open a PR until the user explicitly approves the selected fix.
If approval is not given, stop after analysis and save the proposal + local run report.
Only run this phase after explicit user approval.
repoPath.repoPath.fix/reddit-<short-description>-<date> if the approved mode requires edits.fix: <description> (sourced from r/<subreddit> user feedback)
Only run this phase if mode=pr and the user explicitly approved PR creation for this fix.
Open a PR using this format.
Title
fix: <short description of fix>
Body
## User Pain Point
> "{direct quote from Reddit user}"
> — u/{username} in r/{subreddit} ({upvotes} upvotes, {comments} comments)
[Additional quotes if available]
## Root Cause
{What is actually causing the issue}
## Fix
{What this PR changes and why}
## Evidence
- Found in: r/{subreddit}
- Frequency: {how many posts/comments mention this}
- Severity: {High/Medium/Low}
## Test Plan
- [ ] {test steps}
---
*Generated by OpenClaw Network Skills — reddit-to-pr*
If resultsDestination is proposal or both, include a concise local proposal summary in the final output even when no code was changed.
If resultsDestination includes Slack:
slackTarget exists, use OpenClaw messaging to send a short summary and PR link.Include:
repoPath; do not modify files outside that repo.