From subscope
Classifies a single Reddit post by surface ID, URL, or pasted text using the same prompt as bulk classification. Helps decide whether to reply to a borderline lead.
How this skill is triggered — by the user, by Claude, or both
Slash command
/subscope:judgeThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Interactive single-surface classifier. Designed for the workflow where you scan today's `/subscope-run` output, hit one or two surfaces that feel borderline, and want a structured judgment before deciding whether to reply.
Interactive single-surface classifier. Designed for the workflow where you scan today's /subscope-run output, hit one or two surfaces that feel borderline, and want a structured judgment before deciding whether to reply.
Why this exists separately from bulk classification: bulk LLM classification of every regex-passing post requires an Anthropic API key (~$0.50/day at 5K posts/day, cheap but not free). The judge skill uses your Claude Code subscription directly — no API key, no subprocess, no extra cost. It's the right tool for "I want a verdict on these 2 posts" not "grade every post in today's list."
The user has just seen /subscope-run output and asks something like:
/subscope-judge 3 — surface number from today's listThree paths the user might take:
A. Surface number from today's list. The most recent inline_markdown from /subscope-run is in your conversation context. Find the surface in the numbered list by index. Extract: post URL, title, body, subreddit.
B. Reddit URL pasted. Read the post via the engine's keyless RSS fetcher. Pass the URL through an environment variable (never interpolate it into the Python source, so a quote or special char in the URL cannot break the command):
cd "$CLAUDE_PLUGIN_ROOT" && PYTHONPATH=engine REDDIT_URL="$REDDIT_URL" python3 -c "
import os, sys, json
from subscope.lib import reddit
post = reddit.fetch_post(os.environ['REDDIT_URL'])
if not post:
print('Could not reach that post. Check the URL, or paste the title and body directly and I will judge from that.', file=sys.stderr)
sys.exit(1)
print(json.dumps({'subreddit': post['subreddit'], 'title': post['title'], 'body': (post['body'] or '')[:800]}))
"
fetch_post handles id extraction, validation, and the dual-host RSS failover internally. If it returns nothing (post removed, deleted, or Reddit unreachable), fall back to Path C: ask the user to paste the title and body.
C. Free-text paste. User pastes a title + body directly. No fetch needed — just structure it.
You must use the SAME prompt the bulk classifier uses, so verdicts are consistent across modes. Read it:
cat "$CLAUDE_PLUGIN_ROOT/engine/subscope/prompts/classify.md"
This is the system prompt. Treat it as your operating instructions for this turn.
Reason through the post per the prompt rules. The prompt expects strict JSON output. Produce a verdict matching this schema:
{
"intent": "pain_post" | "question" | "vendor_content" | "neutral",
"buyer_stage": "unaware" | "considering" | "evaluating" | "ready" | "post_purchase",
"sentiment": "positive" | "neutral" | "negative",
"competitor_mentioned": "<brand>" | null,
"fit_score": 0..10,
"suggested_angle": "<short reply angle, max 120 chars, lowercase, anti-marketer>"
}
Apply the prompt's conservative rule: if uncertain, lower fit_score. Surface 5 is easier to skip than a wrong-6 to defend.
Format the verdict for human reading, NOT raw JSON. Pattern:
**Surface N — r/<sub>**
> <one-line post title>
| | |
|---|---|
| Intent | <intent> |
| Buyer stage | <buyer_stage> |
| Sentiment | <sentiment> |
| Competitor mentioned | <brand or "none"> |
| Fit score | **N/10** |
**Reply angle:** <suggested_angle>
<one or two sentences of reasoning — what specifically signals the fit_score>
If fit_score >= 7, end with: Go.
If fit_score 4-6, end with: Borderline — your call.
If fit_score <= 3, end with: Skip.
ANTHROPIC_API_KEY and re-run /subscope-run if they want every post graded.npx claudepluginhub dancolta/subscopeProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.