business-ops
Business operations: strategy, technology, growth, competitive intelligence, support, finance, HR, legal, operations, sales, productivity, product management.
Reddit moderation via PRAW: fetch modqueue, classify reports, take actions.
$ npx -y skills add notque/vexjoy-agent --skill reddit-moderate --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/reddit-moderateContext preview
The summary Claude sees to decide when to auto-load this skill.
Reddit moderation via PRAW: fetch modqueue, classify reports, take actions.
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-calendarOn-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.
| 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 |
| 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 |
**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.
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:
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.
Repo: notque/vexjoy-agent
Business operations: strategy, technology, growth, competitive intelligence, support, finance, HR, legal, operations, sales, productivity, product management.
Design workflows — UX copy, design systems, design critique, accessibility review, design handoff, user research synthesis. Use when writing UI copy, reviewing…
Marketing: SEO audits, campaign planning, content strategy, email sequences, competitive analysis, brand review, performance reporting.