AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Agentic News Digest

skill-yesterday-ai-skills-agentic-news-digest · by Yesterday-AI

>

No reviews yet
0 installs
19 views
0.0% view→install

Install

$ agentstack add skill-yesterday-ai-skills-agentic-news-digest

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-yesterday-ai-skills-agentic-news-digest)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Agentic News Digest? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Agentic News Digest 📰

Turn information overload into a curated knowledge stream. This skill enables an agent to act as a news curator for a team -- collecting tips from conversations, researching sources, fact-checking claims, scoring relevance, and delivering formatted digests.

When to Use

  • Running a Daily News Digest for a team channel
  • Publishing Breaking News about significant industry events
  • Announcing new skills, features, or milestones internally
  • Creating a Weekly Recap of what happened
  • Setting up a Tech Radar to track specific trends
  • A team member shares a link and says "put this in the next digest"

Setup

On first activation, create memory/news_digest_config.json:

{
  "audience": "Team name or description",
  "goals": ["What the digest should achieve"],
  "detail_level": "Brief | Balanced | Deep-Dive",
  "sources": {
    "external": ["RSS URLs", "Twitter accounts", "blogs"],
    "internal": ["GitHub org/repos", "internal docs"]
  },
  "channel": "Channel ID for delivery",
  "schedule": "HH:MM Timezone",
  "custom_topics": []
}

The Inbox Problem: Why This Section Exists

Agents often receive news tips in conversational sessions (DMs, group chats) but publish digests from isolated cron sessions. These are separate processes with no shared memory.

If you only "remember" a link in conversation, the cron job will never see it.

The inbox is a file-based handoff mechanism that solves this. It is the ONLY reliable way to pass items from conversation → digest pipeline. Not memory files, not MEMORY.md, not "mental notes." The inbox file.

Inbox File: news/inbox.json

{
  "version": 1,
  "items": []
}

Also create news/archive/ for processed items.

Item Schema

Each inbox item looks like this:

{
  "url": "https://example.com/article",
  "title": "Optional title if already known",
  "context": "Why this was shared / what the submitter said about it",
  "draft": null,
  "submitted_by": "Name of the person who sent it",
  "submitted_at": "2026-03-31T10:30:00Z",
  "priority": "normal | high",
  "target_type": "daily | breaking | skill-announcement | milestone"
}

Receiving Tips During Conversation

When a team member shares a link or news tip in a DM or group chat:

  1. Read news/inbox.json
  2. Append the item with full metadata (URL, context, who sent it, timestamp)
  3. Write back to news/inbox.json immediately
  4. Confirm to the user that it's queued

Do NOT:

  • Write it to a separate queue file that the cron job doesn't check
  • Store it only in memory/daily notes and hope it gets picked up
  • Say "vorgemerkt" without actually writing to news/inbox.json
  • Rely on session context surviving to the next heartbeat

The rule is simple: If it's not in news/inbox.json, it doesn't exist for the digest pipeline.

Co-Authored Drafts

Sometimes a team member doesn't just drop a link -- they collaborate with the agent on the article text in conversation. They iterate, give feedback, adjust wording. The result is a co-authored draft that both sides agreed on.

Two submission modes:

| Mode | What happens | Agent's job | |------|-------------|-------------| | Raw input (link, bullets, notes) | Agent writes the article from scratch | Research, summarize, format | | Iterated draft (text refined in conversation) | Agent publishes as-is | Format-fix only (platform syntax, typos) |

Rules for iterated drafts:

  • Store the final agreed text in the draft field of the inbox item
  • Set priority: "high" automatically
  • The digest pipeline MUST publish the draft verbatim -- no rewriting, no re-summarizing
  • Only allowed changes: platform formatting (e.g., Slack *bold* syntax) and typo fixes
  • Fact-checking still applies (verify claims/links work), but the text stays as agreed
  • Confirm to the submitter: "Gespeichert in der Inbox -- wird genau so gepostet."

Why this matters: When someone invests time iterating on text with you, they chose every word deliberately. Re-summarizing it in the cron job throws away that effort and breaks trust.


The Digest Pipeline

Every digest -- daily, weekly, or breaking -- follows these 5 steps in order.

Step 1: Read the Inbox (ALWAYS FIRST)

Before any external aggregation:

  1. Read news/inbox.json
  2. Separate items into two buckets:
  • Draft items (draft is not null): Auto-include. Skip scoring & summarization.
  • Raw items (draft is null): Feed into the normal pipeline with a +2 relevance bonus.
  1. If the inbox is empty, proceed to external aggregation.

This step is not optional. The inbox exists because team members explicitly flagged these items as relevant. Skipping it defeats the purpose of the entire inbox mechanism.

Step 2: Aggregate External Sources

Gather raw candidates from configured sources:

| Source Type | Method | Notes | |-------------|--------|-------| | RSS/Atom feeds | web_fetch on feed URLs | Parse for items [If no internal news: "Ruhiger Tag intern -- keine nennenswerten Updates."]

--

🌐 Tech & AI News

[Title] ([Source], [DD.MM.]) [2-3 sentences: what happened + why it matters for us]

[Repeat for top 5-7 external items, sorted by score descending]

--

Kuratiert von [Agent Name] 🐾 | Quellen: [X] geprüft, [Y] relevant


**Rules:**
- Internal section ALWAYS comes first, NEVER skip it
- Each item: source name, date, working link
- Max 8 items total -- this is a digest, not a dump
- Inbox items with drafts: insert the draft text verbatim in the appropriate section

### ⚡ Breaking News

For single high-impact events that can't wait (score ≥ 9, at least 2 sources).

Breaking: [Headline]

[3-5 sentences: what happened with concrete details]

Warum das wichtig ist: [2-3 sentences connecting to team's work]

Quellen: • ([Date]) • ([Date])

[Agent Name] 🐾 | [Timestamp]


Max 1 breaking news per day. Multiple breaking items → bundle into urgent daily digest.

### 🐾 Skill / Feature Announcement

🐾 Neuer Skill: [Name] -- [One-line description]

[2-3 sentences: what it does, what problem it solves]

Was steckt drin: • [Capability 1] -- [brief description] • [Capability 2] -- [brief description]

Warum das wichtig ist: [1-2 sentences: concrete benefit for the team]


Keep under 200 words. Focus on value, not implementation.

### 🏆 Milestone Update

🏆 Milestone: [What was achieved]

[2-3 sentences: significance of the achievement]

Key Facts: • [Measurable detail] • [Measurable detail] • [What's next]

[Agent Name] 🐾


Only for genuine milestones, not routine progress.

### 📊 Weekly Recap

📊 Yesterday Weekly -- KW [XX] ([DD.MM.] - [DD.MM.YYYY])

--

🏠 Diese Woche intern

[Project/Theme] -- [Week summary]. [Group by project, not by day]

--

🌐 Die wichtigsten Tech-News der Woche

  1. [Title] ([Source], [DD.MM.])

[Summary + relevance]

[Top 5-8 items of the entire week, numbered by importance]

--

📈 Zahlen der Woche (optional) • [Interesting stat] • [Interesting stat]

--

KW [XX] Recap von [Agent Name] 🐾 | [X] Quellen ausgewertet


Don't concatenate 5 daily digests -- curate the week's highlights.

---

## Platform Formatting Reference

| Platform | Bold | Italic | Links | Tables | Headers |
|----------|------|--------|-------|--------|---------|
| Slack | `*bold*` | `_italic_` | `` | ❌ No | ❌ No |
| Discord | `**bold**` | `*italic*` | `[Text](URL)` or suppress with `` | ❌ No | ✅ `#` |
| WhatsApp | `*bold*` | `_italic_` | Plain URLs | ❌ No | ❌ Use CAPS |

---

## Quality Checklist (Run Before Every Publish)

- [ ] `news/inbox.json` was read and processed (inbox items included or archived)
- [ ] Every item has a verifiable publication date
- [ ] Every item has a working source link
- [ ] No item is older than the digest's time window
- [ ] Each item has a "why this matters for us" line
- [ ] Internal section is present (even if "quiet day")
- [ ] Platform formatting is correct for the target channel
- [ ] No duplicate topics from yesterday's digest
- [ ] Co-authored drafts are published verbatim (not re-summarized)
- [ ] Total length stays reasonable (daily ≤ 500 words, weekly ≤ 800 words)
- [ ] Language matches channel config (e.g., German for Yesterday)
- [ ] Numeric claims cite a source

---

## Scheduler Integration

**With Heartbeat:**
Add to your `HEARTBEAT.md` or equivalent:
  1. Check heartbeat-state.json → if lastnewsdigest == today, SKIP
  2. Read news/inbox.json FIRST
  3. Run aggregation pipeline
  4. Publish, archive inbox, update state

**With Cron:**
Create a dedicated cron job that runs the digest pipeline at the configured schedule.
The cron session has NO access to main session memory -- the inbox file is the bridge.

**Key principle:** The inbox is the ONLY handoff between conversational sessions and digest runs.
Everything else (memory files, session context, "mental notes") is unreliable across session
boundaries.

---

## Maintenance

- Archive processed inbox items: `news/archive/inbox_YYYY-MM-DD.json`
- Archive daily raw items: `memory/archive/news_YYYY-MM-DD.md`
- Update `memory/heartbeat-state.json` after each publish
- Review relevance scoring weights quarterly with the team
- Rotate stale RSS sources quarterly
- Monitor inbox for items that were submitted but never published (indicates pipeline bug)

---

*"Signal over Noise. Wisdom over Data."* 📡

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Yesterday-AI](https://github.com/Yesterday-AI)
- **Source:** [Yesterday-AI/skills](https://github.com/Yesterday-AI/skills)
- **License:** MIT
- **Homepage:** https://github.com/Yesterday-AI/skills

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.