Generate a weekly newsletter summarizing resources added this week. Use when asked to "weekly newsletter", "newsletter", "what did I add this week", "generate newsletter", or "Sunday newsletter".
Generate a newsletter summarizing public notes added during the previous week (Mon-Sun), grouped by content type. Designed for Monday publishing.
content/newsletter-drafts/Run the CLI script to collect all notes added this week:
node .claude/skills/weekly-newsletter/scripts/collect-weekly-notes.mjs
The script outputs JSON with:
week - ISO week (e.g., "2026-W05")weekStart - Monday dateweekEnd - Sunday datenotes - Array of notes with slug, title, type, summary, url, tagstweets - Array of tweets (if any)For a specific week:
node .claude/skills/weekly-newsletter/scripts/collect-weekly-notes.mjs --week 2026-W04
Organize notes from the JSON output into sections based on their type field:
| Type | Section Header |
|---|---|
| book | Books |
| article | Articles |
| podcast | Podcasts |
| youtube | Videos |
| talk | Talks |
| github | GitHub Repos |
| Reddit Threads | |
| tweet | Tweets |
| newsletter | Newsletter Issues |
| course | Courses |
| movie | Movies |
| tv | TV Shows |
| manga | Manga |
| note | Notes |
| evergreen | Evergreens |
| quote | Quotes |
Only include sections that have content.
---
title: "Weekly Digest: {Week Start} - {Week End}"
date: { Today YYYY-MM-DD }
week: { YYYY-Www }
---
# Weekly Digest
_Resources added {Week Start} - {Week End}_
## Summary
This week I added **{total count}** resources to my knowledge base:
{type counts, e.g., "3 articles, 2 podcasts, 1 book"}
---
## {Section Header}
### [[{note-slug}|{title}]]
{summary or "[No summary]" if missing}
**Tags:** {tags as comma-separated list}
**Source:** {url if present}
---
{repeat for each note in section}
{repeat for each section with content}
---
## Stats
- Total resources: {count}
- Most active type: {type with most entries}
- Top tags: {3 most frequent tags}
[[slug|title]] format for internal referencesPresent the generated newsletter:
question: "Does this newsletter look ready?"
header: "Review"
options:
- label: "Save"
description: "Save to newsletter-drafts folder"
- label: "Edit"
description: "Make changes before saving"
- label: "Regenerate"
description: "Try generating again with different options"
mkdir -p content/newsletter-drafts
Filename: {YYYY-Www}.md (ISO week number from JSON output)
Path: content/newsletter-drafts/{YYYY-Www}.md
Display:
| Situation | Handling |
|---|---|
| No notes added this week | Inform user, offer to check previous week |
| Week already has newsletter | Offer to overwrite or append |
| Note missing summary | Use "[No summary]" |
| Mixed public/private notes | Script excludes private by default |
Before saving:
YYYY-Www.md format[[slug|title]] format