Skip to content
Back to skills

Judge

ASecurity

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

  • 25 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 5, 2026
ai-agentspythongobashapi

Works with

  • claude code
  • api

Security analysis

A100/100

Scanned June 5, 2026

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

Installs into .claude/skills of the current project.

Are you the author of Judge?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Judge
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dancolta-judge/badge)](https://www.skillsdirectory.com/skills/dancolta-judge)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
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):

```bash
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:

```bash
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:

```json
{
  "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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.