tunelisted
Install: claude install-skill dancolta/reddit-engage
# /subscope:tune
3-round feedback loop. You mark 10 surfaces per round, the engine adjusts weights between rounds, and your config gets sharper without re-running the full `/profile` interview.
## When to use
The daily list (`/subscope:run`) feels mediocre. A few surfaces are great, a few are off, and you're not sure why. Instead of editing YAML by hand: tune.
## Procedure
### Step 1 — Pull the last 10 surfaces
```bash
cd "$CLAUDE_PLUGIN_ROOT" && PYTHONPATH=engine python3 -c "
import json
from subscope.lib import store
with store.connect() as conn:
rows = store.hot_surfaces(conn)[:10]
print(json.dumps([{
'id': r['post_id'],
'subreddit': r['subreddit'],
'title': r['title'],
'url': r['url'],
} for r in rows], indent=2))
"
```
If fewer than 10 surfaces returned, tell the user: *"Only N surfaces in the recent pool. Run /subscope:run first, then come back."*
### Step 2 — Present in chat
Render the 10 surfaces in a numbered list with `[g/b/m]` markers, per ui-ux spec:
```
1. r/RevOps — "Anyone else drowning in HubSpot ops debt?" [g/b/m]
2. r/SaaS — "Looking for a fractional RevOps person" [g/b/m]
3. r/SalesOps — "Canceling Apollo, what do you use for sequence?" [g/b/m]
...
10. r/B2BSaaS — "Salesforce minimums went up to 50 seats" [g/b/m]
Mark all 10, then send. Blank = meh.
```
### Step 3 — Parse user's reply
User responds with terse marks like: `1g 2g 3b 4m 5g 6b 7g 8m 9g 10b`
Parse via `tune_engine.parse_marks(us