Curates 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...
Installs into .claude/skills of the current project.
Are you the author of Digest?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/clawic-digest)
---
name: Digest
slug: digest
version: 1.0.3
description: 'Curates 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.'
homepage: https://clawic.com/skills/digest
changelog: Display name shown correctly
metadata:
clawdbot:
emoji: π°
displayName: Digest
configPaths:
- ~/Clawic/data/digest/
- ~/Clawic/profile.yaml
- ~/digest/
- ~/clawic/digest/
openclaw:
requires:
config:
- ~/Clawic/data/digest/
- ~/Clawic/profile.yaml
- ~/digest/
- ~/clawic/digest/
---
User 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/`, and say in one line that you moved it and from where.
## Configuration
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`:
- **content scope** β topics, industries, competitors, people, regions, exclusions; drives Filter
- **sourcing** β trusted and blocked sources, weighting, recency windows; drives Source
- **format & structure** β medium, structure, length, tone, visuals; drives Format
- **timing & cadence** β schedule, frequency, weekday/weekend split, urgent-signal rules; drives Deliver
- **prioritization & depth** β what leads, what buries, per-topic depth; drives Prioritize
## When To Use
- The user wants a recurring **daily or weekly briefing** on topics they care about
- A **news roundup** filtered to one person's interests, not a generic feed
- **Tracking competitors, an industry, people, or markets** with ongoing updates on their moves
- A **scheduled topic update** is due, or the source list needs building or tuning
- An existing digest feels off: too long, repetitive, missing stories, wrong timing
- Not for: synthesizing documents the user hands you (β `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.
## Quick Reference
| 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.
## Core Rules
1. **Relevance beats magnitude.** Rank by interest match first, freshness second, source weight third. A tracked competitor's pricing change outranks a world-news headline outside their topics.
2. **Every item is attributed.** No source you can name = item does not ship. Never blend your own inference into a summary unmarked β prefix it: "Likely:" or "My read:".
3. **Exclusions are binary, interests are weighted.** One explicit "don't care about Y" beats any number of inferred interest signals for Y. An excluded topic appears only when it intersects a confirmed interest, flagged as such ("normally excluded; included because it hits X").
4. **Dedupe before ranking.** Same story from N outlets = one item; N itself is rank input β 3+ independent sources covering one story promotes it toward Highlights. Independence = separate original evidence, not separate URLs (`verification.md`).
5. **Fixed budget forces curation.** `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.
6. **Preference changes climb a ladder** β pattern β confirmed β locked, mechanics in `learning.md`. Never jump from a single signal to locked.
7. **The digest remembers what it sent.** Log every shipped item to `~/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.
## Protocol
```
Source β Filter β Prioritize β Format β Deliver β Learn
```
1. **Source** β pull from configured feeds and the per-entity source kits (`sources.md`). Default weighting: primary > original reporting > aggregators > social; social is discovery, never citation β trace it back before it ships.
2. **Filter** β topic match includes; exclusion match drops (rule 3); recency windows per content type (`dimensions.md` β Sources); single-source surprising claims go to `verification.md`.
3. **Prioritize** β cluster duplicates, then rank per rule 1; bury borderline items into Worth Noting, don't delete (`triage.md`).
4. **Format** β per-item shape: headline β 1-line summary β why it matters to this user β (source). Craft rules in `writing.md`; length pressure cuts item count before per-item depth.
5. **Deliver** β channel and timing per preferences; interrupts, catch-ups, and per-channel formats in `delivery.md`.
6. **Learn** β capture reactions into `preferences.md` after every delivery; signal counting and ladder in `learning.md`.
## Output Format (Default)
```
π° [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.
## Output Gates
Before sending, verify:
- Every item has a source and a why-it-matters line?
- β€3 Highlights, each strong enough that the user could read only those?
- Zero exclusion-list items, unless flagged per rule 3?
- Every single-source claim hedged or held per `single_source_policy`?
- Nothing repeated unchanged from the sent log?
- Channel and time match current preferences; signals from the previous delivery recorded?
## Traps
| 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`) |
## Where Experts Disagree
- **Curation vs completeness.** Tight curation is the default β the budget is the product. Some readers want everything as FOMO insurance; the boundary is an explicit request, and the answer is a longer Worth Noting tail, never a bigger Highlights section.
- **Relevance-first vs breaking-first.** Default: highest interest-match leads. Breaking-first is legitimate for users who act on time-sensitivity (markets, on-call, PR); it must be learned or stated, never assumed from topic choice.
- **Neutral summarizer vs opinionated curator.** The why-it-matters line is opinion, and it is the digest's value. The boundary: reporting is attributed, inference is prefixed β the reader always knows which is which (rule 2).
## Related Skills
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 curated
- `synthesize` β the user provides the documents; you distill instead of sourcing the outside world
- `competitor-monitoring` β full competitor dossiers, pricing alerts, and positioning analysis beyond digest items
- `newsletter` β the user wants to publish to an audience, not receive a personal digest
## Feedback
- If useful, star it: https://clawic.com/skills/digest
- Latest version: https://clawic.com/skills/digest
Part of [Clawic](https://clawic.com), the verified skill library. Get this skill: https://clawic.com/skills/digest.