---
name: recency-brief-research
description: Research a fast-moving topic across Reddit, X, YouTube, Hacker News, prediction markets, and the web, then synthesize a recency-weighted brief with confidence labels. Triggers on "what's the latest on X", "brief me on X", "what are people saying about X", cross-platform sentiment checks, and any request for a current-state research brief.
---

# Recency Brief Research

## Purpose

Turn "what is happening with X right now" into a brief a reader can defend: every claim dated, sourced, and labeled with how much to trust it. The differentiator is the method, not the lane count: source triage, explicit recency weighting, and confidence labels applied from real research practice. Without those three, a multi-platform sweep is just a pile of links.

## Workflow

### 1. Frame the question

Write one concrete sentence for what the brief must answer. Note the topic's clock speed, because it sets the recency scale:

- **Fast** (breaking news, launches, incidents): hours matter.
- **Medium** (product debates, market moves, policy fights): days matter.
- **Slow** (research trends, standards, background): weeks matter.

Pick a mode. Flash reads fewer pages and skips the refutation pass; Standard is the default; Deep adds a refutation query per key claim and a gaps section.

### 2. Sweep the lanes

Cover all six lanes. Run the per-lane query for the topic, and record per-lane results before synthesizing. Verified access recipes live in `references/platform-recipes.md`.

| Lane | Route | What it is good for |
|---|---|---|
| Web | `browser.search` per facet, then open the pages | Primary docs, news, official statements |
| Reddit | search engine `site:reddit.com`, sort=new; open threads in the browser | Practitioner experience, edge cases, sentiment |
| X | search engine `site:x.com`; x.com/search in the browser | Fastest signal, announcements, rumor mill |
| YouTube | search engine `site:youtube.com`; check upload date + channel | Demos, explainers, interviews |
| HN | Algolia API: `https://hn.algolia.com/api/v1/search?query=<q>&tags=story` | Technical read, skepticism, primary comments |
| Markets | Polymarket `https://gamma-api.polymarket.com/public-search?q=<q>`; Kalshi `/trade-api/v2/events` | What money believes; treat as bettor sentiment, not truth |

Never synthesize from snippets alone. Snippets pick which pages to open; opened pages supply the facts.

### 3. Triage each source

For every item you keep, record: platform, author type (official, journalist, practitioner, anonymous), evidence class (data, document, eyewitness, bare claim), date, and stance (neutral, opinion, promotional). Engagement (upvotes, likes, volume) is a weak signal only: it measures attention, not accuracy. One viral post is still one source.

### 4. Apply recency weights

Score each kept item: `item_score = recency_weight x source_weight x independence_factor`.

- **recency_weight**: from the weight schedule for the topic's clock speed in `references/weighting.md`. Fresh items dominate; stale items only supply background.
- **source_weight**: 1.0 official/primary document, 0.8 reputable secondary, 0.5 single practitioner account, 0.2 anonymous or promotional.
- **independence_factor**: 1.0 if the item adds a source no other item has; 0.5 if it just repeats a source you already counted (five outlets quoting one press release is one source, not five).

Run the numbers with `bin/recency_weight.py` when the item list is long. Eyeball them when it is short. Either way, show the weights in the brief so the reader sees why a claim ranks where it does.

### 5. Label confidence

Every headline claim gets one label, using the criteria in `references/weighting.md`:

- **HIGH**: corroborated by 2+ independent strong sources inside the recency window, no credible refutation.
- **MEDIUM**: one strong source plus corroborating weak sources, or two independent weak sources; minor age or one noted refutation.
- **LOW**: single source, anonymous/weak source, stale, or thin engagement.
- **UNRESOLVED**: sources disagree and neither side wins. Carry the disagreement with a one-line "why this might differ".

Tag the epistemic level too: FACT (verified from a primary source), INFERENCE (your reasoning, shown), OPINION (whose, and on what basis), RUMOR (unverified, spreading). Never present RUMOR as FACT.

### 6. Synthesize

Lead with the answer and its confidence, then the evidence. Reconcile numbers: agreement gets a consensus value; disagreement gets the range plus the spread's cause. State the strongest argument against your conclusion. List what you could not establish. Timestamp every probability and price from prediction markets; they move.

## Output Contract

The brief must contain, in order:

1. **Header**: question, as-of timestamp with timezone, mode, clock speed.
2. **TL;DR**: 2-4 sentences, each with a confidence label.
3. **Headline findings**: each claim with confidence label, epistemic tag, dates, and sources. Weights shown or linked.
4. **Platform pulse**: 1-2 lines per lane (what each lane says, labeled FACT/OPINION/RUMOR).
5. **Markets snapshot** (if markets exist): event, probability, timestamp. One line on what the market implies, labeled INFERENCE.
6. **Disagreements**: source A says X, source B says Y, why they might differ.
7. **Gaps**: what nobody established; sources you wanted but could not reach.
8. **Sources table**: publisher, date, URL, relevance.

## Operating Rules

1. "Every factual claim in a skill must be verified via web search or a primary source. Never invent numbers, dates, quotes, or events. Unverifiable = cut it or frame as opinion. No confident unverified claims, ever."
2. No em dashes anywhere in output. No ChatGPT-speak: no "delve", no "tapestry", no "landscape" as metaphor, no "in today's fast-paced world", no "it's not X, it's Y" pivots, no "moreover/furthermore", no "in conclusion", no "game-changer/unlock/elevate/supercharge", no "let's dive in", no stacked triple adjectives, no rhetorical-question-then-answer setups.
3. Prediction markets report bettor belief, never truth. A 70% market is "bettors price this at 70%", not "this is 70% likely".
4. Reddit/X/YouTube coverage via search engines and the browser is normal; do not present their access limits as a research failure, but do list unreachable sources in Gaps.
5. When two workers could brief the same topic, check recent briefs first and dedup: one smaller story done deep beats three headline rehashes.
