News Research
Overview
Collects evidence from news/press coverage. The defining challenge here is fan-out: ten outlets rewriting the same press release or wire story is not ten independent sources — it's one, relayed nine times (constitution rule 5). This skill's core job is running origin tracing aggressively, not just collecting the first ten search hits.
Layer rule: produces evidence, not results. Synthesis and confidence status are the orchestrator's job.
When to use
Direct use: "what did press cover about X launch", "find news on Y". As a component: orchestrator dispatches this for event/announcement-type sub-questions.
Don't use for: the announcement itself when it's directly reachable (→ official-source-research, and this skill should trace there anyway per step 2 below), opinion/analysis pieces (→ blog-research), peer-reviewed coverage of research (→ academic-research).
Workflow
- Search broadly first — a single event often has many outlets covering it; collect several candidate URLs before picking which to fetch in full, so the fan-out is visible before origin tracing starts.
- Run origin tracing aggressively, on every hit, before recording. Check for: wire/agency bylines (AP, Reuters, AFP, PRNewswire, Business Wire), "according to"/"in a statement"/"the company announced" attribution phrases, near-identical phrasing across outlets in a narrow time window. If found, follow the chain to the root per engine/origin-tracing.md — usually the company's own press release or filing, which is often better cited directly via official-source-research than through a relay.
- Prefer the earliest-published instance among relays if the root itself isn't independently reachable — but always record it as a relay (
primary_source: false, root_origin pointing at the press release), never as if the outlet originated the claim.
- Every relay of one announcement shares one
root_id: event:<org>:<slug-or-date>. This is what actually collapses the fan-out — ten outlets with ten different URLs but one root_id count as one independent source in the confidence ladder (engine/origin-tracing.md). Getting the root_origin right while giving each relay its own root_id would leave the inflation fully intact.
- If a search returns nothing: run references/query-relaxation.md. Log full exhaustion as a gap.
- Extract publish date per the cascade in references/tooling.md — news CMSs are usually reliable for structured metadata; cross-check against wire timestamps when available, since syndicated copies sometimes carry a republish date instead of the original.
- Archive per references/citation-rules.md — news content moves behind paywalls or gets updated post-publication more than most source types, archive at collection time without delay.
- Assign tier per references/source-tiers.md's news table (2 = established editorial outlets; 4 = aggregators/unedited press-release reprints — the reprint itself is rarely load-bearing once the root is traced) and purpose.
- Write the evidence record per engine/evidence-contract.md,
verification_status: pending. Do not self-verify.
Output
One evidence record per claim, appended to the run's evidence.jsonl.
Common mistakes
| Mistake |
Fix |
| Recording 5 outlets covering the same press release as 5 independent sources |
Give them all one root_id: event:<org>:<slug>; they collapse to one origin (engine/origin-tracing.md) |
| Citing the reprint instead of chasing the actual announcement |
If the root is reachable, fetch and record it directly, higher tier and more durable |
| Assuming an "exclusive"-labeled story has no root elsewhere |
Check anyway — "exclusive" describes access, not always originality of every claim inside it |
| Skipping the wire-byline check because the outlet "looks independent" |
Check bylines/footers on every hit, not just the obviously syndicated ones |
1---2name: news-research3description: Use when the user asks to find news coverage of an event, check what press outlets reported, or research how an announcement was covered. Triggers on "find news about", "what did press say", "news coverage of", "news research". Produces evidence records (URL + verbatim quote + wire/syndication check), never conclusions. Do NOT use for the underlying official announcement itself (use official-source-research — trace to it, don't just cite the reprint), blog opinion pieces (use blog-research), or academic coverage (use academic-research).4---56# News Research78## Overview910Collects evidence from news/press coverage. The defining challenge here is fan-out: ten outlets rewriting the same press release or wire story is not ten independent sources — it's one, relayed nine times (constitution rule 5). This skill's core job is running origin tracing aggressively, not just collecting the first ten search hits.1112**Layer rule:** produces evidence, not results. Synthesis and confidence status are the orchestrator's job.1314## When to use1516Direct use: "what did press cover about X launch", "find news on Y". As a component: orchestrator dispatches this for event/announcement-type sub-questions.1718Don't use for: the announcement itself when it's directly reachable (→ official-source-research, and this skill should trace there anyway per step 2 below), opinion/analysis pieces (→ blog-research), peer-reviewed coverage of research (→ academic-research).1920## Workflow21221. **Search broadly first** — a single event often has many outlets covering it; collect several candidate URLs before picking which to fetch in full, so the fan-out is visible before origin tracing starts.232. **Run origin tracing aggressively, on every hit, before recording.** Check for: wire/agency bylines (AP, Reuters, AFP, PRNewswire, Business Wire), "according to"/"in a statement"/"the company announced" attribution phrases, near-identical phrasing across outlets in a narrow time window. If found, follow the chain to the root per engine/origin-tracing.md — usually the company's own press release or filing, which is often better cited directly via official-source-research than through a relay.243. **Prefer the earliest-published instance among relays** if the root itself isn't independently reachable — but always record it as a relay (`primary_source: false`, `root_origin` pointing at the press release), never as if the outlet originated the claim.254. **Every relay of one announcement shares one `root_id`:** `event:<org>:<slug-or-date>`. This is what actually collapses the fan-out — ten outlets with ten different URLs but one `root_id` count as one independent source in the confidence ladder (engine/origin-tracing.md). Getting the `root_origin` right while giving each relay its own `root_id` would leave the inflation fully intact.265. **If a search returns nothing:** run references/query-relaxation.md. Log full exhaustion as a gap.276. **Extract publish date** per the cascade in references/tooling.md — news CMSs are usually reliable for structured metadata; cross-check against wire timestamps when available, since syndicated copies sometimes carry a republish date instead of the original.287. **Archive** per references/citation-rules.md — news content moves behind paywalls or gets updated post-publication more than most source types, archive at collection time without delay.298. **Assign tier** per references/source-tiers.md's news table (2 = established editorial outlets; 4 = aggregators/unedited press-release reprints — the reprint itself is rarely load-bearing once the root is traced) and **purpose**.309. **Write the evidence record** per engine/evidence-contract.md, `verification_status: pending`. Do not self-verify.3132## Output3334One evidence record per claim, appended to the run's `evidence.jsonl`.3536## Common mistakes3738| Mistake | Fix |39|---|---|40| Recording 5 outlets covering the same press release as 5 independent sources | Give them all one `root_id: event:<org>:<slug>`; they collapse to one origin (engine/origin-tracing.md) |41| Citing the reprint instead of chasing the actual announcement | If the root is reachable, fetch and record it directly, higher tier and more durable |42| Assuming an "exclusive"-labeled story has no root elsewhere | Check anyway — "exclusive" describes access, not always originality of every claim inside it |43| Skipping the wire-byline check because the outlet "looks independent" | Check bylines/footers on every hit, not just the obviously syndicated ones |