---
name: daily-brief
description: Compose a short briefing from several sources at once — headlines, tracked topics, and the user's own open items — as one digest instead of separate answers. Use when the user asks for a briefing, a digest, a rundown, or "what do I need to know today".
license: MIT
version: 1.0.0
metadata:
  gaia:
    security_tier: community
    permissions:
      - network:read
    tools_required:
      - search_web
      - fetch_page
      - recall
    provenance:
      source: starter-pack
---

# Daily Brief

The composition example: several independent sources collapsed into one thing
worth reading. The hard part is not gathering — it is cutting.

## Configure

The user picks the sections. A good default:

| Section | Source |
|---|---|
| Headlines | `search_web` on the user's 2–3 tracked topics |
| Tracked pages | `fetch_page` on specific URLs they follow |
| Their own items | `recall` of open commitments and reminders |

## Procedure

1. **Gather each section independently.** Run the searches and fetches for every
   configured section before writing anything.
2. **Tolerate partial failure.** If one source is unreachable, produce the brief
   without it and add a one-line "couldn't reach X" note. A brief that fails
   entirely because one feed was down is useless.
3. **Cut hard.** Three items per section, maximum. If nothing in a section is
   worth reading, drop the section and say "nothing new" — do not pad.
4. **Write it in this shape:**
   - **One line up top** — the single thing that matters most today.
   - **Per section** — up to three bullets, each one sentence, each with its
     link.
   - **Your items** — open commitments from memory, with dates.
   - **Gaps** — sources that failed, in one line.
5. **Keep it under 250 words.** A brief that takes ten minutes to read is not a
   brief.

## Honest limits

- **It is not delivered to you — you ask for it.** The flagship version of this
  idea (arrives at 7am as a voice note on Telegram) needs two things GAIA does
  not have yet: `gaia schedule add` wired to run a skill directly (the flag
  exists but is rejected — see [#1019](https://github.com/amd/gaia/issues/1019)),
  and Telegram voice-note support. Text-to-speech already exists as the
  `text_to_speech` agent tool. See the guide for what would unblock it.
- Headlines come from `search_web` (DuckDuckGo), not a curated news API, so
  coverage is uneven. Say where a claim came from.
- The "your items" section needs memory enabled; drop it silently if not.

## Fork this

Swap the sections for your morning: a status page you fetch, a repo's releases
page, and your own task list. The gather-tolerate-cut-write skeleton is the
reusable part.
