News Briefing
Setup
Locate this skill's directory (the folder containing this SKILL.md), then run the
resolver script from there:
python <skill-dir>/scripts/skillctx-resolve.py resolve p-news-briefing
The resolver outputs each binding as key: value (one per line). Substitute each {binding_key} placeholder below with the resolved value.
If any values are missing or the user requests changes, use:
python <skill-dir>/scripts/skillctx-resolve.py set p-news-briefing <key> <value>
Aggregate recent news on any topic(s) into structured markdown files.
Invocation
/news-briefing ai, crypto -- comma-separated topics
/news-briefing ai --depth quick -- with explicit depth
- Conversational: "get me news on AI and crypto"
Depth
- deep (default): News + market/people reactions, sourced links, quotes, ~5 min read
- quick: Headlines + brief context, 5-10 bullets with links, ~2 min read
Flow
- Parse input: Extract topic(s) and depth. Default depth is
deep.
- Normalize topics: Convert to URL-safe slugs for filenames (e.g., "artificial intelligence" ->
ai, "open source" -> open-source).
- Create date directory:
{notebook_daily_dir}YYYY-MM-DD/news/
- Deduplicate against previous briefings (parallelize if possible): Before researching, check for existing briefings on the same topic-slug in recent
daily/*/news/ directories (scan the last 14 days). Run dedup scans for all topics in parallel. Read any found files. Stories already covered in a previous briefing should be skipped entirely unless there is a meaningful follow-up (e.g., new data, reversal, sequel event). When a follow-up exists, write it as its own section and briefly note it builds on prior coverage — do not repeat the original story.
- Research directly using WebSearch. Process all topics in parallel (parallelize if possible): after the dedup scan completes for all topics, dispatch all per-topic research tasks concurrently as a fan-out, then collect results and summarize.
Per-Topic Research (parallelize if possible)
IMPORTANT: Recency is critical. Follow these rules strictly:
- Always use today's exact date (YYYY-MM-DD) to construct queries. Never use just a year or month alone.
- Prefer "today", "yesterday", "past 24 hours", "past 48 hours" in queries — these terms signal freshness to search engines far better than month/year.
- Discard stale results: After gathering search results, check publication dates. Only include stories from the last 7 days (for deep) or last 3 days (for quick). If a result has no visible date, deprioritize it.
- If initial results are stale, run follow-up queries with stricter time language (e.g., "today", "yesterday", site:reuters.com OR site:bloomberg.com).
For deep depth:
Phase 1 - Breaking/recent news: Run 3 WebSearch queries in parallel:
- "[TOPIC] news today [Full Month Day, Year]" (e.g., "AI news today February 6, 2026")
- "[TOPIC] latest news this week [Month Year]"
- "[TOPIC] breaking developments [Month Day Year]"
Phase 2 - Reactions & analysis: Run 2-3 WebSearch queries in parallel:
- "[TOPIC] market reaction today [Month Year]"
- "[TOPIC] social reaction today [Month Year]"
- "[TOPIC] analyst reaction [Month Day Year]"
- "[TOPIC] expert opinion latest [Month Year]"
Phase 3 - Fill gaps (only if needed): If Phase 1-2 returned fewer than 3 distinct stories, run 1-2 more targeted queries:
- "[TOPIC] [specific subtopic from earlier results] [Month Day Year]"
- site:reuters.com OR site:apnews.com "[TOPIC] [Month Year]"
Graceful failure: If a WebSearch query fails or returns no results, note the gap and continue with available data. Include a footer note in the output listing any failed queries so the reader knows coverage may be incomplete.
Phase 4 - Write output: Combine into structured markdown with:
- YAML frontmatter: topic, date, depth
- Major stories as H2 sections (each must include publication date)
- Market data (stock moves, valuations) where relevant
- Named quotes from analysts, CEOs, social media
- Inline source links as markdown hyperlinks
- A "Big Picture" H2 summary at the bottom
For quick depth:
Run 3 WebSearch queries in parallel:
- "[TOPIC] news today [Full Month Day, Year]"
- "[TOPIC] headlines this week [Month Year]"
- "[TOPIC] latest [Month Day Year]"
Then write a concise markdown file with:
- YAML frontmatter: topic, date, depth
- 5-10 bullet points, each a headline with 1-2 sentences of context
- Each bullet must include the publication date (e.g., "Feb 5")
- Inline source links as markdown hyperlinks
- Discard any results older than 3 days
Output Format
---
topic: Topic Name
date: YYYY-MM-DD
depth: deep
---
Output Path
{notebook_daily_dir}YYYY-MM-DD/news/<topic-slug>.md
- Summarize: After all topics are written, tell the user what files were created and give a one-line summary per topic.
1---2name: p-news-briefing3description: Use when the user asks for news, wants a briefing, says "/news-briefing", or asks to aggregate recent information on any topic. Triggers on requests like "what's happening with AI", "get me news on crypto", "news briefing on climate".4license: MIT5---67# News Briefing89<!-- skillctx:begin -->10## Setup11Locate this skill's directory (the folder containing this SKILL.md), then run the12resolver script from there:1314```bash15python <skill-dir>/scripts/skillctx-resolve.py resolve p-news-briefing16```1718The resolver outputs each binding as `key: value` (one per line). Substitute each `{binding_key}` placeholder below with the resolved value.1920If any values are missing or the user requests changes, use:21```bash22python <skill-dir>/scripts/skillctx-resolve.py set p-news-briefing <key> <value>23```24<!-- skillctx:end -->2526Aggregate recent news on any topic(s) into structured markdown files.2728## Invocation2930- `/news-briefing ai, crypto` -- comma-separated topics31- `/news-briefing ai --depth quick` -- with explicit depth32- Conversational: "get me news on AI and crypto"3334## Depth3536- **deep** (default): News + market/people reactions, sourced links, quotes, ~5 min read37- **quick**: Headlines + brief context, 5-10 bullets with links, ~2 min read3839## Flow40411. **Parse input**: Extract topic(s) and depth. Default depth is `deep`.422. **Normalize topics**: Convert to URL-safe slugs for filenames (e.g., "artificial intelligence" -> `ai`, "open source" -> `open-source`).433. **Create date directory**: `{notebook_daily_dir}YYYY-MM-DD/news/`444. **Deduplicate against previous briefings** (parallelize if possible): Before researching, check for existing briefings on the same topic-slug in recent `daily/*/news/` directories (scan the last 14 days). Run dedup scans for all topics in parallel. Read any found files. Stories already covered in a previous briefing should be **skipped entirely** unless there is a meaningful follow-up (e.g., new data, reversal, sequel event). When a follow-up exists, write it as its own section and briefly note it builds on prior coverage — do not repeat the original story.455. **Research directly** using WebSearch. Process all topics in parallel (parallelize if possible): after the dedup scan completes for all topics, dispatch all per-topic research tasks concurrently as a fan-out, then collect results and summarize.4647### Per-Topic Research (parallelize if possible)4849IMPORTANT: Recency is critical. Follow these rules strictly:5051- **Always use today's exact date** (YYYY-MM-DD) to construct queries. Never use just a year or month alone.52- **Prefer "today", "yesterday", "past 24 hours", "past 48 hours"** in queries — these terms signal freshness to search engines far better than month/year.53- **Discard stale results**: After gathering search results, check publication dates. Only include stories from the **last 7 days** (for deep) or **last 3 days** (for quick). If a result has no visible date, deprioritize it.54- **If initial results are stale**, run follow-up queries with stricter time language (e.g., "today", "yesterday", site:reuters.com OR site:bloomberg.com).5556**For deep depth:**5758Phase 1 - Breaking/recent news: Run 3 WebSearch queries in parallel:5960- "[TOPIC] news today [Full Month Day, Year]" (e.g., "AI news today February 6, 2026")61- "[TOPIC] latest news this week [Month Year]"62- "[TOPIC] breaking developments [Month Day Year]"6364Phase 2 - Reactions & analysis: Run 2-3 WebSearch queries in parallel:6566- "[TOPIC] market reaction today [Month Year]"67- "[TOPIC] social reaction today [Month Year]"68- "[TOPIC] analyst reaction [Month Day Year]"69- "[TOPIC] expert opinion latest [Month Year]"7071Phase 3 - Fill gaps (only if needed): If Phase 1-2 returned fewer than 3 distinct stories, run 1-2 more targeted queries:7273- "[TOPIC] [specific subtopic from earlier results] [Month Day Year]"74- site:reuters.com OR site:apnews.com "[TOPIC] [Month Year]"7576**Graceful failure**: If a WebSearch query fails or returns no results, note the gap and continue with available data. Include a footer note in the output listing any failed queries so the reader knows coverage may be incomplete.7778Phase 4 - Write output: Combine into structured markdown with:7980- YAML frontmatter: topic, date, depth81- Major stories as H2 sections (each must include publication date)82- Market data (stock moves, valuations) where relevant83- Named quotes from analysts, CEOs, social media84- Inline source links as markdown hyperlinks85- A "Big Picture" H2 summary at the bottom8687**For quick depth:**8889Run 3 WebSearch queries in parallel:9091- "[TOPIC] news today [Full Month Day, Year]"92- "[TOPIC] headlines this week [Month Year]"93- "[TOPIC] latest [Month Day Year]"9495Then write a concise markdown file with:9697- YAML frontmatter: topic, date, depth98- 5-10 bullet points, each a headline with 1-2 sentences of context99- Each bullet must include the publication date (e.g., "Feb 5")100- Inline source links as markdown hyperlinks101- Discard any results older than 3 days102103### Output Format104105```yaml106---107topic: Topic Name108date: YYYY-MM-DD109depth: deep110---111```112113### Output Path114115```116{notebook_daily_dir}YYYY-MM-DD/news/<topic-slug>.md117```1181196. **Summarize**: After all topics are written, tell the user what files were created and give a one-line summary per topic.