Skip to content
Development
Skill

/reddit-moderate

Reddit moderation via PRAW: fetch modqueue, classify reports, take actions.

From plugin
vexjoy-agent
421122 skills198 agents11 commands76 hooks
Install
$ npx -y skills add notque/vexjoy-agent --skill reddit-moderate --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/reddit-moderate

Context preview

The summary Claude sees to decide when to auto-load this skill.

Reddit moderation via PRAW: fetch modqueue, classify reports, take actions.

SKILL.md

reddit-moderate.SKILL.md
name: reddit-moderate
description: "Reddit moderation via PRAW: fetch modqueue, classify reports, take actions."
user-invocable: false
argument-hint: "[--auto] [--dry-run]"
agent: python-general-engineer
allowed-tools:
  - Bash
  - Read
routing:
  triggers:
    - "moderate Reddit"
    - "modqueue"
    - "Reddit reports"
    - "Reddit moderation"
    - "check reports"
  category: process
  pairs_with:
    - content-calendar

Reddit Moderate

On-demand Reddit community moderation powered by PRAW. Fetches your modqueue, classifies content against subreddit rules and author history using LLM-powered report classification, and executes mod actions you confirm.

Modes

| Mode | Invocation | Behavior | |------|-----------|----------| | **Interactive** | `/reddit-moderate` | Fetch queue, classify, present with analysis, you confirm actions | | **Auto** | `/loop 10m /reddit-moderate --auto` | Fetch queue, classify, auto-action high-confidence items, flag rest | | **Dry-run** | `/reddit-moderate --dry-run` | Fetch queue, classify, show recommendations without acting |

Reference Loading Table

| Signal | Load These Files | Why | |---|---|---| | Classifying items, category definitions, confidence thresholds | `classification-prompt.md` | Routes to the matching deep reference | | Prompt template, untrusted content handling, prompt injection defense | `classification-prompt.md` | Routes to the matching deep reference | | Action mapping by confidence level, config.json format | `classification-prompt.md` | Routes to the matching deep reference | | Per-item classification steps, repeat offender check, mass-report detection | `classification-prompt.md` | Routes to the matching deep reference | | Script subcommands, flags, usage examples | `script-commands.md` | Routes to the matching deep reference | | Exit codes, error troubleshooting | `script-commands.md` | Routes to the matching deep reference | | Scan commands, setup commands, queue/report commands | `script-commands.md` | Routes to the matching deep reference | | Subreddit data directory structure, file purposes | `context-loading.md` | Routes to the matching deep reference | | Setup flow for new subreddits, bootstrapping | `context-loading.md` | Routes to the matching deep reference | | Credentials, prerequisites, dry-run default | `context-loading.md` | Routes to the matching deep reference | | Context loading sequence, missing file handling | `context-loading.md` | Routes to the matching deep reference |

Instructions

Interactive Mode (default)

**Phase 1: FETCH** -- Get the modqueue with classification prompts.

python3 skills/content/reddit-moderate/scripts/reddit-mod.py queue --json --limit 25 | python3 skills/content/reddit-moderate/scripts/reddit-mod.py classify

This pipes modqueue items through the classify subcommand, which loads subreddit context from `reddit-data/{subreddit}/` and assembles a classification prompt for each item. The output is a JSON array where each result contains item metadata, heuristic flags (`mass_report_flag`, `repeat_offender_count`), and a `prompt` field with the fully rendered classification prompt.

The classify subcommand is a prompt assembler only; it does not call any LLM. Fields `classification`, `confidence`, and `reasoning` are null/empty placeholders for the LLM to fill in Phase 2.

Read the output. For each item, read the `prompt` field and classify it.

**Phase 2: CLASSIFY** -- For each item, read the rendered classification prompt and assign a classification. The prompt contains all subreddit context, rules, author history, and report signals. Classify as one of: `FALSE_REPORT`, `VALID_REPORT`, `MASS_REPORT_ABUSE`, `SPAM`, `BAN_RECOMMENDED`, `NEEDS_HUMAN_REVIEW`.

Assign a confidence score (0-100) and one-sentence reasoning for each item.

> Load `references/classification-prompt.md` for category definitions, the full > prompt template, per-item classification steps, and confidence thresholds.

**Phase 3: PRESENT** -- For each modqueue item, present a summary grouped by classification. Include the classification label and confidence:

Item 1: [t3_abc123] "Post title here"
  Author: u/username (score: 5, reports: 2)
  Report reasons: "spam", "off-topic"
  Body: [first 200 chars of content]
  Classification: VALID_REPORT (confidence: 92%)
  Reasoning: Author history shows 5 promotional posts in 7 days with no
             community engagement. Violates subreddit rules against self-promotion.
  Recommendation: REMOVE (reason: Rule 3)

Item 2: [t1_def456] "Comment text here"
  Author: u/other_user (score: 12, reports: 1)
  Report reason: "rude"
  Classification: FALSE_REPORT (confidence: 88%)
  Reasoning: Sarcastic but within community norms. Report appears frivolous.
  Recommendation: APPROVE

**Phase 4: CONFIRM** -- Ask the user to confirm or override recommendations. Wait for user input. Wait for explicit user confirmation before proceeding.

**Phase 5: ACT** -- Execute confirmed actions:

python3 skills/content/reddit-moderate/scripts/reddit-mod.py approve --id t1_def456
python3 skills/content/reddit-moderate/scripts/reddit-mod.py remove --id t3_abc123 --reason "Rule 3: Self-promotion"

Report results after each action.

> Load `references/script-commands.md` for all subcommand flags and examples.

Auto Mode (for /loop)

When invoked with `--auto` argument or when the user says "auto mode":

1. Fetch queue and build classification prompts:

   python3 skills/content/reddit-moderate/scripts/reddit-mod.py queue --auto --since-minutes 15 --json | python3 skills/content/reddit-moderate/scripts/reddit-mod.py classify

2. For each item, read the rendered `prompt` field and classify it using the categories and confidence scoring from `references/classification-prompt.md`.

3. For items meeting the confidence threshold:

  • `FALSE_REPORT` / `MASS_REPORT_ABUSE` => approve
  • `SPAM` => remove as spam
  • `VALID_REPORT` => rem
Read more
Ships withvexjoy-agent

Essays and writing behind this toolkit live at vexjoy.com. VexJoy Agent connects plain-English requests to specialist agents, skills, and workflows. /do selects the knowledge and tools needed for your task.

Get the whole plugin

Other skills on vexjoy-agent.