Commands
| Command | What it does |
/blog discourse <topic> | Produces a discourse brief at project-root DISCOURSE.md |
/blog discourse <topic> --days 90 | Widens the freshness window from 30 to 90 days |
/blog discourse <topic> --feed-into brief | Runs the brief, then invokes /blog brief with DISCOURSE.md loaded |
/blog discourse <topic> --feed-into write | Runs the brief, then invokes /blog write |
/blog discourse <topic> --feed-into strategy | Runs the brief, then invokes /blog strategy |
/blog discourse <topic> --input results.json | Skips search; builds the brief from a pre-gathered results file |
Topic Pre-Flight
Before any search, discourse runs keyword-trap checks so it does not waste WebSearch calls on a query that will only return noise. Topics that match a trap class (demographic shopping, a numeric trap, an overly literal phrase, or a generic single noun) are either reframed automatically or paused for a one-line clarifying question.
Topic Decomposition
For named-entity topics, the query is decomposed into discrete searches: the primary entity (official statements and vendor pages), the counter-perspective (critics, competitors, contrarians), and practitioner discourse (subreddits, forums, dev.to, Medium). The brief is assembled from all three so it is balanced, not just the loudest take.
Attribution
blog-discourse adapts the methodology of last30days-skill by Matt Van Horn (MIT licensed). The upstream uses platform APIs; this sub-skill re-implements the approach with WebSearch and site operators so it requires no API keys, while preserving attribution to the original work.