newsletter-digest

Process newsletters into Second Brain digest. Use when user wants to process newsletters, create digest, or catch up on subscriptions. Not for web clippings (use process-clippings) or email bookmarks (use process-email-bookmarks).

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "newsletter-digest" with this command: npx skills add maroffo/claude-forge/maroffo-claude-forge-newsletter-digest

ABOUTME: Process unread newsletters into Second Brain entries via Gmail and Obsidian

ABOUTME: Batch extraction of actionable content from Substack, Beehiiv, and other platforms

Newsletter Digest Skill

Process unread newsletters, extract actionable content for Second Brain, archive processed emails.

Gmail: See ../_GMAIL.md | Obsidian CLI: See ../_OBSIDIAN.md | Integration: See ../_SECOND_BRAIN.md

Newsletter Sources

All newsletters are processed - categorize by content, not by sender.

Common Platforms

# Search for unread newsletters from common platforms
gog gmail search "is:unread (from:substack.com OR from:beehiiv.com OR from:convertkit.com OR from:mailchimp.com OR from:buttondown.email)" --account=maroffo@gmail.com --json --max=20

Known Newsletter Labels

LabelDescription
📰Newsletter/🔴 SubstackSubstack newsletters
📰NewsletterGeneral newsletters
👨🏻‍💻work-relatedWork-related content (higher priority)

Key Newsletters by Category

NewsletterAuthorCategory
ByteByteGoAlex XuAI/Development
Turing Post-AI/Open Source
Artificial IgnoranceCharlie GuoAI/Management
The Beautiful MessJohn CutlerEngineering Management
Tidy First?Kent BeckEngineering/Design
Javarevisited-Development
[mini]marketingGianluca DiegoliMarketing
Paul KrugmanPaul KrugmanPolitics/Economics
AppuntiStefano FeltriPolitics (IT)
270 by YoutrendYoutrendPolitics (IT)
Il Mattinale EuropeoDavid CarrettaEU Politics
Il Post-News (IT)
Semafor-News (International)
Roberta VillaRoberta VillaHealth/Science
Ellissi-Media/Culture
SillabeElena TosatoLiterature

Processing Workflow

Step 1: Find Unread Newsletters

gog gmail search "is:unread (from:substack.com OR from:beehiiv.com OR from:convertkit.com)" --account=maroffo@gmail.com --json --max=20

Step 2: Extract & Triage

For each newsletter, extract content and run automated triage:

# Extract email text
gog gmail thread get <threadId> --account=maroffo@gmail.com --json \
  | python3 ~/.claude/skills/newsletter-digest/extract_email.py --meta --max-chars 4000

# Classify with optimized prompt (needs ANTHROPIC_API_KEY)
echo '{"from": "<sender>", "subject": "<subject>", "content": "<body>"}' \
  | uv run --project ~/.claude/skills/autoresearch-prompt -- autoresearch-prompt classify

The classifier returns JSON: {"action": "extract"|"skip", "category": "...", "content": "...", "reason": "..."}.

  • action=skip: Archive immediately, no Second Brain entry
  • action=extract: Process content into Second Brain using the returned category and content

For batch triage, classify all newsletters first, then process only the extract results. This avoids spending time analyzing content that should be skipped.

Step 3: Process Extracted Newsletters

For each newsletter where classifier returned action=extract:

  1. Use the classifier's category to route to the correct Second Brain file
  2. Refine the summary if needed (the classifier provides a 2-3 sentence content field as starting point)
  3. Categorize per ../_SECOND_BRAIN.md routing table (classifier categories match these)
  4. Extract & integrate via Obsidian CLI:
obsidian append file="Second Brain - <Topic>" content="<extracted>"
  1. Update Timeline:
obsidian append file="Second Brain - Timeline" content="- **YYYY-MM-DD** | [Topic] | Source: Newsletter | -> Second Brain - <File>.md"

Step 4: Archive All

Archive all processed newsletters (both extracted and skipped). See ../_GMAIL.md for archive command.

Output Format

After processing batch:

## Newsletter Digest - YYYY-MM-DD

### Processed (X newsletters)

1. **[Pragmatic Engineer]** - "Platform Teams Done Right"
   - Extracted: Platform team anti-patterns
   - → Second Brain - Engineering Management.md
   - ✓ Archived

2. **[ByteByteGo]** - "Rate Limiting Deep Dive"
   - Extracted: Token bucket algorithm summary
   - → Second Brain - Development.md
   - ✓ Archived

3. **[The Batch]** - "AI News Weekly"
   - Skipped: News only, no actionable content
   - ✓ Archived

### Summary
- Newsletters processed: X
- Second Brain entries added: Y
- Archived: X

Content Extraction Guidelines

Include in Second Brain:

  • Tool/library announcements with clear use case
  • Architecture patterns with examples
  • Techniques you can apply
  • Commands/configs worth remembering
  • Important news from news-focused newsletters (Il Post, Semafor, Appunti, Il Mattinale Europeo):
    • Geopolitical events with lasting impact
    • Policy changes (EU, IT, international)
    • Economic developments (trade, sanctions, markets)
    • Major political events (elections, government changes)
    • → Add to Second Brain - Politics and Economics.md

Skip (archive only):

  • Tech industry news/opinions (funding, hype cycles)
  • Funding announcements
  • Job postings
  • Content you've already captured
  • Ephemeral news (daily weather, minor events)

Ask user if unclear:

  • Mixed content (some actionable, some not)
  • Topics outside usual categories

Rules

See ../_SECOND_BRAIN.md for shared rules. Additional:

  • Always archive - processed = archived, no exceptions
  • Batch process - handle multiple newsletters in one session

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

clickup

No summary provided by upstream source.

Repository SourceNeeds Review
General

react-nextjs

No summary provided by upstream source.

Repository SourceNeeds Review
General

rails

No summary provided by upstream source.

Repository SourceNeeds Review
General

golang

No summary provided by upstream source.

Repository SourceNeeds Review