Install any skill in seconds. Free to start, no credit card required.
Get Started Free →agricidaniel/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.
Passed 15 of 19 test cases with the skill, and 6 of 19 without it.
and 7 more in the full report
10 fixed7 passed either way5 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
A newer attempt on gemini-3.8-flash on 10/19/2026 did not produce a publishable comparison (not comparable). The snapshot above is the previously measured run.
One of 10 test cases the skill fixed. Same model, same prompt, with and without the skill.
You have saved intermediate search results for the topic 'vector databases' in a temp file path stored in variable `$RESULTS_JSON`. What is the bash command line to invoke the Python research script for a standard 30-day window target output at `DISCOURSE.md`?
| Checked | Without skill | With skill |
|---|---|---|
| Executes python3 scripts/discourse_research.py --input "$RESULTS_JSON" --topic "vector databases" --days 30 --output DISCOURSE.md. | Missed | Passed |
The instructions your model reads when the skill loads.
Bundled paths below use host Markdown substitution of ${CLAUDE_SKILL_DIR};
it is not an exported shell variable. Resolve them before execution, quote
paths, and refuse nonabsolute overrides. Pass blog_reference_root resolved
from ${CLAUDE_SKILL_DIR}/../blog/references, blog_template_root from
${CLAUDE_SKILL_DIR}/../blog/templates, and needed sibling roots to agents.
Read the main reference orchestration-details.md before loading project
context; pass only its helper-fenced output to downstream agents.
Produces DISCOURSE.md: a structured brief of what practitioners said about on the public web in the last 30 days. It is the recency + engagement lens that blog-researcher (authority-first) lacks, asking what practitioners and customers are actually saying about this topic right now.
Adapted from the methodology of last30days-skill (Matt Van Horn, MIT, https://github.com/mvanhorn/last30days-skill). The upstream uses platform APIs; this sub-skill uses WebSearch with platform-targeted site operators. No API keys required.
| Command | Purpose |
|---|---|
/blog discourse <topic> | Produce a discourse brief at project-root DISCOURSE.md |
/blog discourse <topic> --days 90 | Widen the freshness window from 30 to 90 days |
/blog discourse <topic> --input results.json | Skip search; build the brief from a pre-gathered results file. The flag name matches scripts/discourse_research.py --input directly. |
/blog discourse <topic> --output path.md | Write markdown to a chosen output path and print structured JSON without markdown to stdout. |
/blog discourse <topic> --format json | Print the full JSON brief to stdout when no --output path is used. |
/blog discourse <topic> --decomposition questions.txt | Pass newline-delimited decomposition questions into the helper. |
Before any search, run the four keyword-trap checks from ${CLAUDE_SKILL_DIR}/../blog/references/research-quality.md (Class 1 demographic shopping, Class 2 numeric trap, Class 3 overly-literal phrase, Class 4 generic single-noun). If the topic matches a class:
Pre-Flight: matched Class N. Action: <reframe or clarifying question>.Running discourse research on a trap topic wastes WebSearch calls and produces noise.
For named-entity topics, decompose into discrete searchable queries. Use the checklist from research-quality.md:
test cases passed, vs 6 / 19 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.