Back to Skills

blog-discourse

Research what people are actually saying about a topic in the last 30 days across Reddit, X / Twitter, YouTube, Hacker News, dev.to, Medium, and other public discourse platforms. API-free; uses WebSearch with platform-targeted site operators plus recency filters. Produces DISCOURSE.md (a structured brief) and JSON output the writer can consume. Complements blog-researcher (which focuses on authority sources) with a recency-and-engagement lens. Use when user says "blog discourse", "discourse rese

1,624stars282forksUpdated 8/13/2026

Security Assessment

Safe(95/100)
Security Score95/100

About blog-discourse

Blog Discourse is an API-free research skill that captures what practitioners and customers are actually saying about a topic on the public web over the last 30 (or 90) days. It solves the recency-and-engagement gap left by authority-first research: instead of citing established sources, it surveys live discussion across Reddit, Hacker News, X/Twitter, YouTube, dev.to, Medium, GitHub, Stack Overflow, and Substack. It produces DISCOURSE.md, a structured brief, plus JSON output a downstream writer can consume. The methodology is adapted from the last30days-skill by Matt Van Horn, but replaces platform APIs with WebSearch using platform-targeted site operators, so no API keys are required.

The workflow is staged. A mandatory topic pre-flight runs four keyword-trap checks and either reframes or asks a clarifying question before spending searches. Named-entity topics are decomposed into discrete queries covering primary entity, counter-perspective, practitioner discourse, tangential entities, and a time anchor. Phase 2 runs four to eight platform-targeted WebSearches with recency filters, and Phase 3 collects each result into a JSON record with platform, URL, title, snippet, date, and an engagement proxy. Notably, it writes results to a securely created temp file rather than a predictable path, and enforces an untrusted-data contract that scans snippets for prompt-injection patterns before they enter the pipeline.

It is aimed at content writers, marketers, and researchers doing voice-of-customer, social listening, or trend research who want a defensible, recency-weighted brief. It complements the companion blog-researcher skill by adding the practitioner-discourse lens.

FAQ

Do I need API keys or paid access to social platforms?

No. The skill is API-free and relies on WebSearch with platform-targeted site operators plus date-range filters, unlike the upstream last30days-skill it was adapted from.

What does it produce?

A structured DISCOURSE.md brief and JSON output a writer can consume. You can widen the window from 30 to 90 days, supply a pre-gathered results file, or print JSON to stdout.

How does it handle prompt injection from scraped social content?

Every captured snippet is treated as untrusted data. Before writing results, the agent scans for instruction-shaped patterns (for example directives that try to override instructions or redirect data) and flags suspicious snippets so injected directives do not reach the pipeline as valid data.

How many searches does it run per topic?

Four to eight searches total per topic, with the agent selecting the relevant subset of platforms for the topic class and always applying a recency filter when the platform supports it.

What is the topic pre-flight step for?

It runs four keyword-trap checks to catch low-quality query shapes and either reframes the query or stops to ask a clarifying question, avoiding wasted searches on trap topics.

All Files

2 files
SKILL.md13.1 KB
View
scripts/discourse_research.py11.6 KB
View

Install blog-discourse

Download and extract the skill files to your .claude/skills/ directory.

Quick Setup:

  1. Copy the skill folder to .claude/skills/
  2. Claude will automatically detect and use the skill