Install
openclaw skills install @ivangdavila/digestCurates news, feeds, and industry sources into personalized recurring digests: sourcing, filtering, ranking, and delivery. Use to set up a daily briefing or morning/evening news roundup, track competitors, an industry, people, or markets, or run a scheduled or weekly update. Also when a digest feels too long or repetitive, keeps missing stories, or a rumor needs checking before it ships. Covers source vetting, deduplication, single-source holds, corrections, urgent alerts, slow news days, and channel formats (email, Slack, Telegram, audio); learns format, timing, and depth preferences from reactions. Not for summarizing documents the user provides or internal business reporting.
openclaw skills install @ivangdavila/digestUser preferences, learned signals, and the sent-item log live in ~/Clawic/data/digest/ (see setup.md on first use, preferences-template.md for file formats). If you have data at an old location (~/digest/ or ~/clawic/digest/), move it to ~/Clawic/data/digest/.
User-dependent variables. Defaults apply until the user states a preference; store them in ~/Clawic/data/digest/config.yaml.
| Variable | Type | Default | Effect |
|---|---|---|---|
| item_cap | number (3-15) | 8 | Hard ceiling on items per digest (rule 5); Highlights stay ≤3 at any cap |
| single_source_policy | hold | hedge | hold | Market-moving or reputational single-source claims: hold one cycle vs ship marked "one source, unverified" (verification.md) |
| channel | text | channel where the digest was first requested | Where digests deliver; drives the per-channel format rules in delivery.md |
| digest_language | text | the language the user writes in | Digest prose language; items keep original-language names and quotes with translated summaries |
| timezone | text | ~/Clawic/profile.yaml, else confirm before first scheduled send | Anchors every scheduled slot and recency window |
Preference areas — learned state lives in ~/Clawic/data/digest/preferences.md and climbs the ladder in learning.md:
synthesize), internal business reporting (→ brief), or full competitor dossiers (→ competitor-monitoring)The test of a real digest: every item carries a why-this-matters-to-you line. A digest that could be sent to anyone is a feed, not a digest.
| Situation | Play |
|---|---|
| First digest, no preferences | Derive topics from the request; if none derivable, ask the one blocked question (topics) — everything else runs on defaults |
| Story covered by 3+ independent sources | Promote toward Highlights — convergence is an importance signal (rule 4) |
| Surprising claim from a single source | Hold one cycle or ship hedged per single_source_policy; independence test in verification.md |
| Major global news outside user's topics | One line in Worth Noting, never a Highlight — relevance beats magnitude (rule 1) |
| User says "too long" | Cut item count before per-item depth; log the signal (learning.md) |
| Story already shipped in a prior digest | Resurface only as "Update:" + what changed — check the sent log (rule 7) |
| Urgent item mid-cycle | Interrupt only on a [confirmed] or [locked] urgent-signal rule; otherwise hold (delivery.md) |
| No reaction for 3 consecutive digests | Ask one concrete question instead of guessing (learning.md) |
| Slow news day in their topics | Send the short honest version ("quiet day, 2 items") — never pad |
| Big-event day floods one theme | Cluster the theme into one block that counts as one item (triage.md) |
| Competitor activity to report | Moves, not mentions — the move catalog is in competitors.md |
| Gap since last digest (vacation, downtime) | One consolidated catch-up covering the period, top items only (delivery.md) |
| Anything else | Run Source → Filter → Prioritize → Format → Deliver → Learn with current preferences |
Depth on demand: sources.md building and vetting the source list · triage.md dedupe, ranking, slow and heavy days · verification.md claims, rumors, corrections · writing.md item craft and summaries · delivery.md channels, timing, interrupts · learning.md signals and the preference ladder · competitors.md tracking companies and people · dimensions.md dimension catalog with defaults · preferences-template.md data-file formats.
verification.md).item_cap (default 8) items, hard max 3 Highlights. Adding one over cap means deleting one. Worked example: 12 candidates → 3 Highlights (top interest-match), 5 body items, remaining 4 dropped or compressed into one Worth Noting line.learning.md. Never jump from a single signal to locked.~/Clawic/data/digest/sent-log.md; repeats resurface only as "Update:" + delta. A digest without memory re-reports yesterday and reads as a broken filter.Source → Filter → Prioritize → Format → Deliver → Learn
sources.md). Default weighting: primary > original reporting > aggregators > social; social is discovery, never citation — trace it back before it ships.dimensions.md → Sources); single-source surprising claims go to verification.md.triage.md).writing.md; length pressure cuts item count before per-item depth.delivery.md.preferences.md after every delivery; signal counting and ladder in learning.md.📰 [DIGEST TYPE] — [DATE/TIME]
🔥 HIGHLIGHTS
• [Item — 1-line summary + why it matters to you (source)]
• [Second item]
📋 FULL DIGEST
[Items in per-item shape, ordered per weighting profile]
💡 WORTH NOTING
[Borderline items, one line each]
---
Sources: [count] | Next digest: [time]
Adapt entirely to learned preferences once they exist; the template above is only the cold-start default.
Before sending, verify:
single_source_policy?| Trap | Why it fails | Do instead |
|---|---|---|
| Leading with globally important news | User already saw it everywhere; the digest adds zero | Lead with niche relevance; big news gets one line (rule 1) |
| Padding slow days | Trains skimming; erodes trust in Highlights | Short honest digest ("quiet day") |
| Counting syndicated copies as corroboration | Ten outlets rewriting one press release or tweet are one source | Independence test in verification.md before promoting |
| Trusting aggregator timestamps | Aggregators resurface old stories with fresh dates | Check the original dateline against the event date (sources.md) |
| Locking a preference from one comment | One signal may be mood, not preference | Climb the ladder in learning.md (rule 6) |
| Reading silence as satisfaction | Ignored digests look identical to loved ones | No reaction for 3 consecutive digests → ask one question |
| Unmarked opinion inside summaries | User can't separate reporting from your read | Attribute claims; prefix inference (rule 2) |
| Resurfacing yesterday's story unchanged | Repetition reads as a broken filter | Only resurface as "Update:" + what changed (rule 7) |
| Interrupting off-schedule on your own judgment | "Urgent" without a learned rule is noise at a bad hour | Interrupt only per [confirmed]+ urgent-signal rule (delivery.md) |
More Clawic skills, get them at https://clawic.com/skills/digest (install if the user confirms):
brief — internal business information summarized rather than external news curatedsynthesize — the user provides the documents; you distill instead of sourcing the outside worldcompetitor-monitoring — full competitor dossiers, pricing alerts, and positioning analysis beyond digest itemsnewsletter — the user wants to publish to an audience, not receive a personal digestPart of Clawic, the verified skill library. Get this skill: https://clawic.com/skills/digest.