Daily Reading Digest
Produce one clean Telegram-ready digest with:
- New posts since the last run from tracked writers
- Clear one-line summaries for each new post
- Hacker News top 10 as concise one-liners
Run the collector script
python3 ~/.openclaw/skills/daily-reading-digest/scripts/collect_digest.py --output json
Useful flags:
# Preview without touching state
python3 ~/.openclaw/skills/daily-reading-digest/scripts/collect_digest.py --output markdown --no-state-update
# Reset lookback window for first run / testing
python3 ~/.openclaw/skills/daily-reading-digest/scripts/collect_digest.py --since-hours 72 --output json
The script maintains state at:
~/.openclaw/state/daily-reading-digest.json
If state is corrupted or stale, remove it and rerun.
Digest workflow
- Run the script and parse JSON.
- For each
new_posts[]item:- Keep the title and URL.
- Use the feed excerpt directly if it is clear.
- If excerpt is weak, fetch the URL and write a better one-line summary.
- Format HN top stories from
hn_top[]β each entry MUST:- Use inline Markdown links:
[title](url)so the title IS the link - Add a short "why it matters" phrase after the link
- Example:
1. [Some Cool Project](https://example.com/cool) β why this matters
- Use inline Markdown links:
- Keep tone factual and compact.
- Send one Telegram message only (no markdown tables).
Output format
Use this exact high-level structure:
π Daily Readings (YYYY-MM-DD)New postssectionβ‘ HN Top 10sectionTodayβs pick(one short sentence)
Length and quality constraints
- Target 1200-2500 characters total (longer is fine to fit all 10 HN links).
- All links must be inline Markdown:
[title](url)β never bare URLs on separate lines. - If there are no new tracked posts, explicitly say:
No new posts from tracked writers today. - Never invent article content. If unsure, mark as
title-only summary.
Source maintenance
When feeds or people change, read and update:
references/sources.mdscripts/collect_digest.py