---
name: spyderweb47/Historic News
source: https://app.decimal.ai/s/spyderweb47-historic-news@1/SKILL.md
source_sha256: 38b9e505b3ab
---

# Historic News Skill

> Research and annotate price-moving news events on the chart. Uses the
> shared AgentSwarm service to spawn a research team.

## The team

| Role | Mandatory | Tools | Added when |
|---|---|---|---|
| **Researcher** | ✅ | `search_web`, `fetch_news`, `fetch_url` | Always — does the actual web queries for historic news |
| **Analyzer** | ✅ | — | Always — parses raw findings into structured NewsEvent objects with timestamps, categories, impact ratings, and direction |
| **QA** | ✅ | — | Always — filters out unsubstantiated events, checks timestamps are plausible, drops duplicates |
| **Macro Researcher** | ⏳ optional | `search_web`, `fetch_policy` | Added when the asset is a commodity, currency, or index (where macro news dominates price action) |
| **Regulatory Researcher** | ⏳ optional | `fetch_policy`, `fetch_url` | Added when the asset has active policy considerations (crypto, pharma, defense) |

## Flow

1. Team Planner picks which researchers to include based on asset class
2. Researchers run in parallel — each does 2-4 targeted web searches for news in different periods (pre-rally, drawdown, range-bound, etc.)
3. Analyzer merges findings into a structured event list with:
   - `timestamp` (unix seconds)
   - `headline`, `summary`, `source`, `url`
   - `category` — earnings | regulatory | macro | product | sentiment | geopolitical | technical
   - `impact` — high | medium | low
   - `direction` — bullish | bearish | neutral
   - `price_impact_pct` — rough estimate of the event's price effect (optional)
4. QA reviews: drops duplicates, flags timestamps outside the chart's data range, ensures each event has a credible source
5. Final event list is pushed to the store → chart renders vertical markers → Historic News tab lists them

## Output

- **On chart**: colored vertical line + dot at each event's timestamp. Red for bearish, green for bullish, orange for neutral. Hover for tooltip.
- **Bottom-panel tab**: timeline list of events sorted newest-first. Click an event → chart zooms to that time range + selected article detail appears on the right.

## Input — interactive directives

The skill parses your message for steering directives so you can drive the swarm:

| You say | What happens |
|---|---|
| `historic news for this chart` | Researches the chart's own asset over its date range (default) |
| `fetch oil news on this chart` | Researches oil, plots markers on the loaded chart (different asset!) |
| `plot AAPL news on the BTC chart` | Researches AAPL, tags markers for the BTC chart specifically |
| `show macro news on all charts` | Broadcasts — same news set renders on every open chart |
| `earnings news for TSLA` | Topic-filtered — only earnings queries run |
| `regulatory + macro news for AAPL` | Multiple categories combined |

Recognised category keywords: `earnings`, `regulatory`/`SEC`/`policy`, `macro`/`fed`/`fomc`/`inflation`/`cpi`, `product`/`launch`, `geopolitical`/`war`/`sanctions`. Recognised broadcast keywords: `all charts`, `every chart`, `multiple charts`, `broadcast`.

Requires a dataset loaded on the chart (the skill queries around the chart's visible date range and uses the chart's symbol as the default plot target).

## How real news is fetched

The researcher does NOT hallucinate from training data. The processor:

1. Generates 6-9 search queries from the topic + date range + categories
2. Calls `web_search()` (DuckDuckGo, rate-limited) for each
3. Aggregates real results — real titles, real URLs, real snippets
4. Feeds those real findings to the analyzer agent

The analyzer is then explicitly told: "use the EXACT URL from the search result. NEVER invent URLs." So every Reuters/Bloomberg link in the output is a link the search engine actually returned.

## Example

> User: *"Find historic news events that moved AAPL"*
>
> → Team: Researcher + Analyzer + QA. Researcher queries for AAPL
> earnings, product launches, and macro shocks in the chart's date
> range. Analyzer extracts ~15-25 events with timestamps + summaries.
> QA drops 3 unsubstantiated ones. Final: 20 events plotted on
> chart with category-coloured markers. Bottom panel shows timeline.
>
> User clicks the "Q1 earnings surprise" event → chart zooms to
> that date; right panel shows the full article summary + link.