# Daily News Briefing

> Gathers recent articles from curated tech news RSS feeds, summarizes key topics relevant to Red Hat, IBM, and the user's VP role in ~2-paragraph executive summaries with links, and sends a daily email briefing. Use when the user asks for daily news briefing, tech news summary, or news briefing.

- Skill: `cgray-redhat/daily-news-briefing` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add cgray-redhat/daily-news-briefing`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cgray-redhat/daily-news-briefing/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: cgray-redhat (https://skillmd.com/u/cgray-redhat)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/cgray-redhat/daily-news-briefing

---


# Daily News Briefing

Send **one** email to yourself: **`Daily News Briefing - {Today's Date}`** with up to **8** scored articles and executive summaries.

## Prerequisites

1. `gws` CLI authenticated (`gws auth status`). Scope: `gmail.modify`.
2. Read `ME.md` at the project root (if present) for role context.
3. Read `TEAM.md` at the project root (if present) for team priorities.
4. Network access for RSS fetch and WebFetch.

## Workflow

```
Daily News Briefing:
- [ ] Step 1: Read role context (ME.md, TEAM.md)
- [ ] Step 2: Gather and score articles
- [ ] Step 3: Research and summarize each article
- [ ] Step 4: Compose briefing email
- [ ] Step 5: Send email (deduplicated)
- [ ] Step 6: Confirm with user
```

### Step 1 — Read role context

From `ME.md` and `TEAM.md` (if present), keep in mind:
- VP, Renewals, Dealmaking, and Enterprise Ecosystem at Red Hat
- IBM synergy, open source, hybrid cloud, partner/ISV ecosystem
- Renewals, subscriptions, dealmaking, customer success

### Step 2 — Gather and score articles

```bash
python3 ~/.cursor/skills/daily-news-briefing/scripts/gather_news_briefing.py --format json
```

Output: `emailSubject`, `stockLine` (IBM price and prior-day change), `ibmStock`, `articles[]` (title, url, source, snippet, relevanceScore, matchedTopics), `warnings`.

Defaults: last **24 hours**, top **8** articles by relevance score. Override with `--hours 48` or `--max-articles 8`.

If `warnings` notes fewer than 8 articles, report honestly — do not pad with invented stories.

### Step 3 — Research and summarize each article

For each article in the gather output:

1. Use `snippet` when substantial (>100 chars); otherwise **WebFetch** the article URL
2. Write **~2 short executive paragraphs**:
   - **Paragraph 1:** What happened (facts only, from the article)
   - **Paragraph 2:** Why it matters for **Red Hat**, **IBM**, and your scope (renewals, dealmaking, enterprise ecosystem)
3. End with `Read more: {url}`
4. Do not invent facts; mark gaps `[needs input]` if the article is thin

### Step 4 — Compose briefing email

**Subject:** `emailSubject` from gather output.

```
Daily News Briefing - {Date}

{stockLine from gather output, e.g. IBM (NYSE): $284.84 (-$12.96, -4.35% vs prior close)}

{Article Title}
{Paragraph 1}

{Paragraph 2}

Read more: {url}

---
(repeat for each article)
```

Article titles are **bolded automatically** in the HTML email. `Read more` links are clickable.

### Step 5 — Send email (deduplicated)

```bash
python3 ~/.cursor/skills/daily-news-briefing/scripts/send_daily_news.py \
  --subject "Daily News Briefing - June 7, 2026" \
  --body-file /tmp/daily-news-body.txt
```

Sends to authenticated user. Skips if already sent with same subject (use `--force` to send again).

### Step 6 — Confirm with user

Report: article count, any feed warnings, email sent/skipped, link to [Gmail inbox](https://mail.google.com/mail/#inbox).

## Example prompts

- "Daily news briefing"
- "News briefing"
- "What's the tech news today?"

## Additional resources

- [reference.md](reference.md) — source list, selection rationale, keyword tiers, troubleshooting

