Skip to content
Marketing
Skill

/judge

Interactive classifier for a single Reddit surface. Reads one post by surface ID (or pasted URL/title/body), runs the bulk-classifier prompt against it, and returns a verdict + reply angle. Uses your Claude Code subscription, NOT a separate API key — costs nothing extra beyond

From plugin
subscope
3215 skills

Claude Code

$ npx -y skills add dancolta/subscope --skill judge --agent claude-code

SKILL.md

judge.SKILL.md
name: subscope-judge
description: Interactive classifier for a single Reddit surface. Reads one post by surface ID (or pasted URL/title/body), runs the bulk-classifier prompt against it, and returns a verdict + reply angle. Uses your Claude Code subscription, NOT a separate API key — costs nothing extra beyond what you already pay. Triggers on "judge surface 3", "classify post #N", "/subscope-judge", "is post X a real lead", "should I reply to this", "judge this reddit post", or any request to evaluate a single surfaced post's quality before drafting a reply.
allowed-tools: Bash, Read

/subscope-judge

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."

When to invoke

The user has just seen `/subscope-run` output and asks something like:

  • `/subscope-judge 3` — surface number from today's list
  • "is surface #5 actually a real lead?"
  • "classify the HubSpot post"
  • "judge this: https://reddit.com/comments/abc123/"

Procedure

Step 1 — Identify the target surface

Three 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.

Step 2 — Load the bulk-classifier prompt

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.

Step 3 — Classify

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.

Step 4 — Present to the user

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.`

Anti-patterns

  • Don't classify multiple surfaces in one invocation. That's bulk LLM territory — tell the user to set `ANTHROPIC_API_KEY` and re-run `/subscope-run` if they want every post graded.
  • Don't draft a reply. The reply angle is a one-line hint; the human writes the actual comment.
  • Don't promote any product (yours or anyone else's) in the angle. Anti-marketer voice is non-negotiable — read the prompt.
  • Don't skip Step 2. The prompt is the source of truth. If it's missing or unreadable, fall back to a fast structural classification but tell the user the prompt couldn't be loaded.
Read more
@dancolta
Ships withsubscope

subscope reads Reddit for you and hands you the threads worth replying to: the people shopping for what you sell, and the questions you can answer to build authority. Run it whenever you want.

Stars on GitHub

Momentum

stars in total
32
Star history of dancolta/subscope on GitHub, a chart by star-history.com

Other skills on subscope.

build-vs-buy

build-vs-buy

Surface explicit build-vs-buy debate threads with numeric arguments (engineering hours, TCO, payback). OP is rationalizing the…

@dancolta@dancoltaInstall Skill
churn

churn

Surface high-intent Reddit posts where someone explicitly says they are canceling, switching from, or fed up with a named SaaS…

@dancolta@dancoltaInstall Skill
onboard

onboard

Mandatory first-run setup for subscope. One conversation, three plain questions, one confirmation, optional integrations, first…

@dancolta@dancoltaInstall Skill
op-vet

op-vet

Score a Reddit user's profile before replying. Returns karma, account age, sub-activity breakdown, and a GO / HOLD / SKIP…

@dancolta@dancoltaInstall Skill
pricing-rage

pricing-rage

Surface Reddit price-hike rage threads (Salesforce/HubSpot/Gong cyclical Q1/Q3 spikes). Time-sensitive — cooling queue…

@dancolta@dancoltaInstall Skill
profile

profile

Per-section deep dive for refining an existing subscope targeting profile. Not a full re-interview, just the section that's…

@dancolta@dancoltaInstall Skill

More skills from other plugins.

seo

seo

Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…

@agricidaniel@agricidanielInstall Skill
brag

brag

Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…

brag3w21k
@latent-spaces@latent-spacesInstall Skill
geo-audit

geo-audit

Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…

Questions about judge.

Which coding agents can use judge?
judge installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.